def random_film_to_rate(request): """ Widget for main page (for not logged in users) displaying a film to rate, selected from the list of 10 most popular films. """ user = request.user if user.is_authenticated(): film = Film.get_next_film_to_rate(user) else: key = cache.Key("popular_films_list") popular_films = cache.get(key) if popular_films is None: fhelper = FilmHelper() lang = getattr(settings, 'LANGUAGE_CODE', 'en') if lang == 'en': popular_films = fhelper.get_popular_films(exclude_nonEnglish=True) else: popular_films = fhelper.get_popular_films() cache.set(key, popular_films) film = popular_films and random.choice(popular_films) or None return { 'film': film, }
def random_film_to_rate(request): """ Widget for main page (for not logged in users) displaying a film to rate, selected from the list of 10 most popular films. """ user = request.user if user.is_authenticated(): film = Film.get_next_film_to_rate(user) else: key = cache.Key("popular_films_list") popular_films = cache.get(key) if popular_films is None: fhelper = FilmHelper() lang = getattr(settings, 'LANGUAGE_CODE', 'en') if lang == 'en': popular_films = fhelper.get_popular_films( exclude_nonEnglish=True) else: popular_films = fhelper.get_popular_films() cache.set(key, popular_films) film = popular_films and random.choice(popular_films) or None return { 'film': film, }
def test_get_popular_films(self): """ Test get_popular_films method """ self.initialize() helper = FilmHelper() films_english = set(helper.get_popular_films(exclude_nonEnglish=True)) self.assertEquals(self.film1 in films_english, True) self.assertEquals(self.film3 in films_english, False) self.assertEquals(self.film4 in films_english, False) films_english = set(helper.get_popular_films()) self.assertEquals(self.film1 in films_english, True) self.assertEquals(self.film3 in films_english, True)
def test_get_popular_films(self): """ Test get_popular_films method """ self.initialize() helper = FilmHelper() films_english = set(helper.get_popular_films(exclude_nonEnglish=True)) self.assertEquals(self.film1 in films_english, True) self.assertEquals(self.film3 in films_english, False) self.assertEquals(self.film4 in films_english, False) films_english = set(helper.get_popular_films()) self.assertEquals(self.film1 in films_english, True) self.assertEquals(self.film3 in films_english, True)
def random_top_movie(): """Displays some random popular movie on Filmaster.""" key = cache.Key("popular_films") popular_films = cache.get(key) if popular_films is None: # Get most popular films fhelper = FilmHelper() popular_films = list( fhelper.get_popular_films(exclude_nonEnglish=True)) cache.set(key, popular_films) random.shuffle(popular_films) if len(popular_films) > 0: return {'movie': popular_films[0]} else: return {'movie': None}
def random_top_movie(): """Displays some random popular movie on Filmaster.""" key = cache.Key("popular_films") popular_films = cache.get(key) if popular_films is None: # Get most popular films fhelper = FilmHelper() popular_films = list(fhelper.get_popular_films( exclude_nonEnglish=True)) cache.set(key, popular_films) random.shuffle(popular_films) if len(popular_films) > 0: return {'movie': popular_films[0]} else: return {'movie': None}
def top_recommendations_all(context, films_number=4): """ Displays user's top recommended movies (most popular for not logged in). """ POPULAR_FILMS_NUMBER_ALL = getattr(settings, 'POPULAR_FILMS_MAIN_PAGE_NUMBER_ALL') user = context.get('recommendations_user', context['request'].user) key = cache.Key("popular_films_main_page", user) films = cache.get(key) if (not films) or len(films) < films_number: key_all = cache.Key("popular_films_main_page_all", user) all_films = cache.get(key_all) if not all_films: has_recommendations = user.is_authenticated() and \ user.get_profile().recommendations_status if has_recommendations: recom_helper = RecomHelper() all_films = list( recom_helper.get_best_psi_films_queryset(user) [:POPULAR_FILMS_NUMBER_ALL]) else: fhelper = FilmHelper() all_films = list( fhelper.get_popular_films( number_of_films=POPULAR_FILMS_NUMBER_ALL, exclude_nonEnglish=True)) cache.set(key_all, all_films, cache.A_MONTH) # Select random few films random.shuffle(all_films) films = all_films[:films_number] cache.set(key, films, cache.A_QUARTER) return films[:films_number]
def top_recommendations_all(context, films_number=4): """ Displays user's top recommended movies (most popular for not logged in). """ POPULAR_FILMS_NUMBER_ALL = getattr(settings, 'POPULAR_FILMS_MAIN_PAGE_NUMBER_ALL') user = context['request'].user key = cache.Key("popular_films_main_page", user) films = cache.get(key) if (not films) or len(films) < films_number: key_all = cache.Key("popular_films_main_page_all", user) all_films = cache.get(key_all) if not all_films: has_recommendations = user.is_authenticated() and \ user.get_profile().recommendations_status if has_recommendations: recom_helper = RecomHelper() all_films = list(recom_helper.get_best_psi_films_queryset( user_id = user.id, offset=0, limit=POPULAR_FILMS_NUMBER_ALL)) else: fhelper = FilmHelper() all_films = list(fhelper.get_popular_films( number_of_films=POPULAR_FILMS_NUMBER_ALL, exclude_nonEnglish=True)) cache.set(key_all, all_films, cache.A_MONTH) # Select random few films random.shuffle(all_films) films = all_films[:films_number] cache.set(key, films, cache.A_QUARTER) return films[:films_number]