From ecc584465b4ddef5087f114faa275c424f2f322e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Jim=C3=A9nez?= Date: Wed, 26 Dec 2012 08:01:57 +0000 Subject: [PATCH] Apply form styles See #913 - Legacy-Id: 5153 --- ietf/nomcom/forms.py | 20 ++++++++- ietf/templates/nomcom/nominate.html | 43 +++++++++++++++--- static/css/base2.css | 68 +++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 7 deletions(-) diff --git a/ietf/nomcom/forms.py b/ietf/nomcom/forms.py index 5df333457..493591f55 100644 --- a/ietf/nomcom/forms.py +++ b/ietf/nomcom/forms.py @@ -27,6 +27,22 @@ def get_group_or_404(year): nomcom__isnull=False) +class BaseNomcomForm(forms.ModelForm): + def get_fieldsets(self): + if not self.fieldsets: + yield dict(name=None, fields=self) + else: + for fieldset, fields in self.fieldsets: + fieldset_dict = dict(name=fieldset, fields=[]) + for field_name in fields: + if field_name in self.fields.keyOrder: + fieldset_dict['fields'].append(self[field_name]) + if not fieldset_dict['fields']: + # if there is no fields in this fieldset, we continue to next fieldset + continue + yield fieldset_dict + + class EditMembersForm(forms.Form): members = custom_fields.MultiEmailField(label="Members email", required=False) @@ -154,9 +170,11 @@ class EditPublicKeyForm(forms.ModelForm): fields = ('public_key',) -class NominateForm(forms.ModelForm): +class NominateForm(BaseNomcomForm): comments = forms.CharField(label='Comments', widget=forms.Textarea()) + fieldsets = [('Candidate Nomination', ('position', 'candidate_name', 'candidate_email', 'candidate_phone', 'comments'))] + def __init__(self, *args, **kwargs): self.nomcom = kwargs.pop('nomcom', None) self.user = kwargs.pop('user', None) diff --git a/ietf/templates/nomcom/nominate.html b/ietf/templates/nomcom/nominate.html index 328692457..91da2fa23 100644 --- a/ietf/templates/nomcom/nominate.html +++ b/ietf/templates/nomcom/nominate.html @@ -3,8 +3,6 @@ {% block subtitle %} - Nominate{% endblock %} {% block nomcom_content %} -

Nominate

- {% if message %}
{{ message.1 }}
{% endif %} @@ -12,10 +10,43 @@ {% if form.errors %}
Please correct the following errors
{% endif %}
{% csrf_token %} - -{{ form }} -
-

+ +
+ + {% for fieldset in form.get_fieldsets %} + {% if fieldset.name %} +
+

{{ fieldset.name }}

+ {% endif %} + + {% for field in fieldset.fields %} +
+ +
+
{{ field.help_text }}
+ {{ field }} + {{ field.errors }} +
+
+
+ {% endfor %} + + {% if fieldset.name %} +
+ {% endif %} + {% endfor %} + +
+ +
+ +
+ {% endblock %} diff --git a/static/css/base2.css b/static/css/base2.css index 928c424e0..691f9c222 100644 --- a/static/css/base2.css +++ b/static/css/base2.css @@ -208,3 +208,71 @@ form table .help { div.info-message-success { border: 1px solid green; background-color: #eeffbb; padding: 5px 10px; margin: 1em 0px; color: green; } div.info-message-warning { border: 1px dashed red; background-color: #ffeeaa; padding: 1em 2em; margin: 1em 0px; } div.info-message-error { border: 1px solid red; background-color: #ffeebb; padding: 5px 10px; margin: 1em 0px; color: red; } + + +/* Form styles */ +.baseform { + font-size: 12px; +} + +.baseform .fieldset { + margin: 1em 0px; + border: none; + border: 1px solid #8899dd; + background-color: #edf5ff; +} + +.baseform .fieldset h2 { + background-color: #2647a0; + color: white; + font-size: 14px; + padding: 5px 10px; + margin: 0px; +} + +.baseform .field { + padding: 0.5em 10px; +} + +.baseform .field label { + display: block; + width: 150px; + float: left; + clear: left; +} + +.baseform .field .endfield { + clear: left; +} + +.baseform .fieldWidget { + margin-left: 150px; +} + +.baseform select, +.baseform textarea, +.baseform input { + border: 1px solid #cccccc; +} + +.baseform input { + font-size: 12px; +} + +span.fieldRequired { + color: red; +} + +.fieldError { + background-color: #ffcc66; +} + +.errorlist li, +.errorlist { + padding: 0px; + margin: 0px; + list-style: none; + color: red; +} + +