diff --git a/adm/templates/adm/adm_admdelconfirm.html b/adm/templates/adm/adm_admdelconfirm.html new file mode 100644 index 0000000..7b47108 --- /dev/null +++ b/adm/templates/adm/adm_admdelconfirm.html @@ -0,0 +1,42 @@ +{% extends "adm/adm_base.html" %} +{% block content %} +{% load adm_tags %} +{% load mathfilters %} +{% load humanize %} +{% load counter_tag %} +
+

Agentur löschen + + + +

+
+Sie sind im Begriff, die Agentur {{object.name}} zu löschen! Damit werden alle Daten der Agentur unwiderruflich entfernt. Möchten Sie fortfahren? +
+Bitte bestätigen! +
+ + +
+ +
+
+ {% csrf_token %} + Abbrechen + + + + +{% endblock content %} diff --git a/adm/templates/adm/adm_agency_single.html b/adm/templates/adm/adm_agency_single.html index 6624f16..e851a7f 100644 --- a/adm/templates/adm/adm_agency_single.html +++ b/adm/templates/adm/adm_agency_single.html @@ -3,7 +3,13 @@ {% load adm_tags %} {% getAgencyData agency as agdata %}
-

Agentur {{agency.name}}

+

Agentur {{agency.name}} + + + + + +


Daten der Agentur
diff --git a/adm/templates/adm/adm_agencys.html b/adm/templates/adm/adm_agencys.html index 909541d..d8772b3 100644 --- a/adm/templates/adm/adm_agencys.html +++ b/adm/templates/adm/adm_agencys.html @@ -11,6 +11,7 @@ + @@ -21,6 +22,13 @@ + {% endfor %} diff --git a/adm/templates/adm/adm_base.html b/adm/templates/adm/adm_base.html index b0de70f..6d03f8a 100644 --- a/adm/templates/adm/adm_base.html +++ b/adm/templates/adm/adm_base.html @@ -103,7 +103,7 @@ diff --git a/adm/templates/adm/adm_bills.html b/adm/templates/adm/adm_bills.html index a2c196d..e748658 100644 --- a/adm/templates/adm/adm_bills.html +++ b/adm/templates/adm/adm_bills.html @@ -59,20 +59,4 @@ }); }) -{% endblock content %} - - \ No newline at end of file +{% endblock content %} \ No newline at end of file diff --git a/adm/urls.py b/adm/urls.py index c222535..d633db6 100644 --- a/adm/urls.py +++ b/adm/urls.py @@ -12,6 +12,7 @@ urlpatterns = [ path('ag/', AdmAgencys.as_view(), name="adm-agencys"), path('us/', AdmUsers.as_view(), name="adm-users"), path('agsingle/', AdmAgencySingle.as_view(), name="adm-agency-single"), + path('ad/del/', delAgency.as_view(), name='adm-agency-delete'), path('ag/bills/', AdmBills.as_view(), name="adm-bills"), path('usersingle/', AdmUserSingle.as_view(), name="adm-user-single"), path('cron/', statisticCronJob, name="adm-cron"), diff --git a/adm/views.py b/adm/views.py index 1c9d8ba..e298410 100644 --- a/adm/views.py +++ b/adm/views.py @@ -1,6 +1,7 @@ from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView, FormView, TemplateView from django.contrib import messages from django.shortcuts import render, redirect, reverse +from django.urls import reverse_lazy from django.conf import settings from django.http import HttpResponseRedirect,HttpResponse, JsonResponse from .models import MainStatistic @@ -49,7 +50,21 @@ def getCSVRDOrders(request): pass +class delAgency(DeleteView): + model = Agency + success_url = reverse_lazy("adm-agencys") + template_name = "adm/adm_admdelconfirm.html" + def delete(self, *args, **kwargs): + messages.success(self.request, f'Agentur erfolgreich gelöscht!') + return super(delAgency, self).delete(*args, **kwargs) + + def dispatch(self, *args, **kwargs): + if(checkForStuffUser(self.request)): + return super().dispatch(*args, **kwargs) + else: + messages.warning(self.request, f'Sie benötigen einen Mitarbeiter-Account, um diese Seiten aufzurufen!') + return redirect("login") ''' Hauptansicht Statisik diff --git a/standards/templates/standards/agencynetwork_content.html b/standards/templates/standards/agencynetwork_content.html index d17c233..244ed40 100644 --- a/standards/templates/standards/agencynetwork_content.html +++ b/standards/templates/standards/agencynetwork_content.html @@ -24,7 +24,11 @@ {% ifaginadminagn agn.pk request.user.profile.agency.pk as is_adminag %} - + diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index 12080b9..41c5513 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 22b2d7e..e9c00e9 100644 --- a/standards/templatetags/counter_tag.py +++ b/standards/templatetags/counter_tag.py @@ -836,7 +836,21 @@ def getHistoryClassOfObject(value): return finalclass - +# BILLCHECK +''' + + Rückgabewerte zur Kontrolle des aktuellen Rechnungsstatus: + 0 - Keine Rechnung, kein Plan, aber noch im Freien Zeitraum + 1 - Keine Rechnung, keinen Plan, Freiraum um max. 14 Tage überschritten + 2 - Keine Rechnung, keinen Plan, Freiraum um mehr als 14 Tage überschritten + 3 - Keine Rechnung, keinen Plan, Freiraum um mehr als 30 Tage überschritten - AGENTUR SPERREN! + 10 - Plan erstellt! + +''' +@register.simple_tag +def getAgencyBillStatus(agency): + print(agency) + return True diff --git a/users/models.py b/users/models.py index 4f31f0e..6fe0c6d 100644 --- a/users/models.py +++ b/users/models.py @@ -47,8 +47,8 @@ Bildet einen Agenturverbund ab class AgencyNetwork(models.Model): name = models.CharField(default="", max_length=200) adminagencys = models.ManyToManyField("Agency", related_name="AdministrationAgencys") - creator = models.ForeignKey(User, on_delete=models.PROTECT, blank=True) - creator_agency = models.ForeignKey("Agency", on_delete=models.PROTECT, blank=True) + creator = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True) + creator_agency = models.ForeignKey("Agency", on_delete=models.SET_NULL, blank=True, null=True) created_on = models.DateTimeField(default=timezone.now) lastactivity = models.DateTimeField(default=timezone.now) members = models.ManyToManyField("Agency", related_name="MemberAgencys", blank=True) diff --git a/users/signals.py b/users/signals.py index c293063..4b5b1f2 100644 --- a/users/signals.py +++ b/users/signals.py @@ -33,6 +33,12 @@ from channels_presence.signals import presence_changed from organizer.models import * from chat.models import ChatMessage +@receiver(signal=request_started) +def requestStart(**kwargs): + pass + # TASK: Hier AuditLog implementieren + + def loadingFreeDays(plz, year): # Getting land file_path = os.path.join(settings.STATIC_ROOT, 'users/extra/plz_short.csv') diff --git a/users/views.py b/users/views.py index 13835d3..4805ec1 100644 --- a/users/views.py +++ b/users/views.py @@ -155,7 +155,7 @@ def toUpdate(request): agencygroups = AgencyGroup.objects.filter(agency__pk=request.user.profile.agency.pk) if(len(agencygroups) == 0): - print("default groups not existing - creating") + #print("default groups not existing - creating") # MITARBEITER letters = string.ascii_lowercase temgroup_mitarbeiter = Group(name=str(request.user.profile.agency.pk) + "_" + randomString(8)) @@ -169,7 +169,7 @@ def toUpdate(request): temgroup_verwaltung_ag = AgencyGroup(savefordel=True, is_admin=True, group=temgroup_verwaltung, agency=request.user.profile.agency, agencygroupname="Administratoren") temgroup_verwaltung_ag.save() - print("default groups created...adding users...") + #print("default groups created...adding users...") users_of_agency = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk) for user in users_of_agency: #print(temgroup_verwaltung_ag) @@ -182,14 +182,15 @@ def toUpdate(request): for p in perms: tempperm = Permission.objects.get(codename=p[0]) temgroup_verwaltung_ag.group.permissions.add(tempperm) - print("default groups created and users added") + #print("default groups created and users added") else: - print("default groups existing") + #print("default groups existing") + pass # UPDATE - Notfallhilfe # Gruppe Notfallhilfe wird hinzugefügt, wenn die Anzahl der Gruppen savefordel=True zwei ist if (len(AgencyGroup.objects.filter(agency=request.user.profile.agency, savefordel=True)) == 2): - print("missing recoverdir-group...adding") + #print("missing recoverdir-group...adding") # Notfallhilfe letters = string.ascii_lowercase temgroup_Notfallhilfe = Group(name=str(request.user.profile.agency.pk) + "_" + randomString(8)) @@ -199,7 +200,7 @@ def toUpdate(request): recoverdirmanagingperm = Permission.objects.get(codename='recoverdirmanager') temgroup_Notfallhilfe_ag.group.permissions.add(recoverdirmanagingperm) - print("recoverdirgroup added and perms set") + #print("recoverdirgroup added and perms set") # CHECK FOR ALL POSSIBLE RIGHTS ON ADMINGROUP m2m_changed.disconnect(adjust_group_notifications_permission, sender=Group.permissions.through) @@ -216,12 +217,13 @@ def toUpdate(request): rootdir = DataDir.objects.filter(is_root=True, agency__pk=request.user.profile.agency.pk) if(len(rootdir) == 0): - print("NO MAIN DIR FOUND - CREATE") + #print("NO MAIN DIR FOUND - CREATE") rootdir = DataDir(is_root=True, agency=request.user.profile.agency) rootdir.save() - print("AGENCY ROOT DIR CREATED") + #print("AGENCY ROOT DIR CREATED") else: - print("MAIN ROOT DIR FOUND - FILESMODULE READY") + pass + #print("MAIN ROOT DIR FOUND - FILESMODULE READY") # CHECK IF AGENCY DIRS EXIST path = settings.MEDIA_ROOT + "/agencydata/agency_" + str(request.user.profile.agency.pk) @@ -236,13 +238,14 @@ def toUpdate(request): defstandard = DataDir.objects.filter(is_defaultstandard=True, agency__pk=request.user.profile.agency.pk) if(len(defstandard) == 0): - print("NO DEF STANDARD FOUND - CREATE") + #print("NO DEF STANDARD FOUND - CREATE") rootdir = list(DataDir.objects.filter(is_root=True, agency__pk=request.user.profile.agency.pk))[0] defstandard = DataDir(is_defaultstandard=True, agency=request.user.profile.agency, name="Standards Uploadbereich", parent_id=rootdir.pk) defstandard.save() - print("AGENCY DEF STANDARD DIR CREATED") + #print("AGENCY DEF STANDARD DIR CREATED") else: - print("AGENCY DEF STANDARD DIR - FILESMODULE READY") + #print("AGENCY DEF STANDARD DIR - FILESMODULE READY") + pass # CHANGE RIGHTS ORGNAIZER @@ -784,7 +787,7 @@ class ProfileDeleteView(LoginRequiredMixin, DeleteView): writer.writerow(['1001', 'John', 'Domil', 'CA']) writer.writerow(['1002', 'Amit', 'Mukharji', 'LA', '"Testing"']) context.update({"response" : response}) - print(response) + #print(response) return context
Registriert am Mitarbeiter StandardsAbo
{{ele.registerdate}} {{agdata.0}} {{agdata.1}} + {% if ele.paymentplan == 1 %} + Aktiv + {% else %} + - + {% endif %} +
{{agn.name}}{{agn.creator_agency.name }}  + {% if agn.creator_agency == None %} + Agentur gelöscht + {% endif %} + {{agn.creator_agency.name }}  {{agn.lastactivity}} {{agsum}} {{agn.standards.all|length}}