mirror of
https://github.com/ansible/awx.git
synced 2026-03-05 02:31:03 -03:30
Allow null/blank input for boolean fields on projects. Fixes #791.
This commit is contained in:
@@ -772,13 +772,16 @@ class OrganizationSerializer(BaseSerializer):
|
|||||||
|
|
||||||
class ProjectOptionsSerializer(BaseSerializer):
|
class ProjectOptionsSerializer(BaseSerializer):
|
||||||
|
|
||||||
|
scm_clean = serializers.NullBooleanField(default=False)
|
||||||
|
scm_delete_on_update = serializers.NullBooleanField(default=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
fields = ('*', 'local_path', 'scm_type', 'scm_url', 'scm_branch',
|
fields = ('*', 'local_path', 'scm_type', 'scm_url', 'scm_branch',
|
||||||
'scm_clean', 'scm_delete_on_update', 'credential')
|
'scm_clean', 'scm_delete_on_update', 'credential')
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'scm_type': {
|
'scm_type': {
|
||||||
'allow_null': True
|
'allow_null': True,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_related(self, obj):
|
def get_related(self, obj):
|
||||||
@@ -791,6 +794,12 @@ class ProjectOptionsSerializer(BaseSerializer):
|
|||||||
def validate_scm_type(self, value):
|
def validate_scm_type(self, value):
|
||||||
return value or u''
|
return value or u''
|
||||||
|
|
||||||
|
def validate_scm_clean(self, value):
|
||||||
|
return bool(value)
|
||||||
|
|
||||||
|
def validate_scm_delete_on_update(self, value):
|
||||||
|
return bool(value)
|
||||||
|
|
||||||
def validate(self, attrs):
|
def validate(self, attrs):
|
||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
@@ -824,6 +833,7 @@ class ProjectSerializer(UnifiedJobTemplateSerializer, ProjectOptionsSerializer):
|
|||||||
|
|
||||||
playbooks = serializers.ReadOnlyField(help_text='Array of playbooks available within this project.')
|
playbooks = serializers.ReadOnlyField(help_text='Array of playbooks available within this project.')
|
||||||
scm_delete_on_next_update = serializers.BooleanField(read_only=True)
|
scm_delete_on_next_update = serializers.BooleanField(read_only=True)
|
||||||
|
scm_update_on_launch = serializers.NullBooleanField(default=False)
|
||||||
status = serializers.ChoiceField(choices=Project.PROJECT_STATUS_CHOICES, read_only=True, required=False)
|
status = serializers.ChoiceField(choices=Project.PROJECT_STATUS_CHOICES, read_only=True, required=False)
|
||||||
last_update_failed = serializers.BooleanField(read_only=True)
|
last_update_failed = serializers.BooleanField(read_only=True)
|
||||||
last_updated = serializers.DateTimeField(read_only=True)
|
last_updated = serializers.DateTimeField(read_only=True)
|
||||||
@@ -834,6 +844,8 @@ class ProjectSerializer(UnifiedJobTemplateSerializer, ProjectOptionsSerializer):
|
|||||||
'scm_update_cache_timeout') + \
|
'scm_update_cache_timeout') + \
|
||||||
('last_update_failed', 'last_updated') # Backwards compatibility
|
('last_update_failed', 'last_updated') # Backwards compatibility
|
||||||
|
|
||||||
|
def clean_scm_update_on_launch(self, value):
|
||||||
|
return bool(value)
|
||||||
|
|
||||||
def get_related(self, obj):
|
def get_related(self, obj):
|
||||||
res = super(ProjectSerializer, self).get_related(obj)
|
res = super(ProjectSerializer, self).get_related(obj)
|
||||||
|
|||||||
Reference in New Issue
Block a user