Opened 15 years ago
Closed 15 years ago
#12162 closed (invalid)
cycle should have an option to call value without actually cycling
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 (last modified by )
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.
Change History (2)
comment:1 by , 15 years ago
Description: | modified (diff) |
---|
comment:2 by , 15 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is already possible
{% ifchanged state %} <tr style="background:{% cycle 'blue' 'green' as rowbg %};"> {% else %} <tr style="background:{{ rowbg }};"> {% endifchanged %}
Please use preview.