From: Jan Szejko Date: Mon, 25 Apr 2016 13:39:57 +0000 (+0200) Subject: funding top bar without ssi X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/3c949ed2b4a7050c69b68fe2d27aaf4df4ed88a8 funding top bar without ssi --- diff --git a/src/funding/templatetags/funding_tags.py b/src/funding/templatetags/funding_tags.py index 5dbeec6eb..851e0ce1e 100755 --- a/src/funding/templatetags/funding_tags.py +++ b/src/funding/templatetags/funding_tags.py @@ -5,16 +5,23 @@ from django import template from ssify import ssi_variable from ssify.utils import ssi_cache_control + from ..models import Offer from ..utils import sanitize_payment_title +from ..views import offer_bar register = template.Library() @ssi_variable(register, patch_response=[ssi_cache_control(must_revalidate=True, max_age=0)]) -def current_offer(request): +def current_offer(request=None): offer = Offer.current() return offer.pk if offer is not None else None +@register.inclusion_tag('funding/includes/funding.html') +def funding_top_bar(): + return offer_bar(Offer.current(), link=True, closeable=True, add_class="funding-top-header") + + register.filter(sanitize_payment_title) diff --git a/src/funding/views.py b/src/funding/views.py index ae0b1bb42..18000c05d 100644 --- a/src/funding/views.py +++ b/src/funding/views.py @@ -158,11 +158,12 @@ class DisableNotifications(TemplateView): return redirect(self.request.get_full_path()) -def offer_bar(request, pk, link=False, closeable=False, show_title=True, show_title_calling=True, add_class=""): - offer = get_object_or_404(Offer, pk=pk) - offer_sum = offer.sum() - - return render(request, "funding/includes/funding.html", { +def offer_bar(offer, link=False, closeable=False, show_title=True, show_title_calling=True, add_class=""): + if offer: + offer_sum = offer.sum() + else: + return {} + return { 'offer': offer, 'sum': offer_sum, 'is_current': offer.is_current(), @@ -174,22 +175,28 @@ def offer_bar(request, pk, link=False, closeable=False, show_title=True, show_ti 'show_title': show_title, 'show_title_calling': show_title_calling, 'add_class': add_class, - }) + } + + +def render_offer_bar(request, pk, link=False, closeable=False, show_title=True, show_title_calling=True, add_class=""): + offer = get_object_or_404(Offer, pk=pk) + return render(request, "funding/includes/funding.html", + offer_bar(offer, link, closeable, show_title, show_title_calling, add_class)) @ssi_included(patch_response=[ssi_cache_control(must_revalidate=True)]) def top_bar(request, pk): - return offer_bar(request, pk, link=True, closeable=True, add_class="funding-top-header") + return render_offer_bar(request, pk, link=True, closeable=True, add_class="funding-top-header") @ssi_included(patch_response=[ssi_cache_control(must_revalidate=True)]) def list_bar(request, pk): - return offer_bar(request, pk, link=True, show_title_calling=False) + return render_offer_bar(request, pk, link=True, show_title_calling=False) @ssi_included(patch_response=[ssi_cache_control(must_revalidate=True)]) def detail_bar(request, pk): - return offer_bar(request, pk, show_title=False) + return render_offer_bar(request, pk, show_title=False) @ssi_included(patch_response=[ssi_cache_control(must_revalidate=True)]) diff --git a/src/wolnelektury/templates/base/superbase.html b/src/wolnelektury/templates/base/superbase.html index ec523e568..f30dfb3da 100644 --- a/src/wolnelektury/templates/base/superbase.html +++ b/src/wolnelektury/templates/base/superbase.html @@ -7,6 +7,8 @@ {% load piwik_tags %} {% load ssi_include ssi_csrf_token from ssify %} {% load user_username user_is_staff from common_tags %} + {% load cache %} + {% get_current_language as LANGUAGE_CODE %} @@ -32,10 +34,9 @@ {% block bodycontent %} {% if not funding_no_show_current %} - {% current_offer as current_offer %} - {{ current_offer.if }} - {% ssi_include 'funding_top_bar' pk=current_offer %} - {{ current_offer.endif }} + {% cache 120 funding_top_bar LANGUAGE_CODE %} + {% funding_top_bar %} + {% endcache %} {% endif %}