general: add queryset filter on form_number (#52763)
(and fallbacks so |filter_by can be used with specialized filters)
This commit is contained in:
parent
e5f06accdb
commit
750007984a
|
@ -1144,6 +1144,8 @@ def test_lazy_formdata_queryset_filter(pub, variable_test_data):
|
|||
formdata.jump_status('finished')
|
||||
formdata.store()
|
||||
|
||||
finished_formdata = formdata
|
||||
|
||||
formdata = data_class()
|
||||
formdata.data = {'0': 'bar', 'bo1': 'plop1'}
|
||||
formdata.status = 'draft'
|
||||
|
@ -1335,6 +1337,13 @@ def test_lazy_formdata_queryset_filter(pub, variable_test_data):
|
|||
assert LazyFormData(formdata).objects.pending().count == 7
|
||||
assert LazyFormData(formdata).objects.pending().filter_by('foo_foo').apply_filter_value('foo').count == 0
|
||||
|
||||
# test |filter_by_number
|
||||
context = pub.substitutions.get_context_variables(mode='lazy')
|
||||
tmpl = Template('{{form_objects|filter_by_number:"%s"|count}}' % finished_formdata.get_display_id())
|
||||
assert tmpl.render(context) == '1'
|
||||
tmpl = Template('{{form_objects|filter_by_number:"%s"|count}}' % 'invalid value')
|
||||
assert tmpl.render(context) == '0'
|
||||
|
||||
# test |is_empty
|
||||
tmpl = Template('{{form_objects|pending|is_empty}}')
|
||||
assert tmpl.render(context) == 'False'
|
||||
|
|
|
@ -639,6 +639,11 @@ def filter_by_status(queryset, status):
|
|||
return queryset.filter_by_status(status)
|
||||
|
||||
|
||||
@register.filter
|
||||
def filter_by_number(queryset, form_number):
|
||||
return queryset.filter_by_number(form_number)
|
||||
|
||||
|
||||
@register.filter
|
||||
def pending(queryset):
|
||||
return queryset.pending()
|
||||
|
|
|
@ -167,6 +167,9 @@ class LazyFormDefObjectsManager:
|
|||
qs.pending_attr = attribute
|
||||
return qs
|
||||
|
||||
def filter_by_number(self, value):
|
||||
return self._clone(self._criterias + [Equal('id_display', str(value))])
|
||||
|
||||
def get_field(self, key):
|
||||
for field in self._formdef.get_all_fields():
|
||||
if getattr(field, 'varname', None) == key:
|
||||
|
|
Loading…
Reference in New Issue