From ce7f7aa6ca040bfa8af9dc6005b73634d0bd0406 Mon Sep 17 00:00:00 2001 From: yangjian Date: Tue, 11 May 2021 20:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E7=94=A8=E6=88=B7=E6=96=87=E9=9B=86=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_admin/urls.py | 1 + app_admin/views.py | 46 +++++++++++++++++++++++++++ template/app_admin/admin_project.html | 4 +-- 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/app_admin/urls.py b/app_admin/urls.py index f4021c8..d6b91b5 100644 --- a/app_admin/urls.py +++ b/app_admin/urls.py @@ -13,6 +13,7 @@ urlpatterns = [ path('project_manage/',views.admin_project,name='project_manage'), # 文集管理 path('project_role_manage//',views.admin_project_role,name="admin_project_role"), # 管理文集权限 path('project_manage_istop',views.admin_project_istop,name="admin_project_istop"), # 修改文集置顶状态 + path('project_del/', views.admin_project_delete, name="admin_project_del"), # 删除文集 path('doc_manage/',views.admin_doc,name='doc_manage'), # 文档管理 path('doctemp_manage/',views.admin_doctemp,name='doctemp_manage'), # 文档模板管理 path('setting/',views.admin_setting,name="sys_setting"), # 应用设置 diff --git a/app_admin/views.py b/app_admin/views.py index 0a7e72d..e2766b7 100644 --- a/app_admin/views.py +++ b/app_admin/views.py @@ -481,6 +481,52 @@ def admin_project_role(request,pro_id): else: return Http404 +# 后台管理 - 删除文集 +@superuser_only +@require_POST +def admin_project_delete(request): + try: + range = request.POST.get('range','single') + pro_id = request.POST.get('pro_id','') + if pro_id != '': + if range == 'single': + pro = Project.objects.get(id=pro_id) + # 删除文集下的文档、文档历史、文档分享、文档标签 + pro_doc_list = Doc.objects.filter(top_doc=int(pro_id)) + for doc in pro_doc_list: + DocHistory.objects.filter(doc=doc).delete() + DocShare.objects.filter(doc=doc).delete() + DocTag.objects.filter(doc=doc).delete() + pro_doc_list.delete() + # 删除文集 + pro.delete() + return JsonResponse({'status':True}) + elif range == 'multi': + pros = pro_id.split(",") + try: + projects = Project.objects.filter(id__in=pros) + # 删除文集下的文档、文档历史、文档分享、文档标签 + pro_doc_list = Doc.objects.filter(top_doc__in=[i.id for i in projects]) + for doc in pro_doc_list: + DocHistory.objects.filter(doc=doc).delete() + DocShare.objects.filter(doc=doc).delete() + DocTag.objects.filter(doc=doc).delete() + pro_doc_list.delete() + projects.delete() + return JsonResponse({'status': True, 'data': 'ok'}) + except Exception: + logger.exception(_("异常")) + return JsonResponse({'status': False, 'data': _('无指定内容')}) + else: + return JsonResponse({'status': False, 'data': _('类型错误')}) + else: + return JsonResponse({'status':False,'data':_('参数错误')}) + except Exception as e: + logger.exception(_("删除文集出错")) + return JsonResponse({'status':False,'data':_('请求出错')}) + + + # 后台管理 - 控制文集置顶状态 @superuser_only @require_POST diff --git a/template/app_admin/admin_project.html b/template/app_admin/admin_project.html index a01cb9d..1638630 100644 --- a/template/app_admin/admin_project.html +++ b/template/app_admin/admin_project.html @@ -262,7 +262,7 @@ data = { 'pro_id':pro_id, } - $.post("{% url 'del_project' %}",data,function(r){ + $.post("{% url 'admin_project_del' %}",data,function(r){ layer.closeAll(); //关闭loading if(r.status){ layer.msg("{% trans '删除成功' %}", { @@ -312,7 +312,7 @@ if(confirm_delete === 'DELETE'){ let loading = layer.load(); $.ajax({ - url: "{% url 'del_project' %}", + url: "{% url 'admin_project_del' %}", dataType: 'json', type: 'post', data:{'pro_id':pro_id,'range':'multi'},