main.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter web page
  5. name:main.py
  6. author:rabin
  7. """
  8. from __load__ import *
  9. class Farm(object):
  10. @staticmethod
  11. def init(self, search={}):
  12. if 'edit' in self.request.uri:
  13. self.data['farm_cur'] = 'edit'
  14. elif 'product' in self.request.uri:
  15. self.data['farm_cur'] = 'product'
  16. elif 'env' in self.request.uri:
  17. self.data['farm_cur'] = 'env'
  18. else:
  19. self.data['farm_cur'] = 'index'
  20. self.data['url'] = Farm.url()
  21. @staticmethod
  22. def url():
  23. config = {}
  24. config['info'] = '/'
  25. config['edit'] = '/main/edit'
  26. config['product'] = '/main/product'
  27. config['env'] = '/main/env'
  28. return config
  29. class index_path(Load):
  30. @Web.auth
  31. def get(self):
  32. mobile = Demeter.checkMobile(self.request)
  33. if mobile:
  34. self.redirect('/device')
  35. return
  36. Farm.init(self)
  37. self.view("farm/index.html")
  38. @Web.auth
  39. def post(self):
  40. id = self.data['setting']['farm']
  41. update = {}
  42. update['info'] = self.input('update_info')
  43. if not update['info']:
  44. self.out(u'请输入农场介绍')
  45. return
  46. state = self.service('common').update('farm', id, update)
  47. self.out('修改成功')
  48. class edit_path(Load):
  49. @Web.auth
  50. def get(self):
  51. Farm.init(self)
  52. self.view("farm/edit.html")
  53. @Web.auth
  54. def post(self):
  55. id = self.data['setting']['farm']
  56. update = {}
  57. update['name'] = self.input('update_name')
  58. update['pic'] = self.input('update_pic')
  59. update['location'] = self.input('update_location')
  60. update['master_name'] = self.input('update_master_name')
  61. update['master_pic'] = self.input('update_master_pic')
  62. update['tel'] = self.input('update_tel')
  63. update['address'] = self.input('update_address')
  64. update['welcome'] = self.input('update_welcome')
  65. if not update['name']:
  66. self.out(u'请输入名称')
  67. return
  68. if not update['pic']:
  69. self.out(u'请选择图片')
  70. return
  71. if not update['location']:
  72. self.out(u'请输入位置')
  73. return
  74. if not update['master_name']:
  75. self.out(u'请输入姓名')
  76. return
  77. if not update['master_pic']:
  78. self.out(u'请选择图片')
  79. return
  80. if not update['tel']:
  81. self.out(u'请输入联系电话')
  82. return
  83. if not update['address']:
  84. self.out(u'请输入联系地址')
  85. return
  86. state = self.service('common').update('farm', id, update)
  87. self.out('修改成功')
  88. @Web.auth
  89. def delete(self):
  90. id = self.input('id')
  91. if not id:
  92. self.out('no')
  93. return
  94. state = self.service('common').rDelete('farm', id)
  95. self.out('yes', {'state':state})
  96. class product_path(Load):
  97. @Web.auth
  98. def get(self):
  99. Farm.init(self)
  100. self.data['list'] = self.service('common').list('farm_product', search={'farm_id':self.data['setting']['farm']})
  101. self.view("farm/product.html")
  102. class product_update_path(Load):
  103. @Web.auth
  104. def get(self):
  105. id = self.input('id')
  106. self.data['info'] = {}
  107. if id:
  108. self.data['info'] = self.service('common').one('farm_product', id=id)
  109. self.view("farm/product_update.html")
  110. @Web.auth
  111. def post(self):
  112. id = self.input('id')
  113. update = {}
  114. update['name'] = self.input('update_name')
  115. update['pic'] = self.input('update_pic')
  116. update['area'] = self.input('update_area')
  117. update['yields'] = self.input('update_yields')
  118. update['charact'] = self.input('update_charact')
  119. update['notice'] = self.input('update_notice')
  120. if not update['name']:
  121. self.out(u'请输入名称')
  122. return
  123. if not update['area']:
  124. self.out(u'请输入种植面积')
  125. return
  126. if not update['yields']:
  127. self.out(u'请输入平均亩产')
  128. return
  129. """
  130. if not update['charact']:
  131. self.out(u'请输入特点')
  132. return
  133. if not update['notice']:
  134. self.out(u'请输入使用须知')
  135. return
  136. """
  137. if not update['pic']:
  138. self.out(u'请选择图片')
  139. return
  140. state = self.service('common').update('farm_product', id, update)
  141. self.out('yes', {'state':state})
  142. @Web.auth
  143. def delete(self):
  144. id = self.input('id')
  145. if not id:
  146. self.out('no')
  147. return
  148. state = self.input('state', '1')
  149. update = {}
  150. if state == '1':
  151. update['status'] = True
  152. else:
  153. update['status'] = False
  154. state = self.service('common').update('farm_product', id, update)
  155. self.out('yes', {'state':state})
  156. class env_path(Load):
  157. @Web.auth
  158. def get(self):
  159. Farm.init(self)
  160. self.data['list'] = self.service('common').list('farm_env', order='inorder asc,cdate desc', search={'farm_id':self.data['setting']['farm']})
  161. if self.data['list']:
  162. for key, value in enumerate(self.data['list']):
  163. info = self.service('common').one('device_info', id=value['device_id'])
  164. self.data['list'][key]['device'] = info
  165. info = self.service('common').one('device_type', id=value['type_id'])
  166. self.data['list'][key]['type'] = info
  167. self.view("farm/env.html")
  168. class env_update_path(Load):
  169. @Web.auth
  170. def get(self):
  171. id = self.input('id')
  172. self.data['info'] = {}
  173. if id:
  174. self.data['info'] = self.service('common').one('farm_env', id=id)
  175. self.data['gateway'] = self.service('common').list('device_gateway', search={'farm_id':self.data['setting']['farm']})
  176. self.data['device'] = Device.getByGateway(self, search={'hardware_type' : 2,'farm_id':self.data['setting']['farm']})
  177. self.view("farm/env_update.html")
  178. @Web.auth
  179. def post(self):
  180. id = self.input('id')
  181. update = {}
  182. update['name'] = self.input('update_name')
  183. update['device_id'] = self.input('update_device_id')
  184. update['inorder'] = self.input('update_inorder', 0)
  185. if not update['name']:
  186. self.out(u'请输入环境名称')
  187. return
  188. if not update['device_id']:
  189. self.out(u'请选择设备')
  190. return
  191. if not update['inorder']:
  192. update['inorder'] = 0
  193. """
  194. if update['inorder'] and not Check.number(update['inorder']):
  195. self.out(u'排序必须是数字')
  196. return
  197. """
  198. device = self.service('common').one('device_info', id=update['device_id'])
  199. if not device:
  200. self.out(u'请选择设备')
  201. return
  202. update['type_id'] = device['type_id']
  203. state = self.service('common').update('farm_env', id, update)
  204. self.out('yes', {'state':state})
  205. @Web.auth
  206. def delete(self):
  207. id = self.input('id')
  208. if not id:
  209. self.out('no')
  210. return
  211. state = self.input('state', False)
  212. state = self.service('common').rDelete('farm_env', id)
  213. self.out('yes', {'state':state})