def event_list(request): page = page_for_app_request(request) page.activate_language(request) ancestors = list(page.ancestors().reverse()) event_list = event_list_for_page(page) if "section" in request.GET: event_list = event_list.filter(section__slug=request.GET["section"]) return render_list( request, event_list, { "location_list": Location.objects.filter(event__in=event_list, ).distinct(), "page": page, "header_image": page.get_header_image(), "vapid_public_key": settings.VAPID_PUBLIC_KEY, "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, paginate_by=12, )
def unsubscribe_from_webpush(request): data = json.loads(request.body) page = page_for_app_request(request) Subscription.objects.filter( page=page, subscription_info__endpoint=data["endpoint"]).delete() return JsonResponse({"unsubscribed": True})
def event_list_for_section(request, pk): page = page_for_app_request(request) page.activate_language(request) section = get_object_or_404(Section, pk) event_list = event_list_for_page(page) event_list = event_list.filter(section=section) ancestors = list(page.ancestors().reverse()) return render_list( request, event_list_for_page(page), { "page": page, "header_image": page.get_header_image(), "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), "section": section, }, paginate_by=20, )
def team_detail(request, pk): page = page_for_app_request(request) page.activate_language(request) team = get_object_or_404(Team, pk=pk) ancestors = list(page.ancestors().reverse()) return render( request, "people/team_detail.html", { "page": page, "team": team, "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, )
def teams_for_section(request): page = page_for_app_request(request) page.activate_language(request) section = page.site.section ancestors = list(page.ancestors().reverse()) return render_list( request, Team.objects.filter( section=section, language_code=page.language_code, ), { "page": page, "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, paginate_by=10, )
def create(request): page = page_for_app_request(request) page.activate_language(request) campaign = page.campaign form = TestimonialForm(campaign=campaign) if request.POST: form = TestimonialForm(request.POST, request.FILES, campaign=campaign) if form.is_valid(): form.save() return redirect(reverse_app(f"testimonials-{campaign.pk}", "index")) return render( request, page.template_key, { "form": form, "campaign": campaign, "page": page, "regions": Regions.from_item( page, renderer=renderer, timeout=60, inherit_from=page.ancestors().reverse(), ), }, )
def article_detail(request, slug): page = page_for_app_request(request) page.activate_language(request) ancestors = list(page.ancestors().reverse()) article = get_object_or_404(Article, slug=slug, namespace=page.namespace, language_code=page.language_code) return render( request, 'blog/article_detail.html', { 'page': page, 'title': article.title, 'article': article, "meta_tags": meta_tags([article, page] + ancestors, request=request), "blog_regions": Regions.from_item(article, renderer=renderer, timeout=60), "regions": Regions.from_item(page, renderer=cms_renderer, timeout=60, inherit_from=ancestors), })
def article_detail(request, slug): page = page_for_app_request(request) page.activate_language(request) article = get_object_or_404(articles_for_page(page, allow_future=True), slug=slug) ancestors = list(page.ancestors().reverse()) edit = ( request.user.is_authenticated and request.user.section_set.filter(pk=article.section.pk).exists() ) return render( request, article.template.template_name, { "page": page, "article": article, "obj": article, "edit": edit, "header_image": article.get_header_image() or page.get_header_image(), "title": article.title, "meta_tags": meta_tags([article, page] + ancestors, request=request), "regions": Regions.from_item(article, renderer=renderer, timeout=60,), "page_regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, )
def article_detail(request, pk): page = page_for_app_request(request) page.activate_language(request) return render_detail( request, get_object_or_404(Article, pk=pk), {'page': page}, )
def article_list_all(request): page = page_for_app_request(request) page.activate_language(request) return render_list( request, Article.objects.filter(category=page.application), {'page': page}, )
def article_list(request): page = page_for_app_request(request) page.activate_language(request) article_list = articles_for_page(page) category_list = Category.objects.filter(article__in=article_list).distinct() if request.GET.get("category", None): article_list = article_list.filter( category__slug__in=request.GET.getlist("category") ) q = "" if request.GET.get("search", ""): vector = ( SearchVector("title", weight="A") + SearchVector("category__name", weight="A") + SearchVector("blog_richtext_set__text", weight="A") + SearchVector("blog_glossaryrichtext_set__text", weight="A") + SearchVector("author__first_name", weight="B") + SearchVector("author__last_name", weight="B") ) query = consume(request.GET["search"]) q = request.GET["search"] article_list = ( article_list.annotate( rank=SearchRank(vector, query, cover_density=True), headline=SearchHeadline( 'blog_richtext_set__text', query, max_words=25, min_words=20, max_fragments=2, ) ) .filter(rank__gt=0) .order_by("-rank") .distinct() ) ancestors = list(page.ancestors().reverse()) return render_list( request, article_list, { "page": page, "q": q, "header_image": page.get_header_image(), "vapid_public_key": settings.VAPID_PUBLIC_KEY, "category_list": category_list, "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, ), }, paginate_by=12, )
def is_subscribed(request): data = json.loads(request.body) return JsonResponse({ "subscribed": Subscription.objects.filter( page=page_for_app_request(request), subscription_info__endpoint=data["endpoint"], ).exists() })
def subscribe_to_webpush(request): data = json.loads(request.body) page = page_for_app_request(request) if Subscription.objects.filter( page=page, subscription_info__endpoint=data["endpoint"]).exists(): return JsonResponse({"subscribed": False}) Subscription.objects.create(page=page, subscription_info=data) return JsonResponse({"subscribed": True})
def article_list(request): page = page_for_app_request(request) page.activate_language(request) return render_list( request, # Only show articles for the current app. Article.objects.published().filter( category=page.application, ).prefetch_related('images'), {'page': page}, paginate_by=10, )
def collection_view(request): page = page_for_app_request(request) collection = page.collection ancestors = list(page.ancestors().reverse()) return render( request, 'link_collections/collection.html', { 'meta_tags': meta_tags([page] + ancestors, request=request), 'page': page, 'collection': collection, })
def event_detail(request, year, month, day, slug): page = page_for_app_request(request) page.activate_language(request) event = get_object_or_404( event_list_for_page(page, past_events=True), slug=slug, section=page.site.section, start_date__year=year, start_date__month=month, start_date__day=day, ) ancestors = list(page.ancestors().reverse()) return render( request, event.template.template_name, { "page": page, "event": event, "obj": event, "header_image": event.get_header_image() or page.get_header_image(), "title": event.title, "meta_tags": meta_tags( [event, page] + ancestors, request=request, ), "regions": Regions.from_item( event, renderer=renderer, timeout=60, ), "page_regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, )
def collection_view(request): page = page_for_app_request(request) collection = page.collection ancestors = list(page.ancestors().reverse()) return render( request, "link_collections/collection.html", { "meta_tags": meta_tags([page] + ancestors, request=request), "page": page, "collection": collection, }, )
def article_detail(request, year, slug): page = page_for_app_request(request) page.activate_language(request) return render_detail( request, # We are NOT filtering for the current app. If, for example, the # blog application is inactive, we'd rather show the article in # the publication app than not at all. Of course if this behavior # isn't a good fit for you, simply add ``category=page.application`` # here. get_object_or_404( Article.objects.published(), publication_date__year=year, slug=slug, ), {'page': page}, )
def person_detail(request, pk): page = page_for_app_request(request) page.activate_language(request) person = get_object_or_404(Person, pk=pk) articles = Article.objects.filter(author=person) memberships = person.membership_set.filter( team__language_code=page.language_code) ancestors = list(page.ancestors().reverse()) return render( request, "people/person_detail.html", { "page": page, "person": person, "memberships": memberships, "articles": articles, "header_image": page.get_header_image(), "title": person.get_full_name(), "meta_tags": meta_tags( [page] + ancestors, request=request, title=person.get_full_name(), description=person.description(), ), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, )
def event_list_ical(request): page = page_for_app_request(request) page.activate_language(request) ancestors = list(page.ancestors().reverse()) event_list = event_list_for_page(page) if "section" in request.GET: event_list = event_list.filter(section__slug=request.GET["section"]) event_list = event_list[:int(request.GET.get("limit", "30"))] calendar = ical_calendar(event_list) response = HttpResponse(calendar, content_type="text/ical") return response
def location_detail(request, slug): page = page_for_app_request(request) page.activate_language(request) location = get_object_or_404(Location.objects.all(), slug=slug) ancestors = list(page.ancestors().reverse()) return render( request, "events/location_detail.html", { "page": page, "location": location, "obj": location, "title": location.name, "header_image": location.header_image or page.get_header_image(), "event_list": location.event_set.filter(end_date__gte=timezone.now(), ), "meta_tags": meta_tags([location, page] + ancestors, request=request), "regions": Regions.from_item( location, renderer=location_renderer, timeout=60, ), "page_regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, )
def glossary(request): page = page_for_app_request(request) page.activate_language(request) ancestors = list(page.ancestors().reverse()) entries = Entry.objects.filter(language_code=page.language_code) q = "" if "search" in request.GET and request.GET["search"]: vector = SearchVector("name", weight="A") + SearchVector("content", weight="B") query = consume(request.GET["search"]) print(query) q = request.GET["search"] print(q) entries = ( entries.annotate(rank=SearchRank(vector, query)) .filter(rank__gte=0.1) .order_by("-rank") ) return render_list( request, entries, { "page": page, "meta_tags": meta_tags([page] + ancestors, request=request), "header_image": page.get_header_image(), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), "search": q, }, paginate_by=50, )
def article_list(request): page = page_for_app_request(request) page.activate_language(request) ancestors = list(page.ancestors().reverse()) article_list = Article.objects.filter(namespace=page.namespace, publication_date__lte=timezone.now()) return render_list( request, article_list, { 'page': page, 'article_list': article_list, "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item(page, renderer=cms_renderer, timeout=60, inherit_from=ancestors), })
def index(request): page = page_for_app_request(request) page.activate_language(request) campaign = page.campaign testimonials = campaign.testimonial_set.filter(public=True, validated=True) create_url = reverse_app(f"testimonials-{campaign.pk}", "create") paginator = Paginator(testimonials, 27) page_number = request.GET.get("page", 1) page_obj = paginator.get_page(page_number) ancestors = list(page.ancestors().reverse()) return render( request, page.template_key, { "campaign": campaign, "page_obj": page_obj, "page": page, "meta_tags": meta_tags([page] + ancestors, request=request), "create_url": create_url, "regions": Regions.from_item( page, renderer=renderer, timeout=60, inherit_from=page.ancestors().reverse(), ), }, )
def category_list(request, slug): page = page_for_app_request(request) page.activate_language(request) articles = articles_for_page(page).filter(category__slug=slug) ancestors = list(page.ancestors().reverse()) return render_list( request, articles, { "page": page, "header_image": page.get_header_image(), "meta_tags": meta_tags([page] + ancestors, request=request), "regions": Regions.from_item( page, renderer=pages.renderer.renderer, timeout=60, inherit_from=ancestors, ), }, paginate_by=10, )
def get_object(self, request, *args, **kwargs): page = page_for_app_request(request) page.activate_language(request) self.limit = int(request.GET.get("limit", "30")) return page