123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- demeter service
- name:device_group.py 设备分组管理
- author:rabin
- """
- from demeter import *
- class Device_group(object):
- # 获取农场下的页面数据、页面下的分组数据、分组中的设备
- def getPage(self, type = False, state = True, search = None):
- model = Demeter.model('device_page')
- model.state = state
- if search:
- if 'name' in search and search['name']:
- model.name.mlike(search['name'])
- if 'start' in search and search['start']:
- model.cdate.start(search['start'])
- if 'end' in search and search['end']:
- model.cdate.end(search['end'])
- page = model.select(page=True)
- if type:
- return self.__getGroup(page)
- return page
- def __getGroup(self, page):
- if page:
- device = Demeter.model('device_info')
- for key, value in page:
- page[key]['group'] = self.__getDevice(device, self.getGroup(value['id']))
- return page
- def __getDevice(self, device, group):
- if group:
- for key, value in group:
- device.id = value['devices']
- device.exp('in')
- group[key]['device'] = device.select()
- return group
- def getPageOne(self, id):
- model = Demeter.model('device_page')
- model.id = id
- page = model.select(type='fetchone')
- return page
- def getGroup(self, page_id):
- group = Demeter.model('device_group')
- group.page_id = page_id
- return group.select()
- # 更新页面
- def updatePage(self, id, name):
- model = Demeter.model('device_page')
- if id:
- model.id = id
- model.update(name=name, cdate='time')
- return id
- else:
- model.name = name
- return model.insert()
- # 删除页面
- def deletePage(self, id, state = False):
- model = Demeter.model('device_page')
- model.id = id
- return model.update(state=state)
- # 添加分组
- def addGroup(self, page_id, name, devices):
- model = Demeter.model('device_group')
- model.page_id = page_id
- model.name = name
- model.devices = devices
- return model.insert()
- # 修改分组
- def updateGroup(self, id, name, devices):
- model = Demeter.model('device_group')
- model.id = id
- return model.update(name=name, devices=devices, cdate='time')
- # 删除分组
- def deleteGroup(self, id, state = False):
- model = Demeter.model('device_group')
- model.id = id
- return model.update(state=state)
|