228 lines
6.9 KiB
Python
228 lines
6.9 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
|
|
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 = Documents.objects.filter(agency=self.request.user.profile.agency, area=1)
|
|
|
|
finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, documents)
|
|
context.update({"history" : finalupdatelist})
|
|
|
|
print(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)})
|
|
|
|
|
|
# Dokumente
|
|
context.update({'area_1_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=1).order_by('-document_date')})
|
|
|
|
|
|
return context
|
|
|
|
|
|
class PLSingle(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
|
|
|
|
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))
|
|
|
|
# NOTFALLORDNER 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 = 1
|
|
|
|
# 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'
|
|
|
|
# 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
|
|
|
|
|
|
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 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
|
|
|
|
|
|
|
|
|
|
|