def new(request, household_id): member_form = HouseholdMemberForm() breadcrumbs = [('Households', reverse('list_household_page')),] try: household = Household.objects.get(id=household_id) breadcrumbs.append(('Household', reverse('view_household_page', args=(household_id, ))),) if request.method == 'POST': member_form = HouseholdMemberForm(data=request.POST) interviewer = household.last_registrar survey = SurveyAllocation.get_allocation(interviewer) if member_form.is_valid(): household_member = member_form.save(commit=False) household_member.household = household household_member.registrar = household.last_registrar household_member.survey_listing = SurveyHouseholdListing.get_or_create_survey_listing(interviewer, survey) household_member.registration_channel = WebAccess.choice_name() household_member.save() messages.success(request, 'Household member successfully created.') return HttpResponseRedirect('/households/%s/'%(str(household_id))) except Household.DoesNotExist: messages.error(request, 'There are no households currently registered for this ID.') return HttpResponseRedirect('/households/') request.breadcrumbs(breadcrumbs) return render(request, 'household_member/new.html', {'member_form': member_form, 'button_label': 'Create'})
def save(request, instance=None): head = None if instance: handler = reverse('edit_household_page', args=(instance.pk, )) head = instance.get_head() heading = 'Edit Household' cancel_url = reverse('view_household_page', args=(instance.pk, )) else: handler = reverse('new_household_page') heading = 'New Household' cancel_url = reverse('list_household_page') locations_filter = LocationsFilterForm(data=request.GET, include_ea=True) householdform = HouseholdForm(instance=instance, eas=locations_filter.get_enumerations()) headform = HouseholdHeadForm(instance=head) if request.method == 'POST': householdform = HouseholdForm(data=request.POST, instance=instance) headform = HouseholdHeadForm(data=request.POST, instance=head) if householdform.is_valid(): household = householdform.save(commit=False) interviewer = household.last_registrar survey = SurveyAllocation.get_allocation(interviewer) if survey: survey_listing = SurveyHouseholdListing.get_or_create_survey_listing(interviewer, survey) household.listing = survey_listing.listing household.save() householdform = HouseholdForm() # import pdb; pdb.set_trace() if headform.is_valid(): head = headform.save(commit=False) head.household = household head.registrar = interviewer head.survey_listing = survey_listing head.registration_channel = WebAccess.choice_name() head.save() if household.head_desc is not head.surname: household.head_desc = head.surname household.save() messages.info(request, 'Household %s saved successfully' % household.house_number) return HttpResponseRedirect(reverse('view_household_page', args=(household.pk, ))) handler = reverse('new_household_page') else: messages.error(request, 'No open survey for %s' % interviewer.name) context = { 'headform': headform, 'householdform': householdform, 'action': handler, 'cancel_url' : cancel_url, 'heading':heading, 'id': "create-household-form", 'button_label': "Save", 'loading_text': "Creating...", 'locations_filter' : locations_filter} request.breadcrumbs([ ('Households', reverse('list_household_page')), ]) return render(request, 'households/new.html', context)
def new(request, household_id): member_form = HouseholdMemberForm() breadcrumbs = [ ('Households', reverse('list_household_page')), ] try: household = Household.objects.get(id=household_id) breadcrumbs.append( ('Household', reverse('view_household_page', args=(household_id, ))), ) if request.method == 'POST': member_form = HouseholdMemberForm(data=request.POST) interviewer = household.last_registrar survey = SurveyAllocation.get_allocation(interviewer) if member_form.is_valid(): household_member = member_form.save(commit=False) household_member.household = household household_member.registrar = household.last_registrar household_member.survey_listing = SurveyHouseholdListing.get_or_create_survey_listing( interviewer, survey) household_member.registration_channel = WebAccess.choice_name() household_member.save() messages.success(request, 'Household member successfully created.') return HttpResponseRedirect('/households/%s/' % (str(household_id))) except Household.DoesNotExist: messages.error( request, 'There are no households currently registered for this ID.') return HttpResponseRedirect('/households/') request.breadcrumbs(breadcrumbs) return render(request, 'household_member/new.html', { 'member_form': member_form, 'button_label': 'Create' })
def get_survey(interviewer): return SurveyAllocation.get_allocation(interviewer)
def get_survey(interviewer): return SurveyAllocation.get_allocation(interviewer)
def save(request, instance=None): head = None if instance: handler = reverse('edit_household_page', args=(instance.pk, )) head = instance.get_head() heading = 'Edit Household' cancel_url = reverse('view_household_page', args=(instance.pk, )) else: handler = reverse('new_household_page') heading = 'New Household' cancel_url = reverse('list_household_page') locations_filter = LocationsFilterForm(data=request.GET, include_ea=True) householdform = HouseholdForm(instance=instance, eas=locations_filter.get_enumerations()) headform = HouseholdHeadForm(instance=head) if request.method == 'POST': householdform = HouseholdForm(data=request.POST, instance=instance) headform = HouseholdHeadForm(data=request.POST, instance=head) if householdform.is_valid(): household = householdform.save(commit=False) interviewer = household.last_registrar survey = SurveyAllocation.get_allocation(interviewer) if survey: survey_listing = SurveyHouseholdListing.get_or_create_survey_listing( interviewer, survey) household.listing = survey_listing.listing household.save() householdform = HouseholdForm() # import pdb; pdb.set_trace() if headform.is_valid(): head = headform.save(commit=False) head.household = household head.registrar = interviewer head.survey_listing = survey_listing head.registration_channel = WebAccess.choice_name() head.save() if household.head_desc is not head.surname: household.head_desc = head.surname household.save() messages.info( request, 'Household %s saved successfully' % household.house_number) return HttpResponseRedirect( reverse('view_household_page', args=(household.pk, ))) handler = reverse('new_household_page') else: messages.error(request, 'No open survey for %s' % interviewer.name) context = { 'headform': headform, 'householdform': householdform, 'action': handler, 'cancel_url': cancel_url, 'heading': heading, 'id': "create-household-form", 'button_label': "Save", 'loading_text': "Creating...", 'locations_filter': locations_filter } request.breadcrumbs([ ('Households', reverse('list_household_page')), ]) return render(request, 'households/new.html', context)
def clean_registrar(self): if SurveyAllocation.get_allocation( self.cleaned_data['last_registrar']) is None: raise ValidationError( "No open survey available for this Interviewer yet.") return self.cleaned_data['registrar']
def clean_registrar(self): if SurveyAllocation.get_allocation(self.cleaned_data['last_registrar']) is None: raise ValidationError("No open survey available for this Interviewer yet.") return self.cleaned_data['registrar']