diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-07 15:15:20 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:23:20 +0100 |
commit | 3415975a9974f1892d8c70c2a675c550b9af6737 (patch) | |
tree | 97c52da4d0e79901a77254c809b5754e5eca63d3 | |
parent | dd56c0880afc6a9246d7a598fc3e24c2d89aea83 (diff) | |
download | Ishtar-3415975a9974f1892d8c70c2a675c550b9af6737.tar.bz2 Ishtar-3415975a9974f1892d8c70c2a675c550b9af6737.zip |
Improve login page - force BS field attribute
-rw-r--r-- | ishtar_common/templates/blocks/bs_field_snippet.html | 4 | ||||
-rw-r--r-- | ishtar_common/templates/registration/login.html | 4 | ||||
-rw-r--r-- | ishtar_common/templatetags/ishtar_helpers.py | 25 |
3 files changed, 28 insertions, 5 deletions
diff --git a/ishtar_common/templates/blocks/bs_field_snippet.html b/ishtar_common/templates/blocks/bs_field_snippet.html index d060e7b6a..07e6a5897 100644 --- a/ishtar_common/templates/blocks/bs_field_snippet.html +++ b/ishtar_common/templates/blocks/bs_field_snippet.html @@ -1,4 +1,4 @@ -{% load i18n %} +{% load i18n ishtar_helpers %} <div id="main_div-{{field.auto_id}}" class="form-group{% if not field.label %} no-label{% endif %} {% if field.field.widget.attrs.bs_col_width %}{{field.field.widget.attrs.bs_col_width}}{% elif bs_col_width %}{{bs_col_width}}{% else %}{% if field.field.widget.attrs.cols or force_large_col %}col-lg-12{% else %}col-lg-6{% endif %}{% endif %}{% if field.errors %} is-invalid{% endif %}{% if field.field.required %} required{% endif %}{% if force_large_col %} full-width{% endif %}" data-alt-name="{{field.field.alt_name}}"> {% if field.label %}{{ field.label_tag }}{% endif %} @@ -10,7 +10,7 @@ {% if field.help_text or field.field.unit %} <div class="input-group"> {% endif %} - {{field|safe}} + {{field|bs_field|safe}} {% if field.help_text or field.field.unit %} <span class="input-group-append"> {% if field.field.unit %} diff --git a/ishtar_common/templates/registration/login.html b/ishtar_common/templates/registration/login.html index 452ef91ef..adefb3176 100644 --- a/ishtar_common/templates/registration/login.html +++ b/ishtar_common/templates/registration/login.html @@ -4,7 +4,7 @@ {% block content %} <div class="container"> <div class="row justify-content-center"> - <div class="col-md-3"> + <div class="col-lg-4 col-md-6 col-sm-10"> <h3 class="text-center">{%trans "Log in"%}</h3> <form method="post" action=".">{% csrf_token %} <input type="hidden" name="next" value="{{ next }}" /> @@ -24,7 +24,7 @@ {% endwith %} <div class="row justify-content-center"> - <div class="col-md-4"> + <div class="col-4"> <button type="submit" class="btn btn-primary">{% trans 'Log in' %}</button> </div> </div> diff --git a/ishtar_common/templatetags/ishtar_helpers.py b/ishtar_common/templatetags/ishtar_helpers.py index 0ed114757..2189ea1eb 100644 --- a/ishtar_common/templatetags/ishtar_helpers.py +++ b/ishtar_common/templatetags/ishtar_helpers.py @@ -1,6 +1,7 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- +from bs4 import BeautifulSoup from django.template import Library from django.utils.safestring import mark_safe @@ -8,6 +9,28 @@ register = Library() @register.filter +def bs_field(input_field): + input_field = str(input_field) + if not input_field.startswith("<input") or "form-control" in input_field: + return input_field + soup = BeautifulSoup(str(input_field), "lxml") + for tag in ["input"]: + field = getattr(soup, tag) + if not field: + continue + if "class" in field.attrs.keys(): + cls = field["class"] + cls.append("form-control") + cls = " ".join(field["class"]) + else: + cls = "form-control" + field["class"] = cls + input_field = str(field) + break + return input_field + + +@register.filter def or_(value1, value2): return value1 or value2 |