123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- """
- demeter load
- author:rabin
- """
- import tornado.web
- from demeter.core import *
- import json
- class Base(tornado.web.RequestHandler):
- def initialize(self):
- self.data = {}
- self.page()
- self.search()
- self.cookie()
- self.setting()
- self.assign()
- def get_current_user(self):
- return self.get_secure_cookie(self.KEYS[1])
- def assign(self):
- self.data['setting'] = Demeter.config['setting']
-
- def cookie(self):
- for key in self.KEYS:
- cookie = None
- if key in Demeter.config['base']:
- cookie = Demeter.config['base'][key]
- if not cookie:
- cookie = self.get_secure_cookie(key)
-
- if not cookie:
- value = self.input(key)
- if value:
-
- Demeter.config['setting'][key] = value
- else:
- Demeter.config['setting'][key] = 0
- else:
- Demeter.config['setting'][key] = cookie
- def page(self):
- Demeter.config['page'] = {}
- page = self.input('page')
- if page:
- Demeter.config['page']['ajax'] = True
- else:
- Demeter.config['page']['ajax'] = False
- page = 1
- Demeter.config['page']['current'] = page
- Demeter.config['page']['total'] = 0
- self.data['page'] = Demeter.config['page']
- def search(self):
- data = self.request.arguments
- self.data['search'] = {}
- self.data['update'] = {}
- for key in data:
- if 'search_' in key:
- index = key.replace('search_', '')
- self.data['search'][index] = ",".join(data[key])
- if 'update_' in key:
- index = key.replace('update_', '')
- self.data['update'][index] = ",".join(data[key])
- def input(self, key, value=None):
- return self.get_argument(key, value)
- def service(self, name):
- return Demeter.service(name)
- def model(self, name):
- return Demeter.model(name)
- def common(self, **kwd):
- self.data['common'] = kwd
- farm = str(Demeter.config['setting']['farm'])
- self.data['common']['argvs'] = '&farm=' + farm + '&search_farm_id-select-=' + farm
- def commonView(self, name):
- self.view('common/'+name+'.html')
- def commonList(self, model):
- self.data['state'] = self.input('state', True)
- self.data['list'] = self.service('common').list(model, state=self.data['state'], search=self.data['search'], page=True)
- def commonOne(self, model, **kwd):
- id = self.input('id')
- self.data['info'] = {}
- if id:
- kwd['id'] = id
- if kwd:
- self.data['info'] = self.service('common').one(model, **kwd)
- if not self.data['info'] and Demeter.config['setting']['farm'] > 0:
- self.data['info']['farm_id'] = Demeter.config['setting']['farm']
- def commonUpdate(self, model, msg='', id=0, **kwd):
- if not self.data['auth']:
- self.auth()
- else:
- if id <= 0:
- id = self.input('id')
- if kwd:
- info = self.service('common').one(model, **kwd)
- if id:
- id = int(id)
- if info and (id != info['id']):
- self.out(msg)
- return
- state = self.service('common').update(model, id, self.data['update'])
- self.log(model, 'update', self.data['update'])
- self.out('yes', {'id':state})
- return state
- def commonDelete(self, model):
- if not self.data['auth']:
- self.auth()
- else:
- id = self.input('id')
- state = self.input('state', False)
- state = self.service('common').delete(model, id, state)
- self.log(model, 'delete', {id:id, state:state})
- self.out('yes', {'state':state})
- def log(self, model, method, data):
- insert = {}
- insert['admin_id'] = Demeter.config['setting']['admin']
- insert['model'] = model
- insert['method'] = method
- insert['data'] = json.dumps(data)
- self.service('common').update('manage_log', None, insert)
- def view(self, name):
- if not self.data['auth']:
- self.auth()
- else:
- self.render(name, data=self.data)
- def auth(self):
- self.out('您没有权限')
- def out(self, msg='', data={}, code=0):
- callback = self.input('callback')
- function = self.input('function')
- result = ''
- send = {}
- send['status'] = 1
- send['msg'] = msg
- send['data'] = data
- send['code'] = code
- if not send['data']:
- send['status'] = 2
- result = json.dumps(send)
- if callback:
- result = callback + '(' + result + ')'
- elif function:
- result = '<script>parent.' + function + '(' + result + ')' + '</script>';
- self.write(result)
-
|