📄 devicemanagement.py
字号:
nameSpace = {'page': page} template = deviceManagementTemplate(searchList=[nameSpace]) template.path = CURRENT_PATH return template.respond() def registerRMA(deviceidList,rmanumber,year,month,day,retailer, comment,username): for deviceid in deviceidList: # Send RMA events # Send deviceState deviceRMA event event = DeviceEvent('deviceState','deviceRMA') event.state = DeviceEvent.STATE_START event.deviceid = deviceid event.addVar('rmanumber',rmanumber) event.addVar('username',username) rmadate = year + '-' + month + '-' + day event.addVar('date',rmadate) if retailer: event.addVar('retailer',rmadate) if comment: event.addVar('comment',comment) event.post() def history(req,deviceorderid=None): page = Page() form = req.form page.name = 'history' page.title = 'Device history' page.description = 'Select and view device history for a location, ' + \ 'room, box or module. Use quicksearch to search for '+\ 'a (partial) serialnumber, hostname, ip or room.' page.widgets = {} page.widgets['startdate'] = Widget([CN_DAY,CN_MONTH,CN_YEAR],'date', 'Order date', ['2004', '01', '01']) page.widgets['enddate'] = Widget([CN_DAY,CN_MONTH,CN_YEAR],'date', 'Order date', [None, None, None]) submenu = [('Browse devices','Browse or search for devices', BASEPATH), ('Show active devices','Show all devices in operation', BASEPATH), ('Show devices with registered errors', 'Show all devices with registered errors', BASEPATH)] if deviceorderid: submenu.append(('Order history','Go back to order history', BASEPATH+'order/history')) page.submenu = submenu # Set menu page.menu = makeMainMenu(selected=0) page.action = '' page.subname = '' showHistory = False if form.has_key('history'): # History mode historyType = None if form.has_key(CN_MODULE): historyType = CN_MODULE elif form.has_key(CN_BOX): historyType = CN_BOX elif form.has_key(CN_ROOM): historyType = CN_ROOM elif form.has_key(CN_LOCATION): historyType = CN_LOCATION elif form.has_key(CN_DEVICE): historyType = CN_DEVICE if historyType: showHistory = True unitList = form[historyType] if not type(unitList) is list: unitList = [unitList] page.boxList = makeHistory(form,historyType,unitList) page.searchbox = None page.subname = 'history' else: page.errors.append('No unit selected') elif deviceorderid: sql = "SELECT deviceid FROM device WHERE " +\ "deviceorderid='%s'" % (deviceorderid,) result = executeSQL(sql,fetch=True) if result: historyType = CN_DEVICE unitList = [] for row in result: unitList.append(row[0]) page.boxList = makeHistory(form,historyType,unitList) page.searchbox = None page.subname = 'history' else: page.errors.append('Could not find any devices for this order') if not showHistory: # Browse mode, make treeselect page.searchbox,page.treeselect = makeTreeSelect(req,serialSearch=True) page.formname = page.treeselect.formName #validSubmit = False #if form.has_key(CN_LOCATION): # # If a location has been selected, allow submit # validSubmit = True page.submit = {'control': 'history', 'value': 'View history', 'enabled': True} nameSpace = {'page': page} template = deviceManagementTemplate(searchList=[nameSpace]) template.path = CURRENT_PATH return template.respond()CN_ERRCOMMENT = 'e_comment'def error(req): page = Page() form = req.form page.name = 'error' page.title = 'Register error' page.description = 'Register an error by selecting one ' +\ 'or more units (locations, rooms, boxes or modules) ' +\ 'and enter a description of the error.' # Set menu page.menu = makeMainMenu(selected=4) page.action = '' showSelect = True if form.has_key('error') and form.has_key(CN_ERRCOMMENT): if len(form[CN_ERRCOMMENT]): # Register error comment = form[CN_ERRCOMMENT] username = req.session['user'].login errorType = None if form.has_key(CN_MODULE): errorType = CN_MODULE elif form.has_key(CN_BOX): errorType = CN_BOX elif form.has_key(CN_ROOM): errorType = CN_ROOM elif form.has_key(CN_LOCATION): errorType = CN_LOCATION elif form.has_key(CN_DEVICE): errorType = CN_DEVICE if form[errorType] is list: unitList = form[errorType] else: unitList = [form[errorType]] result = registerError(errorType,unitList,comment,username) page.messages = result else: page.errors.append('You must enter an error comment.') if showSelect: # Browse mode, make treeselect page.searchbox,page.treeselect = makeTreeSelect(req,size=10, serialSearch=True) page.formname = page.treeselect.formName page.submit = {'control': 'error', 'value': 'Register error', 'enabled': True} page.widgets = {} page.widgets['comment'] = Widget(CN_ERRCOMMENT,'textarea','Error comment', options={'rows': '5', 'cols': '80', 'style': 'width: 100%;'}) #page.errorInput = {'control': 'errorinput', # 'description': 'Error comment:', # 'size': '50', # 'enabled': validSubmit} nameSpace = {'page': page} template = deviceManagementTemplate(searchList=[nameSpace]) template.path = CURRENT_PATH return template.respond()# ConstantsCN_YEAR = 'o_year'CN_MONTH = 'o_month'CN_DAY = 'o_day'CN_RETAILER = 'o_retailer'CN_COMMENT = 'o_comment'CN_ORDERNUMBER = 'o_ordernumber'CN_PRODUCT = 'o_product'CN_AMOUNT = 'o_amount'CN_ADD_SUBMIT = 'o_asubmit'CN_ADD_CONFIRM = 'o_confirm'CN_UPDATE_SUBMIT = 'o_usubmit'CN_UPDATE_CONFIRM = 'o_uconfirm'CN_CANCEL = 'o_cancel'CN_ORG = 'o_org'CN_DELETE_CONFIRM = 'o_dconfirm'#CN_ARRIVE_CONFIRM = 'o_arsubmit'CN_STATE = 'o_action'CN_SERIAL = 'o_serial'CN_PENDING = 'o_pending'CN_ARRIVED = 'o_arrived'CN_CANCELLED = 'o_cancelled'## Delete moduleCN_DELETE_MODULE = 'd_delete'CN_DELETE_MODULE_CONFIRM = 'd_confirm'CN_MODULE_SELECT = 'd_moduleid'CN_MOVETO = 'd_moveto'CN_INVENTORY_MOVE = 'd_imoveto'CN_INACTIVE_MOVE = 'd_inmoveto'def order(req,path): subpath = path[1] page = Page() form = req.form alternativeOutput = None submenu = [('Active orders','Show and edit active orders', BASEPATH+'order/'), ('Add order','Add new order',BASEPATH+'order/add'), ('Order history','Show closed orders', BASEPATH+'order/history'), ('Add product','Add new product to the database', '/editdb/product/edit/')] page.submenu = submenu if not subpath or form.has_key(CN_CANCEL): subpath = 'main' addOrderKeys = [CN_YEAR,CN_MONTH,CN_DAY,CN_RETAILER,CN_COMMENT, CN_ORDERNUMBER,CN_PRODUCT,CN_AMOUNT,CN_ORG] formData = {} for key in addOrderKeys: if form.has_key(key): formData[key] = form[key] else: formData[key] = None page.name = 'order' page.widgets = {} page.title = 'Order devices' page.action = '' showConfirmButton = False orderAction = 'add' if form.has_key(CN_UPDATE_SUBMIT) or form.has_key(CN_UPDATE_CONFIRM): orderAction = 'edit' if form.has_key(CN_ADD_SUBMIT) or form.has_key(CN_ADD_CONFIRM) or \ form.has_key(CN_UPDATE_SUBMIT) or form.has_key(CN_UPDATE_CONFIRM): # Validate order form if form[CN_PRODUCT]: if form[CN_ORG]: if len(form[CN_AMOUNT]): validAmount = True try: amount = int(form[CN_AMOUNT]) except ValueError: validAmount = False amount = 0 page.errors.append('Invalid amount') subpath = orderAction if (amount < 1) and orderAction == 'add': validAmount = False page.errors.append('Invalid amount') subpath = orderAction elif (amount < 0): # If updating, 0 is a valid amount validAmount = False page.errors.append('Invalid amount') subpath = orderAction if (amount > MAX_NUMBER_OF_DEVICES_ORDERED) and \ not (form.has_key(CN_ADD_CONFIRM) or \ form.has_key(CN_UPDATE_CONFIRM)): validAmount = False showConfirmButton = True page.messages.append('Are you sure you want to ' +\ 'order this many devices?') subpath = orderAction validDate = True try: testDate = mx.DateTime.Date(int(formData[CN_YEAR]), int(formData[CN_MONTH]), int(formData[CN_DAY])) except mx.DateTime.RangeError: validDate = False page.errors.append('Invalid date') subpath = orderAction if validDate and validAmount: # Form validated, add new order if orderAction == 'edit': updateOrder(req,formData) page.messages.append('Updated order') else: registerOrder(req,formData) page.messages.append('Added order') else: page.errors.append('You must enter an amount') subpath = orderAction
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -