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)
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 setUp(self): self.u1 = User.objects.create_user("user1", "*****@*****.**", "user") self.u2 = User.objects.create_user("user2", "*****@*****.**", "user") self.u3 = User.objects.create_user("user3", "*****@*****.**", "user") self.films = [] for i in range(10): f = Film.objects.create( permalink="test-film-%d" % i, title="title %2d" % i, type=Film.TYPE_FILM, release_year=2000, ) rating_helper.rate(self.u1, random.randint(1, 5), film_id=f.pk) rating_helper.rate(self.u2, random.randint(1, 5), film_id=f.pk) self.films.append(f) SimilarFilm.add_vote(self.u2, self.films[1], self.films[2]) SimilarFilm.add_vote(self.u3, self.films[2], self.films[1]) SimilarFilm.add_vote(self.u2, self.films[2], self.films[4]) rating_helper.rate(self.u3, 3, film_id=self.films[2].pk)
def setUp( self ): self.u1 = User.objects.create_user( "user1", "*****@*****.**", "user" ) self.u2 = User.objects.create_user( "user2", "*****@*****.**", "user" ) self.u3 = User.objects.create_user( "user3", "*****@*****.**", "user" ) self.films = [] for i in range(10): f = Film.objects.create( permalink="test-film-%d" % i, title="title %2d" % i, type=Film.TYPE_FILM, release_year=2000, ) rating_helper.rate( self.u1, random.randint( 1, 5 ), film_id=f.pk ) rating_helper.rate( self.u2, random.randint( 1, 5 ), film_id=f.pk ) self.films.append( f ) SimilarFilm.add_vote( self.u2, self.films[1], self.films[2] ) SimilarFilm.add_vote( self.u3, self.films[2], self.films[1] ) SimilarFilm.add_vote( self.u2, self.films[2], self.films[4] ) rating_helper.rate( self.u3, 3, film_id=self.films[2].pk )