Bereich 3 fertig

This commit is contained in:
holger.trampe 2020-10-06 17:12:41 +02:00
parent 5f9dba60af
commit e2038c91fb
13 changed files with 328 additions and 20 deletions

View File

@ -74,7 +74,24 @@ class HLFVForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(HLFVForm, self).__init__(*args, **kwargs)
# Streamingabo
class StreamingAboF(forms.ModelForm):
class Meta:
model = StreamingAbo
fields = ['name','username','password','accountactivity','vollmacht_doc']
labels = {
'name': 'Name des Streamingdienstes',
'username' : 'Benutzername',
'password' : 'Passwort',
'accountactivity' : 'Was mit dem Account geschehen soll',
'vollmacht_doc' : 'Vollmacht'
}
def __init__(self, *args, **kwargs):
super(StreamingAboF, self).__init__(*args, **kwargs)
self.fields['password'] = forms.CharField(widget=forms.PasswordInput, label="Passwort")
# Familienkontakte
class RDContactF(forms.ModelForm):

View File

@ -131,12 +131,14 @@ class OnlineBank(models.Model):
vollmacht_doc = EncryptedFileField(upload_to=rd_path_agency, blank=True)
history = HistoricalRecords()
class StreamingAbo(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.CASCADE, null=True)
name = 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))
vollmacht_doc = EncryptedFileField(upload_to=rd_path_agency, blank=True)
history = HistoricalRecords()

View File

@ -1,13 +1,13 @@
{% if area_1_hl == None %}
<a class="btn btn-primary btn" href="{% url 'rd-a1-hl' %}"><i class="fas fa-plus"></i>&nbsp;Handlungsleitfaden</a>
<a class="btn btn-primary btn btn-sm " href="{% url 'rd-a1-hl' %}"><i class="fas fa-plus"></i>&nbsp;Handlungsleitfaden</a>
{% else %}
<h4><a href="{% url 'rd-a1-hl-update' area_1_hl.pk %}">Handlungsleitfaden bearbeiten</a></h4>
{% endif %}
<hr>
<h4>Familie und Freunde
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a1-addfamily' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Kontakt</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a1-addfamily' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Kontakt</a>
</h4>
<table class="table table-hover" id="a1_fc" >
<thead>
@ -38,7 +38,7 @@
<hr>
<h4>Vertrauensperson
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a1-addtrust' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vertrauensperson</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a1-addtrust' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vertrauensperson</a>
</h4>
<table class="table table-hover" id="a1_trust" >
<thead>
@ -69,7 +69,7 @@
<hr>
<h4>Vorsorgedokumente
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a1-adddoc' 1 %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vorsorgedokument</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a1-adddoc' 1 %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vorsorgedokument</a>
</h4>
<table class="table table-hover" id="a1_docs" >
<thead>

View File

@ -1,12 +1,12 @@
{% if area_2_hlfv == None %}
<a class="btn btn-primary btn" href="{% url 'rd-a2-hlfv' %}"><i class="fas fa-plus"></i>&nbsp;Handlungsleitfaden Vorsorge & Finanzen</a>
<a class="btn btn-primary btn btn-sm " href="{% url 'rd-a2-hlfv' %}"><i class="fas fa-plus"></i>&nbsp;Handlungsleitfaden Vorsorge & Finanzen</a>
{% else %}
<h4><a href="{% url 'rd-a2-hlfv-update' area_2_hlfv.pk %}">Handlungsleitfaden für Vorsorge & Finanzen bearbeiten</a></h4>
{% endif %}
<hr>
<h4>Bank-, Konto- & Depot-Vollmachten
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a2-adddeposit' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vollmacht</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a2-adddeposit' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Vollmacht</a>
</h4>
<table class="table table-hover" id="a2_deposit" >
<thead>
@ -35,7 +35,7 @@
<hr>
<h4>Digitaler Versicherungsordner
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a2-addergo' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Zugangsdaten</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a2-addergo' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Zugangsdaten</a>
</h4>
<table class="table table-hover" id="a2_ergo" >
<thead>
@ -61,7 +61,7 @@
<hr>
<h4>Online-Banking
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a2-addonlinebank' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Online-Banking</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a2-addonlinebank' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Online-Banking</a>
</h4>
<table class="table table-hover" id="area_2_onlinebank" >
<thead>
@ -87,7 +87,7 @@
<hr>
<h4>Wertpapiere, Versicherungsscheine & Altersvorsorge
<a class="btn btn-primary btn mb-3" href="{% url 'rd-a1-adddoc' 2 %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Dokument</a>
<a class="btn btn-primary btn mb-3 btn-sm " href="{% url 'rd-a1-adddoc' 2 %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Dokument</a>
</h4>
<table class="table table-hover" id="a2_docs" >
<thead>

View File

@ -1 +1,103 @@
DRIITTE
<h4>Streaming Abonnements
<a class="btn btn-primary btn btn-sm mb-3" href="{% url 'rd-a3-addstreaming' %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Streaming-Abo</a>
</h4>
<table class="table table-hover" id="a3_abos" >
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Benutzername</th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody >
{% for ele in area_3_abos %}
<tr>
<td>{{ele.name|default:""}}</td>
<td>{{ele.username|default:""}}</td>
<td>
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a3-viewstreaming' ele.pk %}"><i class="far fa-eye"></i></a>&nbsp;
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a3-updatestreaming' ele.pk %}"><small><i class="fas fa-pen"></i></small></a>&nbsp;
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a3-delstreaming' ele.pk %}"><small><i class="fas fa-trash"></i></small></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr>
<h4>Verträge
<a class="btn btn-primary btn-sm btn mb-3" href="{% url 'rd-a1-adddoc' 3 %}" style="float: right;"><i class="fas fa-plus"></i>&nbsp;Dokument</a>
</h4>
<table class="table table-hover" id="a3_docs" >
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Datum</th>
<th scope="col">Beschreibung</th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody >
{% for doc in area_3_doc %}
<tr>
<td><a href="{% url 'rd-a1-viewdoc' doc.pk %}" target="_blank">{{doc.document_name}}</a></td>
<td>{{doc.document_date|date:"d.m.Y"|default:""}}</td>
<td>{{doc.document_desc|default:""}}</td>
<td>
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a1-viewdoc' doc.pk %}"><i class="far fa-eye"></i></a>&nbsp;
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a1-updatedoc' doc.pk %}"><small><i class="fas fa-pen"></i></small></a>&nbsp;
<a style="float: right" class="btn btn-secondary btn-sm mr-2 " href="{% url 'rd-a1-deldoc' doc.pk %}"><small><i class="fas fa-trash"></i></small></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<script type="text/javascript">
$(document).ready(function(){
$('#a3_docs').DataTable({
"language": {
"search" : "Suche",
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"lengthMenu": "Zeige _MENU_ Einträge",
"zeroRecords": "Nichts gefunden",
"infoEmpty": "Keine Einträge",
"paginate": {
"first": "Erste",
"last": "Letzte",
"next": "Nächste",
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
$('#a3_abos').DataTable({
"language": {
"search" : "Suche",
"info": "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
"lengthMenu": "Zeige _MENU_ Einträge",
"zeroRecords": "Nichts gefunden",
"infoEmpty": "Keine Einträge",
"paginate": {
"first": "Erste",
"last": "Letzte",
"next": "Nächste",
"previous": "Zurück"
},
},
"pageLength": 50,
"buttons" : {
"className" : "btn-danger"
}
});
});
</script>

View File

@ -0,0 +1,20 @@
{% extends "users/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
{% if request.user.profile.agency.module_recoverdir %}
<div class="content-section col-9">
<h3>Streaming-Account bearbeiten</h3>
<hr>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.media}}
{{form|crispy}}
<hr>
<a class="btn" href="{% url 'recoverdir' %} ">Abbrechen</a>
<button type="submit" class="btn btn-primary" style="float: right;">Streaming-Account speichern</button>&nbsp;
</form>
</div>
{% else %}
<h3>Das Modul Notfallhilfe wurden in ihrer Agentur deaktiviert.</h3>
{% endif %}
{% endblock content %}

View File

@ -0,0 +1,20 @@
{% extends "users/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
{% if request.user.profile.agency.module_recoverdir %}
<div class="content-section col-9">
<h3>Streaming-Account löschen</h3>
<hr>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form|crispy }}
Möchten Sie die Daten für den Streamingdienst <i>{{streaming.name}}</i> wirklich endgültig löschen?
<hr>
<a class="btn" href="{% url 'recoverdir' %} ">Abbrechen</a>
<button type="submit" class="btn btn-primary" style="float: right;">Streaming-Account endgültig löschen</button>&nbsp;
</form>
</div>
{% else %}
<h3>Das Modul Notfallhilfe wurden in ihrer Agentur deaktiviert.</h3>
{% endif %}
{% endblock content %}

View File

@ -0,0 +1,38 @@
{% extends "users/base.html" %}
{% block content %}
{% if request.user.profile.agency.module_recoverdir %}
<div class="content-section col-12">
<h3>Streaming-Dienst {% if history == True %} - Version vom {{streaming.history_date|date:"d.m.Y"}}{% endif %}
<span style="float: right">
<a href="{% url 'recoverdir'%}" style="float: right" class="btn btn-secondary btn-sm "><small><i class="fas fa-chevron-circle-left"></i></small></a>
</span>
</h3>
<hr>
<h4>Streaming-Dienst</h4>
<table>
<tr>
<td>Name:</td>
<td>{{streaming.name}}</td>
</tr>
<tr>
<td>Benutzername:</td>
<td>{{streaming.username|default:""}}</td>
</tr>
<tr>
<td>Passwort:</td>
<td>{{streaming.password|default:""}}</td>
</tr>
<tr>
<td>Mit meinem Account soll Folgendes passieren:</td>
<td>{{streaming.accountactivity|default:""}}</td>
</tr>
</table>
<hr>
{% if streaming.vollmacht_doc %}
<h4><a href="{% url 'getdoc' streaming.vollmacht_doc %}" target="_blank">Vollmachtsdokument anschauen</a></h4>
{% endif %}
</div>
{% else %}
<h3>Auf dieses Modul haben Sie keinen Zugriff!</h3>
{% endif %}
{% endblock content %}

View File

@ -18,6 +18,7 @@
6 = Vollmacht für Banken usw.
7 = ErgoVerDir
8 = OnlineBank
9 = Streaming-Abo
-->
<tbody>
{% for ele in history %}
@ -51,6 +52,11 @@
{% elif hisotryelementinfo.1 == 8 %}
<a href="{% url 'recoverdir-onlinebankhistory-single' ele.pk rdele.pk %}">{{hisotryelementinfo.0}}</a>
{% elif hisotryelementinfo.1 == 9 %}
<a href="{% url 'recoverdir-streaminghistory-single' ele.pk rdele.pk %}">{{hisotryelementinfo.0}}</a>
{% endif %}
</td>
<td>{{rdele.history_date|date:"d.m.Y H:i"}}</td>

View File

@ -62,6 +62,12 @@ urlpatterns = [
path('two/onlinebank/del/<int:pk>', permission_required('users.recoverdirmanager')(RDAtwoDelonlinebank.as_view()), name='rd-a2-delonlinebank'),
path('two/onlinebank/update/<int:pk>', permission_required('users.recoverdirmanager')(RDAtwoUpdateonlinebank.as_view()), name='rd-a2-updateonlinebank'),
# BEREICH 3
# Streamingdienste
path('three/streaming/add', permission_required('users.recoverdirmanager')(RDAthreeAddstreaming.as_view()), name='rd-a3-addstreaming'),
path('three/streaming/<int:pk>', permission_required('users.recoverdirmanager')(RDAthreeViewstreaming.as_view()), name='rd-a3-viewstreaming'),
path('three/streaming/del/<int:pk>', permission_required('users.recoverdirmanager')(RDAthreeDelstreaming.as_view()), name='rd-a3-delstreaming'),
path('three/streaming/update/<int:pk>', permission_required('users.recoverdirmanager')(RDAthreeUpdatestreaming.as_view()), name='rd-a3-updatestreaming'),
# HISTORY VIEWS
@ -83,6 +89,7 @@ urlpatterns = [
path('ergo/ver/<int:pk>/<int:rev>', permission_required('users.recoverdirmanager')(ErgoSingleHistory.as_view()), name='recoverdir-ergohistory-single'),
# Online Bank
path('onlinebank/ver/<int:pk>/<int:rev>', permission_required('users.recoverdirmanager')(OnlinebankSingleHistory.as_view()), name='recoverdir-onlinebankhistory-single'),
path('streaming/ver/<int:pk>/<int:rev>', permission_required('users.recoverdirmanager')(StreamingSingleHistory.as_view()), name='recoverdir-streaminghistory-single'),

View File

@ -40,9 +40,14 @@ class RecoverDirManagement(LoginRequiredMixin, ListView):
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})
handlungsleitfadenvf = HandlungsleitfadenVF.objects.filter(agency=self.request.user.profile.agency)
finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, handlungsleitfadenvf, depistvollmacht, ergodigi, onlinebank)
finalupdatelist = chain(persletters, handlungsleitfaden, contactfc, contactstrust, handlungsleitfadenvf, depistvollmacht, ergodigi, onlinebank, streamingabo)
context.update({"history" : finalupdatelist})
# DOCUMENTS NOT WORKING Weil das "alte" nicht gespeichert wird sondern lediglich der Datensatz
@ -80,6 +85,8 @@ class RecoverDirManagement(LoginRequiredMixin, ListView):
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')})
# A3
context.update({'area_3_doc' : Documents.objects.filter(agency=self.request.user.profile.agency, area=3).order_by('-document_date')})
return context
@ -507,8 +514,70 @@ class RDAtwoUpdateonlinebank(UpdateView):
context.update({'active_link' : 'recoverdir'})
return context
# Streaming Abo
class RDAthreeViewstreaming(DetailView):
model = StreamingAbo
success_url = reverse_lazy('recoverdir')
template_name = 'recoverdir/rd_elements_forms/rd_area_3_streamingabo_single.html'
context_object_name = 'streaming'
########################## HISTORY ELEMENT VIEW ##################################
class RDAthreeDelstreaming(DeleteView):
model = StreamingAbo
success_url = reverse_lazy('recoverdir')
template_name = 'recoverdir/rd_elements_forms/rd_area_3_streamingabo_del.html'
context_object_name = 'streaming'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({'active_link' : 'recoverdir'})
return context
class RDAthreeAddstreaming(CreateView):
model = StreamingAbo
success_url = reverse_lazy('recoverdir')
form_class = StreamingAboF
template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.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 RDAthreeUpdatestreaming(UpdateView):
model = StreamingAbo
success_url = reverse_lazy('recoverdir')
form_class = StreamingAboF
template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.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
@ -720,6 +789,28 @@ class OnlinebankSingleHistory(DetailView):
})
return context
# StreamingAbo
class StreamingSingleHistory(DetailView):
model = StreamingAbo
template_name = 'recoverdir/rd_elements_forms/rd_area_3_streamingabo_single.html'
# Gewünschte Revision aufrufen
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({'active_link' : 'recoverdir'})
historyelements = StreamingAbo.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({
'streaming' : shown_element,
'history' : True
})
return context

View File

@ -759,7 +759,9 @@ def getHistoryClassOfObject(value):
finalclass[0] = ""
finalclass[1] = ""
objectClass = value.__class__.__name__
print(objectClass)
#print(objectClass)
if(objectClass == 'HistoricalDocuments'):
finalclass[0] = "Dokument"
finalclass[1] = 0
@ -787,6 +789,9 @@ def getHistoryClassOfObject(value):
elif(objectClass == 'HistoricalOnlineBank'):
finalclass[0] = "Online Bank"
finalclass[1] = 8
elif(objectClass == 'HistoricalStreamingAbo'):
finalclass[0] = "Streaming-Abo"
finalclass[1] = 9
return finalclass