From 3049dc22fcae1d29c91c92ce977e5372af2112fd Mon Sep 17 00:00:00 2001
From: Dominik George <nik@naturalnet.de>
Date: Thu, 22 Aug 2019 22:39:03 +0200
Subject: [PATCH] Add form for lesson documentation. Advances #1.

---
 biscuit/apps/alsijil/forms.py                 | 10 ++++
 .../alsijil/templates/alsijil/lesson.html     | 47 +++++++++++++++++++
 biscuit/apps/alsijil/views.py                 | 13 +++++
 3 files changed, 70 insertions(+)
 create mode 100644 biscuit/apps/alsijil/forms.py

diff --git a/biscuit/apps/alsijil/forms.py b/biscuit/apps/alsijil/forms.py
new file mode 100644
index 000000000..f95b379b5
--- /dev/null
+++ b/biscuit/apps/alsijil/forms.py
@@ -0,0 +1,10 @@
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+
+from .models import LessonDocumentation
+
+
+class LessonDocumentationForm(forms.ModelForm):
+    class Meta:
+        model = LessonDocumentation
+        fields = ['topic', 'homework']
diff --git a/biscuit/apps/alsijil/templates/alsijil/lesson.html b/biscuit/apps/alsijil/templates/alsijil/lesson.html
index e69de29bb..37fab929c 100644
--- a/biscuit/apps/alsijil/templates/alsijil/lesson.html
+++ b/biscuit/apps/alsijil/templates/alsijil/lesson.html
@@ -0,0 +1,47 @@
+{# -*- engine:django -*- #}
+{% extends "core/base.html" %}
+{% load bootstrap4 i18n %}
+
+{% block page_title %}
+ {% blocktrans %}Lesson{% endblocktrans %}
+
+ -
+
+ {% for group in lesson_period.get_groups.all %}
+  <span>{{ group.short_name }}</span>,
+ {% endfor %}
+
+ {{ lesson_period.get_subject.name }},
+
+ {% for teacher in lesson_period.get_teachers.all %}
+  {{ teacher.short_name }}
+ {% endfor %}
+{% endblock %}
+
+{% block content %}
+ <div class="card">
+  <div class="card-header bg-light text-dark">
+   {% blocktrans %}Lesson documentation{% endblocktrans %}
+  </div>
+  <div class="card-body">
+   <form method="post">
+    {% csrf_token %}
+    {% bootstrap_form lesson_documentation_form %}
+    <input type="hidden" name="action" value="lesson_documentation" />
+    <input type="submit" value="Update" />
+   </form>
+  </div>
+ </div>
+
+ <div class="card">
+  <div class="card-header bg-light text-dark">
+   {% blocktrans %}Personal notes{% endblocktrans %}
+  </div>
+  <div class="card-body">
+   <p class="card-text">
+    This feature is still missing.
+   </p>
+  </div>
+ </div>
+{% endblock %}
+ 
diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py
index 04cc7aeb4..f5fe81036 100644
--- a/biscuit/apps/alsijil/views.py
+++ b/biscuit/apps/alsijil/views.py
@@ -8,6 +8,9 @@ from django.utils.translation import ugettext as _
 from biscuit.apps.chronos.models import LessonPeriod
 from biscuit.apps.chronos.util import current_lesson_periods, current_week
 
+from .forms import LessonDocumentationForm
+from .models import LessonDocumentation
+
 
 @login_required
 def lesson(request: HttpRequest, week: Optional[int] = None, period_id: Optional[int] = None) -> HttpResponse:
@@ -24,4 +27,14 @@ def lesson(request: HttpRequest, week: Optional[int] = None, period_id: Optional
     context['lesson_period'] = lesson_period
     context['week'] = wanted_week
 
+    lesson_documentation, created = LessonDocumentation.get_or_create(lesson_period=lesson_period, week=week)
+    lesson_documentation_form = LessonDocumentationForm(request.POST or None, instance=lesson_documentation)
+
+    if request.method == 'POST':
+        if request.POST.get('action', None) == 'lesson_documentation':
+            if lesson_documentation_form.is_valid():
+                lesson_documentation_form.save()
+
+    context['lesson_documentation_form'] = lesson_documentation_form
+
     return render(request, 'alsijil/lesson.html', context)
-- 
GitLab