예제 #1
0
    def testCardToStudyIsDeletedWhenCardIsLearnedIsCreated(self):
        card = Card()
        card.user = self.user
        card.text = 'hello'
        card.save()

        to_study = CardToStudy()
        to_study.user = self.user
        to_study.card = card
        to_study.save()

        is_learned = CardIsLearned()
        is_learned.user = self.user
        is_learned.card = card
        is_learned.save()

        to_study = CardToStudy().find_by_user_and_card(self.user, card)
        self.assertIsNone(to_study)
예제 #2
0
    def perform_create(self, serializer):

        serializer.save()

        quiz_answers = serializer.instance
        quiz = quiz_answers[0].quiz

        quiz.completed = timezone.now()
        quiz.save()

        for quiz_card in quiz.quiz_cards.all():

            meaning_models = quiz_card.card.meanings.all()
            answer_models = quiz_card.quiz_answers.all()

            card_is_correct = len(meaning_models) == len(answer_models)
            meaning_texts = set(meaning.text.lower() for meaning in meaning_models)

            for quizAnswer in quiz_card.quiz_answers.all():

                if quizAnswer.text in meaning_texts:
                    quizAnswer.is_correct = True
                else:
                    quizAnswer.is_correct = False
                    card_is_correct = False

                quizAnswer.save()

            if card_is_correct and quiz_card.card.isToStudy():
                # todo move to somewhere like model.create
                is_learned = CardIsLearned()
                is_learned.user = self.request.user
                is_learned.card = quiz_card.card
                is_learned.save()

            if not card_is_correct and quiz_card.card.isLearned():
                to_study = CardToStudy()
                to_study.user = self.request.user
                to_study.card = quiz_card.card
                to_study.save()
예제 #3
0
 def createCardIsLearned(self, user, card):
     isLearned = CardIsLearned()
     isLearned.card = card
     isLearned.user = user
     isLearned.save()
     return isLearned