diff --git a/app_doc/migrations/0005_auto_20190727_1232.py b/app_doc/migrations/0005_auto_20190727_1232.py new file mode 100644 index 0000000..a4e2c6c --- /dev/null +++ b/app_doc/migrations/0005_auto_20190727_1232.py @@ -0,0 +1,22 @@ +# Generated by Django 2.2.3 on 2019-07-27 04:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('app_doc', '0004_auto_20190717_0939'), + ] + + operations = [ + migrations.AlterModelOptions( + name='doc', + options={'ordering': ['create_time', '-sort'], 'verbose_name': '文档', 'verbose_name_plural': '文档'}, + ), + migrations.AddField( + model_name='doc', + name='sort', + field=models.IntegerField(default=99, verbose_name='排序'), + ), + ] diff --git a/app_doc/models.py b/app_doc/models.py index ca41cd2..b85e962 100644 --- a/app_doc/models.py +++ b/app_doc/models.py @@ -23,6 +23,7 @@ class Doc(models.Model): content = models.TextField(verbose_name="文档内容") parent_doc = models.IntegerField(default=0,verbose_name="上级文档") top_doc = models.IntegerField(default=0,verbose_name="所属项目") + sort = models.IntegerField(verbose_name='排序',default=99) create_user = models.ForeignKey(User,on_delete=models.CASCADE) create_time = models.DateTimeField(auto_now_add=True) modify_time = models.DateTimeField(auto_now=True) @@ -33,6 +34,7 @@ class Doc(models.Model): class Meta: verbose_name = '文档' verbose_name_plural = verbose_name + # ordering = ['-create_time','sort'] # 文档模板模型 class DocTemp(models.Model): diff --git a/app_doc/templatetags/doc_filter.py b/app_doc/templatetags/doc_filter.py index 36c3238..809998a 100644 --- a/app_doc/templatetags/doc_filter.py +++ b/app_doc/templatetags/doc_filter.py @@ -8,7 +8,7 @@ register = template.Library() # 获取文档的子文档 @register.filter(name='get_next_doc') def get_next_doc(value): - return Doc.objects.filter(parent_doc=value) + return Doc.objects.filter(parent_doc=value).order_by('sort') # 获取文档的所属文集 @register.filter(name='get_doc_top') diff --git a/app_doc/views.py b/app_doc/views.py index f455baf..a1eb364 100644 --- a/app_doc/views.py +++ b/app_doc/views.py @@ -45,7 +45,7 @@ def project_index(request,pro_id): # 获取搜索词 kw = request.GET.get('kw','') if kw == '': - doc = Doc.objects.filter(top_doc=int(pro_id)).order_by('id') + doc = Doc.objects.filter(top_doc=int(pro_id)).order_by('sort') # 获取文集第一篇文档作为默认内容 if doc.count() > 0: doc = doc[0] @@ -54,7 +54,7 @@ def project_index(request,pro_id): else: # 搜索结果 search_result = Doc.objects.filter(top_doc=int(pro_id),pre_content__icontains=kw) # 获取文集下所有一级文档 - project_docs = Doc.objects.filter(top_doc=int(pro_id), parent_doc=0) + project_docs = Doc.objects.filter(top_doc=int(pro_id), parent_doc=0).order_by('sort') return render(request,'app_doc/project.html',locals()) except Exception as e: return HttpResponse('请求出错') @@ -129,7 +129,7 @@ def doc(request,pro_id,doc_id): # 获取文档内容 doc = Doc.objects.get(id=int(doc_id)) # 获取文集下一级文档 - project_docs = Doc.objects.filter(top_doc=doc.top_doc, parent_doc=0) + project_docs = Doc.objects.filter(top_doc=doc.top_doc, parent_doc=0).order_by('sort') return render(request,'app_doc/project.html',locals()) else: return HttpResponse('参数错误') @@ -149,6 +149,7 @@ def create_doc(request): doctemp_list = DocTemp.objects.filter(create_user=request.user).values('id','name','create_time') return render(request,'app_doc/create_doc.html',locals()) except Exception as e: + print(repr(e)) return HttpResponse('请求出错') elif request.method == 'POST': try: @@ -157,6 +158,7 @@ def create_doc(request): doc_name = request.POST.get('doc_name','') doc_content = request.POST.get('content','') pre_content = request.POST.get('pre_content','') + sort = request.POST.get('sort','') if project != '' and doc_name != '' and project != '-1': doc = Doc.objects.create( name=doc_name, @@ -164,12 +166,14 @@ def create_doc(request): pre_content= pre_content, parent_doc= int(parent_doc) if parent_doc != '' else 0, top_doc= int(project), + sort = sort if sort != '' else 99, create_user=request.user ) return JsonResponse({'status':True,'data':'创建成功'}) else: return JsonResponse({'status':False,'data':'参数错误'}) except Exception as e: + print(repr(e)) return JsonResponse({'status':False,'data':'请求出错'}) else: return JsonResponse({'status':False,'data':'方法不允许'}) @@ -198,6 +202,7 @@ def modify_doc(request,doc_id): doc_name = request.POST.get('doc_name', '') # 文档名称 doc_content = request.POST.get('content', '') # 文档内容 pre_content = request.POST.get('pre_content', '') # 文档Markdown格式内容 + sort = request.POST.get('sort', '') # 文档排序 if doc_id != '' and project != '' and doc_name != '' and project != '-1': # 更新文档内容 Doc.objects.filter(id=int(doc_id)).update( @@ -205,6 +210,7 @@ def modify_doc(request,doc_id): content=doc_content, pre_content=pre_content, parent_doc=int(parent_doc) if parent_doc != '' else 0, + sort=sort if sort != '' else 99, ) return JsonResponse({'status': True,'data':'修改成功'}) else: diff --git a/db.sqlite3 b/db.sqlite3 index a02c0b8..97ba841 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/media/201907/2019-07-27134531102843.png b/media/201907/2019-07-27134531102843.png new file mode 100644 index 0000000..d478d2a Binary files /dev/null and b/media/201907/2019-07-27134531102843.png differ diff --git a/media/201907/2019-07-27143257939483.png b/media/201907/2019-07-27143257939483.png new file mode 100644 index 0000000..60c970f Binary files /dev/null and b/media/201907/2019-07-27143257939483.png differ diff --git a/media/201907/2019-07-27144625887847.png b/media/201907/2019-07-27144625887847.png new file mode 100644 index 0000000..ae9e5ff Binary files /dev/null and b/media/201907/2019-07-27144625887847.png differ diff --git a/media/201907/2019-07-27144831731390.png b/media/201907/2019-07-27144831731390.png new file mode 100644 index 0000000..4091445 Binary files /dev/null and b/media/201907/2019-07-27144831731390.png differ diff --git a/media/201907/2019-07-27145211532794.png b/media/201907/2019-07-27145211532794.png new file mode 100644 index 0000000..49ef76c Binary files /dev/null and b/media/201907/2019-07-27145211532794.png differ diff --git a/media/201907/2019-07-27150400032008.png b/media/201907/2019-07-27150400032008.png new file mode 100644 index 0000000..03961b9 Binary files /dev/null and b/media/201907/2019-07-27150400032008.png differ diff --git a/media/201907/2019-07-27150534099911.png b/media/201907/2019-07-27150534099911.png new file mode 100644 index 0000000..97823d4 Binary files /dev/null and b/media/201907/2019-07-27150534099911.png differ diff --git a/media/201907/2019-07-27175551618645.png b/media/201907/2019-07-27175551618645.png new file mode 100644 index 0000000..7e9c4ca Binary files /dev/null and b/media/201907/2019-07-27175551618645.png differ diff --git a/media/201907/2019-07-27175803741664.png b/media/201907/2019-07-27175803741664.png new file mode 100644 index 0000000..fc9abbc Binary files /dev/null and b/media/201907/2019-07-27175803741664.png differ diff --git a/static/style.css b/static/style.css index 96de2ae..fb32256 100644 --- a/static/style.css +++ b/static/style.css @@ -98,6 +98,7 @@ body, html { background-color: #fafafa; border-right: 1px solid #e6e6e6; width:300px; + overflow: auto; } .doc-body { diff --git a/template/app_doc/create_base.html b/template/app_doc/create_base.html index 4d7e846..29194a3 100644 --- a/template/app_doc/create_base.html +++ b/template/app_doc/create_base.html @@ -7,13 +7,17 @@ + {% block custom_style %}{% endblock %}
#}
-