⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devicemanagement.py

📁 Network Administration Visualized 网络管理可视化源码
💻 PY
📖 第 1 页 / 共 5 页
字号:
    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 + -