def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) featured_tour_operators = TourOperator.objects.all() featured_tour_operators = featured_tour_operators.exclude(slug=None) featured_tour_operators = featured_tour_operators.exclude(slug='') featured_tour_operators = featured_tour_operators.exclude(draft=True) featured_tour_operators = featured_tour_operators.exclude(logo__isnull=True) featured_tour_operators = featured_tour_operators.exclude(logo="") featured_tour_operators = featured_tour_operators.filter(date_deleted__isnull=True) featured_tour_operators = featured_tour_operators.order_by('-date_created')[:4] featured_articles = Article.objects.filter(article_status=Article.STATUS_PUBLISHED) featured_articles = featured_articles.order_by('-date_created')[:3] masthead_number = random.randint(1, 6) masthead_number_lg = random.randint(1, 3) context['max576px'] = '{}-max576px'.format(masthead_number) context['max768px'] = '{}-max768px'.format(masthead_number) context['max1440px'] = '{}-max1440px'.format(masthead_number) context['max1920px'] = '{}-max1920px'.format(masthead_number_lg) context['min1920px'] = '{}-min1920px'.format(masthead_number_lg) context['featured_tour_operators'] = featured_tour_operators context['featured_articles'] = featured_articles context['alert_success_activation'] = not not self.request.GET.get('success_activation') context['alert_error_activation'] = not not self.request.GET.get('error_activation') log_action(self.request) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) page = Page.objects.get(slug=self.kwargs.get('page_name')) context['page'] = page context['content'] = parse_variables(page.parse_content()) log_action(self.request,hit_object=page) return context
def get_context_data(self, **kwargs): context = kwargs country_index = context['object'] context['country_data'] = serializers.serialize( 'json', [country_index], fields=('name', 'slug', 'latitude', 'longitude')) context['parks_data'] = serializers.serialize( 'json', Park.objects.all(), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) context['latest_photos'] = country_index.photos.order_by( '-date_created')[0:1].all() context['latest_photos_count'] = Photo.objects.filter( draft=False, country_index=country_index, date_deleted__isnull=True).distinct().count() context['highlighted_articles'] = country_index.article_set.order_by( '-date_created')[0:2].all() context['highlighted_activities'] = country_index.activities.all( ).order_by('?')[:6] animals = Animal.objects.filter(country_indexes=country_index) context['highlighted_animals'] = animals.order_by('?')[:6] context['animals_count'] = animals.count() context['object'].header_caption_link = context[ 'object'].header_caption_link or "" context['object'].highlighted_articles = context[ 'object'].article_set.order_by('-date_created')[0:2].all() for article in context['object'].highlighted_articles: article.categories_string = ", ".join( [category.name for category in article.categories.all()]) context['object'].highlighted_activities = context[ 'object'].activities.order_by('name')[0:6] context['object'].highlighted_animals = context[ 'object'].animal_set.order_by('-priority')[0:6] context['object'].highlighted_photo = context[ 'object'].photos.order_by('-date_created')[0] context['object'].parksannotated = context['object'].parks.order_by( 'name').prefetch_related('park_reviews').annotate( parkreview_count=Count('park_reviews', distinct=True) ).annotate(photo_count=Count('photos', distinct=True)).annotate( parkreview_average=Avg('park_reviews__overall_rating')).all() for park in context['object'].parksannotated: park.tour_operators_cnt = park.tour_operators.all().count() park.tour_packages_cnt = Itinerary.objects.filter( parks__in=[park]).count() park.reviews_cnt = park.parkreview_count park.photos_cnt = Photo.objects.filter( draft=False, park=park, date_deleted__isnull=True).distinct().count() for article in context['object'].highlighted_articles: article.categories_string = ", ".join( [category.name for category in article.categories.all()]) log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) country_index = context['object'] operators = TourOperator.objects.filter(country_indexes=country_index) context['companies'] = operators.count() itineraries = Itinerary.objects.filter(country_indexes=country_index) context['tours'] = itineraries.count() animals = Animal.objects.filter(country_indexes=country_index) context['parks'] = country_index.parks.count() context['country_data'] = serializers.serialize( 'json', [country_index], fields=('name', 'slug', 'latitude', 'longitude')) context['parks_data'] = serializers.serialize( 'json', Park.objects.all(), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) vaccinations = country_index.vaccinations.all() context['highlighted_articles'] = country_index.article_set.order_by( '-date_created')[0:2].all() context['highlighted_activities'] = country_index.activities.all( ).order_by('name')[:6] context['highlighted_animals'] = animals.order_by('-priority')[:6] context['animals_count'] = animals.count() context['latest_photos'] = country_index.photos.order_by( '-date_created')[0:1].all() context['latest_photos_count'] = Photo.objects.filter( draft=False, country_index=country_index, date_deleted__isnull=True).distinct().count() context['airports'] = country_index.airports.replace(",", ", ") log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) articles = Article.objects.filter( animals=self.object).order_by('-date_created')[:3] context['articles'] = articles reviews_tour = TourOperatorReview.objects.filter( animals=self.object).order_by('?')[:2] reviews_park = ParkReview.objects.filter( animals=self.object).order_by('?')[:2] reviews = chain(reviews_park, reviews_tour) context['reviews'] = reviews total_photos = Photo.objects.filter( draft=False, date_deleted__isnull=True).filter( animals__id=self.object.pk).count() photos = Photo.objects.filter(draft=False, date_deleted__isnull=True).filter( animals=self.object).order_by('?') count = photos.count() if count <= 5: photos = photos[:3] elif count >= 6 and count < 9: photos = photos[:6] else: photos = photos[:9] context['photos'] = photos context['total_photos'] = total_photos # parks parks = self.object.parks.filter(safari_suitability__gte=9) if parks: context['parks_1'] = parks[:5] context['parks_2'] = parks[5:10] log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) country_index = context['object'] animals = Animal.objects.filter(country_indexes=country_index) context['animals'] = animals.order_by('name') log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) recent_reviews = AbstractReview.latest_reviews(tail=3) context['recent_reviews'] = recent_reviews article = Article.objects.filter(slug=kwargs.get('slug')).first() article = self.object context['article'] = article recent_articles = Article.objects.all().exclude( pk=article.pk).order_by('-date_created')[:3] context['recent_articles'] = recent_articles recent_articles_author = Article.objects.all().filter( user=article.user).exclude(pk=article.pk) recent_articles_ids = list( recent_articles.values_list('pk', flat=True)) recent_articles_author = recent_articles_author.exclude( pk__in=recent_articles_ids) recent_articles_author = recent_articles_author.order_by( '-date_created')[:3] context['recent_articles_author'] = recent_articles_author if article.user.profile.tour_operator: context['link'] = reverse('tour_operator', kwargs={ 'slug': article.user.profile.tour_operator.slug}) else: context['link'] = reverse('member', kwargs={'pk': article.user.pk}) context['comments'] = article.comments() log_action(self.request, hit_object=self.object) self.object.update_visit_count() return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) activity = Activity.objects.get(slug=self.kwargs.get('slug')) context['activity'] = activity context['photos'] = Photo.objects.filter( draft=False, activity=activity).order_by('-date_modified')[:9] log_action(self.request, hit_object=activity) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) activities = Activity.objects.all().order_by('name') context['activities'] = activities bw = activities.get(slug__lower='bird-watchingwith-professional-guide') header_image = "{0}{1}".format(settings.BASE_URL, bw.image.url) context['header_image'] = header_image log_action(self.request) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) if self.kwargs.get('slug'): tour = TourOperator.objects.get(slug=self.kwargs.get('slug')) else: from django.http import Http404 raise Http404("No tour operator") # focused review if 'review' in kwargs: o_review = TourOperatorReview.objects.get( pk=self.kwargs.get('review')) temp = get_template( 'operators/tour_operator_includes/tour_reviews_cards.html') result = temp.render({ 'tour_reviews': [o_review], 'tour': tour, 'focused': True }) context['review_focus'] = result # sencond of three context['tour_countries'] = CountryIndex.objects.filter( itineraries__tour_operator=tour).distinct() # context['tour_countries'] = CountryIndex.objects.filter(parks__in=tour.parks.all()) context['tour_reviews'] = TourOperatorReview.objects.filter( tour_operator=tour, status="AC").order_by('-date_modified')[:10] context['tour_reviews_total'] = tour.tour_operator_reviews.all().count( ) tour_user_profile = UserProfile.objects.filter( tour_operator=tour).first() context['tour_quick_respond'] = tour.quick_to_respond() if tour_user_profile: context['tour_park_reviews'] = ParkReview.objects.filter( user=tour_user_profile.user) context['tour_articles'] = Article.objects.filter( user=tour_user_profile.user)[:5] context['tour_articles_total'] = Article.objects.filter( user=tour_user_profile.user)[:5].count() context['tour_photos'] = Photo.objects.filter( draft=False, tour_operator=tour, image__isnull=False).exclude( image__exact='').order_by('-date_modified')[:20] if context['tour_photos']: context['tour_photos_first_id'] = context['tour_photos'].first().id tour.is_fav_ = tour.is_fav(self.request) context['tour'] = tour context['tour_operator'] = tour log_action(self.request, hit_object=tour) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) activities = context['object'].activities.all().order_by('name') activities = activities.filter(image__isnull=False) context['activities'] = activities header_image = "{0}{1}".format( settings.BASE_URL, activities.get( slug__lower='bird-watchingwith-professional-guide').image.url) context['header_image'] = header_image context['isCountryActivities'] = True log_action(self.request, hit_object=self.object) return context
def get(self, request, **kwargs): context = {} query = kwargs.get('query') if not query: query = "" results = Article.objects.filter( title__lower__icontains=query.lower())[:10] for result in results: results.meta_description = unescape(result.meta_description) context['results'] = results context['query'] = query log_action(self.request) return render(request, self.template_name, context=context)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) parks = Park.objects.all().order_by('name') parks_by_country_count = {} parks_by_country = {} context['reviews_by_parks'] = {} for park in parks: context['reviews_by_parks'][park.pk] = ParkReview.objects.filter( park__pk=park.pk).count() for country in park.country_indexes.all(): parks_by_country.setdefault(country.pk, []).append(park) if country.pk in parks_by_country_count: parks_by_country_count[country.pk] += 1 else: parks_by_country_count[country.pk] = 1 context['parks'] = parks context['parks_by_country'] = parks_by_country context['parks_by_country_count'] = parks_by_country_count # operators stats operators_by_country_count = {} countries = CountryIndex.objects.all() for country in countries: operators = TourOperator.objects \ .exclude(logo='') \ .filter(logo__isnull=False) \ .filter(date_deleted__isnull=True) \ .filter(draft=False) \ .filter(country_indexes__pk=country.pk).count() operators_by_country_count[country.pk] = operators context['operators_by_country_count'] = operators_by_country_count # reviews reviews = AbstractReview.latest_reviews() context['reviews'] = reviews # recent operators operators = TourOperator.latest_added() context['operators'] = operators # stats context['tour_operators_count'] = get_tour_operators_count() context['tour_packages_count'] = get_tour_packages_count() context['reviews_count'] = get_reviews_count() context['parks_count'] = get_parks_count() context['users_count'] = get_users_count() context['photos_count'] = get_photos_count() context['wildlife_count'] = get_wildlife_count() context['countries_count'] = get_countries_count() countries = CountryIndex.objects.all() context['countries_1'] = countries[:5] context['countries_2'] = countries[5:10] context['countries_3'] = countries[10:] log_action(self.request) return context
def get_context_data(self, **kwargs): context = {} log_action(self.request) if cache.get('WildlifeView'): context.update(cache.get('WildlifeView')) return context animals = Animal.objects.all().order_by('name') context['animals'] = animals header_image = "{0}{1}".format( settings.BASE_URL, animals.get(name__lower='bushbaby').image.url) context['header_image'] = header_image cache.set('WildlifeView', context) return context
def get(self, request, **kwargs): query = kwargs.get('query') if not query: query = "" context = {} latest_articles = Article.objects.filter(article_status="PUBLISHED").order_by('-date_created')[:15] context['latest_articles'] = latest_articles categories_names = {} for a in latest_articles.all(): categories = list(a.categories.values_list('name', flat=True)) categories_names[a.pk] = ', '.join(categories) context['categories_names'] = categories_names log_action(self.request) return render(request, self.template_name, context=context)
def get_context_data(self, **kwargs): context = kwargs park = context['object'] country_indexes = CountryIndex.objects.filter(parks__exact=park) context['countries'] = country_indexes country_index = country_indexes[0] if len(country_indexes) > 1: country_index2 = country_indexes[1] context['country2'] = country_index2 context['country'] = country_index # # # # sidebar: context['sidebar'] = {} context['sidebar']['main_park'] = serializers.serialize( 'json', [park], fields=('name', 'slug', 'latitude', 'longitude')) context['sidebar']['all_parks'] = serializers.serialize( 'json', Park.objects.exclude(id=park.id), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) context['sidebar']['reviews'] = ParkReview.latest_reviews(park) context['sidebar']['nearby_parks'] = Park.objects.filter( country_indexes__in=country_indexes) context['sidebar']['articles'] = country_index.article_set.order_by( '-date_created')[0:2].all() if len(country_indexes) > 1: context['sidebar'][ 'articles2'] = country_index2.article_set.order_by( '-date_created')[0:2].all() context['sidebar']['latest_photo'] = park.photos.order_by( '-date_created').last() context['sidebar']['photos_count'] = Photo.objects.filter( draft=False, park=park, date_deleted__isnull=True).distinct().count() context['sidebar']['animals'] = park.animal_set.order_by( '-priority')[0:6].all() context['sidebar']['animal_count'] = park.animal_set.all().count() context['sidebar']['activities'] = park.activities.order_by( 'name')[0:6].all() context['sidebar']['activity_count'] = park.activities.all().count() log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) page = self.request.GET.get('page', 1) parks = Park.objects.all() paginator = Paginator(parks, 10) try: context['parks'] = paginator.page(page) except PageNotAnInteger: context['parks'] = paginator.page(1) except EmptyPage: context['parks'] = paginator.page(paginator.num_pages) context['parks_count'] = parks.count() context['recent_reviews'] = ParkReview.latest_reviews() articles = Article.objects.order_by('-date_created')[:3] context['recent_articles'] = articles context['image'] = Park.objects.filter( slug='buffalo-springs').first().image.url log_action(self.request) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) log_action(self.request) context['filter_variants_country_and_park'] = json.dumps( countries_and_parks()) price_range = Itinerary.objects.aggregate(Max('search_price'), Min('search_price')) context['min_price'] = price_range['search_price__min'] context['max_price'] = price_range['search_price__max'] focus_type_main = ItineraryFocusType.objects.get(name='Primary').pk focus_type_second = ItineraryFocusType.objects.get(name='Secondary').pk main_focus_activities = Activity.objects.filter( focus_type__in=[focus_type_main]).order_by('name_short') main_focus_serializer = ActivitySimpleSerializer(main_focus_activities, many=True) context['main_focus_activities'] = json.dumps( main_focus_serializer.data) second_focus_activities = Activity.objects.filter( focus_type__in=[focus_type_second]).order_by('name_short') second_focus_serializer = ActivitySimpleSerializer( second_focus_activities, many=True) context['second_focus_activities'] = json.dumps( second_focus_serializer.data) itinerary_types = ItineraryType.objects.all() itinerary_types_serializer = ItineraryTypeSerializer(itinerary_types, many=True) context['itinerary_types'] = json.dumps( itinerary_types_serializer.data) slug = self.slug(context) context['slug'] = json.dumps(slug) context['head'] = self.page_head(context, slug) return context
def get_form_kwargs(self): kwargs = super(RequestInfoView, self).get_form_kwargs() kwargs['tour_operator'] = get_object_or_404( TourOperator, slug=self.kwargs.get('slug')) if self.request.user.is_authenticated: kwargs[ 'name'] = self.request.user.first_name + " " + self.request.user.last_name kwargs['email'] = self.request.user.email if self.request.GET.get('countries', ''): kwargs['countries'] = [ get_object_or_404(CountryIndex, pk=x) for x in self.request.GET.get('countries').split(",") ] if self.request.GET.get('regarding_text', ''): kwargs['regarding_text'] = self.request.GET.get( 'regarding_text', '') if self.request.GET.get("type", ""): kwargs["itinerary_type"] = get_object_or_404( ItineraryType, name=self.request.GET.get("type", "")) log_action(self.request, hit_object=self.kwargs.get('tour_operator')) return kwargs
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['form'] = CompanyInfoForm() context['form'].fields['name'].widget.attrs['readonly'] = False context['form'].fields['website'].widget.attrs['readonly'] = False context['form'].fields['email'].widget.attrs['readonly'] = False if self.request.user.is_authenticated: context['form'].fields['email'].initial = self.request.user.email countries = CountryIndex.objects.all().order_by('name').prefetch_related('parks') context['countries'] = countries parks = Park.objects.all().order_by('name') context['parks'] = parks countries_json = [] for country in countries: country_json = {} country_json['id'] = country.id country_json['name'] = country.name country_json['parks'] = list(country.parks.all().order_by('name').values_list('id', flat=True)) countries_json.append(country_json) context['vue_variables'] = {} context['vue_variables']['countries_json'] = countries_json countries = CountryIndex.objects.all().order_by('name') context['countries'] = countries parks = Park.objects.all().order_by('name') context['parks'] = parks parks_json = [] for park in parks: park_json = {} park_json['id'] = park.id park_json['name'] = park.name_short parks_json.append(park_json) context['vue_variables']['parks_json'] = parks_json log_action(self.request) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) countries = CountryIndex.objects.all() context['countries'] = countries log_action(self.request) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) log_action(self.request) context['filter_variants_country_and_park'] = json.dumps( countries_and_parks()) luxury_level_choices = dict(TourOperator.LUXURY_LEVEL_CHOICES) luxury_focus = [ { 'id': TourOperator.LUXURY_LEVEL_BUDGET, 'title': luxury_level_choices[TourOperator.LUXURY_LEVEL_BUDGET], 'count': TourOperator.objects.filter( luxury_level=TourOperator.LUXURY_LEVEL_BUDGET).count() }, { 'id': TourOperator.LUXURY_LEVEL_MID_LEVEL, 'title': luxury_level_choices[TourOperator.LUXURY_LEVEL_MID_LEVEL], 'count': TourOperator.objects.filter( luxury_level=TourOperator.LUXURY_LEVEL_MID_LEVEL).count() }, { 'id': TourOperator.LUXURY_LEVEL_ULTRA_SAFARI, 'title': luxury_level_choices[TourOperator.LUXURY_LEVEL_ULTRA_SAFARI], 'count': TourOperator.objects.filter(luxury_level=TourOperator. LUXURY_LEVEL_ULTRA_SAFARI).count() }, ] context['luxury_focus'] = json.dumps(luxury_focus) ratings = [] for i in range(0, 5): ratings.append({ 'id': i + 1, 'rating': i + 1, 'count': TourOperator.objects.filter(average_rating=i + 1).count() }) context['minimum_rating'] = json.dumps(ratings) languages = Language.objects.all() languages_serializer = LanguageSerializer(languages, many=True) context['languages'] = json.dumps(languages_serializer.data) headquarters = Country.objects.all() headquarters_serializer = CountrySerializer(headquarters, many=True) context['headquarters'] = json.dumps(headquarters_serializer.data) tour_operator_that = [] operator_that_choices = TourOperator.operator_that_choices() for key in operator_that_choices: rule = operator_that_choices[key] q = TourOperator.objects if rule['annotate']: q = q.annotate(subquery_alias=rule['annotate']) q = q.filter(rule['query']) count = q.count() tour_operator_that.append({ 'id': key, 'title': rule['title'], 'count': count }) context['tour_operator_that'] = json.dumps(tour_operator_that) slug = self.slug(context) context['slug'] = json.dumps(slug) context['head'] = self.page_head(context, slug) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) itinerary = Itinerary.objects.get(pk=self.kwargs.get('pk')) itinerary.is_fav_ = itinerary.is_fav(self.request) context['itinerary'] = itinerary itinerary_days = ItineraryDayDescription.objects.filter( itinerary=itinerary).filter( date_deleted__isnull=True).order_by('day_number') context['itinerary_days'] = itinerary_days country_index = CountryIndex.objects.get(id=1) parks = itinerary.parks.all() lat = 0 lon = 0 for park in parks: lat += park.latitude lon += park.longitude if len(parks) > 0: lat = str(lat / len(parks)) lon = str(lon / len(parks)) context['parks_data'] = serializers.serialize( 'json', itinerary.parks.all(), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) if itinerary.activity_level_name == 'Easy': battery_level = 'empty' elif itinerary.activity_level_name == 'Moderate': battery_level = 'half' else: battery_level = 'full' context['battery_level'] = battery_level context['country_data'] = [{ "fields": { "name": "center", "slug": "center", "latitude": lat, "longitude": lon } }] tour = itinerary.tour_operator context['operator'] = tour context['tour_operator'] = tour context['offered_by'] = True serializer = ItinerarySerializer() all_tours = Itinerary.objects.filter(date_deleted__isnull=True).filter( tour_operator=tour).exclude( id=itinerary.id).order_by('-date_modified') for tour in all_tours: tour.serialized = serializer._main_features(tour) context['all_tours_count'] = all_tours.count() related_tours = all_tours[:6] for related_tour in related_tours: related_tour.is_fav_ = related_tour.is_fav(self.request) context['related_tours'] = related_tours log_action(self.request, hit_object=itinerary) return context
def get_context_data(self, **kwargs): context = kwargs park = context['object'] country_indexes = CountryIndex.objects.filter(parks__exact=park) context['countries'] = country_indexes country_index = country_indexes[0] if len(country_indexes) > 1: country_index2 = country_indexes[1] context['country2'] = country_index2 context['country'] = country_index # # # # sidebar: context['sidebar'] = {} context['sidebar']['main_park'] = serializers.serialize( 'json', [park], fields=('name', 'slug', 'latitude', 'longitude')) context['sidebar']['all_parks'] = serializers.serialize( 'json', Park.objects.exclude(id=park.id), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) context['sidebar']['reviews'] = ParkReview.latest_reviews(park) context['sidebar']['nearby_parks'] = Park.objects.filter( country_indexes__in=country_indexes) context['sidebar']['articles'] = country_index.article_set.order_by( '-date_created')[0:2].all() if len(country_indexes) > 1: context['sidebar'][ 'articles2'] = country_index2.article_set.order_by( '-date_created')[0:2].all() context['sidebar']['latest_photo'] = park.photos.order_by( '-date_created').last() context['sidebar']['photos_count'] = Photo.objects.filter( draft=False, park=park, date_deleted__isnull=True).distinct().count() context['sidebar']['animals'] = park.animal_set.order_by( '-priority')[0:6].all() context['sidebar']['animal_count'] = park.animal_set.all().count() context['sidebar']['activities'] = park.activities.order_by( 'name')[0:6].all() context['sidebar']['activity_count'] = park.activities.all().count() # # # # main-page-content: # # # # headers: # # # operator_count = context['object'].itineraries.all().values( 'tour_operator').distinct().count() context['object'].tour_operator_count = operator_count park_reviews = ParkReview.objects.filter( park__pk=context['object'].pk).all() number_of_reviews = 0 wildlife_quality = 0 lodging_quality = 0 crowdness = 0 visited_months = [] for review in park_reviews: number_of_reviews += 1 wildlife_quality += review.quality_wildlife_rating lodging_quality += review.quality_lodging_rating crowdness += review.crowdedness_rating visited_months.append(review.visit_date.strftime('%B')) if number_of_reviews > 0: context[ 'object'].wildlife_quality = wildlife_quality / number_of_reviews context[ 'object'].lodging_quality = lodging_quality / number_of_reviews context['object'].crowdness_rating = crowdness / number_of_reviews context['object'].most_visited_month = max( set(visited_months), key=visited_months.count) # # # # Highlights: context['object'].highlights = park.highlights.split('\n') context['highlighted_activities'] = context['object'].activities.all( ).order_by('?')[:6] log_action(self.request, hit_object=self.object) return context
def get_context_data(self, *args, **kwargs): context = kwargs review_id_focus = self.request.GET.get('review', '') if not review_id_focus: review_id_focus = self.kwargs.get('review_pk', '') context['review_id_focus'] = review_id_focus if review_id_focus: review_focus = [ParkReview.objects.get(id=int(review_id_focus))] temp = get_template('places/park_inserts/park_reviews.html') result = temp.render({'reviews': review_focus, 'focused': True}) context['review_focus'] = result else: review_id_focus = '0' park = context['object'] country_indexes = CountryIndex.objects.filter(parks__exact=park) context['countries'] = country_indexes country_index = country_indexes[0] if len(country_indexes) > 1: country_index2 = country_indexes[1] context['country2'] = country_index2 if len(country_indexes) > 2: country_index3 = country_indexes[2] context['country3'] = country_index3 context['country'] = country_index # # # # sidebar: context['sidebar'] = {} context['sidebar']['main_park'] = serializers.serialize( 'json', [park], fields=('name', 'slug', 'latitude', 'longitude')) context['sidebar']['all_parks'] = serializers.serialize( 'json', Park.objects.exclude(id=park.id), fields=('name', 'name_short', 'latitude', 'longitude', 'slug')) context['sidebar']['reviews'] = ParkReview.latest_reviews(park) context['sidebar']['nearby_parks'] = Park.objects.filter( country_indexes__in=country_indexes) context['sidebar']['articles'] = country_index.article_set.order_by( '-date_created')[0:2].all() if len(country_indexes) > 1: context['sidebar'][ 'articles2'] = country_index2.article_set.order_by( '-date_created')[0:2].all() if len(country_indexes) > 2: context['sidebar'][ 'articles3'] = country_index3.article_set.order_by( '-date_created')[0:2].all() context['sidebar']['latest_photo'] = park.photos.order_by( '-date_created').last() context['sidebar']['photos_count'] = Photo.objects.filter( draft=False, park=park, date_deleted__isnull=True).distinct().count() context['sidebar']['animals'] = park.animal_set.order_by( '-priority')[0:6].all() context['sidebar']['animal_count'] = park.animal_set.all().count() context['sidebar']['activities'] = park.activities.order_by( 'name')[0:6].all() context['sidebar']['activity_count'] = park.activities.all().count() # # # x = 'date_created' total_park_reviews = ParkReview.objects.filter( park__pk=context['object'].pk, ).exclude( id=int(review_id_focus)).order_by('-date_created').count() park_reviews = ParkReview.objects.filter( park__pk=context['object'].pk, ).exclude( id=int(review_id_focus)).order_by('-date_created').all()[:10] for review in park_reviews: user = review.user review.user_reviews = ParkReview.objects.filter(user__exact=user).count() \ + TourOperatorReview.objects.filter(user__exact=user).count() review.profile_picture = review.user.profile.avatar.url context['reviews'] = park_reviews context['total_park_reviews'] = total_park_reviews log_action(self.request, hit_object=self.object) return context
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) log_action(self.request, hit_object=self.object) return context