from django import forms from crispy_forms.helper import FormHelper from crispy_forms.layout import Layout, Submit, Div, MultiField, Fieldset, ButtonHolder from .choices import * class PollForm(forms.Form): # User Data first_name = forms.CharField(label="First name:", max_length=30) last_name = forms.CharField(label="Last name:", max_length=30) email = forms.EmailField(max_length=254) # Decision Making d0 = forms.ChoiceField(label=DECISION_QUESTIONS[0], choices = CHOICES, required = False) d1 = forms.ChoiceField(label=DECISION_QUESTIONS[1], choices = CHOICES, required = False) d2 = forms.ChoiceField(label=DECISION_QUESTIONS[2], choices = CHOICES, required = False) d3 = forms.ChoiceField(label=DECISION_QUESTIONS[3], choices = CHOICES, required = False) d4 = forms.ChoiceField(label=DECISION_QUESTIONS[4], choices = CHOICES, required = False) d5 = forms.ChoiceField(label=DECISION_QUESTIONS[5], choices = CHOICES, required = False) d6 = forms.ChoiceField(label=DECISION_QUESTIONS[6], choices = CHOICES, required = False) d7 = forms.ChoiceField(label=DECISION_QUESTIONS[7], choices = CHOICES, required = False) # Decision Making IT dit0 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[0], choices = CHOICES, required = False) dit1 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[1], choices = CHOICES, required = False) dit2 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[2], choices = CHOICES, required = False) dit3 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[3], choices = CHOICES, required = False) dit4 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[4], choices = CHOICES, required = False) dit5 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[5], choices = CHOICES, required = False) dit6 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[6], choices = CHOICES, required = False) dit7 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[7], choices = CHOICES, required = False) dit8 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[8], choices = CHOICES, required = False) dit9 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[9], choices = CHOICES, required = False) dit10 = forms.ChoiceField(label=DECISION_IT_QUESTIONS[10], choices = CHOICES, required = False) # Decision Making Legal dl0 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[0], choices = CHOICES, required = False) dl1 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[1], choices = CHOICES, required = False) dl2 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[2], choices = CHOICES, required = False) dl3 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[3], choices = CHOICES, required = False) dl4 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[4], choices = CHOICES, required = False) dl5 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[5], choices = CHOICES, required = False) dl6 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[6], choices = CHOICES, required = False) dl7 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[7], choices = CHOICES, required = False) dl8 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[8], choices = CHOICES, required = False) dl9 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[9], choices = CHOICES, required = False) dl10 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[10], choices = CHOICES, required = False) dl11 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[11], choices = CHOICES, required = False) dl12 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[12], choices = CHOICES, required = False) dl13 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[13], choices = CHOICES, required = False) dl14 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[14], choices = CHOICES, required = False) dl15 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[15], choices = CHOICES, required = False) dl16 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[16], choices = CHOICES, required = False) dl17 = forms.ChoiceField(label=DECISION_LEGAL_QUESTIONS[17], choices = CHOICES, required = False) # Resources r0 = forms.ChoiceField(label=RESOURCES_QUESTIONS[0], choices = CHOICES, required = False) r1 = forms.ChoiceField(label=RESOURCES_QUESTIONS[1], choices = CHOICES, required = False) r2 = forms.ChoiceField(label=RESOURCES_QUESTIONS[2], choices = CHOICES, required = False) r3 = forms.ChoiceField(label=RESOURCES_QUESTIONS[3], choices = CHOICES, required = False) r4 = forms.ChoiceField(label=RESOURCES_QUESTIONS[4], choices = CHOICES, required = False) r5 = forms.ChoiceField(label=RESOURCES_QUESTIONS[5], choices = CHOICES, required = False) r6 = forms.ChoiceField(label=RESOURCES_QUESTIONS[6], choices = CHOICES, required = False) r7 = forms.ChoiceField(label=RESOURCES_QUESTIONS[7], choices = CHOICES, required = False) r8 = forms.ChoiceField(label=RESOURCES_QUESTIONS[8], choices = CHOICES, required = False) r9 = forms.ChoiceField(label=RESOURCES_QUESTIONS[9], choices = CHOICES, required = False) r10 = forms.ChoiceField(label=RESOURCES_QUESTIONS[10], choices = CHOICES, required = False) r11 = forms.ChoiceField(label=RESOURCES_QUESTIONS[11], choices = CHOICES, required = False) r12 = forms.ChoiceField(label=RESOURCES_QUESTIONS[12], choices = CHOICES, required = False) # Impact i0 = forms.ChoiceField(label=IMPACT_QUESTIONS[0], choices = CHOICES, required = False) i1 = forms.ChoiceField(label=IMPACT_QUESTIONS[1], choices = CHOICES, required = False) i2 = forms.ChoiceField(label=IMPACT_QUESTIONS[2], choices = CHOICES, required = False) i3 = forms.ChoiceField(label=IMPACT_QUESTIONS[3], choices = CHOICES, required = False) i4 = forms.ChoiceField(label=IMPACT_QUESTIONS[4], choices = CHOICES, required = False) i5 = forms.ChoiceField(label=IMPACT_QUESTIONS[5], choices = CHOICES, required = False) i6 = forms.ChoiceField(label=IMPACT_QUESTIONS[6], choices = CHOICES, required = False) i7 = forms.ChoiceField(label=IMPACT_QUESTIONS[7], choices = CHOICES, required = False) # Velocity v0 = forms.ChoiceField(label=VELOCITY_QUESTIONS[0], choices = CHOICES, required = False) v1 = forms.ChoiceField(label=VELOCITY_QUESTIONS[1], choices = CHOICES, required = False) v2 = forms.ChoiceField(label=VELOCITY_QUESTIONS[2], choices = CHOICES, required = False) v3 = forms.ChoiceField(label=VELOCITY_QUESTIONS[3], choices = CHOICES, required = False) # Expectations e0 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[0], choices = CHOICES, required = False) e1 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[1], choices = CHOICES, required = False) e2 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[2], choices = CHOICES, required = False) e3 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[3], choices = CHOICES, required = False) e4 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[4], choices = CHOICES, required = False) e5 = forms.ChoiceField(label=EXPECTATIONS_QUESTIONS[5], choices = CHOICES, required = False) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = FormHelper() self.helper.form_method = 'post' self.helper.form_class = 'form-horizontal' self.helper.label_class = 'col-md' self.helper.field_class = 'col-md' self.helper.layout = Layout( Fieldset( 'Some quick info', 'first_name', 'last_name', 'email' ), Fieldset( 'Decisions', *[f'd{i}' for i in range(len(DECISION_QUESTIONS))] ), Fieldset( 'Decisions (IT)', *[f'dit{i}' for i in range(len(DECISION_IT_QUESTIONS))] ), Fieldset( 'Decisions (Legal/Procurement)', *[f'dl{i}' for i in range(len(DECISION_LEGAL_QUESTIONS))] ), Fieldset( 'Resources', *[f'r{i}' for i in range(len(RESOURCES_QUESTIONS))] ), Fieldset( 'Impact', *[f'i{i}' for i in range(len(IMPACT_QUESTIONS))] ), Fieldset( 'Velocity', *[f'v{i}' for i in range(len(VELOCITY_QUESTIONS))] ), Fieldset( 'Expectations', *[f'e{i}' for i in range(len(EXPECTATIONS_QUESTIONS))] ), ButtonHolder( Submit('submit', 'Submit', css_class='btn-lg btn-block m-3') ) )