diff --git a/flashcards/models.py b/flashcards/models.py index 67b487b..39c0715 100644 --- a/flashcards/models.py +++ b/flashcards/models.py @@ -175,9 +175,8 @@ class User(AbstractUser, SimpleEmailConfirmationUserMixin): return address def by_retention(self, sections, material_date_begin, material_date_end): - section_pks = sections.values_list('pk') user_flashcard_filter = UserFlashcard.objects.filter( - user=self, flashcard__section__pk__in=section_pks, + user=self, flashcard__section__pk__in=sections, flashcard__material_date__gte=material_date_begin, flashcard__material_date__lte=material_date_end ) @@ -185,9 +184,7 @@ class User(AbstractUser, SimpleEmailConfirmationUserMixin): if not user_flashcard_filter.exists(): raise ValidationError("No matching flashcard found in your decks") - return user_flashcard_filter.prefetch_related('userflashcardquiz_set').annotate( - study_count=Count('pk'), - ).order_by('next_review') + return user_flashcard_filter.order_by('next_review') class UserFlashcard(Model): diff --git a/flashcards/serializers.py b/flashcards/serializers.py index 0dba597..1a6cb5a 100644 --- a/flashcards/serializers.py +++ b/flashcards/serializers.py @@ -196,7 +196,7 @@ class FlashcardUpdateSerializer(serializers.Serializer): class QuizRequestSerializer(serializers.Serializer): - sections = ListField(child=IntegerField(min_value=1), required=False) + sections = ListField(child=IntegerField(min_value=1), required=False, default=[]) material_date_begin = DateTimeField(default=QUARTER_START) material_date_end = DateTimeField(default=QUARTER_END)