예제 #1
0
 def save(self, *args, **kwargs):
     if self.household_member.household_structure.household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(
             self.subject_undecided.household_member.household_structure.household.household_identifier))
     self.survey = self.household_member.survey
     self.registered_subject = self.household_member.registered_subject
     super(SubjectDeath, self).save(*args, **kwargs)
예제 #2
0
 def save(self, *args, **kwargs):
     household = models.get_model(
         'bcpp_household', 'Household').objects.get(
             household_identifier=self.household_member.household_structure.
             household.household_identifier)
     if household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(
             household.household_identifier))
     self.survey = self.household_member.survey
     super(SubjectMoved, self).save(*args, **kwargs)
예제 #3
0
 def save(self, *args, **kwargs):
     selected_member_status = None
     using = kwargs.get('using')
     clear_enrollment_fields = []
     self.allow_enrollment(using)
     self.check_eligible_representative_filled(self.household_structure, using=using)
     if self.household_structure.household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(
             self.household_structure.household.household_identifier))
     if self.member_status == DECEASED:
         self.set_death_flags
     else:
         self.clear_death_flags
     self.eligible_member = self.is_eligible_member
     if self.present_today == NO and not self.survival_status == DEAD:
         self.absent = True
     if kwargs.get('update_fields') == ['member_status']:  # when updated by participation view
         selected_member_status = self.member_status
         if self.member_status == BHS_SCREEN:
             self.undecided = False
             self.absent = False
             self.eligible_htc = False
             self.refused_htc = False
             if self.refused:
                 self.clear_refusal
             if self.enrollment_checklist_completed:
                 clear_enrollment_fields = self.clear_enrollment_checklist
             if self.htc:
                 self.clear_htc
         if self.member_status == REFUSED:
             if self.enrollment_checklist_completed:
                 clear_enrollment_fields = self.clear_enrollment_checklist
         else:
             self.undecided = True if selected_member_status == UNDECIDED else False
             self.absent = True if selected_member_status == ABSENT else False
     if self.eligible_hoh:
         self.relation = HEAD_OF_HOUSEHOLD
     if self.intervention and self.plot_enrolled:
         self.eligible_htc = self.evaluate_htc_eligibility
     elif not self.intervention:
         self.eligible_htc = self.evaluate_htc_eligibility
     household_member_helper = HouseholdMemberHelper(self)
     self.member_status = household_member_helper.member_status(selected_member_status)
     if self.auto_filled:
         self.updated_after_auto_filled = True
     try:
         update_fields = kwargs.get('update_fields') + [
             'member_status', 'undecided', 'absent', 'refused', 'eligible_member', 'eligible_htc',
             'enrollment_checklist_completed', 'enrollment_loss_completed', 'htc', 'survival_status',
             'present_today'] + clear_enrollment_fields
         kwargs.update({'update_fields': update_fields})
     except TypeError:
         pass
     #self.is_the_household_member_for_current_survey()
     super(HouseholdMember, self).save(*args, **kwargs)
예제 #4
0
 def save(self, *args, **kwargs):
     household = models.get_model('bcpp_household', 'Household').objects.get(
         household_identifier=self.household_structure.household.household_identifier)
     if household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(household.household_identifier))
     self.registered_subject = self.household_member.registered_subject
     self.verified_household_head(self.household_member)
     try:
         update_fields = kwargs.get('update_fields') + ['registered_subject', ]
         kwargs.update({'update_fields': update_fields})
     except TypeError:
         pass
     super(HouseholdInfo, self).save(*args, **kwargs)
예제 #5
0
 def save(self, *args, **kwargs):
     if self.household_member.household_structure.household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(
             self.subject_undecided.household_member.household_structure.
             household.household_identifier))
     self.survey = self.household_member.survey
     self.registered_subject = self.household_member.registered_subject
     try:
         update_fields = kwargs.get('update_fields') + [
             'registered_subject', 'survey'
         ]
         kwargs.update({'update_fields': update_fields})
     except TypeError:
         pass
     super(SubjectUndecided, self).save(*args, **kwargs)
예제 #6
0
 def save(self, *args, **kwargs):
     household = models.get_model('bcpp_household', 'Household').objects.get(
         household_identifier=self.household_member.household_structure.household.household_identifier)
     if household.replaced_by:
         raise AlreadyReplaced('Household {0} replaced.'.format(household.household_identifier))
     if self.household_member.member_status != NOT_ELIGIBLE:
         raise MemberStatusError('Expected member status to be {0}. Got {1}'.format(
             NOT_ELIGIBLE, self.household_member.member_status))
     self.survey = self.household_member.survey
     self.registered_subject = self.household_member.registered_subject
     try:
         update_fields = kwargs.get('update_fields') + ['registered_subject', 'survey', ]
         kwargs.update({'update_fields': update_fields})
     except TypeError:
         pass
     super(EnrollmentLoss, self).save(*args, **kwargs)
예제 #7
0
 def save(self, *args, **kwargs):
     if self.household_member.household_structure.household.replaced_by:
         raise AlreadyReplaced(
             'Model {0}-{1} has its container replaced.'.format(
                 self._meta.object_name, self.pk))
     if self.household_member.member_status not in [
             HTC, HTC_ELIGIBLE, REFUSED_HTC
     ]:
         raise MemberStatusError(
             'Expected member status to be on of {0}. '
             'Got {1}'.format([HTC, HTC_ELIGIBLE, REFUSED_HTC],
                              self.household_member.member_status))
     self.survey = self.household_member.survey
     if not self.id:
         self.tracking_identifier = self.prepare_tracking_identifier()
     self.registered_subject = self.household_member.registered_subject
     try:
         update_fields = kwargs.get('update_fields') + [
             'registered_subject', 'survey', 'tracking_identifier'
         ]
         kwargs.update({'update_fields': update_fields})
     except TypeError:
         pass
     super(SubjectHtc, self).save(*args, **kwargs)
예제 #8
0
 def save(self, *args, **kwargs):
     if self.subject_undecided.household_member.household_structure.household.replaced_by:
         raise AlreadyReplaced(
             'Model {0}-{1} has its container replaced.'.format(
                 self._meta.object_name, self.pk))
     super(SubjectUndecidedEntry, self).save(*args, **kwargs)