修复管理员无法批量删除其他用户文集的问题

This commit is contained in:
yangjian 2021-05-11 20:54:13 +08:00
parent 2351ed6929
commit ce7f7aa6ca
3 changed files with 49 additions and 2 deletions

View File

@ -13,6 +13,7 @@ urlpatterns = [
path('project_manage/',views.admin_project,name='project_manage'), # 文集管理
path('project_role_manage/<int:pro_id>/',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"), # 应用设置

View File

@ -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

View File

@ -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'},