Skip to content
Snippets Groups Projects
Commit ff5b1312 authored by Martin Winter's avatar Martin Winter
Browse files

implement UI for membership type creation/editing

parent 4f728139
No related branches found
No related tags found
1 merge request!4implement UI for membership type creation/editing
Pipeline #56348 failed
......@@ -13,3 +13,12 @@ class OrganisationForm(ExtensibleForm):
class Meta:
model = Organisation
fields = ["name"]
class MembershipTypeForm(ExtensibleForm):
"""Form to edit a single membership type."""
layout = Layout(Row("caption"), Row("Description"))
class Meta:
model = MembershipType
fields = ["caption","description"]
......@@ -21,6 +21,15 @@ MENUS = {
"aleksis.core.util.core_helpers.has_person",
],
},
{
"name": _("Membership types"),
"icon": "corporate_fare",
"url": "membership_types",
"validators": [
"menu_generator.validators.is_authenticated",
"aleksis.core.util.core_helpers.has_person",
],
}
],
}
]
......
......@@ -18,3 +18,19 @@ class OrganisationTable(tables.Table):
attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}},
verbose_name=_("Actions"),
)
class MembershipTypeTable(tables.Table):
""" Table to list membership types."""
class Meta:
attrs = {"class": "highlight"}
caption = tables.LinkColumn("show_membership_type", args=[A("id")])
description = tables.Column()
edit = tables.LinkColumn(
"edit_membership_type",
args=[A("id")],
text=_("Edit"),
attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}},
verbose_name=_("Actions"),
)
\ No newline at end of file
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load material_form i18n %}
{% block browser_title %}{% blocktrans %}Create membership type{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Create membership type{% endblocktrans %}{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{% form form=form %}{% endform %}
{% include "core/partials/save_button.html" %}
</form>
{% endblock %}
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load material_form i18n %}
{% block browser_title %}{% blocktrans %}Edit membership type{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Edit membership type{% endblocktrans %}{% endblock %}
{% block content %}
<form method="post">
{% csrf_token %}
{% form form=form %}{% endform %}
{% include "core/partials/save_button.html" %}
</form>
{% endblock %}
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load i18n %}
{% block browser_title %}{% blocktrans %}Membership type{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Membership type{% endblocktrans %}{% endblock %}
{% block content %}
FIXME Hier könnte Ihre Überischt stehen!
{% endblock %}
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load i18n %}
{% load render_table from django_tables2 %}
{% block browser_title %}{% blocktrans %}Membership types{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Membership types{% endblocktrans %}{% endblock %}
{% block content %}
<a class="btn green waves-effect waves-light" href="{% url 'create_organisation' %}">
<i class="material-icons left">add</i>
{% trans "Create membership type" %}
</a>
{% render_table table %}
{% endblock %}
......@@ -7,4 +7,8 @@ urlpatterns = [
path("organisations/create", views.OrganisationCreateView.as_view(), name="create_organisation"),
path("organisation/<int:pk>", views.OrganisationDetailView.as_view(), name="show_organisation"),
path("organisation/<int:pk>/edit", views.OrganisationEditView.as_view(), name="edit_organisation"),
path("membership_types", views.MembershipTypesListView.as_view(), name="membership_types"),
path("membership_types/create", views.MembershipTypesCreateView().as_view(), name="create_membership_type"),
path("membership_type/<int:pk>", views.MembershipTypesDetailView().as_view(), name="show_membership_type"),
path("membership_type/<int:pk>/edit", views.OrganisationEditView.as_view(), name="edit_organisation"),
]
......@@ -55,3 +55,46 @@ class OrganisationCreateView(PermissionRequiredMixin, AdvancedCreateView):
permission_required = "vereinsmeier.create_organisation_rule"
success_url = reverse_lazy("organisations")
success_message = _("The organisation was successfully created.")
class MembershipTypesListView(PermissionRequiredMixin, SingleTableView):
"""Table of all membership types."""
model = MembershipType
table_class = MembershipTypeTable
permission_required = "vereinsmeier.view_membership_type_rule"
template_name = "vereinsmeier/membership_type/list.html"
class MembershipTypeDetailView(PermissionRequiredMixin, DetailView):
"""Detail view of one membership type."""
context_object_name = "membership_type"
template_name = "vereinsmeier/membership_type/full.html"
permission_required = "vereinsmeier.view_membership_type_rule"
def get_queryset(self):
return MembershipType.objects.all()
@method_decorator(never_cache, name="dispatch")
class MembershipTypeEditView(PermissionRequiredMixin, AdvancedEditView):
"""Edit view for a single membership type."""
model = MembershipType
form_class = MembershipTypeForm
template_name = "vereinsmeier/membership_type/edit.html"
permission_required = "vereinsmeier.edit_membership_type_rule"
success_url = reverse_lazy("membership_types")
success_message = _("The membership type was successfully saved.")
@method_decorator(never_cache, name="dispatch")
class MembershipTypeCreateView(PermissionRequiredMixin, AdvancedCreateView):
"""Create view for a single membership type."""
model = MembershipType
form_class = MembershipTypeForm
template_name = "vereinsmeier/membership_type/create.html"
permission_required = "vereinsmeier.create_membership_type_rule"
success_url = reverse_lazy("membership_types")
success_message = _("The membership type was successfully created.")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment