work.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter web page
  5. name:work.py
  6. author:rabin
  7. """
  8. from __load__ import *
  9. class Work(object):
  10. @staticmethod
  11. def init(self, search={}):
  12. if 'set' in self.request.uri:
  13. self.data['work_cur'] = 'set'
  14. else:
  15. self.data['work_cur'] = 'index'
  16. self.data['url'] = Work.url()
  17. @staticmethod
  18. def url():
  19. config = {}
  20. config['index'] = '/work'
  21. config['set'] = '/work/set'
  22. return config
  23. class index_path(Load):
  24. @Web.auth
  25. def get(self):
  26. mobile = Demeter.checkMobile(self.request)
  27. if mobile:
  28. self.redirect('/device')
  29. return
  30. Work.init(self)
  31. self.data['list'] = self.service('common').list('farm_work', search={'farm_id':self.data['setting']['farm']})
  32. if self.data['list']:
  33. for key, value in enumerate(self.data['list']):
  34. self.data['list'][key]['workdates'] = Demeter.date(value['workdate'], '%Y-%m-%d %H:%M')
  35. category = self.service('common').one('farm_work_category', id=value['category_id'])
  36. self.data['list'][key]['category'] = category['name']
  37. method = self.service('common').one('farm_work_method', id=value['method_id'])
  38. self.data['list'][key]['method'] = method['name']
  39. land = self.service('common').one('farm_work_land', id=value['land_id'])
  40. self.data['list'][key]['land'] = land['name']
  41. self.view("work/index.html")
  42. class update_path(Load):
  43. @Web.auth
  44. def get(self):
  45. id = self.input('id')
  46. self.data['category'] = self.service('common').list('farm_work_category', search={'farm_id':self.data['setting']['farm']})
  47. self.data['method'] = self.service('common').list('farm_work_method', search={'farm_id':self.data['setting']['farm']})
  48. self.data['land'] = self.service('common').list('farm_work_land', search={'farm_id':self.data['setting']['farm']})
  49. self.data['info'] = {}
  50. if id:
  51. self.data['info'] = self.service('common').one('farm_work', id=id)
  52. if self.data['info'] and self.data['info']['workdate']:
  53. self.data['info']['workdate'] = Demeter.date(self.data['info']['workdate'])
  54. self.view("work/update.html")
  55. @Web.auth
  56. def post(self):
  57. id = self.input('id')
  58. update = {}
  59. update['amount'] = self.input('update_amount')
  60. update['category_id'] = self.input('update_category_id')
  61. update['method_id'] = self.input('update_method_id')
  62. update['land_id'] = self.input('update_land_id')
  63. update['pic'] = self.input('update_pic')
  64. update['workdate'] = self.input('update_workdate')
  65. if not update['category_id']:
  66. self.out(u'请选择劳作类别')
  67. return
  68. if not update['method_id'] or update['method_id'] == '0' or update['method_id'] == 0:
  69. self.out(u'请选择劳作方式')
  70. return
  71. if not update['land_id']:
  72. self.out(u'请选择操作地块')
  73. return
  74. if not update['workdate']:
  75. self.out(u'请选择农事日期')
  76. return
  77. if not update['amount']:
  78. self.out(u'请输入劳作用量')
  79. return
  80. if not update['pic']:
  81. self.out(u'请选择图片')
  82. return
  83. state = self.service('common').update('farm_work', id, update)
  84. self.out('yes', {'state':state})
  85. @Web.auth
  86. def delete(self):
  87. id = self.input('id')
  88. if not id:
  89. self.out('no')
  90. return
  91. state = self.input('state', False)
  92. state = self.service('common').delete('farm_work', id, state)
  93. self.out('yes', {'state':state})
  94. class set_path(Load):
  95. @Web.auth
  96. def get(self):
  97. Work.init(self)
  98. self.data['category'] = self.service('common').list('farm_work_category', search={'farm_id':self.data['setting']['farm']})
  99. self.data['method'] = self.service('common').list('farm_work_method', search={'farm_id':self.data['setting']['farm']})
  100. self.data['land'] = self.service('common').list('farm_work_land', search={'farm_id':self.data['setting']['farm']})
  101. self.view("work/set.html")
  102. class land_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_work_land', id=id)
  109. self.view("work/land_update.html")
  110. @Web.auth
  111. def post(self):
  112. id = self.input('id')
  113. update = {}
  114. update['name'] = self.input('update_name')
  115. if not update['name']:
  116. self.out(u'请输入地块名称')
  117. return
  118. state = self.service('common').update('farm_work_land', id, update)
  119. self.out('yes', {'state':state})
  120. @Web.auth
  121. def delete(self):
  122. id = self.input('id')
  123. if not id:
  124. self.out('no')
  125. return
  126. state = self.input('state', False)
  127. state = self.service('common').delete('farm_work_land', id, state)
  128. self.out('yes', {'state':state})
  129. class category_update_path(Load):
  130. @Web.auth
  131. def get(self):
  132. id = self.input('id')
  133. self.data['info'] = {}
  134. if id:
  135. self.data['info'] = self.service('common').one('farm_work_category', id=id)
  136. self.view("work/category_update.html")
  137. @Web.auth
  138. def post(self):
  139. id = self.input('id')
  140. update = {}
  141. update['name'] = self.input('update_name')
  142. if not update['name']:
  143. self.out(u'请输入农事内容分类名称')
  144. return
  145. state = self.service('common').update('farm_work_category', id, update)
  146. self.out('yes', {'state':state})
  147. @Web.auth
  148. def delete(self):
  149. id = self.input('id')
  150. if not id:
  151. self.out('no')
  152. return
  153. state = self.input('state', False)
  154. state = self.service('common').delete('farm_work_category', id, state)
  155. self.out('yes', {'state':state})
  156. class method_update_path(Load):
  157. @Web.auth
  158. def get(self):
  159. id = self.input('id')
  160. self.data['category'] = self.input('category')
  161. self.data['info'] = {}
  162. if id:
  163. self.data['info'] = self.service('common').one('farm_work_method', id=id)
  164. self.view("work/method_update.html")
  165. @Web.auth
  166. def post(self):
  167. id = self.input('id')
  168. update = {}
  169. update['name'] = self.input('update_name')
  170. update['category_id'] = self.input('update_category_id')
  171. if not update['name']:
  172. self.out(u'请输入农事内容名称')
  173. return
  174. if not update['category_id']:
  175. self.out(u'请选择农事分类')
  176. return
  177. state = self.service('common').update('farm_work_method', id, update)
  178. self.out('yes', {'state':state})
  179. @Web.auth
  180. def delete(self):
  181. id = self.input('id')
  182. if not id:
  183. self.out('no')
  184. return
  185. state = self.input('state', False)
  186. state = self.service('common').delete('farm_work_method', id, state)
  187. self.out('yes', {'state':state})