From 0566b34a87ed4d7166d0f66ff56544219b4fc020 Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Mon, 2 Sep 2019 18:43:55 +0200 Subject: [PATCH] Add function to create group. Closes #66. --- biscuit/core/templates/core/create_group.html | 14 +++++++++++ biscuit/core/templates/core/groups.html | 3 +++ biscuit/core/urls.py | 1 + biscuit/core/views.py | 24 +++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 biscuit/core/templates/core/create_group.html diff --git a/biscuit/core/templates/core/create_group.html b/biscuit/core/templates/core/create_group.html new file mode 100644 index 000000000..8bd6dc7d4 --- /dev/null +++ b/biscuit/core/templates/core/create_group.html @@ -0,0 +1,14 @@ +{% extends "core/base.html" %} +{% load bootstrap4 i18n %} + +{% block page_title %}{% blocktrans %}Create group{% endblocktrans %}{% endblock %} + +{% block content %} + + <form method="post"> + {% csrf_token %} + {% bootstrap_form create_group_form %} + <input type="submit" value="Edit" /> + </form> + +{% endblock %} diff --git a/biscuit/core/templates/core/groups.html b/biscuit/core/templates/core/groups.html index fbcadfbb5..e6fa8116c 100644 --- a/biscuit/core/templates/core/groups.html +++ b/biscuit/core/templates/core/groups.html @@ -8,6 +8,9 @@ <h2> {% blocktrans %}List of all groups{% endblocktrans %} </h2> + <p> + <a href="{% url 'create_group' %}">{% blocktrans %}Create new group{% endblocktrans %}</a> + </p> {% render_table groups_table %} diff --git a/biscuit/core/urls.py b/biscuit/core/urls.py index f7d7df552..9dd4ca9ff 100644 --- a/biscuit/core/urls.py +++ b/biscuit/core/urls.py @@ -19,6 +19,7 @@ urlpatterns = [ {'template': 'card'}, name='person_by_id_card'), path('person/<int:id_>/edit', views.edit_person, name='edit_person_by_id'), path('groups', views.groups, name='groups'), + path('group/create', views.create_group, name='create_group'), path('group/<int:id_>', views.group, {'template': 'full'}, name='group_by_id'), path('group/<int:id_>/edit', views.edit_group, name='edit_group_by_id'), diff --git a/biscuit/core/views.py b/biscuit/core/views.py index 987c538fd..5006ddc9b 100644 --- a/biscuit/core/views.py +++ b/biscuit/core/views.py @@ -188,3 +188,27 @@ def edit_group(request: HttpRequest, id_: int) -> HttpResponse: def data_management(request: HttpRequest) -> HttpResponse: context = {} return render(request, 'core/data_management.html', context) + + +@admin_required +def create_group(request: HttpRequest) -> HttpResponse: + context = {} + + create_group_form = EditGroupForm(request.POST or None) + + if request.method == 'POST': + create_group_form=EditGroupForm(request.POST) + if create_group_form.is_valid(): + create_group = Group.objects.create( + name = create_group_form.cleaned_data['name'], + short_name = create_group_form.cleaned_data['short_name'], + members = create_group_form.cleaned_data['members'], + owners = create_group_form.cleaned_data['owners'] + ) + + messages.success(request, _('The group has been created.')) + return redirect('groups') + + context['create_group_form'] = create_group_form + + return render(request, 'core/create_group.html', context) -- GitLab