def form_valid( self, form ): features = form.cleaned_data['features'].split( ',' ) if form.cleaned_data['features'] else [] similar_films = form.cleaned_data['similar_films'] FilmFeatureVote.objects.filter( film=self.object, user=self.request.user ).delete() for t in features: FilmFeatureVote.objects.get_or_create( film=self.object, user=self.request.user, type=t ) SimilarFilm.remove_vote( user=self.request.user, film_a=self.object ) for sf in similar_films: SimilarFilm.add_vote( user=self.request.user, film_a=self.object, film_b=sf ) return self.render_to_response({ 'success': True, 'features': features })
def form_valid(self, form): features = form.cleaned_data['features'].split( ',') if form.cleaned_data['features'] else [] similar_films = form.cleaned_data['similar_films'] FilmFeatureVote.objects.filter(film=self.object, user=self.request.user).delete() for t in features: FilmFeatureVote.objects.get_or_create(film=self.object, user=self.request.user, type=t) SimilarFilm.remove_vote(user=self.request.user, film_a=self.object) for sf in similar_films: SimilarFilm.add_vote(user=self.request.user, film_a=self.object, film_b=sf) return self.render_to_response({'success': True, 'features': features})
def test_votes( self ): SimilarFilm.add_vote( user=self.u1, film_a=self.f1, film_b=self.f2 )#1 SimilarFilm.add_vote( user=self.u2, film_a=self.f1, film_b=self.f2 )#2 SimilarFilm.add_vote( user=self.u3, film_a=self.f1, film_b=self.f2 )#3 SimilarFilm.add_vote( user=self.u3, film_a=self.f2, film_b=self.f1 )#4 self.assertEqual( SimilarFilm.objects.filter( film_a=self.f1 ).count(), 1 ) similar = SimilarFilm.objects.get( film_a=self.f1 ) self.assertEqual( similar.number_of_votes, 3 ) SimilarFilm.remove_vote( user=self.u1, film_a=self.f1, film_b=self.f2 )#2 similar = SimilarFilm.objects.get( film_a=self.f1 ) self.assertEqual( similar.number_of_votes, 2 ) SimilarFilm.remove_vote( user=self.u2, film_a=self.f1, film_b=self.f2 )#1 similar = SimilarFilm.objects.get( film_a=self.f1 ) self.assertEqual( similar.number_of_votes, 1 ) SimilarFilm.remove_vote( user=self.u3, film_a=self.f1, film_b=self.f2 )#1 self.assertEqual( SimilarFilm.objects.filter( film_a=self.f1 ).count(), 0 )
def test_votes(self): SimilarFilm.add_vote(user=self.u1, film_a=self.f1, film_b=self.f2) #1 SimilarFilm.add_vote(user=self.u2, film_a=self.f1, film_b=self.f2) #2 SimilarFilm.add_vote(user=self.u3, film_a=self.f1, film_b=self.f2) #3 SimilarFilm.add_vote(user=self.u3, film_a=self.f2, film_b=self.f1) #4 self.assertEqual(SimilarFilm.objects.filter(film_a=self.f1).count(), 1) similar = SimilarFilm.objects.get(film_a=self.f1) self.assertEqual(similar.number_of_votes, 3) SimilarFilm.remove_vote(user=self.u1, film_a=self.f1, film_b=self.f2) #2 similar = SimilarFilm.objects.get(film_a=self.f1) self.assertEqual(similar.number_of_votes, 2) SimilarFilm.remove_vote(user=self.u2, film_a=self.f1, film_b=self.f2) #1 similar = SimilarFilm.objects.get(film_a=self.f1) self.assertEqual(similar.number_of_votes, 1) SimilarFilm.remove_vote(user=self.u3, film_a=self.f1, film_b=self.f2) #1 self.assertEqual(SimilarFilm.objects.filter(film_a=self.f1).count(), 0)