def _clean_time_window_json(self, field_name): try: time_window_json = json.loads(self.cleaned_data.get(field_name)) except ValueError: raise ValidationError( _("An error has occurred. Please try again, " "and if the problem persists, please report an issue.")) result = [] for window in time_window_json: day = window.get("day") start_time = window.get("start_time") end_time = window.get("end_time") time_input_relationship = window.get("time_input_relationship") try: day = int(day) assert day >= -1 and day <= 6 except (ValueError, AssertionError): raise ValidationError(_("Invalid day chosen.")) if time_input_relationship == TIME_BEFORE: end_time = validate_time(end_time) result.append( DayTimeWindow( day=day, start_time=None, end_time=end_time, )) elif time_input_relationship == TIME_AFTER: start_time = validate_time(start_time) result.append( DayTimeWindow( day=day, start_time=start_time, end_time=None, )) else: start_time = validate_time(start_time) end_time = validate_time(end_time) if start_time >= end_time: raise ValidationError( _("End time must come after start " "time.")) result.append( DayTimeWindow( day=day, start_time=start_time, end_time=end_time, )) return result
def _clean_time_window_json(self, field_name): try: time_window_json = json.loads(self.cleaned_data.get(field_name)) except ValueError: raise ValidationError(_("An error has occurred. Please try again, " "and if the problem persists, please report an issue.")) result = [] for window in time_window_json: day = window.get("day") start_time = window.get("start_time") end_time = window.get("end_time") time_input_relationship = window.get("time_input_relationship") try: day = int(day) assert day >= -1 and day <= 6 except (ValueError, AssertionError): raise ValidationError(_("Invalid day chosen.")) if time_input_relationship == TIME_BEFORE: end_time = validate_time(end_time) result.append(DayTimeWindow( day=day, start_time=None, end_time=end_time, )) elif time_input_relationship == TIME_AFTER: start_time = validate_time(start_time) result.append(DayTimeWindow( day=day, start_time=start_time, end_time=None, )) else: start_time = validate_time(start_time) end_time = validate_time(end_time) if start_time >= end_time: raise ValidationError(_("End time must come after start " "time.")) result.append(DayTimeWindow( day=day, start_time=start_time, end_time=end_time, )) return result