jazzband / django-waffle

A feature flipper for Django
https://waffle.readthedocs.io
BSD 3-Clause "New" or "Revised" License
1.13k stars 258 forks source link

Feature request: Add template filters for switch_is_active, flag_is_active, sample_is_active #510

Open MatthewEthanTam opened 2 weeks ago

MatthewEthanTam commented 2 weeks ago

In my usage of Django-waffle, I found that I cannot use the switch template tag within an if statement's condition in Django templates as some blocks of code require both the switch to be active and another context variable to be set.

Please find an example of this case below:

{% switch 'switch'%}
  {% if context_variable %}
    modified message
  {% else %}
    default message
  {% endif %}
{% else %}
  default
{%endswitch%}

Suggestion: I suggest we make template filters for switch_is_active, flag_is_active, and sample_is_active, this will allow the reduction of redundant code in this scenario.

an example of this suggestion is below:

{% if 'switch'|switch_is_active and context_variable%}
  modified message
{% else %}
  default message
{% endif %}

If this is a good suggestion, I can make a PR for it.

steynvl commented 1 week ago

Would find use for this in my projects using django-waffle

whoiskrtk2 commented 6 days ago

Hi! I'm just starting with open source and I'd love to give this a try.

whoiskrtk2 commented 18 hours ago

@clintonb @dancergraham bump

dancergraham commented 17 hours ago

Hello, I don't really use templates so I don't have an opinion on this and wouldn't be much help getting started on a PR - I would start by putting a question on the django forum to see whether anyone has a good shorthand for this using existing template features such as https://docs.djangoproject.com/en/5.1/ref/templates/builtins/#with with statements (random idea - don't know whether it is relevant.