From 893f441dddaf4484758c9dfcb7e1a3ee101b9b3c Mon Sep 17 00:00:00 2001 From: bkfox Date: Fri, 18 Feb 2022 16:09:40 +0100 Subject: [PATCH 1/2] Add edit button on page website view --- aircox/templates/aircox/base.html | 4 ++++ aircox/templates/aircox/page_detail.html | 14 +++++++++++++- aircox/templatetags/aircox.py | 16 ++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/aircox/templates/aircox/base.html b/aircox/templates/aircox/base.html index e1c9670..0b489f1 100644 --- a/aircox/templates/aircox/base.html +++ b/aircox/templates/aircox/base.html @@ -56,6 +56,10 @@ Usefull context: {% endfor %} {% endblock %} + diff --git a/aircox/templates/aircox/page_detail.html b/aircox/templates/aircox/page_detail.html index d6764a5..82d57b6 100644 --- a/aircox/templates/aircox/page_detail.html +++ b/aircox/templates/aircox/page_detail.html @@ -1,5 +1,5 @@ {% extends "aircox/basepage_detail.html" %} -{% load static i18n humanize honeypot %} +{% load static i18n humanize honeypot aircox %} {% comment %} Base template used to display a Page @@ -14,6 +14,18 @@ Context: {% endif %} {% endblock %} +{% block top-nav-tools %} +{% has_perm page "change" as can_edit %} +{% if can_edit %} + + + +   + {% trans "Edit" %} + +{% endif %} +{% endblock %} + {% block main %} {{ block.super }} diff --git a/aircox/templatetags/aircox.py b/aircox/templatetags/aircox.py index 668c807..0491d9e 100644 --- a/aircox/templatetags/aircox.py +++ b/aircox/templatetags/aircox.py @@ -2,6 +2,8 @@ import random import json from django import template +from django.contrib.admin.templatetags.admin_urls import admin_urlname +from django.urls import reverse from django.utils.safestring import mark_safe from aircox.models import Page, Diffusion, Log @@ -10,6 +12,12 @@ random.seed() register = template.Library() +@register.filter(name='admin_url') +def do_admin_url(obj, arg, pass_id=True): + """ Reverse admin url for object """ + name = admin_urlname(obj._meta, arg) + return reverse(name, args=(obj.id,)) if pass_id else reverse(name) + @register.filter(name='get_tracks') def do_get_tracks(obj): """ Get a list of track for the provided log, diffusion, or episode """ @@ -20,6 +28,14 @@ def do_get_tracks(obj): obj = obj.episode return obj.track_set.all() +@register.simple_tag(name='has_perm', takes_context=True) +def do_has_perm(context, obj, perm, user=None): + """ Return True if ``user.has_perm('[APP].[perm]_[MODEL]')`` """ + if user is None: + user = context['request'].user + return user.has_perm('{}.{}_{}'.format( + obj._meta.app_label, perm, obj._meta.model_name)) + @register.filter(name='is_diffusion') def do_is_diffusion(obj): """ Return True if object is a Diffusion. """ From efd940f34f46b63eee4cbb5cd745ba4e15011e5d Mon Sep 17 00:00:00 2001 From: bkfox Date: Fri, 18 Feb 2022 16:12:02 +0100 Subject: [PATCH 2/2] link open new tab --- aircox/templates/aircox/page_detail.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aircox/templates/aircox/page_detail.html b/aircox/templates/aircox/page_detail.html index 82d57b6..7857a70 100644 --- a/aircox/templates/aircox/page_detail.html +++ b/aircox/templates/aircox/page_detail.html @@ -17,7 +17,8 @@ Context: {% block top-nav-tools %} {% has_perm page "change" as can_edit %} {% if can_edit %} - +