Skip to content

Commit de54f67

Browse files
committed
Merge pull request #50 in SWFT/django-rql from ~MKOLYUBYAKIN/django-rql:feature/LITE-13699 to master
* commit '28bf0f80515354b4b568b914b3b0d5f80eff7cd2': Added support for default: hidden in OpenAPI spec.
2 parents 83ef2fa + 28bf0f8 commit de54f67

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

dj_rql/filter_cls.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ def _build_filters(self, filters, filter_route='', orm_route='',
533533
field = item.get('field')
534534
kwargs = {
535535
prop: item.get(prop)
536-
for prop in ('lookups', 'use_repr', 'null_values', 'distinct', 'openapi')
536+
for prop in ('lookups', 'use_repr', 'null_values', 'distinct', 'openapi', 'hidden')
537537
}
538538

539539
if 'sources' in item:
@@ -644,6 +644,7 @@ def _build_mapped_item(cls, field, field_orm_route, **kwargs):
644644
null_values = kwargs.get('null_values')
645645
distinct = kwargs.get('distinct')
646646
openapi = kwargs.get('openapi')
647+
hidden = kwargs.get('hidden')
647648

648649
possible_lookups = lookups or FilterTypes.default_field_filter_lookups(field)
649650
if not (field.null or cls._is_pk_field(field)):
@@ -655,6 +656,7 @@ def _build_mapped_item(cls, field, field_orm_route, **kwargs):
655656
'lookups': possible_lookups,
656657
'null_values': null_values or {RQL_NULL},
657658
'distinct': distinct or False,
659+
'hidden': hidden or False,
658660
}
659661

660662
if use_repr is not None:

dj_rql/openapi.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class RQLFilterDescriptionTemplate:
1212
'_render_search_inplace',
1313
'_render_ordering_inplace',
1414
'_render_null_inplace',
15+
'_render_default_inplace',
1516
)
1617

1718
@classmethod
@@ -80,6 +81,13 @@ def _render_null_inplace(cls, base, filter_item, filter_instance):
8081

8182
return base
8283

84+
@classmethod
85+
def _render_default_inplace(cls, base, filter_item, filter_instance):
86+
if filter_item.get('hidden', False):
87+
return cls._render_common_key_inplace(base, 'default', '**hidden**',)
88+
89+
return base
90+
8391
@classmethod
8492
def _render_common_key_inplace(cls, base, key, value):
8593
return '{base}\n{key}: {value}'.format(base=base, key=key, value=value)

tests/test_openapi.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ def test_description_null_overridden_render():
5252
'null: NULL_ID, null()'
5353

5454

55+
def test_description_hidden_render():
56+
result = RQLFilterDescriptionTemplate.render(*filter_data('select_author'))
57+
assert result == '**Filter for: select_author**\n\n' \
58+
'lookups: eq, ne, like, ilike, in, out\ndefault: **hidden**'
59+
60+
5561
def test_description_custom_render():
5662
class Cls(RQLFilterDescriptionTemplate):
5763
IN_PLACE_RENDERERS = ('_render_custom_inplace',)

0 commit comments

Comments
 (0)