digitaleagenturnc/cloud/views.py

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})
'''