forked from mirror/MrDoc
修复管理员无法批量删除其他用户文集的问题
This commit is contained in:
parent
2351ed6929
commit
ce7f7aa6ca
@ -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"), # 应用设置
|
||||
|
@ -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
|
||||
|
@ -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'},
|
||||
|
Loading…
x
Reference in New Issue
Block a user