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