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 index(self): self.template = 'index.phtml' # top rated top_rated = Rating.top_rated(self.session, limit=6) self.view['top_rated'] = top_rated # last rated last_rated = self.view['last_rated'] shuffle(last_rated) last_rated[5:] = [] ids = map(itemgetter1, self.view['last_rated']) movies = self.session.query(Movie).filter(Movie.id.in_(ids)).all() movies = dict((m.id, m) for m in movies) self.view['movies'] = movies # recent users self.view['recent_users'] = User.recent(self.session, limit=8) # recent ratings already_shown = set(ids) already_shown.update((m.id for m, _ in top_rated)) recent = self.session.query(Rating)\ .options(joinedload(Rating.movie))\ .options(joinedload(Rating.user))\ .filter(not_(Rating.movie_id.in_(already_shown)))\ .order_by(Rating.rated.desc()).limit(15).all() shuffle(recent) recent[10:] = [] self.view['recent_ratings'] = recent
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'
def index(self): self.template = 'index.phtml' # top rated self.view['top_rated'] = Rating.top_rated(self.session, limit=6) # last rated ids = map(itemgetter1, self.view['last_rated']) movies = self.session.query(Movie).filter(Movie.id.in_(ids)).all() movies = dict((m.id, m) for m in movies) self.view['movies'] = movies # recent users self.view['recent_users'] = User.recent(self.session, limit=5)
def __init__(self, request, tpl_env, appspace, action_name, **kwargs): self._request = request self.appspace = appspace self.action_name = action_name self.tpl_env = tpl_env # set blank template and empty view obj self.template = None self.view = { 'path': request.path, 'get': request.args, 'cdn': environ['CDN_PREFIX'] } # set the controller log self._log = "" # init response obj self._response = Response('', content_type="text/html; charset=UTF-8") self._response.status_code = 200 # rest of the initializers (db, session, etc) for key, value in kwargs.iteritems(): setattr(self, key, value) self.view['last_rated'] = Rating.last_rated(self.session, limit=17) # check user data self.user = None if 'logged' in self.request.cookies: parsed_cookie = parse_cookie(self.request.cookies['logged']) if parsed_cookie is None: self.response.delete_cookie('logged') else: service, service_user_id = parsed_cookie try: user = User.load(self.session, service=service, nickname=service_user_id) self.user = user except NoResultFound: self.response.delete_cookie('logged') self.view['user'] = self.user
def __init__(self, request, tpl_env, appspace, action_name, **kwargs): self._request = request self.appspace = appspace self.action_name = action_name self.tpl_env = tpl_env # set blank template and empty view obj self.template = None self.view = {'path': request.path, 'get': request.args, 'cdn': environ['CDN_PREFIX']} # set the controller log self._log = "" # init response obj self._response = Response('', content_type = "text/html; charset=UTF-8") self._response.status_code = 200 # rest of the initializers (db, session, etc) for key, value in kwargs.iteritems(): setattr(self, key, value) self.view['last_rated'] = Rating.last_rated(self.session, limit=17) # check user data self.user = None if 'logged' in self.request.cookies: parsed_cookie = parse_cookie(self.request.cookies['logged']) if parsed_cookie is None: self.response.delete_cookie('logged') else: service, service_user_id = parsed_cookie try: user = User.load(self.session, service = service, nickname = service_user_id) self.user = user except NoResultFound: self.response.delete_cookie('logged') self.view['user'] = self.user