def __init__(self, election_instance, *args, **kwargs): self.election_instance = election_instance # Updates Council contact information step1 = Step('election_details', forms={'election_details': ElectionInstanceForm}, template='backoffice/wizard/council/edit/step1.html', initial={'election_details': self.election_instance}, extra_context={ 'instance': self.election_instance, }) step2 = Step('council_contact_information', forms={ 'council_contact_information': CouncilContactInformationForm }, template='backoffice/wizard/council/edit/step2.html', initial={ 'council_contact_information': { 'name': self.election_instance.council.name, 'address': { 'street': self.election_instance.council.street, 'number': self.election_instance.council.house_num, 'postalcode': self.election_instance.council.postcode, 'city': self.election_instance.council.town, }, 'website': self.election_instance.council.website, 'email': self.election_instance.council.email, } }, extra_context={ 'instance': self.election_instance, }) # Updates Council additional information step3 = Step('council_additional_information', forms={'council_additional_information': CouncilForm}, template='backoffice/wizard/council/edit/step3.html', initial={ 'council_additional_information': self.election_instance.council }, extra_context={ 'instance': self.election_instance, }) # Updates Council styling setup # step4 = Step('council_styling_setup', # forms={'council_styling_setup': CouncilStylingSetupForm}, # template='backoffice/wizard/council/edit/step4.html', # initial={'council_styling_setup': self.election_instance.council}, # extra_context={'instance':self.election_instance, }) #scenario_tree = step1.next(step2.next(step3.next(step4))) scenario_tree = step1.next(step2.next(step3)) template = 'backoffice/wizard/council/edit/base.html', super(self.__class__, self).__init__(scenario_tree, template)
def __init__(self, eip, *args, **kwargs): self.eip = eip self.election_instance = self.eip.election_instance step1_forms = dict( election_party_contact_form=ElectionPartyContactForm) step2_forms = dict( election_party_additional_form=ElectionPartyAdditionalForm) step3_forms = dict( election_party_description_form=ElectionPartyDescriptionForm) initial = copy.deepcopy(eip.party.__dict__) initial.update({'list_length': eip.list_length}) initial.update({'address': eip.party.address}) step1 = Step( 'election_party_contact_form', forms=step1_forms, initial={'election_party_contact_form': initial}, template='backoffice/wizard/setupelectionparty/step1.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }) step2 = Step( 'election_party_additional_form', forms=step2_forms, initial={'election_party_additional_form': initial}, template='backoffice/wizard/setupelectionparty/step2.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }, ) step3 = Step( 'election_party_description_form', forms=step3_forms, initial={'election_party_description_form': initial}, template='backoffice/wizard/setupelectionparty/step3.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }) template = 'backoffice/wizard/election_party_setup/base.html', super(ElectionPartyEditWizard, self).__init__(step1.next(step2.next(step3)), template, *args, **kwargs)
def __init__(self, election_instance, *args, **kwargs): self.election_instance = election_instance # Updates Council contact information step1 = Step('election_details', forms={'election_details': ElectionInstanceForm}, template='backoffice/wizard/council/edit/step1.html', initial={'election_details': self.election_instance}, extra_context={'instance':self.election_instance, }) step2 = Step('council_contact_information', forms={'council_contact_information': CouncilContactInformationForm}, template='backoffice/wizard/council/edit/step2.html', initial={'council_contact_information': {'name': self.election_instance.council.name, 'address': {'street': self.election_instance.council.street, 'number': self.election_instance.council.house_num, 'postalcode': self.election_instance.council.postcode, 'city': self.election_instance.council.town, }, 'website': self.election_instance.council.website, 'email': self.election_instance.council.email,}}, extra_context={'instance':self.election_instance, }) # Updates Council additional information step3 = Step('council_additional_information', forms={'council_additional_information': CouncilForm}, template='backoffice/wizard/council/edit/step3.html', initial={'council_additional_information': self.election_instance.council}, extra_context={'instance':self.election_instance, }) # Updates Council styling setup # step4 = Step('council_styling_setup', # forms={'council_styling_setup': CouncilStylingSetupForm}, # template='backoffice/wizard/council/edit/step4.html', # initial={'council_styling_setup': self.election_instance.council}, # extra_context={'instance':self.election_instance, }) #scenario_tree = step1.next(step2.next(step3.next(step4))) scenario_tree = step1.next(step2.next(step3)) template = 'backoffice/wizard/council/edit/base.html', super(self.__class__, self).__init__(scenario_tree, template)
def __init__(self, eip, *args, **kwargs): self.eip = eip self.election_instance = self.eip.election_instance step1_forms = dict( election_party_contact_form=ElectionPartyContactForm ) step2_forms = dict( election_party_additional_form=ElectionPartyAdditionalForm ) step3_forms = dict( election_party_description_form=ElectionPartyDescriptionForm ) initial = copy.deepcopy(eip.party.__dict__) initial.update({'list_length': eip.list_length}) initial.update({'address': eip.party.address}) step1 = Step('election_party_contact_form', forms=step1_forms, initial={'election_party_contact_form': initial}, template='backoffice/wizard/setupelectionparty/step1.html', extra_context={'instance':self.election_instance, 'eip':self.eip }) step2 = Step('election_party_additional_form', forms=step2_forms, initial={'election_party_additional_form': initial}, template='backoffice/wizard/setupelectionparty/step2.html', extra_context={'instance':self.election_instance, 'eip':self.eip }, ) step3 = Step('election_party_description_form', forms=step3_forms, initial={'election_party_description_form': initial}, template='backoffice/wizard/setupelectionparty/step3.html', extra_context={'instance':self.election_instance, 'eip':self.eip }) template = 'backoffice/wizard/election_party_setup/base.html', super(ElectionPartyEditWizard, self).__init__(step1.next(step2.next(step3)), template, *args, **kwargs)
def __init__(self, *args, **kwargs): self.user_id, self.election_instance_party_id = kwargs[ 'user_id'], kwargs['election_instance_party_id'] self.election_instance_party = ElectionInstanceParty.objects.get( id=self.election_instance_party_id) self.user = User.objects.get(id=self.user_id) self.candidate_profile = self.user.profile # Candidacy to whom the answers are coupled. self.candidacy = Candidacy.objects.get( election_party_instance=self.election_instance_party, candidate=self.user) candidate_question_answers = self.candidacy.answers.all() candidate_question_answers = map(lambda x: (x.id, x.question_id), candidate_question_answers) CandidateProfileClass = get_profile_model('candidate') if CandidateProfileClass.__name__ != self.user.profile.__class__.__name__: raise Exception # Getting all the questions applicable questions = self.election_instance_party.election_instance.questions.filter( question_type__in=BACKOFFICE_QUESTION_TYPES).order_by( '-electioninstancequestion__position') steps_tree = [] # Looping through the questions idx = 1 for question in questions: try: # Here we need to get the answer given for the step question_answers = [] for answer_id, question_id in candidate_question_answers: if question_id == question.id: # I realise that it's kind of stupid loop, 'cause I could use simply filter on the initial list # TODO: rewrite when have time, but it works so as well, although it could be done nicer. # In case of multiple answers we make a list of those. if question.question_type in MULTIPLE_ANSWER_TYPES: question_answers.append(answer_id) else: question_answers = answer_id except Exception: # Otherwise we shall specify an initial value for it question_answers = '' if not question.question_type in FRONTOFFICE_QUESTION_TYPES: secret = 'secret' else: secret = 'not secret' step = Step( str(question.id), forms={str(question.id): AnswerQuestionForm}, template='backoffice/wizard/question/answer_add/step.html', initial={str(question.id): { 'value': question_answers }}, # TODO: Fix this = load the data! extra_context={ 'questions': range(0, questions.count()), 'current_question': questions.count() - idx, 'question_title': question.title, 'initial': question_answers, 'secret': secret }, form_kwargs={ str(question.id): { 'question_instance_id': question.id } }) steps_tree.append(step) idx += 1 scenario_tree = None for step in steps_tree: if None == scenario_tree: scenario_tree = step.next() else: scenario_tree = step.next(scenario_tree) template = 'backoffice/wizard/council/edit/base.html', super(AnswerQuestion, self).__init__(scenario_tree, template)
def __init__(self, *args, **kwargs): # Getting "user_id" and "election_instance_id" passed to the Wizard. self.user_id, self.election_instance_id = kwargs['user_id'], kwargs['election_instance_id'] self.election_instance = get_object_or_404(ElectionInstance, pk=self.election_instance_id) self.user = get_object_or_404(self.election_instance.council.chanceries, pk=self.user_id) if self.user.profile is None or self.user.profile.type != 'council_admin': raise PermissionDeniedException('Wrong profile type') self.chancery_profile = self.user.profile ''' Loading forms and models from other applications. ''' try: ChanceryProfileForm = get_profile_forms('council_admin', 'edit')[0] ChanceryContactInformationForm = get_profile_forms('council_admin', 'contact_information')[0] except Exception: raise ''' TODO for checkboxes we need to populate the data properly, because now it doesn't happen. ''' step1_forms = {} step1_initial = {} # Get the form(s) for chancery profile and add them to step1_forms idx = 0 for profile_form in get_profile_forms('council_admin', 'edit'): step1_forms.update({'chancery_registration%s' % idx : profile_form}) workingdays = self.chancery_profile.workingdays or '' step1_initial.update({'chancery_registration%s' % idx : { 'name': { 'first_name': self.chancery_profile.first_name, 'middle_name': self.chancery_profile.middle_name, 'last_name': self.chancery_profile.last_name, }, 'gender': self.chancery_profile.gender, 'telephone': self.chancery_profile.telephone, 'workingdays': workingdays.split(','), }}) idx += 1 #FIXME: step5_forms = {} # step5_initial = {} # # Get the form(s) for chancery profile and add them to step5_forms # idx = 0 # for profile_form in get_profile_forms('council_admin', 'contact_information'): # step5_forms.update({'chancery_contact_information%s' % idx : profile_form}) # step5_initial.update({'chancery_contact_information%s' % idx : { # 'website': self.chancery_profile.website, # 'address': { # 'street': self.chancery_profile.street, # 'number': self.chancery_profile.house_num, # 'postalcode': self.chancery_profile.postcode, # 'city': self.chancery_profile.town, # } # }}) # idx += 1 # Updates ChanceryProfile step1 = Step('chancery_registration', forms=step1_forms, template='backoffice/wizard/election_setup/step1.html', initial=step1_initial, extra_context={'instance':self.election_instance, }) # Updates ElectionInstance step2 = Step('election_details', forms={'election_details': ElectionInstanceForm}, template='backoffice/wizard/election_setup/step2.html', initial={'election_details': self.election_instance}, extra_context={'instance':self.election_instance, }) # Updates Council step3 = Step('council_contact_information', forms={'council_contact_information': CouncilContactInformationForm}, template='backoffice/wizard/election_setup/step3.html', initial={'council_contact_information': { 'name': self.election_instance.council.name, 'address': { 'street': self.election_instance.council.street, 'number': self.election_instance.council.house_num, 'postalcode': self.election_instance.council.postcode, 'city': self.election_instance.council.town, }, 'website': self.election_instance.council.website, 'email': self.election_instance.council.email, }}, extra_context={'instance':self.election_instance, }) # Updates Council step4 = Step('council_additional_information', forms={'council_additional_information': CouncilForm}, template='backoffice/wizard/election_setup/step4.html', initial={'council_additional_information': self.election_instance.council}, extra_context={'instance':self.election_instance, }) # Updates ChanceryProfile #FIXME: step5 = Step('chancery_contact_information', # forms=step5_forms, # template='backoffice/wizard/election_setup/step5.html', # initial=step5_initial) # Updates Council # step6 = Step('council_styling_setup', # forms={'council_styling_setup': CouncilStylingSetupForm}, # template='backoffice/wizard/election_setup/step6.html', # initial={'council_styling_setup': self.election_instance.council}, # extra_context={'instance':self.election_instance, }) #FIXME: scenario_tree = step1.next(step2.next(step3.next(step4.next(step5.next(step6))))) #FIXME: scenario_tree = step1.next(step2.next(step3.next(step4.next(step6)))) scenario_tree = step1.next(step2.next(step3.next(step4))) template = 'backoffice/wizard/election_setup/base.html', super(self.__class__, self).__init__(scenario_tree, template)
def __init__(self, *args, **kwargs): self.user_id, self.election_instance_party_id = kwargs['user_id'], kwargs['election_instance_party_id'] self.election_instance_party = ElectionInstanceParty.objects.get(id=self.election_instance_party_id) self.user = User.objects.get(id=self.user_id) self.candidate_profile = self.user.profile # Candidacy to whom the answers are coupled. self.candidacy = Candidacy.objects.get(election_party_instance=self.election_instance_party, candidate=self.user) candidate_question_answers = self.candidacy.answers.all() candidate_question_answers = map(lambda x: (x.id, x.question_id), candidate_question_answers) CandidateProfileClass = get_profile_model('candidate') if CandidateProfileClass.__name__ != self.user.profile.__class__.__name__: raise Exception # Getting all the questions applicable questions = self.election_instance_party.election_instance.questions.filter(question_type__in=BACKOFFICE_QUESTION_TYPES).order_by('-electioninstancequestion__position') steps_tree = [] # Looping through the questions idx = 1; for question in questions: try: # Here we need to get the answer given for the step question_answers = [] for answer_id, question_id in candidate_question_answers: if question_id == question.id: # I realise that it's kind of stupid loop, 'cause I could use simply filter on the initial list # TODO: rewrite when have time, but it works so as well, although it could be done nicer. # In case of multiple answers we make a list of those. if question.question_type in MULTIPLE_ANSWER_TYPES: question_answers.append(answer_id) else: question_answers = answer_id except Exception: # Otherwise we shall specify an initial value for it question_answers = '' if not question.question_type in FRONTOFFICE_QUESTION_TYPES: secret = 'secret' else: secret = 'not secret' step = Step(str(question.id), forms={str(question.id): AnswerQuestionForm}, template='backoffice/wizard/question/answer_add/step.html', initial={str(question.id): {'value': question_answers}}, # TODO: Fix this = load the data! extra_context={'questions': range(0, questions.count()), 'current_question': questions.count() - idx, 'question_title': question.title, 'initial': question_answers, 'secret': secret}, form_kwargs={str(question.id): {'question_instance_id': question.id}}) steps_tree.append(step) idx += 1 scenario_tree = None for step in steps_tree: if None == scenario_tree: scenario_tree = step.next() else: scenario_tree = step.next(scenario_tree) template = 'backoffice/wizard/council/edit/base.html', super(AnswerQuestion, self).__init__(scenario_tree, template)
def __init__(self, eip_id, user_id, *args, **kwargs): self.eip = get_object_or_404(ElectionInstanceParty, pk=eip_id) self.election_instance = self.eip.election_instance if user_id is None: self.user = self.eip.party.contacts.all()[0] else: self.user = get_object_or_404(self.eip.party.contacts, pk=user_id) if not self.user.profile or self.user.profile.type != 'party_admin': raise PermissionDeniedException('Wrong user profile type') workingdays = self.user.profile.workingdays or '' self.user_profile_dict = { 'name': { 'first_name': self.user.profile.first_name, 'middle_name': self.user.profile.middle_name, 'last_name': self.user.profile.last_name, }, 'gender': self.user.profile.gender, #'picture': self.user.profile.picture, 'telephone': self.user.profile.telephone, 'workingdays': workingdays.split(','), } step1_forms = dict(party_contact=ContactProfileForm) step2_forms = dict( election_party_contact_form=ElectionPartyContactForm) step3_forms = dict( election_party_additional_form=ElectionPartyAdditionalForm) step4_forms = dict( election_party_description_form=ElectionPartyDescriptionForm) initial = copy.deepcopy(self.eip.party.__dict__) initial.update({'list_length': self.eip.list_length}) initial.update({'address': self.eip.party.address}) step1 = Step('party_contact', forms=step1_forms, template='backoffice/wizard/partycontact/step1.html', initial={'party_contact': self.user_profile_dict}, extra_context={ 'instance': self.election_instance, 'eip': self.eip }) step2 = Step('election_party_contact_form', forms=step2_forms, initial={'election_party_contact_form': initial}, template='backoffice/wizard/partycontact/step2.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }) step3 = Step( 'election_party_additional_form', forms=step3_forms, initial={'election_party_additional_form': initial}, template='backoffice/wizard/partycontact/step3.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }, ) step4 = Step('election_party_description_form', forms=step4_forms, initial={'election_party_description_form': initial}, template='backoffice/wizard/partycontact/step4.html', extra_context={ 'instance': self.election_instance, 'eip': self.eip }) template = 'backoffice/wizard/partycontact/base.html', super(PartyContactWizard, self).__init__(step1.next(step2.next(step3.next(step4))), template, *args, **kwargs)
def __init__(self, eip_id, user_id, *args, **kwargs): self.eip = get_object_or_404(ElectionInstanceParty, pk=eip_id) self.election_instance = self.eip.election_instance if user_id is None: self.user = self.eip.party.contacts.all()[0] else: self.user = get_object_or_404(self.eip.party.contacts, pk=user_id) if not self.user.profile or self.user.profile.type != 'party_admin': raise PermissionDeniedException('Wrong user profile type') workingdays = self.user.profile.workingdays or '' self.user_profile_dict = { 'name': {'first_name': self.user.profile.first_name, 'middle_name': self.user.profile.middle_name, 'last_name': self.user.profile.last_name, }, 'gender': self.user.profile.gender, #'picture': self.user.profile.picture, 'telephone': self.user.profile.telephone, 'workingdays': workingdays.split(','), } step1_forms = dict( party_contact = ContactProfileForm ) step2_forms = dict( election_party_contact_form=ElectionPartyContactForm ) step3_forms = dict( election_party_additional_form=ElectionPartyAdditionalForm ) step4_forms = dict( election_party_description_form=ElectionPartyDescriptionForm ) initial = copy.deepcopy(self.eip.party.__dict__) initial.update({'list_length': self.eip.list_length}) initial.update({'address': self.eip.party.address}) step1 = Step('party_contact', forms=step1_forms, template='backoffice/wizard/partycontact/step1.html', initial={'party_contact': self.user_profile_dict }, extra_context={'instance':self.election_instance, 'eip':self.eip }) step2 = Step('election_party_contact_form', forms=step2_forms, initial={'election_party_contact_form': initial}, template='backoffice/wizard/partycontact/step2.html', extra_context={'instance':self.election_instance, 'eip':self.eip }) step3 = Step('election_party_additional_form', forms=step3_forms, initial={'election_party_additional_form': initial}, template='backoffice/wizard/partycontact/step3.html', extra_context={'instance':self.election_instance, 'eip':self.eip }, ) step4 = Step('election_party_description_form', forms=step4_forms, initial={'election_party_description_form': initial}, template='backoffice/wizard/partycontact/step4.html', extra_context={'instance':self.election_instance, 'eip':self.eip }) template = 'backoffice/wizard/partycontact/base.html', super(PartyContactWizard, self).__init__(step1.next(step2.next(step3.next(step4))), template, *args, **kwargs)
def __init__(self, *args, **kwargs): self.election_instance_id = kwargs['election_instance_id'] self.iframe = kwargs['iframe'] self.election_instance = get_object_or_404(ElectionInstance, id=self.election_instance_id) eips = ElectionInstanceParty.objects.filter(election_instance=self.election_instance) elections_candidates = Candidacy.objects.filter(election_party_instance__in=eips) self.elections_candidacies = elections_candidates # get a list of candidate ids self.user_ids=[] # this is a list of user ids for elections_candidate in elections_candidates: self.user_ids.append(elections_candidate.candidate_id) users = User.objects.filter(pk__in=self.user_ids) #candidates = PoliticianProfile.objects.filter(user__in=users).order_by('?') #self.candidates = candidates # list of Politician Profiles in this election instance #Get all questions questions = self.election_instance.questions.filter(question_type__in=FRONTOFFICE_QUESTION_TYPES).order_by('-electioninstancequestion__position') steps_tree = [] # Looping through the questions idx = 1; for question in questions: # Finds out if you should add a no preference option to the question if question.has_no_preference: empty_label = _('Geen voorkeur') else: empty_label=None if question.question_type in BACKOFFICE_QUESTION_TYPES: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_PARTY == question.question_type: form = {str(question.id): PartyQuestionForm} fkwargs= {str(question.id): {'queryset': self.election_instance.parties, 'empty_label':empty_label}} elif QTYPE_MODEL_POLITICAL_EXPERIENCE_YEARS == question.question_type: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_EDUCATION_LEVEL == question.question_type: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_PROFILE_RELIGION == question.question_type: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_PROFILE_AGE == question.question_type: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_PROFILE_GENDER == question.question_type: form = {str(question.id): VisitorAnswerQuestionForm} fkwargs={str(question.id): {'question_instance_id': question.id}} elif QTYPE_MODEL_PROFILE_QUESTION_WEIGHT == question.question_type: form = {str(question.id): ThemeAnswerForm} fkwargs= {str(question.id): {'queryset': self.election_instance.questions.filter(question_type__in=FRONTOFFICE_QUESTION_TYPES).order_by('electioninstancequestion__position'), 'empty_label':empty_label}} elif QTYPE_MODEL_WORK_EXPERIENCE_TYPE == question.question_type: form = {str(question.id): WorkTypeQuestionForm} fkwargs= {str(question.id): {'queryset': WorkExperienceSector.objects.all(), 'empty_label' :empty_label}} elif QTYPE_MODEL_POLITICAL_EXPERIENCE_TYPE == question.question_type: form = {str(question.id): PolTypeQuestionForm} fkwargs= {str(question.id): {'queryset': PoliticalExperienceType.objects.all(), 'empty_label' :empty_label}} else: pass if self.iframe: parent = 'frontoffice/iframe.html' else: parent = 'frontoffice/wizard/base.html' step = Step(str(question.id), forms=form, template='frontoffice/wizard/test/step1.html', extra_context={'questions': range(0, questions.count()), 'current_question': questions.count() - idx, 'question_title': question.get_frontend_title(), 'parent':parent, 'election_instance': self.election_instance}, form_kwargs=fkwargs) steps_tree.append(step) idx += 1 scenario_tree = None for step in steps_tree: if None == scenario_tree: scenario_tree = step.next() else: scenario_tree = step.next(scenario_tree) template = 'frontoffice/wizard/base.html', super(BestCandidate, self).__init__(scenario_tree, template)
def __init__(self, *args, **kwargs): # Getting "user_id" try: self.user_id = kwargs['user_id'] self.eip_id = kwargs['eip_id'] self.election_instance_party = get_object_or_404( ElectionInstanceParty, pk=self.eip_id) self.user = get_object_or_404( self.election_instance_party.candidates, candidate__pk=self.user_id).candidate if self.user.profile is None or self.user.profile.type != 'candidate': raise PermissionDeniedException('Wrong profile type') self.user_profile_dict = { 'name': { 'first_name': self.user.profile.first_name, 'middle_name': self.user.profile.middle_name, 'last_name': self.user.profile.last_name, }, 'email': self.user.email, 'initials': self.user.profile.initials, 'dateofbirth': self.user.profile.dateofbirth, 'introduction': self.user.profile.introduction, 'gender': self.user.profile.gender, 'picture': self.user.profile.picture, 'movie': self.user.profile.movie, 'marital_status': self.user.profile.marital_status, 'num_children': self.user.profile.num_children, 'religion': self.user.profile.religion, 'religious_group': self.user.profile.religious_group, 'province': self.user.profile.province, 'smoker': self.user.profile.smoker, 'diet': self.user.profile.diet, 'fav_news': self.user.profile.fav_news, 'transport': self.user.profile.transport, 'charity': self.user.profile.charity, 'fav_media': self.user.profile.fav_media, 'fav_sport': self.user.profile.fav_sport, 'hobby': self.user.profile.hobby, 'fav_club': self.user.profile.fav_club, 'fav_pet': self.user.profile.fav_pet, } except Exception: raise step1_forms = dict(initial_candidate=PoliticianProfileForm) step2_forms = dict(life_candidate=PoliticianProfileLifeForm) step3_forms = dict(extra_candidate=PoliticianProfileExtraForm) step4_forms = dict(political_candidate=PoliticianProfilePoliticalForm) step1 = Step( 'initial_candidate', forms=step1_forms, template='backoffice/wizard/politician_profile/step1.html', initial={'initial_candidate': self.user_profile_dict}, extra_context={ 'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id }, ) step2 = Step( 'life_candidate', forms=step2_forms, template='backoffice/wizard/politician_profile/step2.html', initial={'life_candidate': self.user_profile_dict}, extra_context={ 'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id }, ) step3 = Step( 'extra_candidate', forms=step3_forms, template='backoffice/wizard/politician_profile/step3.html', initial={'extra_candidate': self.user_profile_dict}, extra_context={ 'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id }, ) step4 = Step( 'political_candidate', forms=step4_forms, template='backoffice/wizard/politician_profile/step4.html', initial={'political_candidate': self.user_profile_dict}, extra_context={ 'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id }, ) scenario_tree = step1.next(step2.next(step3.next(step4))) #default template is the base, each step can override it as needed (for buttons) template = 'backoffice/wizard/politician_profile/base.html', super(PoliticianProfileWizard, self).__init__(scenario_tree, template)
def __init__(self, *args, **kwargs): # Getting "user_id" try: self.user_id = kwargs['user_id'] self.eip_id = kwargs['eip_id'] self.election_instance_party = get_object_or_404(ElectionInstanceParty, pk=self.eip_id) self.user = get_object_or_404(self.election_instance_party.candidates, candidate__pk=self.user_id).candidate if self.user.profile is None or self.user.profile.type != 'candidate': raise PermissionDeniedException('Wrong profile type') self.user_profile_dict = { 'name': {'first_name': self.user.profile.first_name, 'middle_name': self.user.profile.middle_name, 'last_name': self.user.profile.last_name, }, 'email': self.user.email, 'initials': self.user.profile.initials, 'dateofbirth': self.user.profile.dateofbirth, 'introduction': self.user.profile.introduction, 'gender': self.user.profile.gender, 'picture': self.user.profile.picture, 'movie': self.user.profile.movie, 'marital_status': self.user.profile.marital_status, 'num_children': self.user.profile.num_children, 'religion': self.user.profile.religion, 'religious_group': self.user.profile.religious_group, 'province': self.user.profile.province, 'smoker': self.user.profile.smoker, 'diet': self.user.profile.diet, 'fav_news': self.user.profile.fav_news, 'transport': self.user.profile.transport, 'charity': self.user.profile.charity, 'fav_media': self.user.profile.fav_media, 'fav_sport': self.user.profile.fav_sport, 'hobby': self.user.profile.hobby, 'fav_club': self.user.profile.fav_club, 'fav_pet': self.user.profile.fav_pet, } except Exception: raise step1_forms = dict(initial_candidate = PoliticianProfileForm) step2_forms = dict(life_candidate = PoliticianProfileLifeForm) step3_forms = dict(extra_candidate = PoliticianProfileExtraForm) step4_forms = dict(political_candidate = PoliticianProfilePoliticalForm) step1 = Step('initial_candidate', forms=step1_forms, template='backoffice/wizard/politician_profile/step1.html', initial={'initial_candidate': self.user_profile_dict }, extra_context={'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id}, ) step2 = Step('life_candidate', forms=step2_forms, template='backoffice/wizard/politician_profile/step2.html', initial={'life_candidate': self.user_profile_dict }, extra_context={'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id}, ) step3 = Step('extra_candidate', forms=step3_forms, template='backoffice/wizard/politician_profile/step3.html', initial={'extra_candidate': self.user_profile_dict }, extra_context={'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id}, ) step4 = Step('political_candidate', forms=step4_forms, template='backoffice/wizard/politician_profile/step4.html', initial={'political_candidate': self.user_profile_dict }, extra_context={'questions': range(0, get_question_count(self.election_instance_party)), 'eip_id': self.eip_id, 'user_id': self.user_id}, ) scenario_tree = step1.next(step2.next(step3.next(step4))) #default template is the base, each step can override it as needed (for buttons) template = 'backoffice/wizard/politician_profile/base.html', super(PoliticianProfileWizard, self).__init__(scenario_tree, template)