409 lines
12 KiB
Python
409 lines
12 KiB
Python
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
|
|
from django.contrib.auth.decorators import login_required
|
|
import os
|
|
import sys
|
|
from django.conf import settings
|
|
from django.http import JsonResponse, HttpResponse, Http404
|
|
from django_encrypted_filefield.views import FetchView
|
|
import string, random
|
|
from itertools import chain
|
|
|
|
# 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'})
|
|
|
|
# PERSÖNLICHER BRIEF
|
|
persletter = None
|
|
if(len(PersLetter.objects.filter(agency=self.request.user.profile.agency)) == 1):
|
|
persletter = PersLetter.objects.filter(agency=self.request.user.profile.agency)[0]
|
|
context.update({'persletter' : persletter})
|
|
|
|
# Load Update-Historys
|
|
# AREA 1
|
|
persletters = PersLetter.objects.filter(agency=self.request.user.profile.agency)
|
|
handlungsleitfaden = Handlungsleitfaden.objects.filter(agency=self.request.user.profile.agency)
|
|
contactfc = RDContact.objects.filter(agency=self.request.user.profile.agency)
|
|
contactstrust = RDTrustPerson.objects.filter(agency=self.request.user.profile.agency)
|
|
|
|
# DOCUMENTS NOT WORKING Weil das "alte" nicht gespeichert wird sondern lediglich der Datensatz
|
|
#documents = Documents.objects.filter(agency=self.request.user.profile.agency, area=1)
|
|
|
|
# AREA 2
|
|
handlungsleitfadenvf = HandlungsleitfadenVF.objects.filter(agency=self.request.user.profile.agency)
|
|
|
|
finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, handlungsleitfadenvf)
|
|
context.update({"history" : finalupdatelist})
|
|
# Bereich 1 - Handlungsleitfaden ########## ########## ########## ########## ########## ##########
|
|
# Handlungsleitfaden
|
|
hl = Handlungsleitfaden.objects.filter(agency=self.request.user.profile.agency)
|
|
if(len(hl) == 1):
|
|
hl = Handlungsleitfaden.objects.filter(agency=self.request.user.profile.agency)[0]
|
|
else:
|
|
hl = None
|
|
context.update({'area_1_hl' : hl})
|
|
|
|
# Familien-Freunde
|
|
context.update({'area_1_fc' : RDContact.objects.filter(agency=self.request.user.profile.agency)})
|
|
|
|
# Vertrauensperson
|
|
context.update({'area_1_trust' : RDTrustPerson.objects.filter(agency=self.request.user.profile.agency)})
|
|
|
|
hlfv = HandlungsleitfadenVF.objects.filter(agency=self.request.user.profile.agency)
|
|
if(len(hlfv) == 1):
|
|
hlfv = HandlungsleitfadenVF.objects.filter(agency=self.request.user.profile.agency)[0]
|
|
else:
|
|
hlfv = None
|
|
context.update({'area_2_hlfv' : hlfv})
|
|
|
|
|
|
# Dokumente
|
|
# A1
|
|
context.update({'area_1_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=1).order_by('-document_date')})
|
|
# A2
|
|
context.update({'area_2_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=2).order_by('-document_date')})
|
|
|
|
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
|
|
# TASK: Hier Aktualisierung hinzufügen!
|
|
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
|
|
|
|
def form_valid(self, form):
|
|
# TASK: Hier Aktualisierung hinzufügen!
|
|
return super().form_valid(form)
|
|
|
|
|
|
def randomString(stringLength=40):
|
|
"""Generate a random string of fixed length """
|
|
letters = string.ascii_lowercase
|
|
return ''.join(random.choice(letters) for i in range(stringLength))
|
|
|
|
# Notfallhilfe ELEMENTE
|
|
|
|
# ABNSCHNITT 1
|
|
class RDAoneAddDoc(CreateView):
|
|
model = Documents
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = DocumentForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html"
|
|
|
|
def form_valid(self, form):
|
|
form.instance.agency = self.request.user.profile.agency
|
|
form.instance.area = self.kwargs["area"]
|
|
|
|
# Randomize File-Name keeping extension
|
|
file = self.request.FILES['document']
|
|
file_ext_arr = file.name.split(".")
|
|
file_ext = file_ext_arr[len(file_ext_arr)-1]
|
|
file.name = randomString() + "." + file_ext
|
|
form.instance.document = file
|
|
return super().form_valid(form)
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
|
|
# Einzeldokumentenanzeige
|
|
class RDAoneViewDoc(DetailView):
|
|
model = Documents
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_doc_single.html'
|
|
context_object_name = 'document'
|
|
|
|
class RDAoneDelDoc(DeleteView):
|
|
model = Documents
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_doc_del.html'
|
|
context_object_name = 'document'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAoneUpdateDoc(UpdateView):
|
|
model = Documents
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = DocumentForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html"
|
|
|
|
def form_valid(self, form):
|
|
|
|
if(self.request.FILES and self.request.FILES['document']):
|
|
# Randomize File-Name keeping extension
|
|
file = self.request.FILES['document']
|
|
file_ext_arr = file.name.split(".")
|
|
file_ext = file_ext_arr[len(file_ext_arr)-1]
|
|
file.name = randomString() + "." + file_ext
|
|
form.instance.document = file
|
|
return super().form_valid(form)
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
# Handlungsleitfaden
|
|
# ABNSCHNITT 1
|
|
class RDAoneAddHL(CreateView):
|
|
model = Handlungsleitfaden
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = HLForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addhl.html"
|
|
|
|
def form_valid(self, form):
|
|
form.instance.agency = self.request.user.profile.agency
|
|
return super().form_valid(form)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAoneUpdateHL(UpdateView):
|
|
model = Handlungsleitfaden
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = HLForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addhl.html"
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
# FAMILIEN
|
|
class RDAoneAddFC(CreateView):
|
|
model = RDContact
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = RDContactF
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html"
|
|
|
|
def form_valid(self, form):
|
|
form.instance.agency = self.request.user.profile.agency
|
|
return super().form_valid(form)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAoneUpdateContact(UpdateView):
|
|
model = RDContact
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = RDContactF
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html"
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
|
|
class RDAoneViewContact(DetailView):
|
|
model = RDContact
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_elements_forms/rd_area_1_contact_single.html'
|
|
context_object_name = 'contact'
|
|
|
|
class RDAoneDelContact(DeleteView):
|
|
model = RDContact
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_elements_forms/rd_area_1_contact_del.html'
|
|
context_object_name = 'contact'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
|
|
# VERTRAUENSPERSON
|
|
class RDAoneViewTrust(DetailView):
|
|
model = RDTrustPerson
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_elements_forms/rd_area_1_trust_single.html'
|
|
context_object_name = 'contact'
|
|
|
|
class RDAoneDelTrust(DeleteView):
|
|
model = RDTrustPerson
|
|
success_url = reverse_lazy('recoverdir')
|
|
template_name = 'recoverdir/rd_elements_forms/rd_area_1_trust_del.html'
|
|
context_object_name = 'contact'
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAoneAddTrust(CreateView):
|
|
model = RDTrustPerson
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = RDTrustPersonF
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html"
|
|
|
|
def form_valid(self, form):
|
|
form.instance.agency = self.request.user.profile.agency
|
|
return super().form_valid(form)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAoneUpdateTrust(UpdateView):
|
|
model = RDTrustPerson
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = RDTrustPersonF
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html"
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
########################## ABSCHNITT 2 ##################################
|
|
# Handlungsleitfaden Finanzen und Vorsorge
|
|
class RDAtwoAddHLFV(CreateView):
|
|
model = HandlungsleitfadenVF
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = HLFVForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html"
|
|
|
|
def form_valid(self, form):
|
|
form.instance.agency = self.request.user.profile.agency
|
|
return super().form_valid(form)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
class RDAtwoUpdateFV(UpdateView):
|
|
model = HandlungsleitfadenVF
|
|
success_url = reverse_lazy('recoverdir')
|
|
form_class = HLFVForm
|
|
template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html"
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
return context
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########################## HISTORY ELEMENT VIEW ##################################
|
|
|
|
|
|
# Persönliches Schreiben
|
|
class PLSingleHistory(DetailView):
|
|
model = PersLetter
|
|
template_name = 'recoverdir/rd_persletter_single.html'
|
|
context_object_name = 'persletter'
|
|
|
|
# Gewünschte Revision aufrufen
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
|
|
historyelements = PersLetter.objects.get(pk=self.kwargs['pk']).history.all()
|
|
|
|
shown_element = None
|
|
for he in historyelements:
|
|
if he.pk == self.kwargs["rev"]:
|
|
shown_element = he
|
|
|
|
context.update({
|
|
'historyelement' : shown_element,
|
|
})
|
|
return context
|
|
|
|
# CONTACT
|
|
class ContactSingleHistory(DetailView):
|
|
model = RDContact
|
|
template_name = 'recoverdir/rd_elements_forms/rd_area_1_contact_single.html'
|
|
|
|
# Gewünschte Revision aufrufen
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
|
|
historyelements = RDContact.objects.get(pk=self.kwargs['pk']).history.all()
|
|
|
|
shown_element = None
|
|
for he in historyelements:
|
|
if he.pk == self.kwargs["rev"]:
|
|
shown_element = he
|
|
|
|
context.update({
|
|
'contact' : shown_element,
|
|
'history' : True
|
|
})
|
|
return context
|
|
|
|
# DOCUMENT
|
|
class DocumentSingleHistory(DetailView):
|
|
model = Documents
|
|
template_name = 'recoverdir/rd_doc_single.html'
|
|
|
|
# Gewünschte Revision aufrufen
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
context.update({'active_link' : 'recoverdir'})
|
|
|
|
historyelements = Documents.objects.get(pk=self.kwargs['pk']).history.all()
|
|
|
|
shown_element = None
|
|
for he in historyelements:
|
|
if he.pk == self.kwargs["rev"]:
|
|
shown_element = he
|
|
|
|
context.update({
|
|
'document' : shown_element,
|
|
'history' : True
|
|
})
|
|
return context
|
|
|