mirror of
https://github.com/ansible/awx.git
synced 2026-02-14 17:50:02 -03:30
Merge pull request #1169 from AlanCoding/filterability
Add tip in OPTIONS for fields that cannot be filtered
This commit is contained in:
@@ -44,9 +44,9 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
if placeholder is not serializers.empty:
|
if placeholder is not serializers.empty:
|
||||||
field_info['placeholder'] = placeholder
|
field_info['placeholder'] = placeholder
|
||||||
|
|
||||||
# Update help text for common fields.
|
|
||||||
serializer = getattr(field, 'parent', None)
|
serializer = getattr(field, 'parent', None)
|
||||||
if serializer:
|
if serializer and hasattr(serializer, 'Meta') and hasattr(serializer.Meta, 'model'):
|
||||||
|
# Update help text for common fields.
|
||||||
field_help_text = {
|
field_help_text = {
|
||||||
'id': _('Database ID for this {}.'),
|
'id': _('Database ID for this {}.'),
|
||||||
'name': _('Name of this {}.'),
|
'name': _('Name of this {}.'),
|
||||||
@@ -59,10 +59,18 @@ class Metadata(metadata.SimpleMetadata):
|
|||||||
'modified': _('Timestamp when this {} was last modified.'),
|
'modified': _('Timestamp when this {} was last modified.'),
|
||||||
}
|
}
|
||||||
if field.field_name in field_help_text:
|
if field.field_name in field_help_text:
|
||||||
if hasattr(serializer, 'Meta') and hasattr(serializer.Meta, 'model'):
|
opts = serializer.Meta.model._meta.concrete_model._meta
|
||||||
opts = serializer.Meta.model._meta.concrete_model._meta
|
verbose_name = smart_text(opts.verbose_name)
|
||||||
verbose_name = smart_text(opts.verbose_name)
|
field_info['help_text'] = field_help_text[field.field_name].format(verbose_name)
|
||||||
field_info['help_text'] = field_help_text[field.field_name].format(verbose_name)
|
# If field is not part of the model, then show it as non-filterable
|
||||||
|
else:
|
||||||
|
is_model_field = False
|
||||||
|
for model_field in serializer.Meta.model._meta.fields:
|
||||||
|
if field.field_name == model_field.name:
|
||||||
|
is_model_field = True
|
||||||
|
break
|
||||||
|
if not is_model_field:
|
||||||
|
field_info['filterable'] = False
|
||||||
|
|
||||||
# Indicate if a field has a default value.
|
# Indicate if a field has a default value.
|
||||||
# FIXME: Still isn't showing all default values?
|
# FIXME: Still isn't showing all default values?
|
||||||
|
|||||||
@@ -91,3 +91,13 @@ class TestDeleteViews:
|
|||||||
job.get_absolute_url(), user=system_auditor
|
job.get_absolute_url(), user=system_auditor
|
||||||
)
|
)
|
||||||
assert resp.status_code == 403
|
assert resp.status_code == 403
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_non_filterable_field(options, instance, admin_user):
|
||||||
|
r = options(
|
||||||
|
url=instance.get_absolute_url(),
|
||||||
|
user=admin_user
|
||||||
|
)
|
||||||
|
field_info = r.data['actions']['GET']['percent_capacity_remaining']
|
||||||
|
assert 'filterable' in field_info
|
||||||
|
|||||||
Reference in New Issue
Block a user