origin.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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 Origin(object):
  10. @staticmethod
  11. def init(self, search={}):
  12. id = self.input('id')
  13. if not id:
  14. self.redirect('/')
  15. if 'work' in self.request.uri:
  16. self.data['cur'] = 'work'
  17. elif 'env' in self.request.uri:
  18. self.data['cur'] = 'env'
  19. elif 'farm' in self.request.uri:
  20. self.data['cur'] = 'farm'
  21. else:
  22. self.data['cur'] = 'index'
  23. self.data['info'] = self.service('common').one('origin_batch', id=id)
  24. if not self.data['info']:
  25. self.redirect('/')
  26. self.data['farm'] = self.service('common').one('farm', id=self.data['info']['farm_id'])
  27. if self.data['info']['csdate'] > self.data['info']['zzdate']:
  28. self.data['zhou'] = self.data['info']['csdate'] - self.data['info']['zzdate']
  29. else:
  30. self.data['zhou'] = self.data['info']['zzdate'] - self.data['info']['csdate']
  31. self.data['zhou'] = self.data['zhou']/64800
  32. self.data['info']['zzdates'] = Demeter.date(self.data['info']['zzdate'], '%Y-%m-%d')
  33. self.data['info']['csdates'] = Demeter.date(self.data['info']['csdate'], '%Y-%m-%d')
  34. self.data['path'] = 'mobile/'
  35. self.data['url'] = Origin.url('id=' + id + '#menu')
  36. @staticmethod
  37. def url(param):
  38. config = {}
  39. config['index'] = '/origin?' + param;
  40. config['work'] = '/origin/work?' + param;
  41. config['env'] = '/origin/env?' + param;
  42. config['farm'] = '/origin/farm?' + param;
  43. return config
  44. class index_path(Load):
  45. @Web.setting
  46. def get(self):
  47. Origin.init(self)
  48. self.data['list'] = self.service('common').list('farm_work_land_pic', search={'farm_id':self.data['info']['farm_id'], 'land_id':self.data['info']['land_id']})
  49. if self.data['list']:
  50. for key, value in enumerate(self.data['list']):
  51. self.data['list'][key]['cdates'] = Demeter.date(value['cdate'], '%Y-%m-%d')
  52. self.view(self.data['path'] + "origin/index.html")
  53. class work_path(Load):
  54. @Web.setting
  55. def get(self):
  56. Origin.init(self)
  57. self.data['work'] = self.service('common').list('farm_work', search={'farm_id':self.data['info']['farm_id']}, order='workdate asc,cdate asc')
  58. self.data['cate'] = {}
  59. self.data['list'] = []
  60. if self.data['work']:
  61. for key, value in enumerate(self.data['work']):
  62. value['workdates'] = Demeter.date(value['workdate'], '%Y.%m.%d')
  63. if value['category_id'] not in self.data['list']:
  64. self.data['list'].append(value['category_id'])
  65. self.data['cate'][value['category_id']] = self.service('common').one('farm_work_category', id=value['category_id'])
  66. if 'work' not in self.data['cate'][value['category_id']]:
  67. self.data['cate'][value['category_id']]['work'] = []
  68. self.data['cate'][value['category_id']]['work'].append(value)
  69. self.view(self.data['path'] + "origin/work.html")
  70. class env_path(Load):
  71. @Web.setting
  72. def get(self):
  73. Origin.init(self)
  74. search = {}
  75. search['farm_id'] = self.data['info']['farm_id']
  76. search['gateway_id'] = self.data['info']['gateway_id']
  77. search['hardware_type'] = 2
  78. self.data['list'] = self.service('common').list('device_info', search=search)
  79. if self.data['list']:
  80. for key, value in enumerate(self.data['list']):
  81. self.data['list'][key] = self.stat(value)
  82. self.view(self.data['path'] + "origin/env.html")
  83. def stat(self, value):
  84. method = 'maxmin'
  85. value['type'] = self.service('common').one('device_type', id=value['type_id'])
  86. model = Demeter.model('data', 'tsdb')
  87. value['group'] = model.dateConfig()
  88. search = {}
  89. search['device'] = value['id']
  90. #search['group'] = '1'
  91. search['start'] = Demeter.date(self.data['info']['zzdate'])
  92. search['end'] = Demeter.date(self.data['info']['csdate'])
  93. value['search'] = search
  94. value['stat'] = model.getData(method, search, value)
  95. return value
  96. class farm_path(Load):
  97. @Web.setting
  98. def get(self):
  99. Origin.init(self)
  100. self.view(self.data['path'] + "origin/farm.html")