diff --git a/recoverdir/forms.py b/recoverdir/forms.py index ae4b8ac..a58c840 100644 --- a/recoverdir/forms.py +++ b/recoverdir/forms.py @@ -92,6 +92,26 @@ class StreamingAboF(forms.ModelForm): super(StreamingAboF, self).__init__(*args, **kwargs) self.fields['password'] = forms.CharField(widget=forms.PasswordInput, label="Passwort") +# DigitalAccountsF +class DigitalAccountsF(forms.ModelForm): + + class Meta: + model = DigitalAccounts + fields = ['name','link','mail','username','password','accountactivity','vollmacht_doc'] + labels = { + 'name':"Name des Online-Dienstes", + 'link':"Webseite", + 'username':"Benutzername", + 'password':"Passwort", + 'mail':"E-Mailadresse zur Anmeldung/im Account", + 'accountactivity':"Was soll mit diesem Account geschehen (weiterleiten, löschen, sichern etc.)?", + 'vollmacht_doc' : "Vollmacht" + } + def __init__(self, *args, **kwargs): + super(DigitalAccountsF, self).__init__(*args, **kwargs) + self.fields['password'] = forms.CharField(widget=forms.PasswordInput, label="Passwort") + + # Familienkontakte class RDContactF(forms.ModelForm): diff --git a/recoverdir/models.py b/recoverdir/models.py index 2cac806..c449c8a 100644 --- a/recoverdir/models.py +++ b/recoverdir/models.py @@ -140,6 +140,17 @@ class StreamingAbo(models.Model): vollmacht_doc = EncryptedFileField(upload_to=rd_path_agency, blank=True) history = HistoricalRecords() +class DigitalAccounts(models.Model): + agency = models.ForeignKey(Agency, on_delete=models.CASCADE, null=True) + name = encrypt(models.CharField(max_length=500, blank=True, default="", null=True)) + link = encrypt(models.CharField(max_length=500, blank=True, default="", null=True)) + username = encrypt(models.CharField(max_length=500, blank=True, default="", null=True)) + password = encrypt(models.CharField(max_length=500, blank=True, default="", null=True)) + accountactivity = encrypt(models.CharField(max_length=5000, blank=True, default="", null=True)) + mail = encrypt(models.EmailField(max_length=500, blank=True, default="", null=True)) + vollmacht_doc = EncryptedFileField(upload_to=rd_path_agency, blank=True) + history = HistoricalRecords() + diff --git a/recoverdir/templates/recoverdir/rd_areas/rd_area_1.html b/recoverdir/templates/recoverdir/rd_areas/rd_area_1.html index bf2403a..9c04da6 100644 --- a/recoverdir/templates/recoverdir/rd_areas/rd_area_1.html +++ b/recoverdir/templates/recoverdir/rd_areas/rd_area_1.html @@ -2,7 +2,7 @@ {% if area_1_hl == None %}  Handlungsleitfaden {% else %} -

Handlungsleitfaden bearbeiten

+
Handlungsleitfaden bearbeiten
{% endif %}
diff --git a/recoverdir/templates/recoverdir/rd_areas/rd_area_2.html b/recoverdir/templates/recoverdir/rd_areas/rd_area_2.html index e9a3bfa..9bc75db 100644 --- a/recoverdir/templates/recoverdir/rd_areas/rd_area_2.html +++ b/recoverdir/templates/recoverdir/rd_areas/rd_area_2.html @@ -1,7 +1,7 @@ {% if area_2_hlfv == None %}  Handlungsleitfaden Vorsorge & Finanzen {% else %} -

Handlungsleitfaden für Vorsorge & Finanzen bearbeiten

+
Handlungsleitfaden für Vorsorge & Finanzen bearbeiten
{% endif %}
diff --git a/recoverdir/templates/recoverdir/rd_areas/rd_area_4.html b/recoverdir/templates/recoverdir/rd_areas/rd_area_4.html index 4413e6a..89e8f64 100644 --- a/recoverdir/templates/recoverdir/rd_areas/rd_area_4.html +++ b/recoverdir/templates/recoverdir/rd_areas/rd_area_4.html @@ -1 +1,103 @@ -VIERTE \ No newline at end of file +

Online-Accounts (Messenger, E-Mail-Accounts, Social-Media etc.) + Online-Account +

+ + + + + + + + + + + {% for ele in area_4_digitalaccount %} + + + + + + + {% endfor %} + +
NameLinkBenutzername 
{{ele.name|default:""}}{{ele.link|default:""}}{{ele.username|default:""}} +   +   + +
+
+

Dokumente + Dokument +

+ + + + + + + + + + + {% for doc in area_4_doc %} + + + + + + + {% endfor %} + +
NameDatumBeschreibung 
{{doc.document_name}}{{doc.document_date|date:"d.m.Y"|default:""}}{{doc.document_desc|default:""}} +   +   + +
+ + \ No newline at end of file diff --git a/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html new file mode 100644 index 0000000..7ea923e --- /dev/null +++ b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html @@ -0,0 +1,21 @@ +{% extends "users/base.html" %} +{% load crispy_forms_tags %} +{% block content %} +{% if request.user.profile.agency.module_recoverdir %} +
+

Online-Account bearbeiten

+
+
+

Nutzen Sie die Maske zur Speicherung von E-Mail, Messenger, Geräteanmeldung und PINs, Internetdomains usw..

+ {% csrf_token %} + {{form.media}} + {{form|crispy}} +
+ Abbrechen +   +
+
+{% else %} +

Das Modul Notfallhilfe wurden in ihrer Agentur deaktiviert.

+{% endif %} +{% endblock content %} diff --git a/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_del.html b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_del.html new file mode 100644 index 0000000..d2df4d1 --- /dev/null +++ b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_del.html @@ -0,0 +1,20 @@ +{% extends "users/base.html" %} +{% load crispy_forms_tags %} +{% block content %} +{% if request.user.profile.agency.module_recoverdir %} +
+

Online-Account löschen

+
+
+ {% csrf_token %} + {{ form|crispy }} + Möchten Sie die Daten für den Online-Account {{account.name}} wirklich endgültig löschen? +
+ Abbrechen +   +
+
+{% else %} +

Das Modul Notfallhilfe wurden in ihrer Agentur deaktiviert.

+{% endif %} +{% endblock content %} diff --git a/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html new file mode 100644 index 0000000..6388251 --- /dev/null +++ b/recoverdir/templates/recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html @@ -0,0 +1,47 @@ +{% extends "users/base.html" %} +{% block content %} +{% if request.user.profile.agency.module_recoverdir %} +
+

Online-Account {% if history == True %} - Version vom {{account.history_date|date:"d.m.Y"}}{% endif %} + + + +

+
+

Online-Account

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Name:{{account.name}}
Link:{{account.link}}
Benutzername:{{account.username|default:""}}
Passwort:{{account.password|default:""}}
E-Mail:{{account.mail|default:""}}
Mit meinem Account soll Folgendes passieren:{{account.accountactivity|default:""}}
+
+ {% if account.vollmacht_doc %} +

Vollmachtsdokument anschauen

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

Auf dieses Modul haben Sie keinen Zugriff!

+{% endif %} +{% endblock content %} + diff --git a/recoverdir/templates/recoverdir/rd_updates.html b/recoverdir/templates/recoverdir/rd_updates.html index 4408724..e80c434 100644 --- a/recoverdir/templates/recoverdir/rd_updates.html +++ b/recoverdir/templates/recoverdir/rd_updates.html @@ -9,7 +9,6 @@ + 10 = Digitaler Account +--> {% for ele in history %} {% for rdele in ele.history.all %} {% getHistoryClassOfObject rdele as hisotryelementinfo %} - {% if hisotryelementinfo.1 == 1 %} {{hisotryelementinfo.0}} @@ -55,14 +54,14 @@ {% elif hisotryelementinfo.1 == 9 %} {{hisotryelementinfo.0}} + {% elif hisotryelementinfo.1 == 10 %} + {{hisotryelementinfo.0}} - {% endif %} {{rdele.history_date|date:"d.m.Y H:i"}} {% gethistoryuser rdele.history_user_id as history_user %} - {% if history_user != None %} {{history_user.get_full_name}} {% else %} @@ -100,6 +99,5 @@ "order": [[ 1, "desc" ]] }); - }); \ No newline at end of file diff --git a/recoverdir/urls.py b/recoverdir/urls.py index 5b519e8..3317a06 100644 --- a/recoverdir/urls.py +++ b/recoverdir/urls.py @@ -69,6 +69,11 @@ urlpatterns = [ path('three/streaming/del/', permission_required('users.recoverdirmanager')(RDAthreeDelstreaming.as_view()), name='rd-a3-delstreaming'), path('three/streaming/update/', permission_required('users.recoverdirmanager')(RDAthreeUpdatestreaming.as_view()), name='rd-a3-updatestreaming'), + path('four/digitalaccount/add', permission_required('users.recoverdirmanager')(RDAfourAdddigitalaccount.as_view()), name='rd-a4-adddigitalaccount'), + path('four/digitalaccount/', permission_required('users.recoverdirmanager')(RDAfourViewdigitalaccount.as_view()), name='rd-a4-viewdigitalaccount'), + path('four/digitalaccount/del/', permission_required('users.recoverdirmanager')(RDAfourDeldigitalaccount.as_view()), name='rd-a4-deldigitalaccount'), + path('four/digitalaccount/update/', permission_required('users.recoverdirmanager')(RDAfourUpdatedigitalaccount.as_view()), name='rd-a4-updatedigitalaccount'), + # HISTORY VIEWS # Persönliches Schreiben @@ -88,8 +93,11 @@ urlpatterns = [ # Ergo Digitale Versicherungen path('ergo/ver//', permission_required('users.recoverdirmanager')(ErgoSingleHistory.as_view()), name='recoverdir-ergohistory-single'), # Online Bank - path('onlinebank/ver//', permission_required('users.recoverdirmanager')(OnlinebankSingleHistory.as_view()), name='recoverdir-onlinebankhistory-single'), + path('onlinebank/ver//', permission_required('users.recoverdirmanager')(OnlinebankSingleHistory.as_view()), name='recoverdir-onlinebankhistory-single'), + # STREAMINGABO path('streaming/ver//', permission_required('users.recoverdirmanager')(StreamingSingleHistory.as_view()), name='recoverdir-streaminghistory-single'), + + path('digitalaccount/ver//', permission_required('users.recoverdirmanager')(DigitalAccountSingleHistory.as_view()), name='recoverdir-digitalaccounthistory-single'), diff --git a/recoverdir/views.py b/recoverdir/views.py index 7489657..666c73f 100644 --- a/recoverdir/views.py +++ b/recoverdir/views.py @@ -34,20 +34,23 @@ class RecoverDirManagement(LoginRequiredMixin, ListView): contactfc = RDContact.objects.filter(agency=self.request.user.profile.agency) contactstrust = RDTrustPerson.objects.filter(agency=self.request.user.profile.agency) depistvollmacht = DepositVollmacht.objects.filter(agency=self.request.user.profile.agency) + ergodigi = ErgoVerDir.objects.filter(agency=self.request.user.profile.agency) context.update({"area_2_ergo" : ergodigi}) onlinebank = OnlineBank.objects.filter(agency=self.request.user.profile.agency) context.update({"area_2_onlinebank" : onlinebank}) - streamingabo = StreamingAbo.objects.filter(agency=self.request.user.profile.agency) context.update({"area_3_abos" : streamingabo}) + digitalaccount = DigitalAccounts.objects.filter(agency=self.request.user.profile.agency) + context.update({"area_4_digitalaccount" : digitalaccount}) + handlungsleitfadenvf = HandlungsleitfadenVF.objects.filter(agency=self.request.user.profile.agency) - finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, handlungsleitfadenvf, depistvollmacht, ergodigi, onlinebank, streamingabo) + finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, handlungsleitfadenvf, depistvollmacht, ergodigi, onlinebank, streamingabo, digitalaccount) context.update({"history" : finalupdatelist}) # DOCUMENTS NOT WORKING Weil das "alte" nicht gespeichert wird sondern lediglich der Datensatz @@ -88,6 +91,9 @@ class RecoverDirManagement(LoginRequiredMixin, ListView): # A3 context.update({'area_3_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=3).order_by('-document_date')}) + # A4 + context.update({'area_4_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=4).order_by('-document_date')}) + return context class RecoverDirAddPL(CreateView): @@ -577,7 +583,70 @@ class RDAthreeUpdatestreaming(UpdateView): context.update({'active_link' : 'recoverdir'}) return context -#################################################################### HISTORY ELEMENT VIEW ####################################################### +# Digitaler Account +class RDAfourViewdigitalaccount(DetailView): + model = DigitalAccounts + success_url = reverse_lazy('recoverdir') + template_name = 'recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html' + context_object_name = 'account' + +class RDAfourDeldigitalaccount(DeleteView): + model = DigitalAccounts + success_url = reverse_lazy('recoverdir') + template_name = 'recoverdir/rd_elements_forms/rd_area_4_digitalaccount_del.html' + context_object_name = 'account' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context.update({'active_link' : 'recoverdir'}) + return context + +class RDAfourAdddigitalaccount(CreateView): + model = DigitalAccounts + success_url = reverse_lazy('recoverdir') + form_class = DigitalAccountsF + template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html" + + def form_valid(self, form): + form.instance.agency = self.request.user.profile.agency + if(self.request.FILES and self.request.FILES['vollmacht_doc']): + # Randomize File-Name keeping extension + file = self.request.FILES['vollmacht_doc'] + file_ext_arr = file.name.split(".") + file_ext = file_ext_arr[len(file_ext_arr)-1] + file.name = randomString() + "." + file_ext + form.instance.vollmacht_doc = 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 + +class RDAfourUpdatedigitalaccount(UpdateView): + model = DigitalAccounts + success_url = reverse_lazy('recoverdir') + form_class = DigitalAccountsF + template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html" + + def form_valid(self, form): + form.instance.agency = self.request.user.profile.agency + if(self.request.FILES and self.request.FILES['vollmacht_doc']): + # Randomize File-Name keeping extension + file = self.request.FILES['vollmacht_doc'] + file_ext_arr = file.name.split(".") + file_ext = file_ext_arr[len(file_ext_arr)-1] + file.name = randomString() + "." + file_ext + form.instance.vollmacht_doc = 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 + +################################################## HISTORY ELEMENT VIEW ########################################## # Persönliches Schreiben @@ -812,10 +881,28 @@ class StreamingSingleHistory(DetailView): }) return context - - - - +# Digitaler Account +class DigitalAccountSingleHistory(DetailView): + model = DigitalAccounts + template_name = 'recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html' + + # Gewünschte Revision aufrufen + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context.update({'active_link' : 'recoverdir'}) + + historyelements = DigitalAccounts.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({ + 'account' : shown_element, + 'history' : True + }) + return context diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index 0069dbf..b61647c 100644 Binary files a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc and b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc differ diff --git a/standards/templatetags/counter_tag.py b/standards/templatetags/counter_tag.py index 2dc8276..212dcd6 100644 --- a/standards/templatetags/counter_tag.py +++ b/standards/templatetags/counter_tag.py @@ -792,6 +792,9 @@ def getHistoryClassOfObject(value): elif(objectClass == 'HistoricalStreamingAbo'): finalclass[0] = "Streaming-Abo" finalclass[1] = 9 + elif(objectClass == 'HistoricalDigitalAccounts'): + finalclass[0] = "Onine-Account" + finalclass[1] = 10 return finalclass