Browse Source

[wip] updating ISP form for isp-format v0.2

pitchum 6 years ago
parent
commit
fce42ef06d
2 changed files with 23 additions and 5 deletions
  1. 10 4
      ffdnispdb/forms.py
  2. 13 1
      ffdnispdb/templates/project_form_generic.html

+ 10 - 4
ffdnispdb/forms.py

@@ -104,8 +104,7 @@ class Unique(object):
 TECHNOLOGIES_CHOICES = (
     ('ftth', _('FTTH')),
     ('fttb', _('FTTB')),
-    ('dsl', _('DSL')),
-    ('cube', _('Internet Cube')),
+    ('xdsl', _('xDSL')),
     ('wifi', _('Wi-Fi')),
     ('vpn', _('VPN')),
 )
@@ -131,6 +130,12 @@ class OtherWebsites(InsecureForm):
                     validators=[Optional(), URL(require_tld=True)])
 
 
+class SubscriptionCount(InsecureForm):
+    subscription_types = SelectMultipleField(_(u'service'), choices=TECHNOLOGIES_CHOICES,
+        widget=partial(Select(True), **{'class': 'selectpicker', 'data-title': _(u'Service')}))
+    subscription_count = IntegerField(_(u'subscribers'), widget=partial(TextInput(), class_='input-small'), validators=[Optional(), NumberRange(min=0)])
+
+
 STEP_CHOICES = [(k, LazyProxy(lambda k, s: u'%u - %s' % (k, s), k, STEPS[k], enable_cache=False)) for k in STEPS]
 
 
@@ -164,8 +169,9 @@ class ProjectForm(Form):
     step = SelectField(_(u'progress step'), choices=STEP_CHOICES, coerce=int)
     member_count = IntegerField(_(u'members'), validators=[Optional(), NumberRange(min=0)],
                                 description=[None, _('Number of members')])
-    subscriber_count = IntegerField(_(u'subscribers'), validators=[Optional(), NumberRange(min=0)],
-                                    description=[None, _('Number of subscribers to an internet access')])
+    subscriber_count = FieldList(MyFormField(SubscriptionCount, _('Subscription count by service'), widget=partial(InputListWidget(), class_='formfield')),
+                                min_entries=1, widget=InputListWidget(),
+                                description=[None, _(u'Number of subscriptions')])
 
     tech_email = TextField(_('Email'), validators=[Email(), DataRequired()], description=[None,
                             _('Technical contact, in case of problems with your submission')])

+ 13 - 1
ffdnispdb/templates/project_form_generic.html

@@ -39,7 +39,19 @@
         {{ fm.render_field(form.creation_date) }}
         {{ fm.render_field(form.step) }}
         {{ fm.render_field(form.member_count, class_="input-small") }}
-        {{ fm.render_field(form.subscriber_count, class_="input-small") }}
+        <div class="control-group{% if form.subscriber_count.errors %} error{% endif %}">
+          <label class="control-label" for="coordinates">{{ form.subscriber_count.label.text }}</label>
+          <div class="controls">
+            <ul class="fieldlist">
+              {% for c in form.subscriber_count -%}
+              <li>{{ c() }}{{ fm.display_errors(c.flattened_errors) }}</li>
+              {%- endfor %}
+            </ul>
+            {% if form.subscriber_count.description.1 -%}
+            <span class="help-block">{{ form.subscriber_count.description.1|safe }}</span>
+            {%- endif %}
+          </div>
+        </div>
         {{ fm.render_field(form.chatrooms, class="fieldlist") }}
         <div class="control-group required{% if form.covered_areas.errors %} error{% endif %}">
           <label class="control-label" for="coordinates">{{ form.covered_areas.label.text }}</label>