fix: job execution not use job default params

This commit is contained in:
Bai
2026-04-29 18:08:57 +08:00
committed by Jiangjie Bai
parent 9628dac1be
commit ca5685f327
2 changed files with 24 additions and 3 deletions

View File

@@ -117,8 +117,10 @@ class JobExecutionSerializer(BulkOrgResourceModelSerializer):
raise serializers.ValidationError(_("You do not have permission for the current job."))
return job_obj
@staticmethod
def validate_parameters(parameters):
def validate_parameters(self, parameters):
return self.transform_parameters(parameters)
def transform_parameters(self, parameters):
prefix = "jms_"
new_parameters = {}
for key, value in parameters.items():
@@ -126,3 +128,22 @@ class JobExecutionSerializer(BulkOrgResourceModelSerializer):
key = prefix + key
new_parameters[key] = value
return new_parameters
def get_job_default_parameters(self, job):
try:
vars = job.variable.all()
parameters = {var.var_name: var.default_value for var in vars}
return self.transform_parameters(parameters)
except AttributeError:
return {}
def update_parameters(self, attrs):
job = attrs.get('job')
job_params = self.get_job_default_parameters(job)
input_params = attrs.get('parameters', {})
job_params.update(input_params)
attrs['parameters'] = job_params
def validate(self, attrs):
self.update_parameters(attrs)
return super().validate(attrs)

View File

@@ -142,7 +142,7 @@ class VariableFormDataSerializer(serializers.Serializer):
elif field_type == FieldType.select:
self._add_select_field(field, var_name, required, label, help_text)
if required and default is not None:
if default is not None:
self.fields[var_name].default = default
def _add_select_field(self, field, var_name, required, label, help_text):