class FilemanagerMixin(object): def dispatch(self, request, *args, **kwargs): params = dict(request.GET) params.update(dict(request.POST)) self.fm = Filemanager() if 'path' in params and len(params['path'][0]) > 0: self.fm.update_path(params['path'][0]) if 'popup' in params: self.popup = params['popup'] return super(FilemanagerMixin, self).dispatch(request, *args, **kwargs) def get_context_data(self, *args, **kwargs): context = super(FilemanagerMixin, self).get_context_data(*args, **kwargs) self.fm.patch_context_data(context) if hasattr(self, 'popup'): context['popup'] = self.popup if hasattr(self, 'extra_breadcrumbs') and isinstance( self.extra_breadcrumbs, list): context['breadcrumbs'] += self.extra_breadcrumbs return context
class FilemanagerMixin(object): def dispatch(self, request, *args, **kwargs): params = dict(request.GET) params.update(dict(request.POST)) self.fm = Filemanager() if 'path' in params and len(params['path'][0]) > 0: self.fm.update_path(params['path'][0]) if 'popup' in params: self.popup = params['popup'] return super(FilemanagerMixin, self).dispatch(request, *args, **kwargs) def get_context_data(self, *args, **kwargs): context = super(FilemanagerMixin, self).get_context_data(*args, **kwargs) self.fm.patch_context_data(context) if hasattr(self, 'popup'): context['popup'] = self.popup if hasattr(self, 'extra_breadcrumbs') and isinstance(self.extra_breadcrumbs, list): context['breadcrumbs'] += self.extra_breadcrumbs return context
def connector(request): fm = Filemanager() response = { "data": [], "msg": { "query": "", "params": [None, None], }, "status": 1, } if request.POST: action = request.POST.get('action') path = request.POST.get('path') fm.update_path(path[1:]) if action == "getfolder": response['data'] = fm.directory_list() return JsonResponse(response) elif action == "uploadfile": files = request.FILES if files and path: response['msg']['params'][0] = 0 response['msg']['params'][1] = len(files) for name in files: f = files.get(name, None) upload_name = fm.upload_file(f) if upload_name: response['msg']['params'][0] += 1 response['msg']['query'] = "BE_UPLOADALL_UPLOADS %s / %s" elif action == 'newfolder': folder_name = fm.create_directory(request.POST.get('name')) if folder_name != '' and folder_name != None: response['data'] = {path: "/", 'namefile': folder_name} response['msg']['query'] = "BE_NEW_FOLDER_CREATED %s" response['msg']['params'] = ['/%s/' % folder_name] elif action == 'renamefile': nameold = request.POST.get('nameold') name = request.POST.get('name') rename = fm.rename(nameold, name) if rename: response['data'] = { 'newnamefile': rename, 'odlnamefile': nameold } response['msg']['params'] = "BE_RENAME_MODIFIED" elif action == 'deletefile': names = request.POST.getlist('name[]') for name in names: delete_name = fm.delete(name) if delete_name: response['data'].append({ 'namefile': delete_name, 'status': 1, 'params': [], 'query': "BE_DELETE_DELETED" }) else: response['msg']['params'] = "BE_DELETE_NOT_EMPTY" response['msg']['query'] = name + ' is not empty' response['status'] = 0 return JsonResponse(response)
def dispatch(self, request, *args, **kwargs): params = dict(request.GET) params.update(dict(request.POST)) self.fm = Filemanager() if 'path' in params and len(params['path'][0]) > 0: self.fm.update_path(params['path'][0]) if 'popup' in params: self.popup = params['popup'] return super(FilemanagerMixin, self).dispatch(request, *args, **kwargs)
class FilemanagerTest(TestCase): def setUp(self): self.fm = Filemanager() def test_basic_path(self): self.assertEqual(self.fm.path, '') self.assertEqual(self.fm.abspath, 'uploads') def test_different_path(self): self.fm.update_path('another/folder/') self.assertEqual(self.fm.path, 'another/folder') self.assertEqual(self.fm.abspath, 'uploads/another/folder') def test_path_from_root(self): self.fm.update_path('/folder/') self.assertEqual(self.fm.path, 'folder') self.assertEqual(self.fm.abspath, 'uploads/folder') def test_get_breadcrumbs(self): self.assertEqual([{'label': 'Filemanager', 'path': ''}], self.fm.get_breadcrumbs())
class FilemanagerTest(TestCase): def setUp(self): self.fm = Filemanager() def test_basic_path(self): self.assertEqual(self.fm.path, '') self.assertEqual(self.fm.abspath, 'uploads') def test_different_path(self): self.fm.update_path('another/folder/') self.assertEqual(self.fm.path, 'another/folder') self.assertEqual(self.fm.abspath, 'uploads/another/folder') def test_path_from_root(self): self.fm.update_path('/folder/') self.assertEqual(self.fm.path, 'folder') self.assertEqual(self.fm.abspath, 'uploads/folder') def test_get_breadcrumbs(self): self.assertEqual([{ 'label': 'Filemanager', 'path': '' }], self.fm.get_breadcrumbs())
def setUp(self): self.fm = Filemanager()