diff --git a/models/forms.py b/models/forms.py index 8dcf735db318e6d67f790ad3c372e391e01518f5..20489601e348e28585a7879f09cef1c0309469f0 100644 --- a/models/forms.py +++ b/models/forms.py @@ -23,11 +23,12 @@ class AdminUserForm(Form): roles = SelectMultipleField("User roles", choices=[(x.lower().strip(), x) for x in shared.roles]) class AddStatementForm(Form): - speaker_name = StringField("Speaker", validators=[InputRequired("Entering the speaker is required.")]) + speaker_name = StringField("Speaker", validators=[InputRequired("Entering the speaker name or number is required.")]) topic = HiddenField("Topic") class EditSpeakerForm(Form): name = StringField("Speaker", validators=[InputRequired("Entering the speaker is required.")]) + number = IntegerField("Number", validators=[Optional(), NumberRange(min=0)]) topic_id = HiddenField("Topic_id") id = HiddenField("Speaker_id") diff --git a/modules/admin.py b/modules/admin.py index b9a087502626938e1ed236ba8131d14c0b1f75de..942cced8c36c007aa8963e2b2cd26df420641299 100644 --- a/modules/admin.py +++ b/modules/admin.py @@ -252,10 +252,11 @@ def speaker_edit(): speaker = Speaker.query.filter_by(id=speaker_id).first() form = EditSpeakerForm(obj=speaker) form.topic_id.data=topic_id - + if speaker is not None: if form.validate_on_submit(): speaker.name = form.name.data + speaker.number = form.number.data db.session.commit() return redirect(url_for(".topic_show",id=form.topic_id.data)) else: diff --git a/templates/macros.html b/templates/macros.html index 4a2ac7e958bb48fbd0f285819a9c1789189c994f..907b1e4e6a405b4bf497be7c9d3575e0bb7c0145 100644 --- a/templates/macros.html +++ b/templates/macros.html @@ -22,6 +22,22 @@ </div> {%- endmacro %} +{% macro render_integerfield(field) -%} + <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> + <input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="text" {% if field.data is not none %}value="{{ field.data }}"{% endif %} /> + <label class="mdl-textfield__label" for="{{ field.id }}">{{ field.label.text }}</label> + {% if field.errors %} + {% for e in field.errors %} + <div class="mdl-card__supporting-text"> + {{ e }} + </div> + {% endfor %} + {% endif %} + </div> +{%- endmacro %} + + + {% macro render_passwordfield(field) -%} <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> <input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="password" /> @@ -116,6 +132,8 @@ {{ render_stringfield(f) }} {% elif f.type == "PasswordField" %} {{ render_passwordfield(f) }} + {% elif f.type == "IntegerField" %} + {{ render_integerfield(f) }} {% elif f.type == "BooleanField" %} {{ render_booleanfield(f) }} {% elif f.type == "CSRFTokenField" %}