From 11d84b162492a5339dd50eac3aa6a30deef580b7 Mon Sep 17 00:00:00 2001
From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de>
Date: Sat, 19 Oct 2019 01:01:16 +0200
Subject: [PATCH] add basic AK submission form

create form class
create template
configur urls
create submission view
---
 AKSubmission/forms.py                         |  9 ++++++++
 .../AKSubmission/submission_overview.html     |  2 +-
 .../templates/AKSubmission/submit_new.html    | 21 +++++++++++++++++++
 AKSubmission/urls.py                          |  1 +
 AKSubmission/views.py                         | 13 +++++++++++-
 5 files changed, 44 insertions(+), 2 deletions(-)
 create mode 100644 AKSubmission/forms.py
 create mode 100644 AKSubmission/templates/AKSubmission/submit_new.html

diff --git a/AKSubmission/forms.py b/AKSubmission/forms.py
new file mode 100644
index 00000000..7a3234fd
--- /dev/null
+++ b/AKSubmission/forms.py
@@ -0,0 +1,9 @@
+from django import forms
+
+from AKModel.models import AK
+
+
+class AKForm(forms.ModelForm):
+    class Meta:
+        model = AK
+        fields = '__all__'
diff --git a/AKSubmission/templates/AKSubmission/submission_overview.html b/AKSubmission/templates/AKSubmission/submission_overview.html
index 99eb5f83..7bab73f0 100644
--- a/AKSubmission/templates/AKSubmission/submission_overview.html
+++ b/AKSubmission/templates/AKSubmission/submission_overview.html
@@ -18,7 +18,7 @@
 
     <div class="jumbotron" style="margin-top:20px;">
         <h2>{% trans "Submit" %}</h2>
-        <a href="#" class="btn btn-primary">{% trans "New AK" %}</a>
+        <a href="{% url 'submit:submit_ak' event_slug=event.slug %}" class="btn btn-primary">{% trans "New AK" %}</a>
         <a href="#" class="btn btn-info">{% trans "New AK Wish" %}</a>
     </div>
 
diff --git a/AKSubmission/templates/AKSubmission/submit_new.html b/AKSubmission/templates/AKSubmission/submit_new.html
new file mode 100644
index 00000000..9fb7a1f2
--- /dev/null
+++ b/AKSubmission/templates/AKSubmission/submit_new.html
@@ -0,0 +1,21 @@
+{% extends 'base.html' %}
+
+{% load i18n %}
+{% load bootstrap4 %}
+
+{% block title %}{{ event.slug }} - {% trans "New AK" %}{% endblock %}
+
+{% block breadcrumbs %}
+    <li class="breadcrumb-item"><a href="#">AKPlanning</a></li>
+    <li class="breadcrumb-item"><a href="#">{{ event.slug }}</a></li>
+    <li class="breadcrumb-item"><a href="#">{% trans "AK Submission" %}</a></li>
+    <li class="breadcrumb-item active">{% trans "New AK" %}</li>
+{% endblock %}
+
+{% block content %}
+    <h2>{% trans 'New AK' %}</h2>
+    <form method="POST" class="post-form">{% csrf_token %}
+        {% bootstrap_form form %}
+        <button type="submit" class="save btn btn-default">Save</button>
+    </form>
+{% endblock %}
\ No newline at end of file
diff --git a/AKSubmission/urls.py b/AKSubmission/urls.py
index 54092fb6..f723f0cc 100644
--- a/AKSubmission/urls.py
+++ b/AKSubmission/urls.py
@@ -13,6 +13,7 @@ urlpatterns = [
             path('aks/', views.AKListView.as_view(), name='ak_list'),
             path('aks/category/<int:category_pk>', views.AKListByCategoryView.as_view(), name='ak_list_by_category'),
             path('aks/tag/<int:tag_pk>', views.AKListByTagView.as_view(), name='ak_list_by_tag'),
+            path('new/', views.AKSubmissionView.as_view(), name='submit_ak'),
         ])
     ),
 ]
diff --git a/AKSubmission/views.py b/AKSubmission/views.py
index 66426e55..f0955be6 100644
--- a/AKSubmission/views.py
+++ b/AKSubmission/views.py
@@ -1,9 +1,11 @@
 from django.http import Http404
+from django.urls import reverse_lazy
 from django.utils.translation import gettext_lazy as _
-from django.views.generic import ListView, DetailView
+from django.views.generic import ListView, DetailView, CreateView
 
 from AKModel.models import AK, AKCategory, AKTag
 from AKModel.views import FilterByEventSlugMixin
+from AKSubmission.forms import AKForm
 
 
 class SubmissionOverviewView(FilterByEventSlugMixin, ListView):
@@ -57,3 +59,12 @@ class AKListByTagView(AKListView):
         except AKTag.DoesNotExist:
             raise Http404
         return super().get_queryset().filter(tags=self.tag)
+
+
+class AKSubmissionView(CreateView):
+    model = AK
+    template_name = 'AKSubmission/submit_new.html'
+    form_class = AKForm
+
+    def get_success_url(self):
+        return reverse_lazy('submit:submission_overview', kwargs={'event_slug': self.kwargs['event_slug']})
-- 
GitLab