89 lines
3.1 KiB
Python
89 lines
3.1 KiB
Python
from django.shortcuts import render, redirect
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView
|
|
from django.contrib.auth.models import User
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.views.generic import TemplateView
|
|
from .models import Data
|
|
from django.views.generic.edit import FormView
|
|
from .forms import CloudAddFileForm
|
|
from django.conf import settings
|
|
from django.core.files.storage import default_storage
|
|
from digitaleagentur.settings import BASE_DIR
|
|
import os
|
|
|
|
'''
|
|
import os
|
|
|
|
def list_files(startpath):
|
|
for root, dirs, files in os.walk(startpath):
|
|
level = root.replace(startpath, '').count(os.sep)
|
|
indent = ' ' * 4 * (level)
|
|
print('{}{}/'.format(indent, os.path.basename(root)))
|
|
subindent = ' ' * 4 * (level + 1)
|
|
for f in files:
|
|
print('{}{}'.format(subindent, f))
|
|
'''
|
|
|
|
def list_files(startpath, deep):
|
|
for root, dirs, files in os.walk(startpath):
|
|
level = root.replace(startpath, '').count(os.sep)
|
|
if(level <= deep+1 and (deep != 0 and(level > 0))):
|
|
print(level)
|
|
print(os.path.basename(root))
|
|
for f in files:
|
|
print(f)
|
|
|
|
|
|
class CloudMain(LoginRequiredMixin, FormView):
|
|
form_class = CloudAddFileForm
|
|
success_url = '/cloud/0'
|
|
|
|
|
|
def form_valid(self, form):
|
|
form = CloudAddFileForm(self.request.POST, self.request.FILES['file'])
|
|
tempdata = Data(file=self.request.FILES['file'], subdir="", agency=self.request.user.profile.agency, owner=self.request.user)
|
|
tempdata.save()
|
|
return super().form_valid(form)
|
|
|
|
# Change context and return for template-data
|
|
def get_context_data(self, **kwargs):
|
|
context = super().get_context_data(**kwargs)
|
|
agency_id = self.request.user.profile.agency.pk
|
|
if(self.kwargs['level'] == "home"):
|
|
print(list_files(os.path.dirname(BASE_DIR+"/media/agencydata/agency_"+str(agency_id)+"/files/"), 0))
|
|
else:
|
|
print(list_files(os.path.dirname(BASE_DIR+"/media/agencydata/agency_"+str(agency_id)+"/files/"+self.kwargs['level']),2))
|
|
context.update({'active_link' : 'cloud', 'files': list_files("agencydata/agency_"+str(agency_id)+"/", 2)})
|
|
return context
|
|
|
|
|
|
|
|
'''
|
|
dirs_level = []
|
|
files = ""
|
|
subdir = ""
|
|
files_correcteddirname = []
|
|
agency_id = self.request.user.profile.agency.pk
|
|
if(self.kwargs["level"] == "home"):
|
|
files = Data.objects.filter(agency__pk=agency_id, subdir="")
|
|
|
|
for f in files:
|
|
tempstr = str(f.file)
|
|
files_correcteddirname.append(tempstr.split("/")[3])
|
|
|
|
dirs = Data.objects.filter(agency__pk=agency_id).exclude(subdir="")
|
|
|
|
for d in dirs:
|
|
tempstr = str(d.file)
|
|
dirs_level.append(tempstr.split("/")[3])
|
|
else:
|
|
subdir = self.kwargs["level"]
|
|
files = Data.objects.filter(agency__pk=agency_id, file__startswith="agencydata/agency_"+str(agency_id)+"/files/"+subdir)
|
|
dirs = Data.objects.filter(agency__pk=agency_id).exclude(subdir="")
|
|
for d in dirs:
|
|
tempstr = str(d.file)
|
|
dirs_level.append(tempstr.split("/")[4])
|
|
|
|
context.update({'active_link' : 'cloud', 'files': files, 'dirs_level' : dirs_level})
|
|
''' |