def validate(self, data): validate_field( data, "is_shipped_waybill_or_lading", strings.Applications.Generic.RouteOfGoods. IS_SHIPPED_AIR_WAY_BILL_OR_LADING, ) if data.get("is_shipped_waybill_or_lading") is False: validate_field( data, "non_waybill_or_lading_route_details", strings.Applications.Generic.RouteOfGoods.SHIPPING_DETAILS) return super().validate(data)
def _validate_linked_fields(data, linked_field, error): linked_boolean_field_name = "is_" + linked_field linked_boolean_field = validate_field(data, linked_boolean_field_name, error) if linked_boolean_field: linked_reference_field_name = linked_field + "_ref" validate_field( data, linked_reference_field_name, strings.Generic.EndUseDetails.Error.MISSING_DETAILS, required=True, )
def validate(self, data): _validate_linked_fields( data, "military_end_use_controls", strings.Generic.EndUseDetails.Error.INFORMED_TO_APPLY) _validate_linked_fields( data, "informed_wmd", strings.Generic.EndUseDetails.Error.INFORMED_WMD) _validate_linked_fields( data, "suspected_wmd", strings.Generic.EndUseDetails.Error.SUSPECTED_WMD) validate_field(data, "intended_end_use", strings.Generic.EndUseDetails.Error.INTENDED_END_USE) return super().validate(data)
def validate(self, data): validate_field( data, "temp_export_details", strings.Generic. TemporaryExportDetails.Error.TEMPORARY_EXPORT_DETAILS) is_temp_direct_control_value = validate_field( data, "is_temp_direct_control", strings.Generic. TemporaryExportDetails.Error.PRODUCTS_UNDER_DIRECT_CONTROL) # Only validate temp_direct_control_details if its parent is_temp_direct_control is False if is_temp_direct_control_value is False: if not data.get("temp_direct_control_details"): raise serializers.ValidationError({ "temp_direct_control_details": strings.Generic.TemporaryExportDetails.Error. PRODUCTS_UNDER_DIRECT_CONTROL_MISSING_DETAILS }) # Validate temp_direct_control_details if its parent is_temp_direct_control is False and exists on the instance if (self.instance.is_temp_direct_control is False and not self.instance.temp_direct_control_details and not data.get("temp_direct_control_details")): raise serializers.ValidationError({ "temp_direct_control_details": strings.Generic.TemporaryExportDetails.Error. PRODUCTS_UNDER_DIRECT_CONTROL_MISSING_DETAILS }) validated_data = super().validate(data) today = timezone.now().date() if "proposed_return_date" in validated_data: if validated_data.get("proposed_return_date"): if validated_data["proposed_return_date"] <= today: raise serializers.ValidationError({ "proposed_return_date": strings.Generic.TemporaryExportDetails.Error. PROPOSED_DATE_NOT_IN_FUTURE }) validated_data["proposed_return_date"] = str( validated_data["proposed_return_date"]) else: raise serializers.ValidationError({ "proposed_return_date": strings.Generic.TemporaryExportDetails.Error. PROPOSED_RETURN_DATE_BLANK }) return validated_data
def validate(self, data): validate_field(data, "intended_end_use", strings.Generic.EndUseDetails.Error.INTENDED_END_USE) return super().validate(data)