Add feature flag for bulk member upload: update MemberLoadView, templates, and settings to use mass_upload flag with django-waffle.

This commit is contained in:
2026-04-12 12:18:24 +02:00
parent b71bc2afc0
commit 4e4fe62f11
3 changed files with 11 additions and 4 deletions

View File

@@ -156,3 +156,5 @@ PHONENUMBER_DEFAULT_FORMAT = "INTERNATIONAL"
PHONENUMBER_DEFAULT_REGION = config("CM_CLUB_COUNTRY_CODE", default="BE", cast=str)
TAILWIND_APP_NAME = "theme"
WAFFLE_CREATE_MISSING_FLAGS = True

View File

@@ -10,6 +10,7 @@ from django.utils.translation import gettext_lazy as _
from django.views.generic import CreateView, DeleteView, FormView, UpdateView
from django_filters.views import FilterView
from rules.contrib.views import PermissionRequiredMixin
from waffle.mixins import WaffleFlagMixin
from members.filters import MemberFilter
from members.forms import MassUploadForm, MemberForm
@@ -114,7 +115,7 @@ class MemberDeleteView(HTMXViewMixin, PermissionRequiredMixin, SuccessMessageMix
return HttpResponseRedirect(self.get_success_url())
class MemberLoadView(PermissionRequiredMixin, HTMXViewMixin, SuccessMessageMixin, FormView):
class MemberLoadView(PermissionRequiredMixin, HTMXViewMixin, SuccessMessageMixin, WaffleFlagMixin, FormView):
form_class = MassUploadForm
permission_required = "members.add_member"
permission_denied_message = _("You do not have permission to view this page.")
@@ -123,6 +124,7 @@ class MemberLoadView(PermissionRequiredMixin, HTMXViewMixin, SuccessMessageMixin
partial_name = "members/member_load.html#content"
menu_highlight = "members"
template_name = "members/member_load.html"
waffle_flag = "mass_upload"
def handle_no_permission(self) -> HttpResponseRedirect:
messages.error(self.request, self.get_permission_denied_message())

View File

@@ -4,6 +4,7 @@
{% load form_field %}
{% load avatar %}
{% load pagination %}
{% load waffle_tags %}
{% block content %}
{% partialdef content inline %}
@@ -59,9 +60,11 @@
</div>
<div class="add">
<a class="btn btn-accent btn-sm grow hidden lg:flex" href="{% url "backend:members:load" %}" hx-get="{% url "backend:members:load" %}" hx-target="#content">
<i class="fa-solid fa-file-upload"></i>{% translate "Load members from file" %}
</a>
{% flag "mass_upload" %}
<a class="btn btn-accent btn-sm grow hidden lg:flex" href="{% url "backend:members:load" %}" hx-get="{% url "backend:members:load" %}" hx-target="#content">
<i class="fa-solid fa-file-upload"></i>{% translate "Load members from file" %}
</a>
{% endflag %}
<a class="btn btn-neutral btn-outline btn-sm grow" href="{% url "backend:members:add" %}" hx-get="{% url "backend:members:add" %}" hx-target="#content">
<i class="fa-solid fa-plus"></i>{% translate "Add member" %}