feat: Add custom form rendering to support bulma
This commit is contained in:
parent
4a3cbfb8b0
commit
5f576896b7
@ -193,6 +193,8 @@ class CustomRegistrationForm(RegistrationForm):
|
|||||||
|
|
||||||
|
|
||||||
class AdoptionNoticeSearchForm(forms.Form):
|
class AdoptionNoticeSearchForm(forms.Form):
|
||||||
|
template_name = "fellchensammlung/forms/form_snippets.html"
|
||||||
|
|
||||||
sex = forms.ChoiceField(choices=SexChoicesWithAll, label=_("Geschlecht"), required=False,
|
sex = forms.ChoiceField(choices=SexChoicesWithAll, label=_("Geschlecht"), required=False,
|
||||||
initial=SexChoicesWithAll.ALL)
|
initial=SexChoicesWithAll.ALL)
|
||||||
max_distance = forms.ChoiceField(choices=DistanceChoices, initial=DistanceChoices.ONE_HUNDRED, label=_("Suchradius"))
|
max_distance = forms.ChoiceField(choices=DistanceChoices, initial=DistanceChoices.ONE_HUNDRED, label=_("Suchradius"))
|
||||||
|
@ -15,20 +15,20 @@
|
|||||||
<input type="hidden" name="latitude" maxlength="200" id="latitude">
|
<input type="hidden" name="latitude" maxlength="200" id="latitude">
|
||||||
<input type="hidden" id="place_id" name="place_id">
|
<input type="hidden" id="place_id" name="place_id">
|
||||||
<!--- https://docs.djangoproject.com/en/5.2/topics/forms/#reusable-form-templates -->
|
<!--- https://docs.djangoproject.com/en/5.2/topics/forms/#reusable-form-templates -->
|
||||||
{{ search_form.as_p }}
|
{{ search_form }}
|
||||||
<ul id="results"></ul>
|
<ul id="results"></ul>
|
||||||
<div class="container-edit-buttons">
|
<div class="container-edit-buttons">
|
||||||
<button class="btn" type="submit" value="search" name="search">
|
<button class="button is-primary" type="submit" value="search" name="search">
|
||||||
<i class="fas fa-search"></i> {% trans 'Suchen' %}
|
<i class="fas fa-search"></i> {% trans 'Suchen' %}
|
||||||
</button>
|
</button>
|
||||||
{% if searched %}
|
{% if searched %}
|
||||||
{% if subscribed_search %}
|
{% if subscribed_search %}
|
||||||
<button class="btn" type="submit" value="{{ subscribed_search.pk }}"
|
<button class="button" type="submit" value="{{ subscribed_search.pk }}"
|
||||||
name="unsubscribe_to_search">
|
name="unsubscribe_to_search">
|
||||||
<i class="fas fa-bell-slash"></i> {% trans 'Suche nicht mehr abonnieren' %}
|
<i class="fas fa-bell-slash"></i> {% trans 'Suche nicht mehr abonnieren' %}
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button class="btn" type="submit" name="subscribe_to_search">
|
<button class="button" type="submit" name="subscribe_to_search">
|
||||||
<i class="fas fa-bell"></i> {% trans 'Suche abonnieren' %}
|
<i class="fas fa-bell"></i> {% trans 'Suche abonnieren' %}
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
<!--- See https://docs.djangoproject.com/en/5.2/topics/forms/#reusable-form-templates -->
|
||||||
|
|
||||||
|
{% load custom_tags %}
|
||||||
|
{% for field in form %}
|
||||||
|
<div class="field">
|
||||||
|
|
||||||
|
<label class="label">
|
||||||
|
{{ field.label }}
|
||||||
|
</label>
|
||||||
|
<div class="control">
|
||||||
|
{% if field|widget_type == 'TextInput' %}
|
||||||
|
{{ field|add_class:"input" }}
|
||||||
|
{% elif field|widget_type == 'Select' %}
|
||||||
|
<div class="select">
|
||||||
|
{{ field }}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ field|add_class:"input" }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="help is-danger">
|
||||||
|
{{ field.errors }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endfor %}
|
@ -11,7 +11,7 @@
|
|||||||
<input type="hidden" name="longitude" maxlength="200" id="longitude">
|
<input type="hidden" name="longitude" maxlength="200" id="longitude">
|
||||||
<input type="hidden" name="latitude" maxlength="200" id="latitude">
|
<input type="hidden" name="latitude" maxlength="200" id="latitude">
|
||||||
<input type="hidden" id="place_id" name="place_id">
|
<input type="hidden" id="place_id" name="place_id">
|
||||||
{{ search_form.as_p }}
|
{{ search_form }}
|
||||||
<ul id="results"></ul>
|
<ul id="results"></ul>
|
||||||
<div class="container-edit-buttons">
|
<div class="container-edit-buttons">
|
||||||
<button class="btn" type="submit" value="search" name="search">
|
<button class="btn" type="submit" value="search" name="search">
|
||||||
|
@ -49,6 +49,7 @@ def get_oxitraffic_script_if_enabled():
|
|||||||
else:
|
else:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
@stringfilter
|
@stringfilter
|
||||||
def pointdecimal(value):
|
def pointdecimal(value):
|
||||||
@ -57,6 +58,7 @@ def pointdecimal(value):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
@stringfilter
|
@stringfilter
|
||||||
def domain(url):
|
def domain(url):
|
||||||
@ -68,6 +70,17 @@ def domain(url):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def settings_value(name):
|
def settings_value(name):
|
||||||
return getattr(settings, name)
|
return getattr(settings, name)
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter(name='add_class')
|
||||||
|
def add_class(field, css_class):
|
||||||
|
return field.as_widget(attrs={"class": css_class})
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def widget_type(field):
|
||||||
|
return field.field.widget.__class__.__name__
|
||||||
|
Loading…
x
Reference in New Issue
Block a user