diff --git a/app_admin/urls.py b/app_admin/urls.py
index 43a1c5f..0221ffc 100644
--- a/app_admin/urls.py
+++ b/app_admin/urls.py
@@ -7,4 +7,7 @@ urlpatterns = [
path('register/',views.register,name="register"), # 注册
path('user_manage/',views.admin_user,name="user_manage"), # 用户管理
path('create/',views.admin_create_user,name="create_user"), # 新建用户
+ path('project_manage/',views.admin_project,name='project_manage'), # 文集管理
+ path('doc_manage/',views.admin_doc,name='doc_manage'), # 文集管理
+ path('doctemp_manage/',views.admin_doctemp,name='doctemp_manage'), # 文集管理
]
\ No newline at end of file
diff --git a/app_admin/views.py b/app_admin/views.py
index 5685798..49af1d0 100644
--- a/app_admin/views.py
+++ b/app_admin/views.py
@@ -3,18 +3,12 @@ from django.http.response import JsonResponse
from django.contrib.auth import authenticate,login,logout # 认证相关方法
from django.contrib.auth.models import User # Django默认用户模型
from django.contrib.auth.decorators import login_required # 登录需求装饰器
+from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage,InvalidPage
from app_admin.decorators import superuser_only
import json
import datetime
+from app_doc.models import *
-class DateEncoder(json.JSONEncoder):
- def default(self, obj):
- if isinstance(obj, datetime.datetime):
- return obj.strftime('%Y-%m-%d %H:%M:%S')
- elif isinstance(obj, datetime.date):
- return obj.strftime("%Y-%m-%d")
- else:
- return json.JSONEncoder.default(self, obj)
# 登录视图
def log_in(request):
@@ -73,6 +67,7 @@ def register(request):
errormsg = '请输入正确的电子邮箱格式!'
return render(request, 'register.html', locals())
+
# 注销
def log_out(request):
try:
@@ -82,6 +77,7 @@ def log_out(request):
# logger.error(e)
return redirect(request.META['HTTP_REFERER'])
+
# 管理员后台首页 - 用户管理
@superuser_only
def admin_user(request):
@@ -112,6 +108,7 @@ def admin_user(request):
table_data.append(item)
return JsonResponse({'status':True,'data':table_data})
+
# 管理员后台首页 - 创建用户
@superuser_only
def admin_create_user(request):
@@ -144,6 +141,91 @@ def admin_change_pwd(request):
def admin_del_user(request):
pass
+
+# 管理员后台 - 文集管理
+@superuser_only
+def admin_project(request):
+ if request.method == 'GET':
+ username = request.GET.get('kw','')
+ if username == '':
+ project_list = Project.objects.all()
+ paginator = Paginator(project_list,20)
+ 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=username)
+ paginator = Paginator(project_list, 20)
+ 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)
+ return render(request,'app_admin/admin_project.html',locals())
+
+
+# 管理员后台 - 文档管理
+@superuser_only
+def admin_doc(request):
+ if request.method == 'GET':
+ kw = request.GET.get('kw','')
+ if kw == '':
+ doc_list = Doc.objects.all()
+ 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(pre_content__icontains=kw)
+ 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)
+ return render(request,'app_admin/admin_doc.html',locals())
+
+
+# 管理员后台 - 文档模板管理
+@superuser_only
+def admin_doctemp(request):
+ if request.method == 'GET':
+ kw = request.GET.get('kw','')
+ if kw == '':
+ doctemp_list = DocTemp.objects.all()
+ paginator = Paginator(doctemp_list, 10)
+ page = request.GET.get('page', 1)
+ try:
+ doctemps = paginator.page(page)
+ except PageNotAnInteger:
+ doctemps = paginator.page(1)
+ except EmptyPage:
+ doctemps = paginator.page(paginator.num_pages)
+ else:
+ doctemp_list = DocTemp.objects.filter(content__icontains=kw)
+ paginator = Paginator(doctemp_list, 10)
+ page = request.GET.get('page', 1)
+ try:
+ doctemps = paginator.page(page)
+ except PageNotAnInteger:
+ doctemps = paginator.page(1)
+ except EmptyPage:
+ doctemps = paginator.page(paginator.num_pages)
+ return render(request,'app_admin/admin_doctemp.html',locals())
+
+
# 普通用户修改密码
def change_pwd(request):
- pass
\ No newline at end of file
+ pass
diff --git a/app_doc/templatetags/project_filter.py b/app_doc/templatetags/project_filter.py
new file mode 100644
index 0000000..1f7bac0
--- /dev/null
+++ b/app_doc/templatetags/project_filter.py
@@ -0,0 +1,12 @@
+# coding:utf-8
+# 文档自定义模板过滤器
+from app_doc.models import *
+from django import template
+
+register = template.Library()
+
+
+# 获取文集下的文档数量
+@register.filter(name='get_doc_count')
+def get_doc_count(value):
+ return Doc.objects.filter(top_doc=int(value)).count()
diff --git a/db.sqlite3 b/db.sqlite3
index b258efd..6f01557 100644
Binary files a/db.sqlite3 and b/db.sqlite3 differ
diff --git a/template/app_admin/admin_base.html b/template/app_admin/admin_base.html
index 4cd7d54..37b5613 100644
--- a/template/app_admin/admin_base.html
+++ b/template/app_admin/admin_base.html
@@ -16,12 +16,16 @@
@@ -122,5 +125,6 @@
};
//页面加载执行 获取所有用户信息
getUserInfo();
+
{% endblock %}
\ No newline at end of file
diff --git a/template/app_doc/manage_base.html b/template/app_doc/manage_base.html
index 51ffa4b..335d5fa 100644
--- a/template/app_doc/manage_base.html
+++ b/template/app_doc/manage_base.html
@@ -20,7 +20,8 @@