mirror of
https://github.com/ansible/awx.git
synced 2026-02-17 11:10:03 -03:30
Merge pull request #5536 from jbradberry/null-options
Adjust the logic that renders fields with choices on an API Options call Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -20,6 +20,7 @@ from rest_framework.fields import JSONField as DRFJSONField
|
|||||||
from rest_framework.request import clone_request
|
from rest_framework.request import clone_request
|
||||||
|
|
||||||
# AWX
|
# AWX
|
||||||
|
from awx.api.fields import ChoiceNullField
|
||||||
from awx.main.fields import JSONField, ImplicitRoleField
|
from awx.main.fields import JSONField, ImplicitRoleField
|
||||||
from awx.main.models import InventorySource, NotificationTemplate
|
from awx.main.models import InventorySource, NotificationTemplate
|
||||||
from awx.main.scheduler.kubernetes import PodManager
|
from awx.main.scheduler.kubernetes import PodManager
|
||||||
@@ -96,7 +97,13 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
field_info['children'] = self.get_serializer_info(field)
|
field_info['children'] = self.get_serializer_info(field)
|
||||||
|
|
||||||
if not isinstance(field, (RelatedField, ManyRelatedField)) and hasattr(field, 'choices'):
|
if not isinstance(field, (RelatedField, ManyRelatedField)) and hasattr(field, 'choices'):
|
||||||
field_info['choices'] = [(choice_value, choice_name) for choice_value, choice_name in field.choices.items()]
|
choices = [
|
||||||
|
(choice_value, choice_name) for choice_value, choice_name in field.choices.items()
|
||||||
|
]
|
||||||
|
if not any(choice in ('', None) for choice, _ in choices):
|
||||||
|
if field.allow_blank or (field.allow_null and not isinstance(field, ChoiceNullField)):
|
||||||
|
choices = [("", "---------")] + choices
|
||||||
|
field_info['choices'] = choices
|
||||||
|
|
||||||
# Indicate if a field is write-only.
|
# Indicate if a field is write-only.
|
||||||
if getattr(field, 'write_only', False):
|
if getattr(field, 'write_only', False):
|
||||||
|
|||||||
Reference in New Issue
Block a user