From 22c82a8039ec47d7406d4714c2088a42cf6b4674 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Sun, 24 Feb 2019 13:02:58 +0100 Subject: [PATCH] Make the layout slightly less sucky --- pgmailmgr/mailmgr/templates/base.html | 64 +++++++++++++++++++++ pgmailmgr/mailmgr/templates/form.html | 32 +++++++---- pgmailmgr/mailmgr/templates/form_field.html | 15 +++++ pgmailmgr/mailmgr/templates/home.html | 60 +++++++++---------- pgmailmgr/mailmgr/templatetags/__init__.py | 0 pgmailmgr/mailmgr/templatetags/alertmap.py | 17 ++++++ pgmailmgr/mailmgr/templatetags/formutil.py | 18 ++++++ pgmailmgr/mailmgr/views.py | 6 +- 8 files changed, 167 insertions(+), 45 deletions(-) create mode 100644 pgmailmgr/mailmgr/templates/base.html create mode 100644 pgmailmgr/mailmgr/templates/form_field.html create mode 100644 pgmailmgr/mailmgr/templatetags/__init__.py create mode 100644 pgmailmgr/mailmgr/templatetags/alertmap.py create mode 100644 pgmailmgr/mailmgr/templatetags/formutil.py diff --git a/pgmailmgr/mailmgr/templates/base.html b/pgmailmgr/mailmgr/templates/base.html new file mode 100644 index 0000000..1690833 --- /dev/null +++ b/pgmailmgr/mailmgr/templates/base.html @@ -0,0 +1,64 @@ +{%load alertmap%} + + + + + + + + + + + postgresql.org Mail manager + + + +
+
+
+ +
+
+
+
+{%if messages%} +{%for message in messages%} +
{{ message }}
+{%endfor%} +{%endif%} +{%block content%}{%endblock%} +
+
+
+
+ Log out +{%if user.is_superuser %} + Django Admin +{%endif%} +
+
+
+ + + + + diff --git a/pgmailmgr/mailmgr/templates/form.html b/pgmailmgr/mailmgr/templates/form.html index 35f9c95..a58a91c 100644 --- a/pgmailmgr/mailmgr/templates/form.html +++ b/pgmailmgr/mailmgr/templates/form.html @@ -1,16 +1,26 @@ - - -Edit - - +{%extends "base.html" %} +{%block content%}

Edit

{% csrf_token %} - -{{form.as_table}} -
- +{%if form.non_field_errors%} +
{{form.non_field_errors}}
+{%endif%} +{%for field in form%} +{%include "form_field.html"%} +{%endfor%} + +
+
+
+ +{%if cancelurl%} + {{cancelname|default:"Cancel"}} +{%endif%} +
+
+
+
- - +{%endblock%} diff --git a/pgmailmgr/mailmgr/templates/form_field.html b/pgmailmgr/mailmgr/templates/form_field.html new file mode 100644 index 0000000..381df21 --- /dev/null +++ b/pgmailmgr/mailmgr/templates/form_field.html @@ -0,0 +1,15 @@ +{%load formutil%} +{%if not field.is_hidden%} +
+ {{field|label_class:""}} + {%if field.errors %} + {%for e in field.errors%} +
{{e}}
+ {%endfor%} + {%endif%} +{{field|field_class:"form-control"}} +{%if field.help_text%}{{field.help_text|safe}}{%endif%} +
+ {%else%}{# field.is_hidden #} +{{field}} + {%endif%} diff --git a/pgmailmgr/mailmgr/templates/home.html b/pgmailmgr/mailmgr/templates/home.html index 492b91d..27eb32e 100644 --- a/pgmailmgr/mailmgr/templates/home.html +++ b/pgmailmgr/mailmgr/templates/home.html @@ -1,25 +1,22 @@ - - - Mail manager - - -

Mail manager

+{%extends "base.html" %} +{%block headlinks%} + + +{%endblock%} -{%if messages%} - -{%endif%} +{%block content%} -

Users

- - - - - - + +

Users

+
Local partDomainFull name
+ + + + + + + + {%for u in users%} @@ -27,16 +24,21 @@ {%endfor%} +
Local partDomainFull name
{{u.local_part}}{{u.full_name|default:''}}
-Add new. +Add new user -

Forwardings

- + +

Forwarders

+
+ + + {%for f in forwarders%} @@ -44,14 +46,8 @@ {%endfor%} +
Local part Domain Remote name
{{f.local_part}}{{f.remote_name}}
-Add new. +Add new forwarder -
-
-Log out
-{% if user.is_superuser %} -View admin
-{%endif%} - - +{%endblock%} diff --git a/pgmailmgr/mailmgr/templatetags/__init__.py b/pgmailmgr/mailmgr/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pgmailmgr/mailmgr/templatetags/alertmap.py b/pgmailmgr/mailmgr/templatetags/alertmap.py new file mode 100644 index 0000000..c1cd5fd --- /dev/null +++ b/pgmailmgr/mailmgr/templatetags/alertmap.py @@ -0,0 +1,17 @@ +from django.template.defaultfilters import stringfilter +from django import template + +register = template.Library() + + +@register.filter(name='alertmap') +@stringfilter +def alertmap(value): + if value == 'error': + return 'alert-danger' + elif value == 'warning': + return 'alert-warning' + elif value == 'success': + return 'alert-success' + else: + return 'alert-info' diff --git a/pgmailmgr/mailmgr/templatetags/formutil.py b/pgmailmgr/mailmgr/templatetags/formutil.py new file mode 100644 index 0000000..3f2a02f --- /dev/null +++ b/pgmailmgr/mailmgr/templatetags/formutil.py @@ -0,0 +1,18 @@ +from django import template + +register = template.Library() + + +@register.filter(is_safe=True) +def label_class(value, arg): + return value.label_tag(attrs={'class': arg}) + + +@register.filter(is_safe=True) +def field_class(value, arg): + prevclass = value.field.widget.attrs.get('class', '') + if prevclass: + newclass = "{0} {1}".format(arg, prevclass) + else: + newclass = arg + return value.as_widget(attrs={"class": newclass}) diff --git a/pgmailmgr/mailmgr/views.py b/pgmailmgr/mailmgr/views.py index 5497fb9..3171339 100644 --- a/pgmailmgr/mailmgr/views.py +++ b/pgmailmgr/mailmgr/views.py @@ -59,7 +59,8 @@ def userform(request, userparam): return render(request, 'form.html', { 'form': form, - 'savebutton': (userparam == 'new') and "New" or "Save" + 'savebutton': (userparam == 'new') and "New" or "Save", + 'cancelurl': '/', }) @@ -87,5 +88,6 @@ def forwarderform(request, userparam): return render(request, 'form.html', { 'form': form, - 'savebutton': (userparam == 'new') and "New" or "Save" + 'savebutton': (userparam == 'new') and "New" or "Save", + 'cancelurl': '/#forwarders', }) -- 2.39.5