Compare commits

...

92 Commits

Author SHA1 Message Date
Holger Trampe a6706c7aa2 Bug RD 2021-11-25 17:03:44 +01:00
Holger Trampe 6bad433e0f RD Fix 2021-11-22 14:59:41 +01:00
Holger Trampe e2b0cefe05 recht update 2021-10-24 16:42:17 +02:00
Holger Trampe 7fd8786025 asd 2021-10-24 16:34:55 +02:00
Holger Trampe 6feb7251b9 key 2021-10-24 16:32:57 +02:00
Holger Trampe 1cca1d8f15 button test 2021-10-24 16:30:12 +02:00
Holger Trampe 52f22e473f links angepasst 2021-10-24 16:12:14 +02:00
Holger Trampe 74a6b2d0c2 Import nicht mehr aufrufbar 2021-10-24 16:01:10 +02:00
Holger Trampe cfb50385fd TM Update Click 2021-10-24 15:57:22 +02:00
Holger Trampe 6760291078 crons angepasst 2021-10-23 20:29:44 +02:00
Holger Trampe 7692002047 normaler flow 2021-10-23 20:21:03 +02:00
Holger Trampe b9e85a9375 asd 2021-10-23 20:18:15 +02:00
Holger Trampe 8d930cd3a3 akjsdh 2021-10-23 20:17:03 +02:00
Holger Trampe 720439c798 as 2021-10-23 20:15:06 +02:00
Holger Trampe 3ddc8e14ef upsi 2021-10-23 20:11:49 +02:00
Holger Trampe 1fad0664ce back 2021-10-23 20:02:14 +02:00
Holger Trampe a39e1692d1 rasch hasch wasch nass 2021-10-23 19:59:58 +02:00
Holger Trampe 8f718eba78 dd 2021-10-23 19:03:34 +02:00
Holger Trampe 2607cd509d ads 2021-10-23 19:03:22 +02:00
Holger Trampe 43ffcb9ce3 err 2021-10-23 19:02:49 +02:00
Holger Trampe 9b9600e90e asd 2021-10-23 19:01:03 +02:00
Holger Trampe 7d1e7af803 miste kiste 2021-10-23 18:51:29 +02:00
Holger Trampe b0e092d7e1 flow normal 2021-10-23 18:33:43 +02:00
Holger Trampe 2af62cb767 only standards 2021-10-23 18:30:18 +02:00
Holger Trampe a8e3779a2c gruppenbug 2021-10-23 18:00:17 +02:00
Holger Trampe abb974d0bc Save 2021-10-23 17:51:09 +02:00
Holger Trampe fc2bfe79ee gruppen adding sicherer 2021-10-23 17:48:04 +02:00
Holger Trampe 059a19ba3a gruppe sicherstellen 2021-10-23 17:38:31 +02:00
Holger Trampe 670c937b83 flow normal wieder 2021-10-23 17:32:57 +02:00
Holger Trampe 5cfda049fd rebuilding fuer schmidt 2021-10-23 17:28:53 +02:00
Holger Trampe e9fc6df784 Flow auf normal 2021-10-23 17:14:47 +02:00
Holger Trampe 1fad8d911c File Exists Test 2021-10-23 17:09:44 +02:00
Holger Trampe e42a4bb3e2 back 2021-10-23 17:04:38 +02:00
Holger Trampe fbfc6c7927 add files raus 2021-10-23 16:58:43 +02:00
Holger Trampe 21e4abc27d flow standard 2021-10-23 16:41:07 +02:00
Holger Trampe 62e1f1806f fuer scholli 2021-10-23 16:19:28 +02:00
Holger Trampe ce0dd03bd7 hmpf 2021-10-23 14:25:15 +02:00
Holger Trampe 0cce214a9b login first err 2021-10-23 14:21:56 +02:00
Holger Trampe 8708501f71 id 2021-10-23 13:12:35 +02:00
Holger Trampe 13cb316fef import ID hinzu 2021-10-23 13:11:32 +02:00
Holger Trampe 9ef0f87077 imoprtflow normal 2021-10-23 13:00:56 +02:00
Holger Trampe 3086a37bf6 mig file 2021-10-23 12:50:33 +02:00
Holger Trampe 5f638c1701 get to post 2021-10-23 12:31:02 +02:00
Holger Trampe 52f8b9445d again again 2021-10-23 12:28:59 +02:00
Holger Trampe 760f33dbed array wahnsinn 2021-10-23 12:26:57 +02:00
Holger Trampe 93ca2894dd mh 2021-10-23 12:21:53 +02:00
Holger Trampe 1c194eea3f array bug 2021-10-23 12:18:26 +02:00
Holger Trampe 1bbc1e7013 LAdezeit Standard verbessert 2021-10-23 12:14:02 +02:00
Holger Trampe b82d0f6a28 Quota leer bei Agentur FIX 2021-10-23 12:05:22 +02:00
Holger Trampe a9b6d95dbb Leerzeichen und Zugriff Quota 2021-10-23 12:02:14 +02:00
Holger Trampe 3d2dc1f6a8 bug bei id 2021-10-23 11:54:10 +02:00
Holger Trampe e8bcb38cca id aendern 2021-10-23 11:51:08 +02:00
Holger Trampe b8c7f27dd3 Vorbereitet für Standards mit Umlauten Test fuer Mueske 2021-10-23 11:35:37 +02:00
Holger Trampe fb388a2ec5 mh 2021-10-23 02:10:51 +02:00
Holger Trampe bd6dc6215b try 2021-10-23 02:07:44 +02:00
Holger Trampe 8dece8a7e6 für müsek 2021-10-23 02:04:52 +02:00
Holger Trampe 04fd2b3330 uf8 error ist halt so normaler prozess 2021-10-23 01:54:11 +02:00
Holger Trampe 0d83f96250 utf 8 macht mich irre 2021-10-23 01:49:44 +02:00
Holger Trampe 2e4cfb8852 final log 2021-10-23 01:44:22 +02:00
Holger Trampe 7c8f44988a NUR SO GANZ KURZ 2021-10-23 01:40:24 +02:00
Holger Trampe 00f04b1fe5 utf8 2021-10-23 01:38:47 +02:00
Holger Trampe 132a123676 utf8 test 2021-10-23 01:37:04 +02:00
Holger Trampe e92779c881 en und de 2021-10-23 01:17:22 +02:00
Holger Trampe eff5620ea1 encode vielleicht 2021-10-23 01:15:18 +02:00
Holger Trampe ca09194ced decode test 2021-10-23 01:13:04 +02:00
Holger Trampe 149412ae57 standardrebuild 2021-10-23 01:06:55 +02:00
Holger Trampe 3dc6601107 normaler mig-flow 2021-10-23 00:41:07 +02:00
Holger Trampe 4b52f15107 linkwahn 2021-10-23 00:33:41 +02:00
Holger Trampe be6f907698 asd 2021-10-23 00:27:22 +02:00
Holger Trampe d146beda57 falscher fucking user 2021-10-23 00:27:13 +02:00
Holger Trampe 3e215e568b r_2 2021-10-23 00:23:21 +02:00
Holger Trampe 105f2d02f4 try it 2021-10-23 00:20:25 +02:00
Holger Trampe e0cd38620c Ordner jetzt 2021-10-23 00:13:56 +02:00
Holger Trampe 462266876f link ausgeben 2021-10-23 00:11:52 +02:00
Holger Trampe 63a47a15cd mehr log bei dirs 2021-10-23 00:07:01 +02:00
Holger Trampe 90b9cd9580 nur dirs 2021-10-23 00:02:57 +02:00
Holger Trampe f1543d870a mh 2021-10-22 23:48:46 +02:00
Holger Trampe b9b65cb6b8 bug files 2021-10-22 23:44:20 +02:00
Holger Trampe 53f42ab5ec files error 2021-10-22 23:41:47 +02:00
Holger Trampe 3a7da7d858 flow start 2021-10-22 23:33:26 +02:00
Holger Trampe b3be94e755 trocken ist toll 2021-10-22 23:32:36 +02:00
Holger Trampe e8c388d5fa jetzt 2021-10-22 23:23:27 +02:00
Holger Trampe d47376c8df test 2021-10-22 23:22:32 +02:00
Holger Trampe 14015ea0e8 wrong username 2021-10-22 23:08:44 +02:00
Holger Trampe b078fb93f3 fehler abfangen 2021-10-22 22:52:20 +02:00
Holger Trampe d72b5f659d normale migrateflow 2021-10-22 22:49:21 +02:00
Holger Trampe 2553311ca7 migration temp 2021-10-22 22:36:26 +02:00
Holger Trampe b0525d99d3 Fehler abfangen 2021-10-22 22:19:48 +02:00
Holger Trampe b5c9d05de3 links angepasst 2021-10-22 21:12:30 +02:00
Holger Trampe ecb896e58d links angepasst 2021-10-22 21:12:25 +02:00
Holger Trampe 759697f1ee Merge branch 'nextcloud' 2021-10-22 21:08:13 +02:00
Holger Trampe ce303e5148 Master update 2021-10-22 19:57:34 +02:00
30 changed files with 509 additions and 271 deletions

View File

@ -10,6 +10,7 @@
<thead> <thead>
<tr> <tr>
<th scope="col">Agenturname</th> <th scope="col">Agenturname</th>
<th scope="col">NC Main ID</th>
<th scope="col">Registriert am</th> <th scope="col">Registriert am</th>
<th scope="col">Mitarbeiter</th> <th scope="col">Mitarbeiter</th>
<th scope="col">Standards</th> <th scope="col">Standards</th>
@ -21,6 +22,7 @@
{% getAgencyData ele as agdata %} {% getAgencyData ele as agdata %}
<tr> <tr>
<td><a href="{% url 'adm-agency-single' ele.pk %}">{{ele.name}}</a></td> <td><a href="{% url 'adm-agency-single' ele.pk %}">{{ele.name}}</a></td>
<td>{{ele.pk}}</td>
<td data-sort='{{ele.registerdate|date:"U"}}'>{{ele.registerdate}}</td> <td data-sort='{{ele.registerdate|date:"U"}}'>{{ele.registerdate}}</td>
<td>{{agdata.0}}</td> <td>{{agdata.0}}</td>
<td>{{agdata.1}}</td> <td>{{agdata.1}}</td>

View File

@ -29,7 +29,7 @@
$(document).ready(function(){ $(document).ready(function(){
// FIRST CALL GROUPS, When Groups finished User will call by Groups // FIRST CALL GROUPS, When Groups finished User will call by Groups
createAgencyGroups(groupids[0]); createAgencyGroups(groupids[0]);
//addFiles(files[0]);
//DEV //DEV
//rebuildingStandards(standards[0]); //rebuildingStandards(standards[0]);
//addGroupFolder(); //addGroupFolder();
@ -105,6 +105,23 @@
if(files[0] != undefined){ if(files[0] != undefined){
addFiles(files[0]); addFiles(files[0]);
} }
else{
console.log("NO FILES FOUND");
if(standard_files[0] != undefined){
console.log("start adding standard files...");
addStandardFilesFiles(standard_files[0]);
}
else {
console.log("NO STANDARD FILES FOUND");
if(dirids[0] != undefined){
addDirs(dirids[0]);
}
else {
console.log("NO DIRS FOUND - MIGRATION DONE!");
$("#migfinished").show();
}
}
}
} }
else{ else{
console.log(data); console.log(data);
@ -221,9 +238,65 @@
}); });
} }
standardcounter = 0; standardcounter = 0;
var ncfiledata = [];
//Anlegen der Standarddateien //Anlegen der Standarddateien
function rebuildingStandards(id){ function rebuildingStandards(id){
/*
ncfiledata.splice(0, ncfiledata.length);
$("#cloud_process_standards").show(); $("#cloud_process_standards").show();
ncfiledata[0] = ['standardid', id];
console.log("LOADING NC FILES");
$.ajax({
url: "{% url 'api:apiswitchstandardsprepare' %}",
dataType: 'json',
data: {
'standardid' : id,
},
success: function(data)
{
ncfiledata.push(data);
console.log(ncfiledata);
console.log("NC FILES LOADED, STARTING REBUILDING STANDARDS");
$.ajax({
url: "{% url 'api:apiswitchstandards' %}",
dataType: 'json',
type: "POST",
data: JSON.stringify(ncfiledata),
success: function(data){
if(data['status'] == "OK"){
standardcounter += 1;
if(standardcounter < standards.length){
console.log("STANDARD " + id + " OK");
ncfiledata = [];
rebuildingStandards(standards[standardcounter]);
}
else{
ncfiledata = [];
console.log("STANDARD " + id + " OK");
$("#migfinished").show();
}
}
else{
standardcounter += 1;
console.log("FEHLER BEI STANDARD " + data['status'] + " ID " + id);
if(standardcounter < standards.length){
ncfiledata = [];
rebuildingStandards(standards[standardcounter]);
}
else{
ncfiledata = [];
console.log("FEHLER BEI STANDARD " + data['status'] + " ID " + id);
$("#migfinished").show();
}
}
},
error: function(e){
console.log(e);
}
});
}
});
*/
$.ajax({ $.ajax({
url: "{% url 'api:apiswitchstandards' %}", url: "{% url 'api:apiswitchstandards' %}",
dataType: 'json', dataType: 'json',
@ -258,6 +331,7 @@
console.log(e); console.log(e);
} }
}); });
} }
</script> </script>
</div> </div>

View File

@ -5,6 +5,7 @@
<h4>Agenturimport</h4> <h4>Agenturimport</h4>
<small>Agenturen können hier importiert werden und erhalten einen detallierten Bericht. Bereits importierte Agenturen speichern ihre MainGroupID in Nextcloud</small> <small>Agenturen können hier importiert werden und erhalten einen detallierten Bericht. Bereits importierte Agenturen speichern ihre MainGroupID in Nextcloud</small>
<hr> <hr>
<table class="table table-hover" id="agdata" > <table class="table table-hover" id="agdata" >
<thead> <thead>
<tr> <tr>

View File

@ -25,6 +25,7 @@ urlpatterns = [
path('wd/<int:pk>/delete', AdmWorkdayDelete.as_view(), name="adm-workday-delete"), path('wd/<int:pk>/delete', AdmWorkdayDelete.as_view(), name="adm-workday-delete"),
path('wd/break/<int:pk>/delete', AdmBreakDelete.as_view(), name="adm-break-delete"), path('wd/break/<int:pk>/delete', AdmBreakDelete.as_view(), name="adm-break-delete"),
path('wd/<int:pk>/break/add', AdmAddBreak.as_view(), name="adm-break-add"), path('wd/<int:pk>/break/add', AdmAddBreak.as_view(), name="adm-break-add"),
# MIGRATION # MIGRATION
path('mig/aggroupfolder/<int:agencypk>', createAgGroupFolder, name="mig-groupfolder"), path('mig/aggroupfolder/<int:agencypk>', createAgGroupFolder, name="mig-groupfolder"),
] ]

View File

@ -471,7 +471,7 @@ def statisticCronJob(request, code):
# FILES # FILES
''' '''
TODO: Hier bitte einmal checken, ob umbenannte Dateien auch gefunden werden können oder nicht TODO: Hier bitte einmal checken, ob umbenannte Dateien auch gefunden werden können oder nicht
'''
allfiles = 0 allfiles = 0
try: try:
files_data = DataFile.objects.all() files_data = DataFile.objects.all()
@ -482,6 +482,7 @@ def statisticCronJob(request, code):
allfiles_storage += os.stat(f.file.path).st_size allfiles_storage += os.stat(f.file.path).st_size
except: except:
pass pass
'''
# LOGINS YESTERDAY # LOGINS YESTERDAY
yesterday = today - timedelta(days=1) yesterday = today - timedelta(days=1)
@ -526,7 +527,7 @@ def statisticCronJob(request, code):
extrausercount += len(user_ag) - 3 extrausercount += len(user_ag) - 3
finalmrr = abos + 3*extrausercount finalmrr = abos + 3*extrausercount
newMainS = MainStatistic(agencys=agencycount,users=usercount,standards=standardcount,chatmessages=chatmesscount, active_abos=abocount, absenceobjects=absenceobjects, user_active_timemanagement=user_active_timemanagement, organizerobjects=organizerobjects, agency_recoverobjects=agency_recoverobjects, allfiles=allfiles, allfiles_storage=allfiles_storage, logins=logins, mrr=finalmrr) newMainS = MainStatistic(agencys=agencycount,users=usercount,standards=standardcount,chatmessages=chatmesscount, active_abos=abocount, absenceobjects=absenceobjects, user_active_timemanagement=user_active_timemanagement, organizerobjects=organizerobjects, agency_recoverobjects=agency_recoverobjects, logins=logins, mrr=finalmrr)
newMainS.save() newMainS.save()
data.update({"status" : "success"}) data.update({"status" : "success"})
else: else:
@ -670,6 +671,13 @@ class AdmAddBreak(CreateView):
class AdmImport(TemplateView): class AdmImport(TemplateView):
template_name="adm/adm_import_overview.html" template_name="adm/adm_import_overview.html"
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")
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context.update({'active_link' : 'adm-import'}) context.update({'active_link' : 'adm-import'})
@ -683,6 +691,13 @@ from cloud.models import *
class AdmImportFlow(TemplateView): class AdmImportFlow(TemplateView):
template_name="adm/adm_import_flow.html" template_name="adm/adm_import_flow.html"
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")
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
context.update({'active_link' : 'adm-import'}) context.update({'active_link' : 'adm-import'})
@ -710,8 +725,11 @@ class AdmImportFlow(TemplateView):
ag_pk = str(agency.pk) ag_pk = str(agency.pk)
ag_groups = [] ag_groups = []
for g in groups: for g in groups:
if(ag_pk in g.name): # GET AGENCY GROUP
ag_groups.append(g) #gencygroupcheck = AgencyGroup.objects.get(group=g.id)
for ag_group_agency in AgencyGroup.objects.filter(group=g):
if(ag_pk in g.name and str(ag_group_agency.agency.pk) == ag_pk):
ag_groups.append(g)
context.update({'groups' : ag_groups}) context.update({'groups' : ag_groups})
@ -748,10 +766,11 @@ def createAgGroupFolder(request, agencypk):
} }
r = requests.post(settings.NEXTCLOUD_URL + "ocs/v2.php/apps/da_agency/api/v1/creategf?format=json", auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data) r = requests.post(settings.NEXTCLOUD_URL + "ocs/v2.php/apps/da_agency/api/v1/creategf?format=json", auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data)
r_2 = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_" + str(agency.pk)+ '/Standards Uploadbereich', auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
r_2 = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/Standards Uploadbereich', auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
json_response = json.loads(r.text) json_response = json.loads(r.text)
response_status = json_response['ocs']['meta']['status'] response_status = json_response['ocs']['meta']['status']
if(response_status == "ok"): if(response_status == "ok"):
return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!'}) return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!' + r_2.text + " " + r.text})
else: else:
return JsonResponse({'status' : False, 'message': 'Konnte nicht angelegt werden!', 'errormessage_r' : r.text}) return JsonResponse({'status' : False, 'message': 'Konnte nicht angelegt werden!', 'errormessage_r' : r.text})

View File

@ -21,6 +21,7 @@ urlpatterns = [
path('addstandardfile/', views.NCAddStandardFiles, name="apiaddstandardfile"), path('addstandardfile/', views.NCAddStandardFiles, name="apiaddstandardfile"),
path('adddir/', views.NCAddDirs, name="apiadddir"), path('adddir/', views.NCAddDirs, name="apiadddir"),
path('addswitchstandards/', views.NCSwitchStandardFiles, name="apiswitchstandards"), path('addswitchstandards/', views.NCSwitchStandardFiles, name="apiswitchstandards"),
path('prepareswitchstandards/', views.NCGetFilesForStandardSwitch, name="apiswitchstandardsprepare"),
path('setlog/', views.SetUserData, name="apisetlog"), path('setlog/', views.SetUserData, name="apisetlog"),
# EXTERNAL FROM NC # EXTERNAL FROM NC

View File

@ -223,6 +223,12 @@ def NCAddUser(request):
for g in user.groups.all(): for g in user.groups.all():
groups.append(AgencyGroup.objects.get(group=g).nc_name) groups.append(AgencyGroup.objects.get(group=g).nc_name)
# Die gruppe Mitarbeiter holen und ebenfalls hinzufügen
ag_mitarbeiter = AgencyGroup.objects.filter(agency=user.profile.agency, agencygroupname="Mitarbeiter").first()
ag_mitarbeiter.group.user_set.add(user)
groups.append("agencymaingroupid_" + str(user.profile.agency.pk))
#password = get_random_password(50) #password = get_random_password(50)
password = "" password = ""
userid = user.username userid = user.username
@ -250,6 +256,7 @@ def NCAddUser(request):
try: try:
r_status = json.loads(r.text) r_status = json.loads(r.text)
if(r_status['ocs']['meta']['statuscode'] == 100): if(r_status['ocs']['meta']['statuscode'] == 100):
return JsonResponse({'status' : True, 'message': 'Benutzer ' + user.first_name + " " + user.last_name + ' angelegt und in die Gruppen gepackt.'}) return JsonResponse({'status' : True, 'message': 'Benutzer ' + user.first_name + " " + user.last_name + ' angelegt und in die Gruppen gepackt.'})
else: else:
return JsonResponse({'status' : True, 'message': 'Benutzer ' + user.first_name + " " + user.last_name + ' konnte nicht angelegt werden. Bitte manuell prüfen!', 'message' : r.text}) return JsonResponse({'status' : True, 'message': 'Benutzer ' + user.first_name + " " + user.last_name + ' konnte nicht angelegt werden. Bitte manuell prüfen!', 'message' : r.text})
@ -302,37 +309,40 @@ import os
def NCAddFiles(request): def NCAddFiles(request):
if request.method == "GET": if request.method == "GET":
agency = Agency.objects.get(pk=request.GET.get('agencyid')) agency = Agency.objects.get(pk=request.GET.get('agencyid'))
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) if(DataFile.objects.filter(pk=request.GET.get('fileid')).exists()):
datadir_parent = None file_to_load = DataFile.objects.get(pk=request.GET.get('fileid'))
datadir_parent_dirnames = [] datadir_parent = None
if(file_to_load.parent != None): datadir_parent_dirnames = []
datadir_parent = file_to_load.parent if(file_to_load.parent != None):
datadir_parent_dirnames = [file_to_load.parent.name] datadir_parent = file_to_load.parent
datadir_parent_dirnames = [file_to_load.parent.name]
while(datadir_parent.parent != None): while(datadir_parent.parent != None):
datadir_parent_dirnames.append(datadir_parent.parent.name) datadir_parent_dirnames.append(datadir_parent.parent.name)
datadir_parent = datadir_parent.parent datadir_parent = datadir_parent.parent
## Popping last Element ## Popping last Element
d_prestring = "" d_prestring = ""
if(len(datadir_parent_dirnames) > 0): if(len(datadir_parent_dirnames) > 0):
datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1) datadir_parent_dirnames.pop(len(datadir_parent_dirnames)-1)
# Turning Array around # Turning Array around
datadir_parent_dirnames = datadir_parent_dirnames[::-1] datadir_parent_dirnames = datadir_parent_dirnames[::-1]
# Dirs needed for the File # Dirs needed for the File
for d in datadir_parent_dirnames: for d in datadir_parent_dirnames:
new_folder = d_prestring + "/" +d new_folder = d_prestring + "/" +d
r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
d_prestring += "/" + d d_prestring += "/" + d
# Uplod the file! # Uplod the file!
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/" + d_prestring + "/" + file_to_load.name
with open(file_to_load.file.path, 'rb') as f: with open(file_to_load.file.path, 'rb') as f:
r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
if(len(r.text) == 0): if(len(r.text) == 0):
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'}) return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'})
else: else:
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'}) return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'})
else:
return JsonResponse({'status' : True, 'message': 'Datei ' + str(request.GET.get('fileid')) + ' konnte nicht in Django gefunden werden. Bitte manuell prüfen!'})
return JsonResponse({"status" : "NO AUTH"}) return JsonResponse({"status" : "NO AUTH"})
@ -343,17 +353,22 @@ def NCAddFiles(request):
def NCAddStandardFiles(request): def NCAddStandardFiles(request):
if request.method == "GET": if request.method == "GET":
agency = Agency.objects.get(pk=request.GET.get('agencyid')) agency = Agency.objects.get(pk=request.GET.get('agencyid'))
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) try:
if(DataFile.objects.filter(pk=request.GET.get('fileid')).exists()):
file_to_load = DataFile.objects.get(pk=request.GET.get('fileid'))
# Uplod the file! # Uplod the file!
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_"+ str(agency.pk) + "/Standards Uploadbereich/" + file_to_load.name final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_"+ str(agency.pk) + "/Standards Uploadbereich/" + file_to_load.name
with open(file_to_load.file.path, 'rb') as f: with open(file_to_load.file.path, 'rb') as f:
r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) r = requests.put(final_file_path, data=f, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
if(len(r.text) == 0):
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'})
else:
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'})
except:
return JsonResponse({'status' : True, 'message': 'Datei ID nicht gefunden'})
if(len(r.text) == 0):
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'})
else:
return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' konnte nicht angelegt. Bitte manuell prüfen!'})
return JsonResponse({"status" : "NO AUTH"}) return JsonResponse({"status" : "NO AUTH"})
@ -365,41 +380,43 @@ def NCAddStandardFiles(request):
def NCAddDirs(request): def NCAddDirs(request):
if request.method == "GET": if request.method == "GET":
agency = Agency.objects.get(pk=request.GET.get('agencyid')) agency = Agency.objects.get(pk=request.GET.get('agencyid'))
dir_to_create = DataDir.objects.get(pk=request.GET.get('dirid')) try:
sharestring = "" dir_to_create = DataDir.objects.get(pk=request.GET.get('dirid'))
if(dir_to_create.visibleby.all().count() > 0): sharestring = ""
sharestring = " Ordner nur sichtbar durch: " if(dir_to_create.visibleby.all().count() > 0):
for cd in dir_to_create.visibleby.all(): sharestring = " Ordner nur sichtbar durch: "
sharestring += cd.agencygroupname + " (" + cd.nc_name + ")" for cd in dir_to_create.visibleby.all():
# Dir has no parent, create sharestring += cd.agencygroupname + " (" + cd.nc_name + ")"
if(len(dir_to_create.parent.name) == 0): # Dir has no parent, create
r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_" + str(agency.pk)+ '/' + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) if(len(dir_to_create.parent.name) == 0):
return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt. ' + sharestring}) r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
# Dir has parents, start thinking :) return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt. ' + sharestring + " RESP: " + r.text})
else: # Dir has parents, start thinking :)
datadir_parent = None else:
datadir_parent_dirnames = [] datadir_parent = None
if(dir_to_create.parent != None and len(dir_to_create.parent.name) > 0): datadir_parent_dirnames = []
datadir_parent = dir_to_create.parent if(dir_to_create.parent != None and len(dir_to_create.parent.name) > 0):
datadir_parent_dirnames = [dir_to_create.parent.name] datadir_parent = dir_to_create.parent
datadir_parent_dirnames = [dir_to_create.parent.name]
if(datadir_parent.parent != None): if(datadir_parent.parent != None):
while(datadir_parent.parent != None and len(datadir_parent.parent.name) > 0): while(datadir_parent.parent != None and len(datadir_parent.parent.name) > 0):
datadir_parent_dirnames.append(datadir_parent.parent.name) datadir_parent_dirnames.append(datadir_parent.parent.name)
datadir_parent = datadir_parent.parent datadir_parent = datadir_parent.parent
if(len(datadir_parent_dirnames) > 0): if(len(datadir_parent_dirnames) > 0):
datadir_parent_dirnames = datadir_parent_dirnames[::-1] datadir_parent_dirnames = datadir_parent_dirnames[::-1]
d_prestring = "" d_prestring = ""
for d in datadir_parent_dirnames: for d in datadir_parent_dirnames:
new_folder = d_prestring + "/" +d new_folder = d_prestring + "/" +d
r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ '/' + new_folder, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
d_prestring += "/" + d d_prestring += "/" + d
r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_" + str(agency.pk)+ '/' + d_prestring + "/" + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API)) r = requests.request("MKCOL", settings.NEXTCLOUD_URL + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk)+ d_prestring + "/" + dir_to_create.name, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API))
return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt.' + sharestring})
return JsonResponse({'status' : True, 'message': 'Ordner ' + dir_to_create.name + ' angelegt.' + sharestring + " RESP: " + r.text + " " + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk) + d_prestring + "/" + dir_to_create.name})
except:
return JsonResponse({'status' : True, 'message': 'Ordner ID ID nicht gefunden'})
return JsonResponse({'status' : False, 'message': 'AUTH ERROR'}) return JsonResponse({'status' : False, 'message': 'AUTH ERROR'})
@ -420,8 +437,6 @@ def SetUserData(request):
return JsonResponse({'message' : 'USER NOT FOUND'}) return JsonResponse({'message' : 'USER NOT FOUND'})
def getFileIdFromXML(xmlresponse): def getFileIdFromXML(xmlresponse):
try: try:
split_response = xmlresponse.split("<oc:fileid>") split_response = xmlresponse.split("<oc:fileid>")
@ -436,23 +451,123 @@ def getFileIdFromXML(xmlresponse):
Pro Datei in addedfiles wird ein neues NCFile-Objekt erstellt und in addedfiles_nc gespeichert. In den Ansichten der Standards werden dann nur noch die addedfiles_nc-Elemente gesehen und verändert. Pro Datei in addedfiles wird ein neues NCFile-Objekt erstellt und in addedfiles_nc gespeichert. In den Ansichten der Standards werden dann nur noch die addedfiles_nc-Elemente gesehen und verändert.
''' '''
import re, json
from urllib.parse import unquote
@api_view(['GET'], ) @api_view(['GET'], )
def NCSwitchStandardFiles(request): def NCSwitchStandardFiles(request):
if request.method == "GET": if request.method == "GET":
#agency = Agency.objects.get(pk=request.GET.get('agencyid'))
standard = Standards.objects.get(pk=request.GET.get('standardid')) standard = Standards.objects.get(pk=request.GET.get('standardid'))
response_status = "OK" response_status = "OK"
# Dateien aus NC laden
# TODO: HIER WIEDER DEN USER EINTRAGEN vhdarootadmin_2cdme7ckw
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/></d:prop></d:select><d:from><d:scope><d:href>/files/vhdarootadmin_2cdme7ckw' + '/Agenturdaten_' + str(standard.agency.pk) + '/</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:gt><d:prop><oc:size/></d:prop><d:literal>1</d:literal></d:gt></d:where></d:basicsearch></d:searchrequest>'
#filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:prop><oc:fileid /></d:prop><d:depth>infinity</d:depth></d:propfind>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
print(r.text)
# IDs filtern aus XML-Response
#print(r.text)
ncfileids = [str(s) for s in re.findall('<d:response>(.+?)</d:response>', r.text)]
final_nc_files = []
# IDs from the User
for ele in ncfileids:
nc_filename_with_path = [str(s) for s in re.findall('<d:href>(.+?)</d:href>', ele)][0]
nc_filename_with_path = nc_filename_with_path.split("/")
filename = nc_filename_with_path[len(nc_filename_with_path)-1]
nc_file_id = [str(s) for s in re.findall('<oc:fileid>(.+?)</oc:fileid>', ele)][0]
if(len(filename) > 0):
final_nc_files.append([nc_file_id, unquote(filename, errors="strict")])
# Reset der NC-Files
for nc_standard_file in standard.addedfiles_nc.all():
nc_standard_file.delete()
standard.addedfiles_nc.clear()
standard.save()
for f in standard.addedfiles.all(): for f in standard.addedfiles.all():
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/><d:displayname/></d:prop></d:select><d:from><d:scope><d:href>/files/' + settings.NEXTCLOUD_USER_API + '/Agenturdaten_' + str(standard.agency.pk) + '</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:like><d:prop><d:displayname/></d:prop><d:literal>' + f.name + '</d:literal></d:like></d:where></d:basicsearch></d:searchrequest>' for nc_file_ele in final_nc_files:
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav", data=filesearchdata, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), headers={'Content-Type' : 'text/xml'}) print(f.name + " NAME " + nc_file_ele[1])
fileid = getFileIdFromXML(r.text) if(f.name == nc_file_ele[1]):
if(fileid == None): ncfile = NCFile.objects.create(agency=standard.agency, nc_id=nc_file_ele[0], file_id=f)
response_status += " FEHLER BEI STANDARD " + str(standard.pk) + " " standard.addedfiles_nc.add(ncfile)
else: response_status += " DATEI " + f.name + " ZU STANDARD " + str(standard.pk) + " zugeordnet. - NC FILE ID " + str(nc_file_ele[0])
ncfile = NCFile.objects.create(agency=standard.agency, nc_id=fileid, file_id=f) print("ZUGEORDNET!")
standard.addedfiles_nc.add(ncfile) return JsonResponse({"status" : response_status})
return JsonResponse({"status" : "NO AUTH"})
'''
if request.method == "GET":
#agency = Agency.objects.get(pk=request.GET.get('agencyid'))
jsonresponse = json.dumps(request.GET)
json_final = json.loads(jsonresponse)
standardid = False
ncfiledata = False
elejson = ""
for ele in json_final:
elejson = json.loads(ele)
standardid = elejson[0][1]
ncfiledata = elejson[1]['ncfiledata']
response_status = "OK"
standard = Standards.objects.get(pk=standardid)
# Reset der NC-Files
for nc_standard_file in standard.addedfiles_nc.all():
nc_standard_file.delete()
standard.addedfiles_nc.clear()
standard.save()
for f in standard.addedfiles.all():
for nc_file_ele in ncfiledata:
print(f.name + " NAME " + nc_file_ele[1])
if(f.name == nc_file_ele[1]):
ncfile = NCFile.objects.create(agency=standard.agency, nc_id=nc_file_ele[0], file_id=f)
standard.addedfiles_nc.add(ncfile)
response_status += " DATEI " + f.name + " ZU STANDARD " + str(standard.pk) + " zugeordnet. - NC FILE ID " + str(nc_file_ele[0])
return JsonResponse({"status" : response_status}) return JsonResponse({"status" : response_status})
return JsonResponse({"status" : "NO AUTH"}) return JsonResponse({"status" : "NO AUTH"})
'''
@api_view(['GET'], )
def NCGetFilesForStandardSwitch(request):
if request.method == "GET":
#agency = Agency.objects.get(pk=request.GET.get('agencyid'))
standard = Standards.objects.get(pk=request.GET.get('standardid'))
# Dateien aus NC laden
filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:searchrequest xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:basicsearch><d:select><d:prop><oc:fileid/></d:prop></d:select><d:from><d:scope><d:href>/files/vhdarootadmin_2cdme7ckw' + '/Agenturdaten_' + str(standard.agency.pk) + '/</d:href><d:depth>infinity</d:depth></d:scope></d:from><d:where><d:gt><d:prop><oc:size/></d:prop><d:literal>1</d:literal></d:gt></d:where></d:basicsearch></d:searchrequest>'
#filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:prop><oc:fileid /></d:prop><d:depth>infinity</d:depth></d:propfind>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
# IDs filtern aus XML-Response
#print(r.text)
ncfileids = [str(s) for s in re.findall('<d:response>(.+?)</d:response>', r.text)]
final_nc_files = []
# IDs from the User
for ele in ncfileids:
nc_filename_with_path = [str(s) for s in re.findall('<d:href>(.+?)</d:href>', ele)][0]
nc_filename_with_path = nc_filename_with_path.split("/")
filename = nc_filename_with_path[len(nc_filename_with_path)-1]
nc_file_id = [str(s) for s in re.findall('<oc:fileid>(.+?)</oc:fileid>', ele)][0]
if(len(filename) > 0):
final_nc_files.append([nc_file_id, filename])
return JsonResponse({"ncfiledata" : final_nc_files})
@api_view(['GET'], ) @api_view(['GET'], )
def deleteNCFile(request, fid, secretkey): def deleteNCFile(request, fid, secretkey):

View File

@ -55,7 +55,7 @@
<a class="nav-link" id="calc-tab" data-toggle="tab" href="#calc" role="tab" aria-controls="calc" aria-selected="false"><i class="fas fa-coins"></i>&nbsp;Abrechnung</a> <a class="nav-link" id="calc-tab" data-toggle="tab" href="#calc" role="tab" aria-controls="calc" aria-selected="false"><i class="fas fa-coins"></i>&nbsp;Abrechnung</a>
</li> </li>
{% endif %} {% endif %}
{% if user|usergperm:"agencyinfo" %} {% if user|usergperm:"usermanager" %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="quota-tab" data-toggle="tab" href="#quota" role="tab" aria-controls="quota" aria-selected="false"><i class="fas fa-database"></i>&nbsp;Speicherplatz</a> <a class="nav-link" id="quota-tab" data-toggle="tab" href="#quota" role="tab" aria-controls="quota" aria-selected="false"><i class="fas fa-database"></i>&nbsp;Speicherplatz</a>
</li> </li>

View File

@ -1060,9 +1060,10 @@ def SettingsAjaxRouter(request):
'Access-Control-Allow-Headers' : 'OCS-APIRequest', 'Access-Control-Allow-Headers' : 'OCS-APIRequest',
'OCS-APIRequest' : 'true' 'OCS-APIRequest' : 'true'
} }
# TODO: Hier prüfen, ob das doppelte Leerzeichen nun weg ist.
data_nc = { data_nc = {
"key" : "displayname", "key" : "displayname",
"value" : tempuser.first_name + " " + tempuser.last_name "value" : tempuser.first_name + "" + tempuser.last_name
} }
r = requests.put(settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + tempuser.username,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data_nc) r = requests.put(settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + tempuser.username,headers=headers, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), data=data_nc)
else: else:

View File

@ -33,7 +33,7 @@ SESSION_COOKIE_SECURE = False
# FOR SUMMERNOTE ORIGIN # FOR SUMMERNOTE ORIGIN
#X_FRAME_OPTIONS = 'SAMEORIGIN' #X_FRAME_OPTIONS = 'SAMEORIGIN'
#X_FRAME_OPTIONS = 'ALLOWALL' #X_FRAME_OPTIONS = 'ALLOWALL'
X_FRAME_OPTIONS = 'allow-from *cloud.digitale-agentur.com' X_FRAME_OPTIONS = 'allow-from .digitale-agentur.com'
# Quick-start development settings - unsuitable for production # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ # See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
@ -49,7 +49,9 @@ MAILINFOKEY = "jka7sd8iukashdna78skduJAHDsu6dilaksdjba65a68iadbhjak"
#LEX_API = "8f9ba01f-9e84-42c7-9548-48c254f14c19" #LEX_API = "8f9ba01f-9e84-42c7-9548-48c254f14c19"
# Gültig bis 17.10.2022 # Gültig bis 17.10.2022
LEX_API = "8dcbd7a5-9447-417f-a4a4-989818742a36" #LEX_API = "8dcbd7a5-9447-417f-a4a4-989818742a36"
LEX_API = "p6xxyzOul0BaLDr-xuhVNYNzZ5s"
# KEYS FOR ENCRYPTED FILE FIELDS # KEYS FOR ENCRYPTED FILE FIELDS
DEFF_SALT = 'A-!GDtuKp?H/H5-UUatEh6ZcG/6h-VQf1OkDORRkK0(:(qCf//' DEFF_SALT = 'A-!GDtuKp?H/H5-UUatEh6ZcG/6h-VQf1OkDORRkK0(:(qCf//'

View File

@ -465,7 +465,7 @@ class RecoverDirAddPL(CreateView):
template_name = "recoverdir/rd_pers_add.html" template_name = "recoverdir/rd_pers_add.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -489,7 +489,7 @@ class RecoverDirUpdatePL(UpdateView):
template_name = "recoverdir/rd_pers_update.html" template_name = "recoverdir/rd_pers_update.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -513,7 +513,7 @@ class RDAoneAddDoc(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -544,7 +544,7 @@ class RDAoneViewDoc(DetailView):
context_object_name = 'document' context_object_name = 'document'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -556,7 +556,7 @@ class RDAoneDelDoc(DeleteView):
context_object_name = 'document' context_object_name = 'document'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -573,7 +573,7 @@ class RDAoneUpdateDoc(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_adddoc.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -625,7 +625,7 @@ class RDAoneUpdateHL(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_addhl.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_addhl.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -643,7 +643,7 @@ class RDAoneAddFC(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -664,7 +664,7 @@ class RDAoneUpdateContact(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_addfc.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -681,7 +681,7 @@ class RDAoneViewContact(DetailView):
context_object_name = 'contact' context_object_name = 'contact'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -693,7 +693,7 @@ class RDAoneDelContact(DeleteView):
context_object_name = 'contact' context_object_name = 'contact'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -711,7 +711,7 @@ class RDAoneViewTrust(DetailView):
context_object_name = 'contact' context_object_name = 'contact'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -723,7 +723,7 @@ class RDAoneDelTrust(DeleteView):
context_object_name = 'contact' context_object_name = 'contact'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -740,7 +740,7 @@ class RDAoneAddTrust(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -761,7 +761,7 @@ class RDAoneUpdateTrust(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html" template_name = "recoverdir/rd_elements_forms/rd_area_1_addtrust.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -780,7 +780,7 @@ class RDAtwoAddHLFV(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -801,7 +801,7 @@ class RDAtwoUpdateFV(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addhlvf.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -819,7 +819,7 @@ class RDAtwoViewdeposit(DetailView):
context_object_name = 'deposit' context_object_name = 'deposit'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -831,7 +831,7 @@ class RDAtwoDeldeposit(DeleteView):
context_object_name = 'deposit' context_object_name = 'deposit'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -848,7 +848,7 @@ class RDAtwoAdddeposit(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_adddeposit.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_adddeposit.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -877,7 +877,7 @@ class RDAtwoUpdatedeposit(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_adddeposit.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_adddeposit.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -899,7 +899,7 @@ class RDAtwoViewergo(DetailView):
context_object_name = 'ergo' context_object_name = 'ergo'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -911,7 +911,7 @@ class RDAtwoDelergo(DeleteView):
context_object_name = 'ergo' context_object_name = 'ergo'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -928,7 +928,7 @@ class RDAtwoAddergo(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addergo.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addergo.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -949,7 +949,7 @@ class RDAtwoUpdateergo(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addergo.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addergo.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -971,7 +971,7 @@ class RDAtwoViewonlinebank(DetailView):
context_object_name = 'onlinebank' context_object_name = 'onlinebank'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -983,7 +983,7 @@ class RDAtwoDelonlinebank(DeleteView):
context_object_name = 'onlinebank' context_object_name = 'onlinebank'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1000,7 +1000,7 @@ class RDAtwoAddonlinebank(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addonlinebank.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addonlinebank.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1030,7 +1030,7 @@ class RDAtwoUpdateonlinebank(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_2_addonlinebank.html" template_name = "recoverdir/rd_elements_forms/rd_area_2_addonlinebank.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1059,7 +1059,7 @@ class RDAthreeViewstreaming(DetailView):
context_object_name = 'streaming' context_object_name = 'streaming'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1071,7 +1071,7 @@ class RDAthreeDelstreaming(DeleteView):
context_object_name = 'streaming' context_object_name = 'streaming'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1088,7 +1088,7 @@ class RDAthreeAddstreaming(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.html" template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1117,7 +1117,7 @@ class RDAthreeUpdatestreaming(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.html" template_name = "recoverdir/rd_elements_forms/rd_area_3_addstreamingabo.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1146,7 +1146,7 @@ class RDAfourViewdigitalaccount(DetailView):
context_object_name = 'account' context_object_name = 'account'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1159,7 +1159,7 @@ class RDAfourDeldigitalaccount(DeleteView):
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1176,7 +1176,7 @@ class RDAfourAdddigitalaccount(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html" template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1206,7 +1206,7 @@ class RDAfourUpdatedigitalaccount(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html" template_name = "recoverdir/rd_elements_forms/rd_area_4_adddigitalaccount.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1235,7 +1235,7 @@ class RDAfiveViewpersonal(DetailView):
context_object_name = 'personal' context_object_name = 'personal'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1247,7 +1247,7 @@ class RDAfiveDelpersonal(DeleteView):
context_object_name = 'personal' context_object_name = 'personal'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1264,7 +1264,7 @@ class RDAfiveAddpersonal(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_5_addpersonal.html" template_name = "recoverdir/rd_elements_forms/rd_area_5_addpersonal.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1286,7 +1286,7 @@ class RDAfiveUpdatepersonal(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_5_addpersonal.html" template_name = "recoverdir/rd_elements_forms/rd_area_5_addpersonal.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1308,7 +1308,7 @@ class RDAnineViewelse(DetailView):
context_object_name = 'else' context_object_name = 'else'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1320,7 +1320,7 @@ class RDAnineDelelse(DeleteView):
context_object_name = 'ele' context_object_name = 'ele'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1337,7 +1337,7 @@ class RDAnineAddelse(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_9_addelse.html" template_name = "recoverdir/rd_elements_forms/rd_area_9_addelse.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1359,7 +1359,7 @@ class RDAnineUpdateelse(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_9_addelse.html" template_name = "recoverdir/rd_elements_forms/rd_area_9_addelse.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1381,7 +1381,7 @@ class RDAsevenViewcontract(DetailView):
context_object_name = 'contract' context_object_name = 'contract'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1393,7 +1393,7 @@ class RDAsevenDelcontract(DeleteView):
context_object_name = 'ele' context_object_name = 'ele'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1410,7 +1410,7 @@ class RDAsevenAddcontract(CreateView):
template_name = "recoverdir/rd_elements_forms/rd_area_7_addcontract.html" template_name = "recoverdir/rd_elements_forms/rd_area_7_addcontract.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self)):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1431,7 +1431,7 @@ class RDAsevenUpdatecontract(UpdateView):
template_name = "recoverdir/rd_elements_forms/rd_area_7_addcontract.html" template_name = "recoverdir/rd_elements_forms/rd_area_7_addcontract.html"
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1454,7 +1454,7 @@ class PLSingleHistory(DetailView):
context_object_name = 'persletter' context_object_name = 'persletter'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1481,7 +1481,7 @@ class HLSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_1_hl_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_1_hl_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1510,7 +1510,7 @@ class HLVFSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_2_hl_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_2_hl_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1539,7 +1539,7 @@ class ContactSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_1_contact_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_1_contact_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1568,7 +1568,7 @@ class TrustSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_1_trust_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_1_trust_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1597,7 +1597,7 @@ class DepositSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_2_deposit_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_2_deposit_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1626,7 +1626,7 @@ class DocumentSingleHistory(DetailView):
template_name = 'recoverdir/rd_doc_single.html' template_name = 'recoverdir/rd_doc_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1655,7 +1655,7 @@ class ErgoSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_2_ergo_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_2_ergo_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1684,7 +1684,7 @@ class OnlinebankSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_2_onlinebank_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_2_onlinebank_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1713,7 +1713,7 @@ class StreamingSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_3_streamingabo_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_3_streamingabo_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1742,7 +1742,7 @@ class DigitalAccountSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_4_digitalaccount_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1771,7 +1771,7 @@ class PersonalSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_5_personal_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_5_personal_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1800,7 +1800,7 @@ class ContractSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_7_contract_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_7_contract_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')
@ -1829,7 +1829,7 @@ class ElseSingleHistory(DetailView):
template_name = 'recoverdir/rd_elements_forms/rd_area_9_else_single.html' template_name = 'recoverdir/rd_elements_forms/rd_area_9_else_single.html'
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
if(checkForLogin(self) and self.instance.agency == self.request.user.profile.agency): if(checkForLogin(self) and self.get_object().agency == self.request.user.profile.agency):
return super().dispatch(*args, **kwargs) return super().dispatch(*args, **kwargs)
else: else:
return redirect('recoverdir-login') return redirect('recoverdir-login')

View File

@ -145,10 +145,7 @@
</div> </div>
<datalist id="poss_files"> <datalist id="poss_files">
{% for f in files %} {% for f in files %}
{% getNCFileInfos request f as filename %} <option id="files_{{f.0}}" value="{{f.1}}">{{f.1}}</option>
{% if filename != "FAIL_TO_LOAD_NC_FILE_DATA" %}
<option id="files_{{f}}" value="{{filename}}">{{filename}}</option>
{% endif %}
{% endfor %} {% endfor %}
</datalist> </datalist>
</div> </div>

View File

@ -141,7 +141,7 @@
{% getNCFileInfosURL request file.nc_id as filelink %} {% getNCFileInfosURL request file.nc_id as filelink %}
{% getNCDirInfosURL request file.nc_id as dirlink %} {% getNCDirInfosURL request file.nc_id as dirlink %}
{% getNextcloudURL as nc_url %} {% getNextcloudURL as nc_url %}
<a href="{{nc_url}}apps/files/?dir=/{{dirlink}}&openfile={{file.nc_id}}" target="_blank">{{filename|truncatechars:30}}</a> <a href="{{nc_url}}apps/files/?dir=/{{dirlink}}&amp;openfile={{file.nc_id}}" target="_blank">{{filename|truncatechars:30}}</a>
<br /> <br />
{% endfor %} {% endfor %}
</p> </p>

View File

@ -1181,40 +1181,46 @@ def getNCDirInfosURL(request, ncid):
@register.simple_tag @register.simple_tag
def getAGGroupQuotaData(request): def getAGGroupQuotaData(request):
r = requests.request("PROPFIND", settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten", headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid}) r = requests.request("PROPFIND", settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten", headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
# IN USE # IN USE
split_response = r.text.split("<d:quota-used-bytes>") try:
inuse = split_response[1].split("</d:quota-used-bytes>")[0] split_response = r.text.split("<d:quota-used-bytes>")
inuse = split_response[1].split("</d:quota-used-bytes>")[0]
# QUOTA
split_response = r.text.split("<d:quota-available-bytes>")
quota = split_response[1].split("</d:quota-available-bytes>")[0]
# PERCENT VALUE
percent = (100 / int(quota))*int(inuse)
return [quota, inuse, str(round(percent, 0)).replace(",", ".")]
except:
return [0, 0, 0]
# QUOTA
split_response = r.text.split("<d:quota-available-bytes>")
quota = split_response[1].split("</d:quota-available-bytes>")[0]
# PERCENT VALUE
percent = (100 / int(quota))*int(inuse)
return [quota, inuse, str(round(percent, 0)).replace(",", ".")]
# User QUOTA # User QUOTA
import re, math import re, math
@register.simple_tag @register.simple_tag
def getUserQuotaData(userdata): def getUserQuotaData(userdata):
r = requests.request("GET", settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + userdata.username, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), headers={'Content-Type' : 'text/xml', 'OCS-APIRequest': "true"}) r = requests.request("GET", settings.NEXTCLOUD_URL + "/ocs/v1.php/cloud/users/" + userdata.username, auth=(settings.NEXTCLOUD_USER_API, settings.NEXTCLOUD_PW_API), headers={'Content-Type' : 'text/xml', 'OCS-APIRequest': "true"})
try:
quotadata = [int(s) for s in re.findall('<quota>(.+?)</quota>', r.text)]
inuse = [int(s) for s in re.findall('<used>(.+?)</used>', r.text)]
quotadata = [int(s) for s in re.findall('<quota>(.+?)</quota>', r.text)] quotadata_value = quotadata[0]
inuse = [int(s) for s in re.findall('<used>(.+?)</used>', r.text)] valuequota_MB = 0
counter = 0
while(quotadata_value > 9999 or counter > 3):
quotadata_value = quotadata_value / 1024
counter += 1
quotadata_value = quotadata[0] valuequota_MB = round(quotadata_value, 0)
valuequota_MB = 0
counter = 0
while(quotadata_value > 9999 or counter > 3):
quotadata_value = quotadata_value / 1024
counter += 1
valuequota_MB = round(quotadata_value, 0) # PERCENT
percent = (100 / int(quotadata[0]))*int(inuse[0])
# PERCENT return [quotadata[0], inuse[0], str(round(percent, 0)).replace(",", "."), str(valuequota_MB).split(".")[0]]
percent = (100 / int(quotadata[0]))*int(inuse[0]) except:
return [0, 0, 0, 0]
return [quotadata[0], inuse[0], str(round(percent, 0)).replace(",", "."), str(valuequota_MB).split(".")[0]]

View File

@ -276,7 +276,7 @@ def StandardAdd(request, id=False):
} }
nc_login_headers = {'Authorization' : 'Bearer ' + request.user.profile.nc_sid} nc_login_headers = {'Authorization' : 'Bearer ' + request.user.profile.nc_sid}
r = requests.request("PROPFIND", settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten_1/", headers=nc_login_headers, data=data_nc) r = requests.request("PROPFIND", settings.NEXTCLOUD_URL + "remote.php/dav/files/" + request.user.username + "/Agenturdaten_" + str(request.user.profile.agency.pk) + "/", headers=nc_login_headers, data=data_nc)
print(r.text) print(r.text)
#allfiles = DataFile.objects.filter(agency=request.user.profile.agency) #allfiles = DataFile.objects.filter(agency=request.user.profile.agency)
@ -500,16 +500,17 @@ def StandardAdd(request, id=False):
users_of_other_ag = User.objects.filter(profile__agency=agn_admin) users_of_other_ag = User.objects.filter(profile__agency=agn_admin)
for u in users_of_other_ag: for u in users_of_other_ag:
if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'): if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'):
if u.usernotifications.agn_standard_created_mail: pass
notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name #if u.usernotifications.agn_standard_created_mail:
sendMailNoti(notificationtext, u) # notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name
#sendMailNoti(notificationtext, u)
if u.usernotifications.agn_standard_created_push: #if u.usernotifications.agn_standard_created_push:
newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="") # newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="")
newnotification.save() # newnotification.save()
channel_layer = channels.layers.get_channel_layer() # channel_layer = channels.layers.get_channel_layer()
async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name}) # async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name})
for agn_admin in agencynetwork_single.members.all(): for agn_admin in agencynetwork_single.members.all():
if(agn_admin not in agency_send): if(agn_admin not in agency_send):
agency_send.append(agn_admin) agency_send.append(agn_admin)
@ -517,16 +518,17 @@ def StandardAdd(request, id=False):
users_of_other_ag = User.objects.filter(profile__agency=agn_admin) users_of_other_ag = User.objects.filter(profile__agency=agn_admin)
for u in users_of_other_ag: for u in users_of_other_ag:
if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'): if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'):
if u.usernotifications.agn_standard_created_mail: pass
notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name #if u.usernotifications.agn_standard_created_mail:
sendMailNoti(notificationtext, u) #notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name
#sendMailNoti(notificationtext, u)
if u.usernotifications.agn_standard_created_push: #if u.usernotifications.agn_standard_created_push:
newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="") #newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="")
newnotification.save() #newnotification.save()
channel_layer = channels.layers.get_channel_layer() #channel_layer = channels.layers.get_channel_layer()
async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name}) #async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name})
for agn_admin in agencynetwork_single.sharemembers.all(): for agn_admin in agencynetwork_single.sharemembers.all():
if(agn_admin not in agency_send): if(agn_admin not in agency_send):
agency_send.append(agn_admin) agency_send.append(agn_admin)
@ -534,16 +536,17 @@ def StandardAdd(request, id=False):
users_of_other_ag = User.objects.filter(profile__agency=agn_admin) users_of_other_ag = User.objects.filter(profile__agency=agn_admin)
for u in users_of_other_ag: for u in users_of_other_ag:
if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'): if u.has_perm('users.standardmanager') and u.has_perm('users.agencynetwork'):
if u.usernotifications.agn_standard_created_mail: pass
notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name #if u.usernotifications.agn_standard_created_mail:
sendMailNoti(notificationtext, u) # notificationtext = "im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name
# sendMailNoti(notificationtext, u)
if u.usernotifications.agn_standard_created_push: #if u.usernotifications.agn_standard_created_push:
newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="") # newnotification = UserNotification(touser=u, notificationtext="im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name, notificationtype="")
newnotification.save() # newnotification.save()
channel_layer = channels.layers.get_channel_layer() # channel_layer = channels.layers.get_channel_layer()
async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name}) # async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Im Agenturverbund " + agencynetwork_single.name + " wurde ein neuer Standard geteilt: " + standard.name})
# Clear sended Agencys for multiple Networks # Clear sended Agencys for multiple Networks
agency_send = [] agency_send = []
@ -600,27 +603,39 @@ def StandardAdd(request, id=False):
#filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:prop><oc:fileid /></d:prop><d:depth>infinity</d:depth></d:propfind>' #filesearchdata = '<?xml version="1.0" encoding="UTF-8"?><d:propfind xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns"><d:prop><oc:fileid /></d:prop><d:depth>infinity</d:depth></d:propfind>'
r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid}) r = requests.request("SEARCH", settings.NEXTCLOUD_URL + "remote.php/dav/", data=filesearchdata, headers={'Content-Type' : 'text/xml', 'Authorization' : "Bearer " + request.user.profile.nc_sid})
# IDs filtern aus XML-Response # IDs filtern aus XML-Response
try:
split_response = r.text.split("<oc:fileid>")
# Header des XML-Response entfernen
split_response.pop(0)
# IDs from the User
for ele in split_response:
new_id = ele.split("</oc:fileid>")[0]
file_free = True
# Prüfen, dass diese IDs nicht im aktuellen Standard sind
for sf in standard.addedfiles_nc.all():
if str(sf.nc_id) == str(new_id):
file_free = False
if file_free == True: ncfileids = [str(s) for s in re.findall('<d:response>(.+?)</d:response>', r.text)]
possibleFilesByVisible.append(new_id) final_nc_files = []
# IDs from the User
for ele in ncfileids:
nc_filename_with_path = [str(s) for s in re.findall('<d:href>(.+?)</d:href>', ele)][0]
nc_filename_with_path = nc_filename_with_path.split("/")
filename = nc_filename_with_path[len(nc_filename_with_path)-1]
nc_file_id = [str(s) for s in re.findall('<oc:fileid>(.+?)</oc:fileid>', ele)][0]
if(len(filename) > 0):
final_nc_files.append([nc_file_id, filename])
# IDs from the User
for ele in final_nc_files:
file_free = True
# Prüfen, dass diese IDs nicht im aktuellen Standard sind
for sf in standard.addedfiles_nc.all():
if str(sf.nc_id) == str(ele[0]):
file_free = False
if file_free == True:
possibleFilesByVisible.append([ele[0], ele[1]])
except:
pass
# STANDARDS # STANDARDS
possible_standards = [] possible_standards = []

View File

@ -49,8 +49,8 @@
<span style="color: red">-{{erg.0}}</span> <span style="color: red">-{{erg.0}}</span>
{% endif %} {% endif %}
</small> </small>
<button style="float: right; margin-right: 10px; margin-bottom: -40px;" class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button style="float: right; margin-right: 10px; margin-bottom: -40px; z-index:10000;" class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
<button style="float: right; margin-right: -22px; margin-bottom: -40px;" class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <button style="float: right; margin-right: -22px; margin-bottom: -40px; z-index:10000;" class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button>
</div> </div>
</div> </div>

View File

@ -54,8 +54,8 @@
{% endif %} {% endif %}
</td> </td>
<td> <td>
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'" style="z-index:10000;"><small><i class="fas fa-pen"></i></small></button>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style="z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
</td> </td>
</tr> </tr>

View File

@ -98,8 +98,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" href="{% url 'tm-update' workday.pk %}" style=" z-index:10000;"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm" style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -131,8 +131,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -162,8 +162,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" href="{% url 'tm-update' workday.pk %}" style=" z-index:10000;"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -195,8 +195,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -227,8 +227,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -431,8 +431,8 @@
</div> </div>
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View File

@ -100,8 +100,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -133,8 +133,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@ -164,7 +164,7 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -197,8 +197,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -229,8 +229,8 @@
{% endif %} {% endif %}
{% if breakmonthline < da %} {% if breakmonthline < da %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" style=" z-index:10000;" href="{% url 'tm-update' workday.pk %}"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " style=" z-index:10000;" onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -426,8 +426,8 @@
{% endif %} {% endif %}
<button class="btn btn-secondary btn-sm ml-2" onclick="window.location.href='{% url 'tm-update' workday.pk 1 %}'"><small><i class="fas fa-pen"></i></small></button> <a class="btn btn-secondary btn-sm ml-2" href="{% url 'tm-update' workday.pk 1 %}" style=" z-index:10000;"><small><i class="fas fa-pen"></i></small></a>
<button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')"><small><i class="fas fa-trash"></i></small></button> <button class="btn btn-secondary btn-sm " onclick="javascript:$('#confirm-delete_{{workday.pk}}').modal('toggle')" style=" z-index:10000;"><small><i class="fas fa-trash"></i></small></button>
{% endif %} {% endif %}
{% endfor %} {% endfor %}

View File

@ -422,7 +422,8 @@ def TimeManagement(request, activemonth=False, activeyear=False):
def TimeUpdate(request, pk, team=0): def TimeUpdate(request, pk, team=0):
workday = Workday.objects.get(pk=pk) workday = Workday.objects.get(pk=pk)
user = workday.user user = workday.user
if(request.user.profile.agency == workday.agency and request.user.has_perm('users.usermanager')): #if(request.user.profile.agency == workday.agency and request.user.has_perm('users.usermanager')):
if(request.user.profile.agency == workday.agency):
if(request.method == "POST"): if(request.method == "POST"):
if(team == 0): if(team == 0):
form = UpdateWorkdayForm(request.POST, instance=request.user) form = UpdateWorkdayForm(request.POST, instance=request.user)

View File

@ -43,7 +43,7 @@
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script> <script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
window.location.replace("https://cloud.digitale-agentur.com/external/1"); window.location.replace("https://app.digitale-agentur.com/external/1");
localStorage.clear(); localStorage.clear();
}) })
</script> </script>

View File

@ -2,7 +2,7 @@
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script> <script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
window.location.replace("cloud.digitale-agentur.com/external/1"); window.location.replace("app.digitale-agentur.com/external/1");
localStorage.clear(); localStorage.clear();
}) })
</script> </script>

View File

@ -2,7 +2,7 @@
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script> <script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
window.location.replace("cloud.digitale-agentur.com/external/1"); window.location.replace("app.digitale-agentur.com/external/1");
localStorage.clear(); localStorage.clear();
}) })
</script> </script>

View File

@ -2,7 +2,7 @@
<script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script> <script src="{%static 'users/js/jquery.js' %}" type="text/javascript"></script>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
window.location.replace("cloud.digitale-agentur.com/external/1"); window.location.replace("app.digitale-agentur.com/external/1");
localStorage.clear(); localStorage.clear();
}) })
</script> </script>

View File

@ -1639,7 +1639,9 @@ def cronactions(request, code):
news.agnotify = True news.agnotify = True
news.save() news.save()
for user in allusers: for user in allusers:
pass
# SEMI-SIGNAL FOR NEWS GOING ONLINE # SEMI-SIGNAL FOR NEWS GOING ONLINE
'''
if(user.usernotifications.news_created_mail and news.agency == user.profile.agency): if(user.usernotifications.news_created_mail and news.agency == user.profile.agency):
notificationtext = "Neue Agenturnews: " + news.name notificationtext = "Neue Agenturnews: " + news.name
username = user.first_name + " " + user.last_name username = user.first_name + " " + user.last_name
@ -1659,7 +1661,7 @@ def cronactions(request, code):
channel_layer = channels.layers.get_channel_layer() channel_layer = channels.layers.get_channel_layer()
async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__News | Neue Agenturnews: " + news.name}) async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__News | Neue Agenturnews: " + news.name})
'''
# LEXOFFICE TEST # LEXOFFICE TEST
# HEADERS CURL # HEADERS CURL
''' '''
@ -1855,13 +1857,14 @@ def cronactionsdaily(request, code):
for r in repre_absence: for r in repre_absence:
if(r.representator.usernotifications.absence_user_is_rep_reminder_mail): if(r.representator.usernotifications.absence_user_is_rep_reminder_mail):
sendMailNoti(" in einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!", user) sendMailNoti(" in einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!", user)
'''
if(r.representator.usernotifications.absence_user_is_rep_reminder_push): if(r.representator.usernotifications.absence_user_is_rep_reminder_push):
newnotification = UserNotification(touser=user, notificationtext="Erinnerung für Abwesenheitsvertretung!", notificationtype="", elementid=r.pk) newnotification = UserNotification(touser=user, notificationtext="Erinnerung für Abwesenheitsvertretung!", notificationtype="", elementid=r.pk)
newnotification.save() newnotification.save()
channel_layer = channels.layers.get_channel_layer() channel_layer = channels.layers.get_channel_layer()
async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Abwesenheit | In einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!"}) async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Abwesenheit | In einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!"})
'''
except: except:
mailstatus += "ERROR REMINDER ABSENCEMAIL" mailstatus += "ERROR REMINDER ABSENCEMAIL"