Skip to content

Commit

Permalink
Wenn eine Liste an Parteien übergeben wird, werden nur diese Parteien…
Browse files Browse the repository at this point in the history
… in die Auswahl mit aufgenommen.

close #12

Dies kann dazu führen, dass weniger Quiz Fragen als angefragt generiert werden.
  • Loading branch information
redsolver committed Oct 2, 2019
1 parent 652876f commit 8b4a473
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions lib/parteiduell_backend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'dart:io';
import 'package:parteiduell_backend/models/quiz_question.dart';
import 'package:parteiduell_backend/models/quizthese.dart';

const apiVersion = 3;
const apiVersion = 4;

List<QuizThese> quizFragen = [];

Expand Down Expand Up @@ -102,23 +102,35 @@ execute(HttpRequest request) async {

List<QuizQuestion> questions = [];

for (QuizThese these in quizFragen.take(count)) {
for (int i = 0; i < count; i++) {
if (i >= quizFragen.length) break;
QuizThese these = quizFragen[i];

var question = QuizQuestion(
context: these.context, source: these.source, these: these.these);

List<String> parties = these.statements.keys.toList();

// Unbekannte oder nicht angefragte Parteien herausfiltern
List<String> requestedParties = [...commonParties];
if (reqParties.isNotEmpty)
List<String> requestedParties = [];
if (reqParties.isNotEmpty) {
requestedParties.addAll(reqParties.split(','));
} else {
requestedParties.addAll(commonParties);
}
parties.removeWhere((p) => !requestedParties.contains(p));

// Entfernen von Parteien, die keine Antwort abgegeben haben
parties.removeWhere((p) => these.statements[p].isEmpty);
debugPrint('Parteien: $parties');
debugPrint('${parties.length}/${requestedParties.length}');

// Wenn weniger als zwei Parteien übrig bleiben, wird eine andere These verwendet
if (parties.length < 2) {
count++;
continue;
}

parties.shuffle();
parties = parties.take(4).toList();

Expand Down

0 comments on commit 8b4a473

Please sign in to comment.