This commit is contained in:
Holger Trampe 2021-10-23 20:15:06 +02:00
parent 3ddc8e14ef
commit 720439c798
1 changed files with 34 additions and 32 deletions

View File

@ -379,42 +379,44 @@ 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')) if(DataDir.objects.get(pk=request.GET.get('dirid')).exists()):
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/vhdadjangoapi_8fjz47epc6/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 + " RESP: " + r.text}) 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/vhdadjangoapi_8fjz47epc6/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/vhdadjangoapi_8fjz47epc6/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 + " RESP: " + r.text + " " + "remote.php/dav/files/vhdadjangoapi_8fjz47epc6/Agenturdaten_" + str(agency.pk) + d_prestring + "/" + dir_to_create.name})
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})
else:
return JsonResponse({'status' : False, 'message': 'Datei nicht gefunden'})
return JsonResponse({'status' : False, 'message': 'AUTH ERROR'}) return JsonResponse({'status' : False, 'message': 'AUTH ERROR'})
@api_view(['GET'], ) @api_view(['GET'], )