Skip to content
Snippets Groups Projects
Commit 2af4c35b authored by Carlos Vega's avatar Carlos Vega
Browse files

changed order in code and controlled cases where the fields are not present

parent 63d6ce78
No related branches found
No related tags found
1 merge request!188Feature/improve management of visits from subject list
......@@ -20,26 +20,25 @@ class StudyEditForm(ModelForm):
#check regex
nd_number_study_subject_regex = cleaned_data.get('nd_number_study_subject_regex')
if StudySubject.check_nd_number_regex(nd_number_study_subject_regex) == False:
if nd_number_study_subject_regex is None or StudySubject.check_nd_number_regex(nd_number_study_subject_regex) == False:
self.add_error('nd_number_study_subject_regex', 'Please enter a valid nd_number_study_subject_regex regex.')
#check default_visit_duration_in_months
t = datetime.datetime.today()
visit_duration_in_months = cleaned_data.get('default_visit_duration_in_months')
visit_duration = relativedelta(months=int(visit_duration_in_months))
control_follow_up = cleaned_data.get('default_delta_time_for_control_follow_up')
patient_follow_up = cleaned_data.get('default_delta_time_for_patient_follow_up')
units = cleaned_data.get('default_delta_time_for_follow_up_units')
control_delta = relativedelta(**{units: control_follow_up})
patient_delta = relativedelta(**{units: patient_follow_up})
if None not in [visit_duration_in_months, control_follow_up, patient_follow_up, units]:
t = datetime.datetime.today()
visit_duration = relativedelta(months=int(visit_duration_in_months))
control_delta = relativedelta(**{units: control_follow_up})
patient_delta = relativedelta(**{units: patient_follow_up})
#relative time delta has no __cmp__ method, so we add them to a datetime
min_delta_time = min((t + control_delta), (t + patient_delta))
if (t+visit_duration) > min_delta_time:
self.add_error('default_visit_duration_in_months', 'Please enter a valid "duration of the visits". It must be shorter than the time difference between patient and control visits.')
#relative time delta has no __cmp__ method, so we add them to a datetime
min_delta_time = min((t + control_delta), (t + patient_delta))
if (t+visit_duration) > min_delta_time:
self.add_error('default_visit_duration_in_months', 'Please enter a valid "duration of the visits". It must be shorter than the time difference between patient and control visits.')
return cleaned_data
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment