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)
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()
def createCardIsLearned(self, user, card): isLearned = CardIsLearned() isLearned.card = card isLearned.user = user isLearned.save() return isLearned