From 3584bbe070b6c74bbe57e009d15080cc3ea95699 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 11 Oct 2020 17:09:58 +0000 Subject: [PATCH 01/10] add cronjob for sending agenda mail 48 hours before the next meeting --- fet2020/fet2020/settings.py | 19 +++++++++++++++++-- fet2020/posts/cronjobs.py | 23 +++++++++++++++++++++++ fet2020/posts/mails.py | 17 +++++++++++++++++ fet2020/requirements.txt | 7 ++++--- 4 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 fet2020/posts/cronjobs.py create mode 100644 fet2020/posts/mails.py diff --git a/fet2020/fet2020/settings.py b/fet2020/fet2020/settings.py index 96501bab..546116d7 100644 --- a/fet2020/fet2020/settings.py +++ b/fet2020/fet2020/settings.py @@ -59,6 +59,8 @@ else: ALLOWED_HOSTS = ["127.0.0.1", env('HOST_NAME')] +HOST_NAME = env('HOST_NAME') + DATA_UPLOAD_MAX_MEMORY_SIZE = 1024 * 1024 * 1024 # Application definition @@ -77,6 +79,7 @@ INSTALLED_APPS = [ 'ckeditor_uploader', 'easy_thumbnails', 'rest_framework', + 'django_crontab', 'django_filters', 'django_static_jquery_ui', 'posts.apps.PostsConfig', @@ -212,6 +215,7 @@ CKEDITOR_CONFIGS = { } } +# THUMBNAIL THUMBNAIL_ALIASES = { '': { 'avatar': {'size': (50, 50), 'crop': True}, @@ -219,9 +223,20 @@ THUMBNAIL_ALIASES = { }, } +# ETHERPAD SETTINGS ETHERPAD_CLIENT = { 'url': "http://localhost:9003", 'exturl': "https://etherpad2.2020.fet.at/", - 'apikey': "/srv/andis_test/etherpad_test2/etherpad-lite/APIKEY.txt" - + 'apikey': "/srv/andis_test/etherpad_test2/etherpad-lite/APIKEY.txt", } + +# DJANGO MAIL +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'buran.htu.tuwien.ac.at' +EMAIL_PORT = 587 +EMAIL_USE_TLS = True + +# CRON JOBS +CRONJOBS = [ + ('0 16 * * *', 'posts.cronjobs.check_to_send_agenda_mail'), +] diff --git a/fet2020/posts/cronjobs.py b/fet2020/posts/cronjobs.py new file mode 100644 index 00000000..fba4fe7b --- /dev/null +++ b/fet2020/posts/cronjobs.py @@ -0,0 +1,23 @@ +# HOW TO ADD CRONJOBS +# write a cronjob function +# add cronjob to fet2020/settings.py +# add cronjob with cmd 'fet2020/manage.py crontab add' + +from django.utils import timezone + +from .models import FetMeeting +from .mails import send_agenda_mail + +from datetime import timedelta + + +def check_to_send_agenda_mail(): + agenda_date = timezone.now().date() + timedelta(days=2) + next_meeting = FetMeeting.objects.filter(event_start__date=agenda_date).first() + + if next_meeting and next_meeting.has_agenda: + send_agenda_mail( + self.event_start.date().strftime("%d.%m.%Y"), + self.event_start.time(), + self.slug, + ) diff --git a/fet2020/posts/mails.py b/fet2020/posts/mails.py new file mode 100644 index 00000000..8b6ef842 --- /dev/null +++ b/fet2020/posts/mails.py @@ -0,0 +1,17 @@ +from django.conf import settings +from django.core.mail import send_mail + + +def send_agenda_mail(date, time, slug): + msg = "Liebe Alle,\n\n" \ + "wir haben am " + str(date) + " um " + str(time) + " wieder Sitzung.\n" \ + "du hast noch bis morgen Zeit, weitere Themen auf die Agenda zu schreiben: " \ + + settings.HOST_NAME + '/posts/' + str(slug) + ".\n\n" \ + "LG deine FET" + + send_mail( + subject = 'Test - Agenda der FET Sitzung von ' + str(date), + message = msg, + from_email = 'patrick@fet.at', + recipient_list = ['all@fet.at', ], + ) diff --git a/fet2020/requirements.txt b/fet2020/requirements.txt index 457a21e6..2ee39ebc 100644 --- a/fet2020/requirements.txt +++ b/fet2020/requirements.txt @@ -1,17 +1,18 @@ -django==3.1.* +django==3.1.2 django-ckeditor==6.0.0 +django-crontab==0.7.1 django-environ==0.4.5 django-filter==2.3.0 django-static-jquery-ui==1.12.1.1 django-taggit==1.3.0 djangorestframework==3.12.1 +configparser==5.0.1 docutils==0.16 easy-thumbnails==2.7.0 -configparser etherpad-lite==0.5 #mysql-python +ghostscript==0.6 ldap3==2.8.1 mysqlclient==2.0.1 Pillow==7.2.0 -ghostscript==0.6 From 40a7939e69a6615f9cd50c93e4d1404b41e0de19 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 11 Oct 2020 20:33:23 +0000 Subject: [PATCH 02/10] update tasks view --- fet2020/tasks/forms.py | 12 +++ fet2020/tasks/views.py | 2 +- fet2020/templates/tasks/index.html | 126 ++++++++++++++++++++--------- 3 files changed, 101 insertions(+), 39 deletions(-) diff --git a/fet2020/tasks/forms.py b/fet2020/tasks/forms.py index 2ef71ee2..e4097c02 100644 --- a/fet2020/tasks/forms.py +++ b/fet2020/tasks/forms.py @@ -1,4 +1,5 @@ from django import forms +from django.utils.translation import gettext_lazy as _ from .models import Task @@ -13,3 +14,14 @@ class TaskForm(forms.ModelForm): 'due_date', 'assigned_to', ] + + labels = { + 'title': _('Titel des Tasks'), + 'task_list': _('Task-Gruppe'), + 'due_date': _('Fälligkeitsdatum'), + 'assigned_to': _('Zuweisen an'), + } + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) # to get the self.fields set + self.fields['assigned_to'].empty_label = "Alle" diff --git a/fet2020/tasks/views.py b/fet2020/tasks/views.py index b5870267..679f3b5f 100644 --- a/fet2020/tasks/views.py +++ b/fet2020/tasks/views.py @@ -46,7 +46,7 @@ def index(request): users = User.objects.all() context = { - "form": form, + "formset": form, "tasks": tasks, "users": users, "current_user": current_user, diff --git a/fet2020/templates/tasks/index.html b/fet2020/templates/tasks/index.html index 32ee6fe1..6af0cd7f 100644 --- a/fet2020/templates/tasks/index.html +++ b/fet2020/templates/tasks/index.html @@ -2,11 +2,72 @@ {% block content %}
-

Tasks

-
-
- {% csrf_token %} + {% if current_user != None %} + + {% for user in users %} + {% if current_user == user.id %} +

Task-Übersicht für {{ user.username }}

+ {% endif %} + {% endfor %} + + {% else %} +

Task-Übersicht für alle Mitarbeiter_innen

+ {% endif %} + + + {% csrf_token %} + +
+ + {% regroup tasks by task_list as section_list %} + {% for group in section_list %} + +
+
    + +

    {{ group.grouper }}

    + + {% for task in group.list %} + +
    + +
    + + {{ task.title }} +
    + +
    + {% if task.due_date is not None %} + Fälligkeitsdatum: {{ task.due_date|date:"d.m.Y" }} + {% endif %} +
    +
    + + {% endfor %} + +
+
+ + {% endfor %} + +
+
    + + + +
+
+
+
+ +

Andere Task-Übersicht anzeigen

+ +
+ {% csrf_token %} + +
+
+
+
+
+ +
- +
-
+ -
- {% csrf_token %} - {% regroup tasks by task_list as section_list %} - {% for group in section_list %} +

Neuen Task hinzufügen

-
-
    + + {% csrf_token %} -

    {{ group.grouper }}

    +
    - {% for task in group.list %} - - - {{ task.title }} - - {{ task.due_date|date:"d.m.Y" }} - -
    - {% endfor %} - -
    + {{ formset.management_form }} + {% for form in formset %} +
    + {{ form.label }} + {{ form }} +
    {% endfor %} + +
    + +
    - - +
-
- -
- -
-

neue Tasks hinzufügen

- {% csrf_token %} - {{ form }} - -
- -
+
From 0f50a4a7f7adff2509267956d35e11037d24dd80 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 11 Oct 2020 23:23:55 +0000 Subject: [PATCH 03/10] add hamburger menu --- fet2020/templates/layout.html | 69 ++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/fet2020/templates/layout.html b/fet2020/templates/layout.html index cc0fba63..85ac1b63 100644 --- a/fet2020/templates/layout.html +++ b/fet2020/templates/layout.html @@ -1,5 +1,5 @@ - {% load static %} + @@ -8,44 +8,55 @@ FET - {% csrf_token %} - {% block header %} - {% endblock %} -