Opened 15 years ago
Last modified 15 years ago
#12162 closed
cycle should have an option to call value without actually cycling — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Template system | Version: | 1.1 |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hear me out. :) My use case is this: I have a large table, I have already ordered the objects that will make up each row according to a certain key attribute. What I would like to do is use the 'cycle' tag together with the 'ifchanged' tag to change the bg-color of the rows only when this key attribute has changed. E.g.:
(blue) New Mexico John ...
(blue) New Mexico Jill ...
(blue) New Mexico Jeff ...
(green) Texas Jack ...
(green) Texas Jane ...
(blue) Arizona James ...
...
But, it just can't be done (in the template) as things stand. Every access of the 'cycle' tag (whether named or not) gives the next value in the cycle. I propose an alternate tag that picks up the cycle variable without changing it from its last appearance. Then code like this ought to be able to accomplish the task:
{% ifchanged state %}
<tr style="background:{% cycle 'blue' 'green' as rowbg %};">
{% else %}
<tr style="background:{% dontcycle rowbg %};">
{% endifchanged %}
I really believe this is a legitimate presentation task. Thanks for your consideration. K.C.S.