0001-general-add-queryset-filter-on-form_number-52763.patch
tests/test_formdata.py | ||
---|---|---|
1126 | 1126 |
formdata.jump_status('finished') |
1127 | 1127 |
formdata.store() |
1128 | 1128 | |
1129 |
finished_formdata = formdata |
|
1130 | ||
1129 | 1131 |
formdata = data_class() |
1130 | 1132 |
formdata.data = {'0': 'bar', 'bo1': 'plop1'} |
1131 | 1133 |
formdata.status = 'draft' |
... | ... | |
1317 | 1319 |
assert LazyFormData(formdata).objects.pending().count == 7 |
1318 | 1320 |
assert LazyFormData(formdata).objects.pending().filter_by('foo_foo').apply_filter_value('foo').count == 0 |
1319 | 1321 | |
1322 |
# test |filter_by_form_number |
|
1323 |
context = pub.substitutions.get_context_variables(mode='lazy') |
|
1324 |
tmpl = Template('{{form_objects|filter_by_form_number:"%s"|count}}' % finished_formdata.get_display_id()) |
|
1325 |
assert tmpl.render(context) == '1' |
|
1326 |
tmpl = Template('{{form_objects|filter_by_form_number:"%s"|count}}' % 'invalid value') |
|
1327 |
assert tmpl.render(context) == '0' |
|
1328 | ||
1320 | 1329 |
# test |is_empty |
1321 | 1330 |
tmpl = Template('{{form_objects|pending|is_empty}}') |
1322 | 1331 |
assert tmpl.render(context) == 'False' |
wcs/qommon/templatetags/qommon.py | ||
---|---|---|
639 | 639 |
return queryset.filter_by_status(status) |
640 | 640 | |
641 | 641 | |
642 |
@register.filter |
|
643 |
def filter_by_form_number(queryset, form_number): |
|
644 |
return queryset.filter_by_form_number(form_number) |
|
645 | ||
646 | ||
642 | 647 |
@register.filter |
643 | 648 |
def pending(queryset): |
644 | 649 |
return queryset.pending() |
wcs/variables.py | ||
---|---|---|
167 | 167 |
qs.pending_attr = attribute |
168 | 168 |
return qs |
169 | 169 | |
170 |
def filter_by_form_number(self, value): |
|
171 |
return self._clone(self._criterias + [Equal('id_display', str(value))]) |
|
172 | ||
170 | 173 |
def get_field(self, key): |
171 | 174 |
for field in self._formdef.get_all_fields(): |
172 | 175 |
if getattr(field, 'varname', None) == key: |
173 |
- |