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 @@
+{#
#} +{# {% csrf_token %}#}
- - + +
+{#
#}
@@ -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 @@