Enable member creation functionality: implement MemberAddView, create MemberForm, update routes, templates, and add supporting styles.
This commit is contained in:
@@ -5,7 +5,7 @@ from .views import MemberAddView, MemberDeleteView, MemberEditView, MemberListVi
|
||||
app_name = "members"
|
||||
urlpatterns = [
|
||||
path("", MemberListView.as_view(), name="list"),
|
||||
# path("add/", MemberAddView.as_view(), name="add"),
|
||||
path("add/", MemberAddView.as_view(), name="add"),
|
||||
# path("<int:pk>/edit/", MemberEditView.as_view(), name="edit"),
|
||||
path("<int:pk>/delete/", MemberDeleteView.as_view(), name="delete"),
|
||||
# path("load/", MemberLoadView.as_view(), name="load"),
|
||||
|
||||
@@ -5,12 +5,13 @@ from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import DeleteView
|
||||
from django.views.generic import DeleteView, UpdateView, CreateView
|
||||
from django_filters.views import FilterView
|
||||
from rules.contrib.views import PermissionRequiredMixin
|
||||
|
||||
from members.filters import MemberFilter
|
||||
from members.models import Member
|
||||
from members.forms import MemberForm
|
||||
|
||||
from ..mixins import HTMXViewMixin
|
||||
class MemberListView(HTMXViewMixin, PermissionRequiredMixin, FilterView):
|
||||
@@ -37,7 +38,22 @@ class MemberListView(HTMXViewMixin, PermissionRequiredMixin, FilterView):
|
||||
return kwargs
|
||||
|
||||
|
||||
class MemberAddView: ...
|
||||
class MemberAddView(HTMXViewMixin, PermissionRequiredMixin, SuccessMessageMixin, CreateView):
|
||||
model = Member
|
||||
form_class = MemberForm
|
||||
permission_required = "members.add_member"
|
||||
permission_denied_message = _("You do not have permission to view this page.")
|
||||
success_message = _("Member <strong>%(name)s</strong> has been created successfully.")
|
||||
success_url = reverse_lazy("backend:members:list")
|
||||
partial_name = "members/member_form.html#content"
|
||||
menu_highlight = "members"
|
||||
|
||||
def handle_no_permission(self) -> HttpResponseRedirect:
|
||||
messages.error(self.request, self.get_permission_denied_message())
|
||||
return HttpResponseRedirect(reverse_lazy("backend:index"))
|
||||
|
||||
def get_success_message(self, cleaned_data):
|
||||
return self.success_message % dict(cleaned_data, name=self.object.user.get_full_name())
|
||||
|
||||
|
||||
class MemberEditView: ...
|
||||
@@ -49,6 +65,7 @@ class MemberDeleteView(HTMXViewMixin, PermissionRequiredMixin, SuccessMessageMix
|
||||
permission_required = "members.delete_member"
|
||||
permission_denied_message = _("You do not have permission to view this page.")
|
||||
success_url = reverse_lazy("backend:members:list")
|
||||
partial_name = "members/member_confirm_delete.html#content"
|
||||
menu_highlight = "members"
|
||||
|
||||
def handle_no_permission(self) -> HttpResponseRedirect:
|
||||
|
||||
Reference in New Issue
Block a user