summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit3415975a9974f1892d8c70c2a675c550b9af6737 (patch)
tree97c52da4d0e79901a77254c809b5754e5eca63d3
parentdd56c0880afc6a9246d7a598fc3e24c2d89aea83 (diff)
downloadIshtar-3415975a9974f1892d8c70c2a675c550b9af6737.tar.bz2
Ishtar-3415975a9974f1892d8c70c2a675c550b9af6737.zip
Improve login page - force BS field attribute
-rw-r--r--ishtar_common/templates/blocks/bs_field_snippet.html4
-rw-r--r--ishtar_common/templates/registration/login.html4
-rw-r--r--ishtar_common/templatetags/ishtar_helpers.py25
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