| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 | #!/usr/bin/env python# -*- coding: utf-8 -*-"""    demeter web page    name:main.py    author:rabin"""from __load__ import *class Farm(object):	@staticmethod	def init(self, search={}):		if 'edit' in self.request.uri:			self.data['farm_cur'] = 'edit'		elif 'product' in self.request.uri:			self.data['farm_cur'] = 'product'		elif 'env' in self.request.uri:			self.data['farm_cur'] = 'env'		else:			self.data['farm_cur'] = 'index'		self.data['url'] = Farm.url()	@staticmethod	def url():		config = {}		config['info'] = '/'		config['edit'] = '/main/edit'		config['product'] = '/main/product'		config['env'] = '/main/env'		return configclass index_path(Load):	@Web.auth	@Web.setting	def get(self):		mobile = Demeter.checkMobile(self.request)		if mobile:			self.redirect('/device')			return		Farm.init(self)		self.view("farm/index.html")	@Web.auth	@Web.setting	def post(self):		id = self.data['setting']['farm']		update = {}		update['info'] = self.input('update_info')		if not update['info']:			self.out(u'请输入农场介绍')			return		state = self.service('common').update('farm', id, update)		self.out('修改成功')class edit_path(Load):	@Web.auth	@Web.setting	def get(self):		Farm.init(self)		self.view("farm/edit.html")	@Web.auth	@Web.setting	def post(self):		id = self.data['setting']['farm']		update = {}		update['name'] = self.input('update_name')		update['pic'] = self.input('update_pic')		update['location'] = self.input('update_location')		update['master_name'] = self.input('update_master_name')		update['master_pic'] = self.input('update_master_pic')		update['tel'] = self.input('update_tel')		update['address'] = self.input('update_address')		update['welcome'] = self.input('update_welcome')		if not update['name']:			self.out(u'请输入名称')			return		if not update['pic']:			self.out(u'请选择图片')			return		if not update['location']:			self.out(u'请输入位置')			return		if not update['master_name']:			self.out(u'请输入姓名')			return		if not update['master_pic']:			self.out(u'请选择图片')			return		if not update['tel']:			self.out(u'请输入联系电话')			return		if not update['address']:			self.out(u'请输入联系地址')			return		state = self.service('common').update('farm', id, update)		self.out('修改成功')	@Web.auth	@Web.setting	def delete(self):		id = self.input('id')		if not id:			self.out('no')			return		state = self.service('common').rDelete('farm', id)		self.out('yes', {'state':state})class product_path(Load):	@Web.auth	@Web.setting	def get(self):		Farm.init(self)		self.data['list'] = self.service('common').list('farm_product', search={'farm_id':self.data['setting']['farm']})		self.view("farm/product.html")class product_update_path(Load):	@Web.auth	@Web.setting	def get(self):		id = self.input('id')		self.data['info'] = {}		if id:			self.data['info'] = self.service('common').one('farm_product', id=id)		self.view("farm/product_update.html")	@Web.auth	@Web.setting	def post(self):		id = self.input('id')		update = {}		update['name'] = self.input('update_name')		update['pic'] = self.input('update_pic')		update['area'] = self.input('update_area')		update['yields'] = self.input('update_yields')		update['charact'] = self.input('update_charact')		update['notice'] = self.input('update_notice')		if not update['name']:			self.out(u'请输入名称')			return		if not update['area']:			self.out(u'请输入种植面积')			return		if not update['yields']:			self.out(u'请输入平均亩产')			return		"""		if not update['charact']:			self.out(u'请输入特点')			return		if not update['notice']:			self.out(u'请输入使用须知')			return		"""		if not update['pic']:			self.out(u'请选择图片')			return		state = self.service('common').update('farm_product', id, update)		self.out('yes', {'state':state})	@Web.auth	@Web.setting	def delete(self):		id = self.input('id')		if not id:			self.out('no')			return		state = self.input('state', '1')		update = {}		if state == '1':			update['status'] = True		else:			update['status'] = False		state = self.service('common').update('farm_product', id, update)		self.out('yes', {'state':state})class env_path(Load):	@Web.auth	@Web.setting	def get(self):		Farm.init(self)		self.data['list'] = self.service('common').list('farm_env', order='inorder asc,cdate desc', search={'farm_id':self.data['setting']['farm']})		if self.data['list']:			for key, value in enumerate(self.data['list']):				info = self.service('common').one('device_info', id=value['device_id'])				self.data['list'][key]['device'] = info				info = self.service('common').one('device_type', id=value['type_id'])				self.data['list'][key]['type'] = info		self.view("farm/env.html")class env_update_path(Load):	@Web.auth	@Web.setting	def get(self):		id = self.input('id')		self.data['info'] = {}		if id:			self.data['info'] = self.service('common').one('farm_env', id=id)		self.data['gateway'] = self.service('common').list('device_gateway', search={'farm_id':self.data['setting']['farm']})		self.data['device'] = Device.getByGateway(self, search={'hardware_type' : 2,'farm_id':self.data['setting']['farm']})		self.view("farm/env_update.html")	@Web.auth	@Web.setting	def post(self):		id = self.input('id')		update = {}		update['name'] = self.input('update_name')		update['device_id'] = self.input('update_device_id')		update['inorder'] = self.input('update_inorder', 0)		if not update['name']:			self.out(u'请输入环境名称')			return		if not update['device_id']:			self.out(u'请选择设备')			return		if not update['inorder']:			update['inorder'] = 0		"""		if update['inorder'] and not Check.number(update['inorder']):			self.out(u'排序必须是数字')			return		"""		device = self.service('common').one('device_info', id=update['device_id'])		if not device:			self.out(u'请选择设备')			return		update['type_id'] = device['type_id']		state = self.service('common').update('farm_env', id, update)		self.out('yes', {'state':state})	@Web.auth	@Web.setting	def delete(self):		id = self.input('id')		if not id:			self.out('no')			return		state = self.input('state', False)		state = self.service('common').rDelete('farm_env', id)		self.out('yes', {'state':state})
 |