+
Notfallordner{% if request.user.profile.showtooltips %} {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+ Notfallordner
+
+
+
+ Wichtige Informationen
+
+
+
+
Aktualisierungen{% if request.user.profile.showtooltips %} {% endif %}
+
+ {% block notifications_content %}
+ {% include "recoverdir/rd_updates.html" %}
+ {% endblock %}
+
+
+
+ {% block pers_content %}
+ {% include "recoverdir/rd_pers.html" %}
+ {% endblock %}
+
+
+
+ Einstellungen
+
+
+
+ Hilfe & Kontakt
+
+
+
+
+
+
+
+{% else %}
+Sie haben keinen Zugriff auf das Modul Notfallordner. Bitte wenden Sie sich an den Support!
+{% endif %}
+{% endblock content %}
diff --git a/recoverdir/templates/recoverdir/rd_pers.html b/recoverdir/templates/recoverdir/rd_pers.html
new file mode 100644
index 0000000..1eb38f1
--- /dev/null
+++ b/recoverdir/templates/recoverdir/rd_pers.html
@@ -0,0 +1,20 @@
+
+
Persönliches Schreiben{% if request.user.profile.showtooltips %} {% endif %}
+
+{% if persletter|length == 0 %}
+
+{% else %}
+
+
+
+{% endif %}
+
+
+
+{% if persletter|length == 0 %}
+
Erstellen Sie hier Ihr persönliches Schreiben.
+{% else %}
+{{persletter.0.text.media}}
+{{persletter.0.text|safe}}
+
+{% endif %}
\ No newline at end of file
diff --git a/recoverdir/templates/recoverdir/rd_pers_add.html b/recoverdir/templates/recoverdir/rd_pers_add.html
new file mode 100644
index 0000000..85574ed
--- /dev/null
+++ b/recoverdir/templates/recoverdir/rd_pers_add.html
@@ -0,0 +1,29 @@
+{% extends "users/base.html" %}
+{% load crispy_forms_tags %}
+{% block content %}
+{% if request.user.profile.agency.module_recoverdir %}
+
+
Persönlichen Brief erstellen
+
+
+
+
+{% else %}
+
Das Modul Notfallordner wurden in ihrer Agentur deaktiviert.
+{% endif %}
+{% endblock content %}
diff --git a/recoverdir/templates/recoverdir/rd_pers_update.html b/recoverdir/templates/recoverdir/rd_pers_update.html
new file mode 100644
index 0000000..e31c268
--- /dev/null
+++ b/recoverdir/templates/recoverdir/rd_pers_update.html
@@ -0,0 +1,30 @@
+{% extends "users/base.html" %}
+{% load crispy_forms_tags %}
+{% block content %}
+{% if request.user.profile.agency.module_recoverdir %}
+
+
Persönlichen Brief aktualisieren
+
+
+
+
+
+{% else %}
+
Das Modul Notfallordner wurden in ihrer Agentur deaktiviert.
+{% endif %}
+{% endblock content %}
diff --git a/recoverdir/templates/recoverdir/rd_updates.html b/recoverdir/templates/recoverdir/rd_updates.html
new file mode 100644
index 0000000..e69de29
diff --git a/recoverdir/tests.py b/recoverdir/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/recoverdir/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/recoverdir/urls.py b/recoverdir/urls.py
new file mode 100644
index 0000000..6cc7bbc
--- /dev/null
+++ b/recoverdir/urls.py
@@ -0,0 +1,17 @@
+from django.urls import path
+from django.contrib.auth import views as auth_views
+from django.contrib.auth.decorators import login_required, permission_required
+from .views import *
+'''
+Permissions definiert in models.py bei USERS und dann hier vor die View geschrieben!
+'''
+
+urlpatterns = [
+ path('', permission_required('users.recoverdirmanager')(RecoverDirManagement.as_view(template_name="recoverdir/rd_management.html")), name='recoverdir'),
+ path('addpl/', permission_required('users.recoverdirmanager')(RecoverDirAddPL.as_view(template_name="recoverdir/rd_pers_add.html")), name='recoverdir-addpl'),
+ path('updatepl/
', permission_required('users.recoverdirmanager')(RecoverDirUpdatePL.as_view(template_name="recoverdir/rd_pers_update.html")), name='recoverdir-updatepl'),
+
+
+
+
+]
\ No newline at end of file
diff --git a/recoverdir/views.py b/recoverdir/views.py
new file mode 100644
index 0000000..faedee8
--- /dev/null
+++ b/recoverdir/views.py
@@ -0,0 +1,47 @@
+from django.shortcuts import render
+from django.contrib.auth.mixins import LoginRequiredMixin
+from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView
+from .models import *
+from .forms import *
+from django.urls import reverse_lazy
+
+# Create your views here.
+class RecoverDirManagement(LoginRequiredMixin, ListView):
+ model = PersLetter
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ context.update({
+ 'active_link' : 'recoverdir',
+ 'persletter' : PersLetter.objects.filter(agency=self.request.user.profile.agency)
+ })
+ return context
+
+class RecoverDirAddPL(CreateView):
+ model = PersLetter
+ success_url = reverse_lazy('recoverdir')
+ form_class = PersLetterForm
+ template_name = "recoverdir/rd_pers_add.html"
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ context.update({
+ 'active_link' : 'recoverdir',
+ })
+ return context
+
+ def form_valid(self, form):
+ form.instance.agency = self.request.user.profile.agency
+ form.instance.user = self.request.user
+ return super().form_valid(form)
+
+class RecoverDirUpdatePL(UpdateView):
+ model = PersLetter
+ success_url = reverse_lazy('recoverdir')
+ form_class = PersLetterForm
+ template_name = "recoverdir/rd_pers_update.html"
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ context.update({'active_link' : 'recoverdir'})
+ return context
diff --git a/timemanagement/forms.py b/timemanagement/forms.py
index b507256..83499cf 100644
--- a/timemanagement/forms.py
+++ b/timemanagement/forms.py
@@ -161,6 +161,7 @@ class UpdateWorkdayForm(forms.ModelForm):
super(UpdateWorkdayForm, self).__init__(*arg, **kwargs)
self.fields['start'].required = True
self.fields['end'].required = True
+
# ADD WORKDAY FORM
class AddWorkdayForm(forms.ModelForm):
diff --git a/users/admin.py b/users/admin.py
index 4cd030c..cf9e108 100644
--- a/users/admin.py
+++ b/users/admin.py
@@ -8,6 +8,7 @@ from cloud.models import DataFile
from organizer.models import AGContacts
from timemanagement.models import Workday, Breaks, AbsenceReason, FreeDays, Absence
from chat.models import ChatRoom
+from recoverdir.models import PersLetter
admin.site.register(StandardComments)
admin.site.register(StandardCommentRate)
@@ -32,3 +33,4 @@ admin.site.register(UserYearAbsenceInfo)
admin.site.register(ChatRoom)
admin.site.register(UserNotifications)
admin.site.register(AgencyBills)
+admin.site.register(PersLetter)
diff --git a/users/models.py b/users/models.py
index 05b98be..9b596ff 100644
--- a/users/models.py
+++ b/users/models.py
@@ -133,6 +133,11 @@ class Agency(models.Model):
vve = models.CharField(default="", max_length=200, blank=True)
+
+
+ # RECOVERDIR
+ module_recoverdir = models.BooleanField(default=False)
+
def __str__(self):
return f'{self.name}'
@@ -479,7 +484,8 @@ class AgencyGroup(models.Model):
('filesmanager', 'Dateien bearbeiten'),
('filedirmanager', 'Ordner bearbeiten'),
('filesviewer', 'Dateien lesen'),
- ('absencemanager', 'Abwesenheiten verwalten')
+ ('absencemanager', 'Abwesenheiten verwalten'),
+ ('recoverdirmanager', 'Notfallordner verwalten')
]
# SUBCLASS
diff --git a/users/templates/users/base.html b/users/templates/users/base.html
index 96359ae..4d28574 100644
--- a/users/templates/users/base.html
+++ b/users/templates/users/base.html
@@ -176,7 +176,7 @@
@@ -206,6 +206,19 @@
{% endif %}
+ {% if request.user.profile.agency.module_recoverdir and request.user|usergperm:"recoverdirmanager" %}
+ {% if active_link == 'recoverdir' %}
+
+ {% else%}
+
+ {%endif%}
+
+
+ Notfallordner
+
+
+ {% endif %}
+