0001-api-add-filter-number-filter-in-list-endpoints-60625.patch
tests/api/test_formdata.py | ||
---|---|---|
839 | 839 |
assert len(resp.json) == 0 |
840 | 840 | |
841 | 841 | |
842 |
def test_api_list_formdata_number_filter(pub, local_user): |
|
843 |
pub.role_class.wipe() |
|
844 |
role = pub.role_class(name='test') |
|
845 |
role.store() |
|
846 | ||
847 |
local_user.roles = [role.id] |
|
848 |
local_user.store() |
|
849 | ||
850 |
FormDef.wipe() |
|
851 |
formdef = FormDef() |
|
852 |
formdef.name = 'test' |
|
853 |
formdef.workflow_roles = {'_receiver': role.id} |
|
854 |
formdef.fields = [] |
|
855 |
formdef.store() |
|
856 | ||
857 |
data_class = formdef.data_class() |
|
858 |
data_class.wipe() |
|
859 | ||
860 |
for i in range(2): |
|
861 |
formdata = data_class() |
|
862 |
formdata.data = {} |
|
863 |
formdata.user_id = local_user.id |
|
864 |
formdata.just_created() |
|
865 |
formdata.jump_status('new') |
|
866 |
formdata.store() |
|
867 | ||
868 |
resp = get_app(pub).get(sign_uri('/api/forms/test/list?filter-number=1-1', user=local_user)) |
|
869 |
assert len(resp.json) == 1 |
|
870 |
resp = get_app(pub).get(sign_uri('/api/forms/test/list?filter-number=1-2', user=local_user)) |
|
871 |
assert len(resp.json) == 1 |
|
872 |
resp = get_app(pub).get(sign_uri('/api/forms/test/list?filter-number=1-42', user=local_user)) |
|
873 |
assert len(resp.json) == 0 |
|
874 |
resp = get_app(pub).get(sign_uri('/api/forms/test/list?filter-number=42-1', user=local_user)) |
|
875 |
assert len(resp.json) == 0 |
|
876 | ||
877 | ||
842 | 878 |
def test_api_list_formdata_block_field_filter(pub, local_user): |
843 | 879 |
if not pub.is_using_postgresql(): |
844 | 880 |
pytest.skip('this requires SQL') |
wcs/backoffice/management.py | ||
---|---|---|
1013 | 1013 |
'bool', |
1014 | 1014 |
'items', |
1015 | 1015 |
'internal-id', |
1016 |
'number', |
|
1016 | 1017 |
'period-date', |
1017 | 1018 |
'user-id', |
1018 | 1019 |
'submission-agent-id', |
... | ... | |
1644 | 1645 | |
1645 | 1646 |
fake_fields = [ |
1646 | 1647 |
FakeField('internal-id', 'internal-id', _('Identifier')), |
1648 |
FakeField('number', 'number', _('Number')), |
|
1647 | 1649 |
FakeField('start', 'period-date', _('Start')), |
1648 | 1650 |
FakeField('end', 'period-date', _('End')), |
1649 | 1651 |
FakeField('start-mtime', 'period-date', _('Start (modification time)')), |
... | ... | |
1692 | 1694 |
# varname is 'internal_id' and not 'internal-id', fill filter-internal-id-value |
1693 | 1695 |
filters_dict['filter-internal-id-value'] = filters_dict['filter-internal-id'] |
1694 | 1696 | |
1697 |
if filter_field.type == 'number' and filters_dict.get('filter-number'): |
|
1698 |
filters_dict['filter-number-value'] = filters_dict['filter-number'] |
|
1699 | ||
1695 | 1700 |
if filter_field.type == 'user-id': |
1696 | 1701 |
# convert uuid based filter into local id filter |
1697 | 1702 |
name_id = filters_dict.get('filter-user-uuid') |
... | ... | |
1769 | 1774 |
) |
1770 | 1775 |
elif filter_field.type == 'internal-id': |
1771 | 1776 |
criterias.append(Equal('id', str(filter_field_value))) |
1777 |
elif filter_field.type == 'number': |
|
1778 |
criterias.append(Equal('id_display', str(filter_field_value))) |
|
1772 | 1779 |
elif filter_field.type == 'period-date': |
1773 | 1780 |
try: |
1774 | 1781 |
filter_date_value = misc.get_as_datetime(filter_field_value).timetuple() |
1775 |
- |