diff --git a/flashcards/migrations/0019_auto_20150602_1046.py b/flashcards/migrations/0019_auto_20150602_1046.py new file mode 100644 index 0000000..bde1f98 --- /dev/null +++ b/flashcards/migrations/0019_auto_20150602_1046.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('flashcards', '0018_flashcard_score'), + ] + + operations = [ + migrations.AlterField( + model_name='flashcard', + name='score', + field=models.FloatField(default=0), + ), + ] diff --git a/flashcards/models.py b/flashcards/models.py index 557bbb3..0770746 100644 --- a/flashcards/models.py +++ b/flashcards/models.py @@ -29,6 +29,7 @@ from cached_property import cached_property + # Hack to fix AbstractUser before subclassing it AbstractUser._meta.get_field('email')._unique = True @@ -324,6 +325,7 @@ class Flashcard(Model): return self.is_hidden or self.flashcardhide_set.filter(user=user).exists() def is_in_deck(self, user): + if hasattr(self, 'userflashcard_id'): return self.userflashcard_id return self.userflashcard_set.filter(user=user).exists() def edit(self, user, new_data): @@ -404,6 +406,8 @@ class Flashcard(Model): rqs = cls.objects.filter(Q(author__confirmed_email=True) | Q(author=user)) # Exclude hidden cards rqs = rqs.exclude(Q(is_hidden=True) | Q(flashcardhide__user=user)) + # rqs = rqs.prefetch_related('userflashcard_set') + # rqs = rqs.aggregate(Count(userflashcard__user=user)) # Annotate the cards so we don't have to check if they're hidden in the future return rqs.annotate(is_not_hidden=Value(True, output_field=BooleanField()))