0001-templatetags-user-list-add-filters-to-create-list-fr.patch
tests/test_formdata.py | ||
---|---|---|
2662 | 2662 |
formdef.name = 'foobar' |
2663 | 2663 |
formdef.url_name = 'foobar' |
2664 | 2664 |
formdef.fields = [fields.DateField(id='0', label='date', varname='date')] |
2665 |
formdef.digest_templates = {'default': 'plop {{ form_var_date|list }} plop'}
|
|
2665 |
formdef.digest_templates = {'default': 'plop {{ form_var_date|reproj:"coin"}} plop'}
|
|
2666 | 2666 |
formdef.store() |
2667 | 2667 | |
2668 | 2668 |
formdata = formdef.data_class()() |
... | ... | |
2677 | 2677 | |
2678 | 2678 |
formdef.digest_templates = { |
2679 | 2679 |
'default': 'plop plop', |
2680 |
'custom-view:foobar': 'plop {{ form_var_date|list }} plop',
|
|
2680 |
'custom-view:foobar': 'plop {{ form_var_date|reproj:"coin" }} plop',
|
|
2681 | 2681 |
} |
2682 | 2682 |
formdef.store() |
2683 | 2683 |
tests/test_templates.py | ||
---|---|---|
1295 | 1295 |
assert tmpl.render({'foo': list_range}) == '0' |
1296 | 1296 | |
1297 | 1297 | |
1298 |
def test_convert_as_list_with_add(): |
|
1299 |
tmpl = Template('{{ foo|list|add:bar|join:", " }}') |
|
1300 |
assert tmpl.render({'foo': [1, 2], 'bar': ['a', 'b']}) == '1, 2, a, b' |
|
1301 |
assert tmpl.render({'foo': [1, 2], 'bar': 'ab'}) == '1, 2, ab' |
|
1302 |
assert tmpl.render({'foo': 12, 'bar': ['a', 'b']}) == '12, a, b' |
|
1303 |
assert tmpl.render({'foo': 12, 'bar': 'ab'}) == '12, ab' |
|
1304 |
assert tmpl.render({'foo': [1, 2], 'bar': {'a': 'b'}}) == '1, 2, {'a': 'b'}' |
|
1305 |
assert tmpl.render({'foo': {'a': 'b'}, 'bar': ['a', 'b']}) == '{'a': 'b'}, a, b' |
|
1306 | ||
1307 | ||
1298 | 1308 |
def test_adjust_to_week_monday(pub): |
1299 | 1309 |
t = Template('{{ value|adjust_to_week_monday }}') |
1300 | 1310 |
assert t.render({'value': '2021-06-13'}) == '2021-06-07' |
wcs/qommon/templatetags/qommon.py | ||
---|---|---|
14 | 14 |
# You should have received a copy of the GNU General Public License |
15 | 15 |
# along with this program; if not, see <http://www.gnu.org/licenses/>. |
16 | 16 | |
17 |
import collections.abc |
|
17 | 18 |
import datetime |
18 | 19 |
import hashlib |
19 | 20 |
import io |
... | ... | |
569 | 570 |
except (ArithmeticError, TypeError, ValueError): |
570 | 571 |
pass |
571 | 572 | |
573 |
# append to term1 if term1 is a list and not term2 |
|
574 |
if isinstance(term1, list) and not isinstance(term2, list): |
|
575 |
return list(term1) + [term2] |
|
576 | ||
572 | 577 |
# fallback to django add filter |
573 | 578 |
return defaultfilters.add(unlazy(term1), unlazy(term2)) |
574 | 579 | |
... | ... | |
929 | 934 |
@register.filter(name='list') |
930 | 935 |
def list_(value): |
931 | 936 |
# turn a generator into a list |
932 |
return list(unlazy(value)) |
|
937 |
real_value = unlazy(value) |
|
938 |
if isinstance(real_value, collections.abc.Iterable) and not isinstance( |
|
939 |
real_value, (collections.abc.Mapping, str) |
|
940 |
): |
|
941 |
return list(real_value) |
|
942 |
else: |
|
943 |
return [real_value] |
|
933 | 944 | |
934 | 945 | |
935 | 946 |
@register.filter(name='qrcode') |
936 |
- |