Merge branch 'develop' into 'master'
Make form nicer See merge request !62
This commit is contained in:
+24
-5
@@ -4,7 +4,7 @@ from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from webapp.models import CustomKaehmyRole, PresetKaehmyRole
|
||||
from webapp.models import CustomKaehmyRole, PresetKaehmyRole, BaseRole
|
||||
from webapp.models import OhlhafvChallenge, KaehmyForm, KaehmyMessage
|
||||
|
||||
|
||||
@@ -27,10 +27,26 @@ class KaehmyForm_Form(forms.ModelForm):
|
||||
self.fields["custom_roles"].help_text = ""
|
||||
self.fields["custom_roles"].label = _('Custom roles')
|
||||
self.fields["custom_roles"].queryset = CustomKaehmyRole.objects.all()
|
||||
self.fields["preset_roles"].widget = forms.widgets.CheckboxSelectMultiple(attrs={'title': _('Preset roles')})
|
||||
self.fields["preset_roles"].help_text = ""
|
||||
self.fields["preset_roles"].queryset = PresetKaehmyRole.objects.order_by('category')
|
||||
self.fields["preset_roles"].label = _('Preset roles')
|
||||
|
||||
for cat_id, category in BaseRole.CATEGORIES:
|
||||
key = 'preset_roles_{}'.format(cat_id)
|
||||
qset = PresetKaehmyRole.objects.filter(category=cat_id).order_by('category', 'is_board')
|
||||
self.fields[key] = forms.ModelMultipleChoiceField(qset)
|
||||
self.fields[key].widget = forms.widgets.CheckboxSelectMultiple(attrs={'title': _('Preset roles'), 'name': 'preset_roles'})
|
||||
self.fields[key].help_text = ""
|
||||
self.fields[key].queryset = qset
|
||||
self.fields[key].label = _(category)
|
||||
self.fields[key].required = False
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super(KaehmyForm_Form, self).clean()
|
||||
print(cleaned_data)
|
||||
for key in cleaned_data.keys():
|
||||
if 'preset_roles_' in key:
|
||||
cleaned_data['preset_roles'] = cleaned_data['preset_roles'] | cleaned_data[key]
|
||||
|
||||
print(cleaned_data)
|
||||
return cleaned_data
|
||||
|
||||
def clean_phone_number(self):
|
||||
"""Clean phone number field."""
|
||||
@@ -48,6 +64,9 @@ class KaehmyForm_Form(forms.ModelForm):
|
||||
else:
|
||||
raise ValidationError(_('Custom role with the same name already exists.'))
|
||||
|
||||
def non_role_fields(self):
|
||||
return [self.fields[k] for k in self.fields.keys() if not k in ["preset_roles", "custom_roles"]]
|
||||
|
||||
|
||||
class KaehmyCommentForm(forms.ModelForm):
|
||||
|
||||
|
||||
@@ -13,7 +13,33 @@
|
||||
|
||||
<div id="input_form">
|
||||
<form name="kaehmyForm" action="/kaehmy/submit/" method="post" class="form">{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
{% bootstrap_field form.name %}
|
||||
{% bootstrap_field form.email %}
|
||||
{% bootstrap_field form.phone_number %}
|
||||
{% bootstrap_field form.year %}
|
||||
|
||||
<h4>{% trans "Preset roles" %}</h4>
|
||||
{% for preset_field in form %}
|
||||
{% if "preset_roles_" in preset_field.name %}
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
{{ preset_field.label }}
|
||||
</div>
|
||||
<div class="card-block">
|
||||
{% bootstrap_field preset_field show_label=False %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
{% bootstrap_field form.custom_role_name %}
|
||||
{% bootstrap_field form.custom_role_is_board %}
|
||||
</div>
|
||||
</div>
|
||||
{% bootstrap_field form.text %}
|
||||
|
||||
{% buttons %}
|
||||
<button type="submit" class="btn btn-primary">
|
||||
{% trans "Submit" %}
|
||||
|
||||
Reference in New Issue
Block a user