Extra form.extra rendering into a macro

This commit is contained in:
Kevin Chung
2020-08-18 15:28:34 -04:00
parent d5c71423ba
commit 8c261f5f6f
7 changed files with 59 additions and 51 deletions

View File

@@ -40,8 +40,7 @@ def build_custom_user_fields(
else:
form_field.render_kw = {"data-initial": initial}
entry = (field.name, form_field)
fields.append(entry)
fields.append(form_field)
return fields

View File

@@ -0,0 +1,25 @@
{% macro render_extra_fields(fields, show_labels=True, show_optionals=True, show_descriptions=True) -%}
{% for field in fields %}
<div class="form-group">
{% if show_labels %}
<b>{{ field.label }}</b>
{% endif %}
{% if show_optionals %}
{% if field.flags.required is false %}
<small class="float-right text-muted align-text-bottom">Optional</small>
{% endif %}
{% endif %}
{{ field(class="form-control") }}
{% if show_descriptions %}
{% if field.description %}
<small class="form-text text-muted">
{{ field.description }}
</small>
{% endif %}
{% endif %}
</div>
{% endfor %}
{%- endmacro %}

View File

@@ -1,4 +1,5 @@
{% with form = Forms.users.UserCreateForm() %}
{% from "admin/macros/forms.html" import render_extra_fields %}
<form id="user-info-create-form" method="POST">
<div class="form-group">
{{ form.name.label }}
@@ -28,20 +29,7 @@
{{ form.country(class="form-control custom-select") }}
</div>
{% for k, v in form.extra %}
<div class="form-group">
<b>{{ v.label }}</b>
{% if v.flags.required is false %}
<small class="float-right text-muted align-text-bottom">Optional</small>
{% endif %}
{{ v(class="form-control") }}
{% if v.description %}
<small class="form-text text-muted">
{{ v.description }}
</small>
{% endif %}
</div>
{% endfor %}
{{ render_extra_fields(form.extra) }}
<div class="form-group">
<div class="form-check form-check-inline">

View File

@@ -1,4 +1,5 @@
{% with form = Forms.users.UserEditForm(obj=user) %}
{% from "admin/macros/forms.html" import render_extra_fields %}
<form id="user-info-edit-form">
<div class="form-group">
{{ form.name.label }}
@@ -25,20 +26,7 @@
{{ form.country(class="form-control custom-select") }}
</div>
{% for k, v in form.extra %}
<div class="form-group">
<b>{{ v.label }}</b>
{% if v.flags.required is false %}
<small class="float-right text-muted align-text-bottom">Optional</small>
{% endif %}
{{ v(class="form-control") }}
{% if v.description %}
<small class="form-text text-muted">
{{ v.description }}
</small>
{% endif %}
</div>
{% endfor %}
{{ render_extra_fields(form.extra) }}
<div class="form-group">
<div class="form-check form-check-inline">

View File

@@ -0,0 +1,25 @@
{% macro render_extra_fields(fields, show_labels=True, show_optionals=True, show_descriptions=True) -%}
{% for field in fields %}
<div class="form-group">
{% if show_labels %}
<b>{{ field.label }}</b>
{% endif %}
{% if show_optionals %}
{% if field.flags.required is false %}
<small class="float-right text-muted align-text-bottom">Optional</small>
{% endif %}
{% endif %}
{{ field(class="form-control") }}
{% if show_descriptions %}
{% if field.description %}
<small class="form-text text-muted">
{{ field.description }}
</small>
{% endif %}
{% endif %}
</div>
{% endfor %}
{%- endmacro %}

View File

@@ -23,6 +23,7 @@
{% endif %}
{% with form = Forms.auth.RegistrationForm() %}
{% from "macros/forms.html" import render_extra_fields %}
<form method="post" accept-charset="utf-8" autocomplete="off" role="form">
<div class="form-group">
<b>{{ form.name.label }}</b>
@@ -47,20 +48,7 @@
</div>
{{ form.nonce() }}
{% for k, v in form.extra %}
<div class="form-group">
<b>{{ v.label }}</b>
{% if v.flags.required is false %}
<small class="float-right text-muted align-text-bottom">Optional</small>
{% endif %}
{{ v(class="form-control") }}
{% if v.description %}
<small class="form-text text-muted">
{{ v.description }}
</small>
{% endif %}
</div>
{% endfor %}
{{ render_extra_fields(form.extra) }}
<div class="row pt-3">
<div class="col-md-12">

View File

@@ -23,6 +23,7 @@
{% include "components/errors.html" %}
{% with form = Forms.self.SettingsForm(country=country) %}
{% from "macros/forms.html" import render_extra_fields %}
<form id="user-profile-form" method="post" accept-charset="utf-8" autocomplete="off" role="form"
class="form-horizontal">
<div class="form-group">
@@ -62,13 +63,7 @@
<hr>
{% for k, v in form.extra %}
<div class="form-group">
<b>{{ v.label }}</b>
{{ v(class="form-control") }}
</div>
{% endfor %}
{{ render_extra_fields(form.extra) }}
<div id="results" class="form-group">
</div>