diff --git a/app_admin/views.py b/app_admin/views.py index 3789094..d36baa4 100644 --- a/app_admin/views.py +++ b/app_admin/views.py @@ -362,32 +362,47 @@ def admin_del_user(request): @logger.catch() def admin_project(request): if request.method == 'GET': - search_kw = request.GET.get('kw','') - if search_kw == '': - project_list = Project.objects.all().order_by('-create_time') - paginator = Paginator(project_list,10) - page = request.GET.get('page',1) - try: - projects = paginator.page(page) - except PageNotAnInteger: - projects = paginator.page(1) - except EmptyPage: - projects = paginator.page(paginator.num_pages) - else: - project_list = Project.objects.filter(intro__icontains=search_kw) - paginator = Paginator(project_list, 10) - page = request.GET.get('page', 1) - - try: - projects = paginator.page(page) - except PageNotAnInteger: - projects = paginator.page(1) - except EmptyPage: - projects = paginator.page(paginator.num_pages) - projects.kw = search_kw return render(request,'app_admin/admin_project.html',locals()) - else: - return HttpResponse('方法错误') + elif request.method == 'POST': + kw = request.POST.get('kw', '') + page = request.POST.get('page', 1) + limit = request.POST.get('limit', 10) + # 获取文集列表 + if kw == '': + project_list = Project.objects.all().order_by('-create_time') + else: + project_list = Project.objects.filter( + Q(intro__icontains=kw) | Q(name__icontains=kw), + ).order_by('-create_time') + paginator = Paginator(project_list, limit) + try: + pros = paginator.page(page) + except PageNotAnInteger: + pros = paginator.page(1) + except EmptyPage: + pros = paginator.page(paginator.num_pages) + table_data = [] + for project in pros: + item = { + 'id': project.id, + 'name': project.name, + 'intro': project.intro, + 'doc_total': Doc.objects.filter(top_doc=project.id).count(), + 'role': project.role, + 'role_value': project.role_value, + 'colla_total': ProjectCollaborator.objects.filter(project=project).count(), + 'create_user':project.create_user.username, + 'create_time': project.create_time, + 'modify_time': project.modify_time + } + table_data.append(item) + resp_data = { + "code": 0, + "msg": "ok", + "count": project_list.count(), + "data": table_data + } + return JsonResponse(resp_data) # 后台管理 - 修改文集权限 @superuser_only @@ -429,29 +444,93 @@ def admin_project_role(request,pro_id): @logger.catch() def admin_doc(request): if request.method == 'GET': - kw = request.GET.get('kw','') - if kw == '': - doc_list = Doc.objects.all().order_by('-modify_time') - paginator = Paginator(doc_list, 10) - page = request.GET.get('page', 1) - try: - docs = paginator.page(page) - except PageNotAnInteger: - docs = paginator.page(1) - except EmptyPage: - docs = paginator.page(paginator.num_pages) - else: - doc_list = Doc.objects.filter(Q(content__icontains=kw) | Q(name__icontains=kw)).order_by('-modify_time') - paginator = Paginator(doc_list, 10) - page = request.GET.get('page', 1) - try: - docs = paginator.page(page) - except PageNotAnInteger: - docs = paginator.page(1) - except EmptyPage: - docs = paginator.page(paginator.num_pages) - docs.kw = kw + # 文集列表 + project_list = Project.objects.all() # 自己创建的文集列表 + # 文档数量 + # 已发布文档数量 + published_doc_cnt = Doc.objects.filter(status=1).count() + # 草稿文档数量 + draft_doc_cnt = Doc.objects.filter(status=0).count() + # 所有文档数量 + all_cnt = published_doc_cnt + draft_doc_cnt return render(request,'app_admin/admin_doc.html',locals()) + elif request.method == 'POST': + kw = request.POST.get('kw', '') + project = request.POST.get('project', '') + status = request.POST.get('status', '') + if status == '-1': # 全部文档 + q_status = [0, 1] + elif status in ['0', '1']: + q_status = [int(status)] + else: + q_status = [0, 1] + + if project == '': + project_list = Project.objects.all().values_list('id', flat=True) # 自己创建的文集列表 + q_project = list(project_list) + else: + q_project = [project] + + page = request.POST.get('page', 1) + limit = request.POST.get('limit', 10) + # 没有搜索 + if kw == '': + doc_list = Doc.objects.filter( + status__in=q_status, + top_doc__in=q_project + ).order_by('-modify_time') + # 有搜索 + else: + doc_list = Doc.objects.filter( + Q(content__icontains=kw) | Q(name__icontains=kw), + status__in=q_status, top_doc__in=q_project + ).order_by('-modify_time') + + # 文集列表 + project_list = Project.objects.filter(create_user=request.user) # 自己创建的文集列表 + colla_project_list = ProjectCollaborator.objects.filter(user=request.user) # 协作的文集列表 + + # 文档数量 + # 已发布文档数量 + published_doc_cnt = Doc.objects.filter(create_user=request.user, status=1).count() + # 草稿文档数量 + draft_doc_cnt = Doc.objects.filter(create_user=request.user, status=0).count() + # 所有文档数量 + all_cnt = published_doc_cnt + draft_doc_cnt + + # 分页处理 + paginator = Paginator(doc_list, limit) + page = request.GET.get('page', page) + try: + docs = paginator.page(page) + except PageNotAnInteger: + docs = paginator.page(1) + except EmptyPage: + docs = paginator.page(paginator.num_pages) + + table_data = [] + for doc in docs: + item = { + 'id': doc.id, + 'name': doc.name, + 'parent': Doc.objects.get(id=doc.parent_doc).name if doc.parent_doc != 0 else '无', + 'project_id': Project.objects.get(id=doc.top_doc).id, + 'project_name': Project.objects.get(id=doc.top_doc).name, + 'status': doc.status, + 'editor_mode': doc.editor_mode, + 'open_children': doc.open_children, + 'create_user':doc.create_user.username, + 'create_time': doc.create_time, + 'modify_time': doc.modify_time + } + table_data.append(item) + resp_data = { + "code": 0, + "msg": "ok", + "count": doc_list.count(), + "data": table_data + } + return JsonResponse(resp_data) # 后台管理 - 文档模板管理 diff --git a/template/app_admin/admin_doc.html b/template/app_admin/admin_doc.html index 3bec652..87e6b36 100644 --- a/template/app_admin/admin_doc.html +++ b/template/app_admin/admin_doc.html @@ -4,114 +4,174 @@ {% block title %}文档管理{% endblock %} {% block content %}
+
高级筛选
-
-
- 文档管理 - -
-
-
-
+
-
- -
- - 新建文档 + +
+ +
+
- -
- -
- - - - - - - - - - - - - {% load doc_filter %} - {% for doc in docs %} - - {% if doc.status == 1 %} - - {% else %} - - {% endif %} - - - - - - - {% endfor %} - -
文档名称上级文档所属文集创建人创建时间操作
- {{ doc.name }} - - - - {{ doc.name }} - - - {{ doc.parent_doc|get_doc_parent }}{{ doc.top_doc|get_doc_top }}{{ doc.create_user }}{{ doc.create_time }} - - 修改 - - - 删除 - -
-
- -
-
- - {% if docs.has_previous %} - 上一页 - {% else %} - 上一页 - {% endif %} - - - - {{ docs.number }}/{{ docs.paginator.num_pages }} - - - {% if docs.has_next %} - 下一页 - {% else %} - 下一页 - {% endif %} +
+ +
+ +
+
+
+ +
+ + + +
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + {% endblock %} {% block custom_script %} {% endblock %} \ No newline at end of file diff --git a/template/app_admin/admin_project.html b/template/app_admin/admin_project.html index cd28b1d..b682341 100644 --- a/template/app_admin/admin_project.html +++ b/template/app_admin/admin_project.html @@ -5,120 +5,142 @@ {% block content %}
-
-
- 文集管理 - -
-
-
-
-
-
- -
- - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - {% for pro in projects %} - - - - {% load project_filter %} - - - - - - - {% endfor %} - -
文集名称文集简介文档数量权限创建时间所属用户操作
{{ pro.name }}{{ pro.intro }}{{ pro.id | get_doc_count }} -
- {% if pro.role == 0 %} - 公开 - {% elif pro.role == 1 %} - 私密 - {% elif pro.role == 2 %} - 指定用户可见 - {% elif pro.role == 3 %} - 访问码可见 - {% endif %} -
-
{{ pro.create_time }}{{ pro.create_user }} - - - - - - - -
-
- -
-
- - {% if projects.has_previous %} - 上一页 - {% else %} - 上一页 - {% endif %} - - - - {{ projects.number }}/{{ projects.paginator.num_pages }} - - - {% if projects.has_next %} - 下一页 - {% else %} - 下一页 - {% endif %} -
-
+
-{% endblock %} + + + + + + + + + + + + + + + + + +{% endblock %} {% block custom_script %} {% endblock %} \ No newline at end of file diff --git a/template/app_doc/editor/create_base_2.html b/template/app_doc/editor/create_base_2.html index 5a6d332..88d6f78 100644 --- a/template/app_doc/editor/create_base_2.html +++ b/template/app_doc/editor/create_base_2.html @@ -365,6 +365,7 @@ // console.log("字符数:",this.getMarkdown().length) var wcnt = this.getMarkdown().length; $("#wordcount").text(wcnt); + autoCacheDoc(); }, onload : function() { // this.insertValue(" ") diff --git a/template/app_doc/manage/manage_doc.html b/template/app_doc/manage/manage_doc.html index 2c365fa..32563e1 100644 --- a/template/app_doc/manage/manage_doc.html +++ b/template/app_doc/manage/manage_doc.html @@ -64,9 +64,9 @@