223 lines
6.7 KiB
Python
223 lines
6.7 KiB
Python
#!/usr/bin/env python
|
|
#-*- coding: utf-8 -*-
|
|
|
|
from tornado.escape import json_encode
|
|
from handlers.admin import BaseHandler
|
|
from model.news import News, NewsCategory
|
|
from utils import date_encode, obj2dict
|
|
|
|
|
|
class NewsListHandler(BaseHandler):
|
|
|
|
url = 'admin/news/news_list.html'
|
|
|
|
def get(self):
|
|
self.render(self.url)
|
|
|
|
|
|
class NewsListDatagridHandler(BaseHandler):
|
|
|
|
def get(self):
|
|
page = self.get_argument('page', 1)
|
|
rows = self.get_argument('rows', 20)
|
|
|
|
title = self.get_argument('title', '')
|
|
begin = self.get_argument('begin', '')
|
|
end = self.get_argument('end', '')
|
|
|
|
query = {}
|
|
if title:
|
|
query['title'] = title
|
|
if begin:
|
|
query['begin'] = begin
|
|
if end:
|
|
query['end'] = end
|
|
|
|
offset = (int(page) - 1) * int(rows)
|
|
limit = rows
|
|
rows = News.gets(offset, limit, **query)
|
|
rows = [obj2dict(r) for r in rows]
|
|
total = News.get_count()
|
|
|
|
response = {'total': total, 'rows': rows}
|
|
return self.write(date_encode(response))
|
|
|
|
|
|
class NewsEditHandler(BaseHandler):
|
|
|
|
error_message = {
|
|
'110': '请选择分类',
|
|
'111': '请填写标题',
|
|
'112': '请填写内容',
|
|
'113': '请填写发布者',
|
|
'114': '添加失败'
|
|
}
|
|
|
|
url = 'admin/news/news_edit.html'
|
|
|
|
def get(self):
|
|
news_id = self.get_argument('id', '')
|
|
news = News.get(news_id)
|
|
category = NewsCategory.gets()
|
|
self.render(self.url, info=news, categorys=category)
|
|
|
|
def post(self):
|
|
|
|
news_id = int(self.get_argument('id', 0))
|
|
category_id = int(self.get_argument('category_id', 0))
|
|
title = self.get_argument('title', '')
|
|
content = self.get_argument('content', '')
|
|
create_uid = self.get_secure_cookie('admin_user_id')
|
|
status = int(self.get_argument('status', 0))
|
|
|
|
if not category_id:
|
|
response = {'code': 110, 'msg': self.error_message['110']}
|
|
return self.write(json_encode(response))
|
|
if not title:
|
|
response = {'code': 111, 'msg': self.error_message['111']}
|
|
return self.write(json_encode(response))
|
|
if not content:
|
|
response = {'code': 112, 'msg': self.error_message['112']}
|
|
return self.write(json_encode(response))
|
|
if not create_uid:
|
|
response = {'code': 113, 'msg': self.error_message['113']}
|
|
return self.write(json_encode(response))
|
|
|
|
result = News.update(news_id, category_id, title, content, create_uid, status)
|
|
if result:
|
|
response = {'code': 0, 'msg': '添加成功'}
|
|
return self.write(json_encode(response))
|
|
else:
|
|
response = {'code': 114, 'msg': self.error_message['114']}
|
|
return self.write(json_encode(response))
|
|
|
|
|
|
class NewsAddHandler(BaseHandler):
|
|
|
|
error_message = {
|
|
'110': '请选择分类',
|
|
'111': '请填写标题',
|
|
'112': '请填写内容',
|
|
'113': '请填写发布者',
|
|
'114': '添加失败'
|
|
}
|
|
|
|
url = 'admin/news/news_add.html'
|
|
|
|
def get(self):
|
|
self.render(self.url)
|
|
|
|
def post(self):
|
|
|
|
category_id = int(self.get_argument('category_id', 0))
|
|
title = self.get_argument('title', '')
|
|
content = self.get_argument('content', '')
|
|
create_uid = self.get_secure_cookie('admin_user_id')
|
|
status = int(self.get_argument('status', 0))
|
|
|
|
if not category_id:
|
|
response = {'code': 110, 'msg': self.error_message['110']}
|
|
return self.write(json_encode(response))
|
|
if not title:
|
|
response = {'code': 111, 'msg': self.error_message['111']}
|
|
return self.write(json_encode(response))
|
|
if not content:
|
|
response = {'code': 112, 'msg': self.error_message['112']}
|
|
return self.write(json_encode(response))
|
|
|
|
result = News.new(category_id, title, content, create_uid, status)
|
|
if result:
|
|
response = {'code': 0, 'msg': '添加成功'}
|
|
return self.write(json_encode(response))
|
|
else:
|
|
response = {'code': 114, 'msg': self.error_message['114']}
|
|
return self.write(json_encode(response))
|
|
|
|
|
|
class NewsCategoryListHandler(BaseHandler):
|
|
|
|
url = 'admin/news/news_category_list.html'
|
|
|
|
def get(self):
|
|
self.render(self.url)
|
|
|
|
|
|
class NewsCategoryListDatagridHandler(BaseHandler):
|
|
|
|
def get(self):
|
|
page = self.get_argument('page', 1)
|
|
rows = self.get_argument('rows', 20)
|
|
|
|
start = (int(page) - 1) * int(rows)
|
|
limit = rows
|
|
rows = NewsCategory.gets(start, limit)
|
|
rows = [obj2dict(r) for r in rows]
|
|
total = NewsCategory.get_count()
|
|
response = {'total': total, 'rows': rows}
|
|
return self.write(date_encode(response))
|
|
|
|
|
|
class NewsCategoryEditHandler(BaseHandler):
|
|
|
|
error_message = {
|
|
'110': '请选择分类',
|
|
'111': '分类名为空',
|
|
'112': '更新失败'
|
|
}
|
|
|
|
url = 'admin/news/news_category_edit.html'
|
|
|
|
def get(self):
|
|
category_id = self.get_argument('id', '')
|
|
news_category = NewsCategory.get(category_id)
|
|
self.render(self.url, info=news_category)
|
|
|
|
def post(self):
|
|
|
|
category_id = int(self.get_argument('id', 0))
|
|
category_name = self.get_argument('category_name', '')
|
|
|
|
if not category_id:
|
|
response = {'code': 110, 'msg': self.error_message['110']}
|
|
return self.write(json_encode(response))
|
|
if not category_name:
|
|
response = {'code': 111, 'msg': self.error_message['111']}
|
|
return self.write(json_encode(response))
|
|
|
|
result = NewsCategory.update(category_id, category_name)
|
|
if result:
|
|
response = {'code': 0, 'msg': '更新成功'}
|
|
return self.write(json_encode(response))
|
|
else:
|
|
response = {'code': 112, 'msg': self.error_message['112']}
|
|
return self.write(json_encode(response))
|
|
|
|
|
|
class NewsCategoryAddHandler(BaseHandler):
|
|
|
|
error_message = {
|
|
'110': '请填写分类',
|
|
'111': '分类名为空',
|
|
'112': '添加失败'
|
|
}
|
|
|
|
url = 'admin/news/news_category_add.html'
|
|
|
|
def get(self):
|
|
self.render(self.url)
|
|
|
|
def post(self):
|
|
|
|
category_name = self.get_argument('category_name', '')
|
|
|
|
if not category_name:
|
|
response = {'code': 110, 'msg': self.error_message['110']}
|
|
return self.write(json_encode(response))
|
|
|
|
result = NewsCategory.new(category_name)
|
|
if result:
|
|
response = {'code': 0, 'msg': '添加成功'}
|
|
return self.write(json_encode(response))
|
|
else:
|
|
response = {'code': 112, 'msg': self.error_message['112']}
|
|
return self.write(json_encode(response)) |