Filepart 1

This commit is contained in:
holger.trampe 2021-08-18 17:10:13 +02:00
parent 1bc3dcb703
commit 0ad67210c3
6 changed files with 71 additions and 11 deletions

View File

@ -13,6 +13,8 @@
<h5 id="cloud_process" style="display: none;">Es werden {{files|length}} Dateien und {{dirs|length}} Ordner angelegt und mit Zugriffsrechten gesetzt.</h5> <h5 id="cloud_process" style="display: none;">Es werden {{files|length}} Dateien und {{dirs|length}} Ordner angelegt und mit Zugriffsrechten gesetzt.</h5>
<div id="cloud_process_main" style="display: none;">Gruppenordner wird angelegt</div> <div id="cloud_process_main" style="display: none;">Gruppenordner wird angelegt</div>
<div id="cloud_process_cloud" style="display: none;"></div> <div id="cloud_process_cloud" style="display: none;"></div>
<div id="cloud_process_standards" style="display: none;">Standarddateien werden neu zugewiesen...</div>
<div id="cloud_process_standards_error" style="display: none;">Standarddateien konnten nicht zugewiesen werden. Bitte manuell prüfen.</div>
</div> </div>
<h5 id="migfinished" style="display: none;">Migration vollständig. Bitte diese Seite ausdrucken oder Speichern. Ein erneuter Import ist nicht möglich!</h5> <h5 id="migfinished" style="display: none;">Migration vollständig. Bitte diese Seite ausdrucken oder Speichern. Ein erneuter Import ist nicht möglich!</h5>
<script> <script>
@ -28,6 +30,7 @@
createAgencyGroups(groupids[0]); createAgencyGroups(groupids[0]);
//DEV //DEV
//rebuildingStandards();
//addGroupFolder(); //addGroupFolder();
//addDirs(dirids[0]); //addDirs(dirids[0]);
}) })
@ -97,7 +100,7 @@
dataType: 'json', dataType: 'json',
success: function(data){ success: function(data){
if(data['status'] == true){ if(data['status'] == true){
$("#cloud_process_main").html("Ordner erfolgreich angelegt. Starte mit Dateiimport..."); $("#cloud_process_main").html("Ordner und Standardordner erfolgreich angelegt. Starte mit Dateiimport...");
if(files[0] != undefined){ if(files[0] != undefined){
addFiles(files[0]); addFiles(files[0]);
} }
@ -131,6 +134,7 @@
} }
else { else {
if(standard_files[0] != undefined){ if(standard_files[0] != undefined){
console.log("start adding standard files...");
addStandardFilesFiles(standard_files[0]); addStandardFilesFiles(standard_files[0]);
} }
else { else {
@ -165,6 +169,7 @@
$("#cloud_process_cloud").append('<p>' + data['message'] + "</p>"); $("#cloud_process_cloud").append('<p>' + data['message'] + "</p>");
filecounters += 1; filecounters += 1;
if(filecounters < standard_files.length){ if(filecounters < standard_files.length){
console.log("adding standard files...");
addStandardFilesFiles(standard_files[filecounters]); addStandardFilesFiles(standard_files[filecounters]);
} }
else { else {
@ -199,7 +204,8 @@
addDirs(dirids[dircounter]); addDirs(dirids[dircounter]);
} }
else { else {
$("#migfinished").show(); rebuildingStandards();
} }
} }
}, },
@ -208,6 +214,29 @@
} }
}); });
} }
//Anlegen der Standarddateien
function rebuildingStandards(){
$("#cloud_process_standards").show();
$.ajax({
url: "{% url 'api:apiswitchstandards' %}",
dataType: 'json',
data: {
'agencyid' : {{agency.pk}},
},
success: function(data){
if(data['status'] == true){
$("#migfinished").show();
}
else{
$("#cloud_process_standards_error").show();
}
},
error: function(e){
console.log(e);
}
});
}
</script> </script>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -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 = 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) json_response = json.loads(r.text)
response_status = json_response['ocs']['data']['status'] response_status = json_response['ocs']['data']['status']
if(response_status == "1"): if(response_status == "1"):

View File

@ -18,8 +18,9 @@ urlpatterns = [
path('adduser/', views.NCAddUser, name="apiadduser"), path('adduser/', views.NCAddUser, name="apiadduser"),
path('addgf/', views.NCAddGroupFolder, name="apiaddgf"), path('addgf/', views.NCAddGroupFolder, name="apiaddgf"),
path('addfile/', views.NCAddFiles, name="apiaddfile"), 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('adddir/', views.NCAddDirs, name="apiadddir"),
path('addswitchstandards/', views.NCSwitchStandardFiles, name="apiswitchstandards"),
path('setlog/', views.SetUserData, name="apisetlog"), path('setlog/', views.SetUserData, name="apisetlog"),
# EXTERNAL FROM NC # EXTERNAL FROM NC

View File

@ -257,6 +257,8 @@ def NCAddUser(request):
from requests.auth import HTTPBasicAuth from requests.auth import HTTPBasicAuth
''' '''
Anlegen des Gruppenordners der Agentur in NC Anlegen des Gruppenordners der Agentur in NC
WIRD NICHT VERWENDET!!!
''' '''
@api_view(['POST'], ) @api_view(['POST'], )
def NCAddGroupFolder(request): def NCAddGroupFolder(request):
@ -274,7 +276,7 @@ def NCAddGroupFolder(request):
r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers) r = requests.post(settings.NEXTCLOUD_URL + "apps/agency/createagf", data=data, headers=headers)
# Standar Folder # 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}) return JsonResponse({'status' : True, 'message': 'Gruppenordner und Standard-Ordner angelegt!' + r.text})
@ -327,14 +329,19 @@ def NCAddFiles(request):
STANDARD FILES STANDARD FILES
''' '''
@api_view(['GET'], ) @api_view(['GET'], )
def apiaddstandardfile(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')) 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! # Uplod the file!
final_file_path = settings.NEXTCLOUD_URL + "remote.php/dav/files/admin/Agenturdaten_"+ str(agency.pk) + "/Standards Uploadbereich" 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: 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))
print(r.text)
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:
@ -400,4 +407,22 @@ def SetUserData(request):
user.profile.nc_sid = request.POST.get('sid') user.profile.nc_sid = request.POST.get('sid')
user.save() user.save()
return JsonResponse({'message' : 'A user was found in request, sid set!'}) return JsonResponse({'message' : 'A user was found in request, sid set!'})
'''
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 = '<?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(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>'
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"})

View File

@ -22,7 +22,7 @@ class StandardComments(models.Model):
comment_by = models.ForeignKey(User, on_delete=models.CASCADE) comment_by = models.ForeignKey(User, on_delete=models.CASCADE)
comment_on = models.DateTimeField(default=timezone.now, blank=True) comment_on = models.DateTimeField(default=timezone.now, blank=True)
last_modified_on = models.DateTimeField(default=timezone.now, blank=True) last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
class Standards(models.Model): class Standards(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.CASCADE) agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
area = models.ForeignKey(Areas, on_delete=models.SET_NULL, blank=True, null=True) area = models.ForeignKey(Areas, on_delete=models.SET_NULL, blank=True, null=True)
@ -66,6 +66,8 @@ class Standards(models.Model):
# FILES # FILES
addedfiles = models.ManyToManyField(DataFile, blank=True) addedfiles = models.ManyToManyField(DataFile, blank=True)
addedfiles_nc = models.ManyToManyField('NCFile', blank=True)
# VERLINKTE STANDARDS # VERLINKTE STANDARDS
linked_standards = models.ManyToManyField('Standards', blank=True) linked_standards = models.ManyToManyField('Standards', blank=True)
# GORUPS # GORUPS
@ -94,3 +96,8 @@ class Standards(models.Model):
# Hier Path für Templates des Models mit Parametern # Hier Path für Templates des Models mit Parametern
def get_absolute_url(self): def get_absolute_url(self):
return reverse('standards-add', kwargs={'pk':self.pk}) 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)

View File

@ -287,14 +287,11 @@ def StandardAdd(request, id=False):
return render(request, 'standards/standards_add.html', context) return render(request, 'standards/standards_add.html', context)
# UPDATE A STANDARD # UPDATE A STANDARD
else: else:
standard = Standards.objects.get(pk=id, agency=request.user.profile.agency) standard = Standards.objects.get(pk=id, agency=request.user.profile.agency)
# SAVE UPDATED STANDARD # SAVE UPDATED STANDARD
if request.method == 'POST': if request.method == 'POST':
# CHECK IF USER HAS RIGHTS TO SEE THIS DIR # CHECK IF USER HAS RIGHTS TO SEE THIS DIR
groupsofstandard = standard groupsofstandard = standard