diff --git a/adm/templates/adm/adm_import_flow.html b/adm/templates/adm/adm_import_flow.html index 99499bd..8033235 100644 --- a/adm/templates/adm/adm_import_flow.html +++ b/adm/templates/adm/adm_import_flow.html @@ -13,6 +13,8 @@ + + {% endblock content %} \ No newline at end of file diff --git a/adm/views.py b/adm/views.py index 3724eb0..f2f32d9 100644 --- a/adm/views.py +++ b/adm/views.py @@ -758,6 +758,7 @@ 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_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)) json_response = json.loads(r.text) response_status = json_response['ocs']['data']['status'] if(response_status == "1"): diff --git a/api/urls.py b/api/urls.py index 2006f6a..1731738 100644 --- a/api/urls.py +++ b/api/urls.py @@ -18,8 +18,9 @@ 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('addstandardfile/', views.NCAddStandardFiles, name="apiaddstandardfile"), path('adddir/', views.NCAddDirs, name="apiadddir"), + path('addswitchstandards/', views.NCSwitchStandardFiles, name="apiswitchstandards"), path('setlog/', views.SetUserData, name="apisetlog"), # EXTERNAL FROM NC diff --git a/api/views.py b/api/views.py index 06b3538..21aa638 100644 --- a/api/views.py +++ b/api/views.py @@ -257,6 +257,8 @@ def NCAddUser(request): from requests.auth import HTTPBasicAuth ''' Anlegen des Gruppenordners der Agentur in NC + + WIRD NICHT VERWENDET!!! ''' @api_view(['POST'], ) def NCAddGroupFolder(request): @@ -274,7 +276,7 @@ def NCAddGroupFolder(request): r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers) # 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)) + 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}) @@ -327,14 +329,19 @@ def NCAddFiles(request): STANDARD FILES ''' @api_view(['GET'], ) -def apiaddstandardfile(request): +def NCAddStandardFiles(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')) + + # TODO: Was geht hier bitte nicht? PUT fehler da keine Dateien gefunden werden können + print(file_to_load.file.path) + # 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)) + print(r.text) if(len(r.text) == 0): return JsonResponse({'status' : True, 'message': 'Datei ' + file_to_load.name + ' angelegt.'}) else: @@ -400,4 +407,22 @@ def SetUserData(request): user.profile.nc_sid = request.POST.get('sid') user.save() return JsonResponse({'message' : 'A user was found in request, sid set!'}) - \ No newline at end of file + + + +''' + Standardateien neu zuweisen +''' +@api_view(['GET'], ) +def NCSwitchStandardFiles(request): + if request.method == "GET": + agency = Agency.objects.get(pk=request.GET.get('agencyid')) + standards = Standards.objects.filter(agency=agency) + + for s in standards: + for f in s.addedfiles.all(): + filesearchdata = '/files/' + settings.NEXTCLOUD_USER_API + '/Agenturdaten_' + str(agency.pk) + 'infinity' + f.name + '' + 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(r.text) + + return JsonResponse({"status" : "NO AUTH"}) \ No newline at end of file diff --git a/standards/models.py b/standards/models.py index 13dcfeb..c1b7593 100644 --- a/standards/models.py +++ b/standards/models.py @@ -22,7 +22,7 @@ class StandardComments(models.Model): comment_by = models.ForeignKey(User, on_delete=models.CASCADE) comment_on = models.DateTimeField(default=timezone.now, blank=True) last_modified_on = models.DateTimeField(default=timezone.now, blank=True) - + class Standards(models.Model): agency = models.ForeignKey(Agency, on_delete=models.CASCADE) area = models.ForeignKey(Areas, on_delete=models.SET_NULL, blank=True, null=True) @@ -66,6 +66,8 @@ class Standards(models.Model): # FILES addedfiles = models.ManyToManyField(DataFile, blank=True) + addedfiles_nc = models.ManyToManyField('NCFile', blank=True) + # VERLINKTE STANDARDS linked_standards = models.ManyToManyField('Standards', blank=True) # GORUPS @@ -94,3 +96,8 @@ class Standards(models.Model): # Hier Path für Templates des Models mit Parametern def get_absolute_url(self): return reverse('standards-add', kwargs={'pk':self.pk}) + +class NCFile(models.Model): + agency = models.ForeignKey(Agency, on_delete=models.CASCADE) + nc_id = models.IntegerField(default=0) + file_id = models.ForeignKey(DataFile, on_delete=models.CASCADE) diff --git a/standards/views.py b/standards/views.py index bb55dcb..2ab1797 100644 --- a/standards/views.py +++ b/standards/views.py @@ -287,14 +287,11 @@ def StandardAdd(request, id=False): return render(request, 'standards/standards_add.html', context) # UPDATE A STANDARD else: + standard = Standards.objects.get(pk=id, agency=request.user.profile.agency) # SAVE UPDATED STANDARD if request.method == 'POST': - - - - # CHECK IF USER HAS RIGHTS TO SEE THIS DIR groupsofstandard = standard