0001-templatetags-allow-list-filter-to-create-list-from-e.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_argument(): |
|
1299 |
tmpl = Template('{{ foo|list: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 |
... | ... | |
927 | 928 | |
928 | 929 | |
929 | 930 |
@register.filter(name='list') |
930 |
def list_(value): |
|
931 |
def list_(value, other=Ellipsis):
|
|
931 | 932 |
# turn a generator into a list |
932 |
return list(unlazy(value)) |
|
933 |
result = [] |
|
934 | ||
935 |
def add_to_result(value): |
|
936 |
if isinstance(value, collections.abc.Iterable) and not isinstance( |
|
937 |
value, (collections.abc.Mapping, str, bytes) |
|
938 |
): |
|
939 |
for elt in unlazy(value): |
|
940 |
result.append(elt) |
|
941 |
else: |
|
942 |
result.append(unlazy(value)) |
|
943 | ||
944 |
add_to_result(value) |
|
945 |
if other is not Ellipsis: |
|
946 |
add_to_result(other) |
|
947 |
return result |
|
933 | 948 | |
934 | 949 | |
935 | 950 |
@register.filter(name='qrcode') |
936 |
- |