def togglewatchlist(self): movie_id = int(self.request.form['movie_id']) movie = Movie.load(self.session, id=movie_id) if movie in self.user.watchlist: self.user.watchlist.remove(movie) else: # checked if already seen try: Rating.load(self.session, movie=movie, user=self.user) except NoResultFound: self.user.watchlist.add(movie)
def show(self, movie_id, dummy): try: movie = Movie.load(self.session, id=movie_id) except NoResultFound: return self.not_found('error/404.phtml') # last ratings last_ratings = self.session.query(Rating.rating, User)\ .join((User, and_(User.id == Rating.user_id, Rating.movie == movie)))\ .order_by(Rating.rated.desc()).all() if len(last_ratings) == 0: avg_rating = None else: avg_rating = sum(r.rating for r in last_ratings) * .5 / len(last_ratings) # user rating if self.user is not None: try: self.view['rating'] = Rating.load(self.session, movie=movie, user=self.user) except NoResultFound: pass self.view.update({'movie': movie, 'meta': movie.get_meta(), 'last_ratings': last_ratings, 'avg_rating': avg_rating}) self.template = 'movie.phtml'