diff --git a/CHANGES.md b/CHANGES.md index 71e31d3..416ac7e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,11 @@ ## 版本更新记录 +### v0.6.9 2021-07 + +- [新增]后台管理中心的图片管理和附件管理功能; +- [修复]vditor编辑器粘贴多图片文本时图片只有一张图的问题 +- [优化]个人中心我协作的文集页面及功能; + ### v0.6.8 2021-06-27 - [新增]文档页面支持OGP协议; diff --git a/app_api/serializers_app.py b/app_api/serializers_app.py index df1702e..9230093 100644 --- a/app_api/serializers_app.py +++ b/app_api/serializers_app.py @@ -25,6 +25,31 @@ class ProjectSerializer(ModelSerializer): model = Project fields = ('__all__') +# 协作文集序列化器 +class ProjectCollaSerializer(ModelSerializer): + project_id = serializers.SerializerMethodField(label="文集ID") + project_name = serializers.SerializerMethodField(label="文集名称") + username = serializers.SerializerMethodField(label='文集创建人') + top_doc = serializers.SerializerMethodField(label="上级") + + class Meta: + model = ProjectCollaborator + fields = ('__all__') + + def get_project_name(self,obj): + return obj.project.name + + def get_project_id(self,obj): + return obj.project.id + + def get_username(self,obj): + username = obj.project.create_user.username + return username + + def get_top_doc(self,obj): + return 0 + + # 文档序列化器 class DocSerializer(ModelSerializer): diff --git a/app_doc/urls.py b/app_doc/urls.py index aba5d02..47385fa 100644 --- a/app_doc/urls.py +++ b/app_doc/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path('manage_project_doc_sort/',views_import.project_doc_sort,name='project_doc_sort'), # 导入文集文档排序 path('manage_project_transfer//',views.manage_project_transfer,name='manage_pro_transfer'), # 文集转让 path('manage_pro_doc_sort//',views.manage_project_doc_sort,name='manage_pro_doc_sort'), # 文集排序 + path('api/my_colla_list/', views.MyCollaList.as_view(), name="my_colla_list"), # 我的协作文集列表 #################文档相关 path('project-/doc-/', views.doc, name='doc'), # 文档浏览页 path('create_doc/', views.create_doc, name="create_doc"), # 新建文档 diff --git a/app_doc/views.py b/app_doc/views.py index 122d303..863410c 100644 --- a/app_doc/views.py +++ b/app_doc/views.py @@ -20,6 +20,7 @@ from django.db import transaction from django.utils.html import strip_tags from django.utils.translation import gettext_lazy as _ from loguru import logger +from app_api.serializers_app import * from app_doc.report_utils import * from app_admin.models import UserOptions,SysSetting from app_admin.decorators import check_headers,allow_report_file @@ -849,6 +850,64 @@ def manage_pro_colla_self(request): return render(request,'app_doc/manage/manage_project_self_colla.html',locals()) +# 我协作的文集文档列表接口 +class MyCollaList(APIView): + authentication_classes = (AppAuth, SessionAuthentication) + + # 获取列表 + def get(self,request): + pid = request.query_params.get('pid','') + page_num = request.query_params.get('page', 1) + limit = request.query_params.get('limit', 10) + if pid == '': + doc_data = ProjectCollaborator.objects.filter(user=request.user).order_by('-create_time') + else: + project = Project.objects.get(id=pid) + doc_data = ProjectCollaborator.objects.filter(user=request.user,project=project).order_by('-create_time') + page = PageNumberPagination() # 实例化一个分页器 + page.page_size = limit + page_docs = page.paginate_queryset(doc_data, request, view=self) # 进行分页查询 + serializer = ProjectCollaSerializer(page_docs, many=True) # 对分页后的结果进行序列化处理 + colla_doc_list = [] + for s in serializer.data: + item = { + "project_id": s['project_id'], + "project_name": s['project_name'], + 'role':s['role'], + "top_doc": 0, + 'type':'project', + 'create_time':s['create_time'], + 'username':s['username'], + # "checkArr": "0" + } + colla_doc_list.append(item) + for doc in doc_data: + doc_list = Doc.objects.filter( + top_doc=doc.project.id, + create_user=request.user + ).defer('content','pre_content') + if doc_list.exists(): + for d in doc_list: + item = { + "project_id": d.id, + "project_name": d.name, + "top_doc": d.top_doc, + 'role':None, + 'type':'doc', + 'create_time':d.create_time, + 'username':d.create_user.username, + } + colla_doc_list.append(item) + resp = { + 'code': 0, + 'data': colla_doc_list, + # 'data':a, + 'count': doc_data.count() + } + + return Response(resp) + + # 转让文集 @login_required() @require_http_methods(['GET',"POST"]) diff --git a/template/app_doc/manage/manage_project_self_colla.html b/template/app_doc/manage/manage_project_self_colla.html index 928e27a..35345b3 100644 --- a/template/app_doc/manage/manage_project_self_colla.html +++ b/template/app_doc/manage/manage_project_self_colla.html @@ -12,58 +12,89 @@ - {% if colla_pros.count != 0 %} +
- - - - - - - - - - - {% for colla in colla_pros %} - - - - - - - {% endfor %} - -
{% trans "文集名称" %}{% trans "作者" %}{% trans "权限" %}{% trans "操作" %}
{{ colla.project }}{{ colla.project.create_user }} - {% if colla.role == 0 %} - {% trans "初级 - 可新建文档、修改和删除自己创建的文档" %} - {% else %} - {% trans "高级 - 可新建文档、修改所有文档、删除自己创建的文档" %} - {% endif %} - - {% trans "查看" %} - {% if colla.role == 1 %} - {% trans "排序" %} - {% endif %} -
-
- {% else %} -
- {% trans "你还没有成为任何文集的协作者" %} -
- {% endif %} +
{% endblock %} {% block custom_script %} + + + + + + + + + + + +