diff --git a/adm/templates/adm/adm_import_flow.html b/adm/templates/adm/adm_import_flow.html index 1d4a088..99499bd 100644 --- a/adm/templates/adm/adm_import_flow.html +++ b/adm/templates/adm/adm_import_flow.html @@ -20,6 +20,7 @@ var groupids = [{% for g in groups %} "{{g.name}}" {% if forloop.counter < groups|length %}, {% endif %} {% endfor %}]; var files = [{% for f in files %} "{{f.pk}}" {% if forloop.counter < files|length %}, {% endif %} {% endfor %}]; + var standard_files = [{% for f in standard_files %} "{{f.pk}}" {% if forloop.counter < files|length %}, {% endif %} {% endfor %}]; var dirids = [{% for d in dirs %} "{{d.pk}}" {% if forloop.counter < dirs|length %}, {% endif %} {% endfor %}]; $(document).ready(function(){ @@ -128,6 +129,44 @@ if(filecounter < files.length){ addFiles(files[filecounter]); } + else { + if(standard_files[0] != undefined){ + addStandardFilesFiles(standard_files[0]); + } + else { + if(dirids[0] != undefined){ + addDirs(dirids[0]); + } + else { + $("#migfinished").show(); + } + } + } + } + }, + error: function(e){ + console.log(e); + } + }); + } + + filecounters = 0; + function addStandardFilesFiles(fileid){ + $("#cloud_process_cloud").show(); + $.ajax({ + url: "{% url 'api:apiaddstandardfile' %}", + dataType: 'json', + data: { + 'agencyid' : {{agency.pk}}, + 'fileid' : fileid, + }, + success: function(data){ + if(data['status'] == true){ + $("#cloud_process_cloud").append('
' + data['message'] + "
"); + filecounters += 1; + if(filecounters < standard_files.length){ + addStandardFilesFiles(standard_files[filecounters]); + } else { if(dirids[0] != undefined){ addDirs(dirids[0]); diff --git a/adm/views.py b/adm/views.py index a84e0af..3724eb0 100644 --- a/adm/views.py +++ b/adm/views.py @@ -709,7 +709,13 @@ class AdmImportFlow(TemplateView): context.update({'users' : User.objects.filter(profile__agency=agency)}) # DataFiles - context.update({'files' : DataFile.objects.filter(agency=agency)}) + normal_files = [] + + for f in DataFile.objects.filter(agency=agency): + if(f.parent.name != "Standards Uploadbereich"): + normal_files.append(f) + + context.update({'files' : normal_files}) # DataDirs context.update({'dirs' : DataDir.objects.filter(agency=agency).exclude(is_root=True)}) @@ -724,6 +730,17 @@ class AdmImportFlow(TemplateView): context.update({'groups' : ag_groups}) + # Loading Standard-Files + standards = Standards.objects.filter(agency=agency) + standard_files = [] + for s in standards: + for f in s.addedfiles.all(): + if(f.parent.name == "Standards Uploadbereich"): + standard_files.append(f) + + + context.update({'standard_files' : standard_files}) + # LINK TO THE NC-INSTANCE context.update({'nclink' : settings.NEXTCLOUD_URL}) context.update({'ncid' : self.request.user.profile.nc_sid}) diff --git a/api/urls.py b/api/urls.py index b74dd35..2006f6a 100644 --- a/api/urls.py +++ b/api/urls.py @@ -18,6 +18,7 @@ urlpatterns = [ path('adduser/', views.NCAddUser, name="apiadduser"), path('addgf/', views.NCAddGroupFolder, name="apiaddgf"), path('addfile/', views.NCAddFiles, name="apiaddfile"), + path('addstandardfile/', views.NCAddFiles, name="apiaddstandardfile"), path('adddir/', views.NCAddDirs, name="apiadddir"), path('setlog/', views.SetUserData, name="apisetlog"), diff --git a/api/views.py b/api/views.py index 1a702b7..06b3538 100644 --- a/api/views.py +++ b/api/views.py @@ -270,8 +270,13 @@ def NCAddGroupFolder(request): headers = { 'Authorization': 'Bearer ' + request.user.profile.nc_sid } + # Groupfolder r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers) - return JsonResponse({'status' : True, 'message': 'Gruppenordner angelegt!' + r.text}) + + # Standar Folder + r = 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)) + + return JsonResponse({'status' : True, 'message': 'Gruppenordner und Standard-Ordner angelegt!' + r.text}) return JsonResponse({"status" : "NO AUTH"}) @@ -318,6 +323,25 @@ def NCAddFiles(request): return JsonResponse({"status" : "NO AUTH"}) +''' + STANDARD FILES +''' +@api_view(['GET'], ) +def apiaddstandardfile(request): + if request.method == "GET": + agency = Agency.objects.get(pk=request.GET.get('agencyid')) + file_to_load = DataFile.objects.get(pk=request.GET.get('fileid')) + # Uplod the file! + final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_"+ str(agency.pk) + "/Standards Uploadbereich" + 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)) + 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"}) + ''' Hier werden die Dateien angelegt und entsprechende Zugriffsrechte der Gruppen gesetzt.