def showForm(self, dErrors=None, sErrorMsg=None): """ Render the form. """ oForm = WuiHlpForm( self._sId, '?' + webutils.encodeUrlParams( {WuiDispatcherBase.ksParamAction: self._sSubmitAction}), dErrors if dErrors is not None else dict(), fReadOnly=self._sMode == self.ksMode_Show) self._oData.convertToParamNull() # If form cannot be constructed due to some reason we # need to show this reason try: self._populateForm(oForm, self._oData) if self._sRedirectTo is not None: oForm.addTextHidden(self._oDisp.ksParamRedirectTo, self._sRedirectTo) except WuiException as oXcpt: sContent = unicode(oXcpt) else: sContent = oForm.finalize() # Add any post form content. atPostFormContent = self._generatePostFormContent(self._oData) if atPostFormContent: for iSection, tSection in enumerate(atPostFormContent): (sSectionTitle, sSectionContent) = tSection sContent += u'<div id="postform-%d" class="tmformpostsection">\n' % ( iSection, ) if sSectionTitle: sContent += '<h3 class="tmformpostheader">%s</h3>\n' % ( webutils.escapeElem(sSectionTitle), ) sContent += u' <div id="postform-%d-content" class="tmformpostcontent">\n' % ( iSection, ) sContent += sSectionContent sContent += u' </div>\n' \ u'</div>\n' # Add action to the top. aoActions = self._generateTopRowFormActions(self._oData) if aoActions: sActionLinks = '<p>%s</p>' % (' '.join( unicode(oLink) for oLink in aoActions)) sContent = sActionLinks + sContent # Add error info to the top. if sErrorMsg is not None: sContent = '<p class="tmerrormsg">' + webutils.escapeElem( sErrorMsg) + '</p>\n' + sContent return (self._sTitle, sContent)
def showForm(self, dErrors = None, sErrorMsg = None): """ Render the form. """ oForm = WuiHlpForm(self._sId, '?' + webutils.encodeUrlParams({WuiDispatcherBase.ksParamAction: self._sSubmitAction}), dErrors if dErrors is not None else dict(), fReadOnly = self._sMode == self.ksMode_Show); self._oData.convertToParamNull(); # If form cannot be constructed due to some reason we # need to show this reason try: self._populateForm(oForm, self._oData); if self._sRedirectTo is not None: oForm.addTextHidden(self._oDisp.ksParamRedirectTo, self._sRedirectTo); except WuiException as oXcpt: sContent = unicode(oXcpt) else: sContent = oForm.finalize(); # Add any post form content. atPostFormContent = self._generatePostFormContent(self._oData); if atPostFormContent: for iSection, tSection in enumerate(atPostFormContent): (sSectionTitle, sSectionContent) = tSection; sContent += u'<div id="postform-%d" class="tmformpostsection">\n' % (iSection,); if sSectionTitle: sContent += '<h3 class="tmformpostheader">%s</h3>\n' % (webutils.escapeElem(sSectionTitle),); sContent += u' <div id="postform-%d-content" class="tmformpostcontent">\n' % (iSection,); sContent += sSectionContent; sContent += u' </div>\n' \ u'</div>\n'; # Add action to the top. aoActions = self._generateTopRowFormActions(self._oData); if aoActions: sActionLinks = '<p>%s</p>' % (' '.join(unicode(oLink) for oLink in aoActions)); sContent = sActionLinks + sContent; # Add error info to the top. if sErrorMsg is not None: sContent = '<p class="tmerrormsg">' + webutils.escapeElem(sErrorMsg) + '</p>\n' + sContent; return (self._sTitle, sContent);
def showForm(self, dErrors = None, sErrorMsg = None): """ Render the form. """ oForm = WuiHlpForm(self._sId, '?' + webutils.encodeUrlParams({WuiDispatcherBase.ksParamAction: self._sSubmitAction}), dErrors if dErrors is not None else dict(), fReadOnly = self._sMode == self.ksMode_Show); self._oData.convertToParamNull(); # If form cannot be constructed due to some reason we # need to show this reason try: self._populateForm(oForm, self._oData); if self._sRedirectTo is not None: oForm.addTextHidden(self._oDisp.ksParamRedirectTo, self._sRedirectTo); except WuiException, oXcpt: sContent = unicode(oXcpt)
def _generatePostFormContent(self, oData): from testmanager.webui.wuihlpform import WuiHlpForm oForm = WuiHlpForm('testbox-machine-settable', '', fReadOnly=True) oForm.addTextRO(TestBoxData.ksParam_sOs, oData.sOs, 'TestBox OS') oForm.addTextRO(TestBoxData.ksParam_sOsVersion, oData.sOsVersion, 'TestBox OS version') oForm.addTextRO(TestBoxData.ksParam_sCpuArch, oData.sCpuArch, 'TestBox OS kernel architecture') oForm.addTextRO(TestBoxData.ksParam_sCpuVendor, oData.sCpuVendor, 'TestBox CPU vendor') oForm.addTextRO(TestBoxData.ksParam_sCpuName, oData.sCpuName, 'TestBox CPU name') if oData.lCpuRevision: oForm.addTextRO(TestBoxData.ksParam_lCpuRevision, '%#x' % (oData.lCpuRevision, ), 'TestBox CPU revision', sPostHtml=' (family=%#x model=%#x stepping=%#x)' % ( oData.getCpuFamily(), oData.getCpuModel(), oData.getCpuStepping(), ), sSubClass='long') else: oForm.addLongRO(TestBoxData.ksParam_lCpuRevision, oData.lCpuRevision, 'TestBox CPU revision') oForm.addIntRO(TestBoxData.ksParam_cCpus, oData.cCpus, 'Number of CPUs, cores and threads') oForm.addCheckBoxRO(TestBoxData.ksParam_fCpuHwVirt, oData.fCpuHwVirt, 'VT-x or AMD-V supported') oForm.addCheckBoxRO(TestBoxData.ksParam_fCpuNestedPaging, oData.fCpuNestedPaging, 'Nested paging supported') oForm.addCheckBoxRO(TestBoxData.ksParam_fCpu64BitGuest, oData.fCpu64BitGuest, '64-bit guest supported') oForm.addCheckBoxRO(TestBoxData.ksParam_fChipsetIoMmu, oData.fChipsetIoMmu, 'I/O MMU supported') oForm.addMultilineTextRO(TestBoxData.ksParam_sReport, oData.sReport, 'Hardware/software report') oForm.addLongRO(TestBoxData.ksParam_cMbMemory, oData.cMbMemory, 'Installed RAM size (MB)') oForm.addLongRO(TestBoxData.ksParam_cMbScratch, oData.cMbScratch, 'Available scratch space (MB)') oForm.addIntRO(TestBoxData.ksParam_iTestBoxScriptRev, oData.iTestBoxScriptRev, 'TestBox Script SVN revision') sHexVer = oData.formatPythonVersion() oForm.addIntRO(TestBoxData.ksParam_iPythonHexVersion, oData.iPythonHexVersion, 'Python version (hex)', sPostHtml=webutils.escapeElem(sHexVer)) return [ ('Machine Only Settables', oForm.finalize()), ]
def _generatePostFormContent(self, oData): from testmanager.webui.wuihlpform import WuiHlpForm; oForm = WuiHlpForm('testbox-machine-settable', '', fReadOnly = True); oForm.addTextRO( TestBoxData.ksParam_sOs, oData.sOs, 'TestBox OS'); oForm.addTextRO( TestBoxData.ksParam_sOsVersion, oData.sOsVersion, 'TestBox OS version'); oForm.addTextRO( TestBoxData.ksParam_sCpuArch, oData.sCpuArch, 'TestBox OS kernel architecture'); oForm.addTextRO( TestBoxData.ksParam_sCpuVendor, oData.sCpuVendor, 'TestBox CPU vendor'); oForm.addTextRO( TestBoxData.ksParam_sCpuName, oData.sCpuName, 'TestBox CPU name'); if oData.lCpuRevision: oForm.addTextRO( TestBoxData.ksParam_lCpuRevision, '%#x' % (oData.lCpuRevision,), 'TestBox CPU revision', sPostHtml = ' (family=%#x model=%#x stepping=%#x)' % (oData.getCpuFamily(), oData.getCpuModel(), oData.getCpuStepping(),), sSubClass = 'long'); else: oForm.addLongRO( TestBoxData.ksParam_lCpuRevision, oData.lCpuRevision, 'TestBox CPU revision'); oForm.addIntRO( TestBoxData.ksParam_cCpus, oData.cCpus, 'Number of CPUs, cores and threads'); oForm.addCheckBoxRO( TestBoxData.ksParam_fCpuHwVirt, oData.fCpuHwVirt, 'VT-x or AMD-V supported'); oForm.addCheckBoxRO( TestBoxData.ksParam_fCpuNestedPaging, oData.fCpuNestedPaging, 'Nested paging supported'); oForm.addCheckBoxRO( TestBoxData.ksParam_fCpu64BitGuest, oData.fCpu64BitGuest, '64-bit guest supported'); oForm.addCheckBoxRO( TestBoxData.ksParam_fChipsetIoMmu, oData.fChipsetIoMmu, 'I/O MMU supported'); oForm.addMultilineTextRO(TestBoxData.ksParam_sReport, oData.sReport, 'Hardware/software report'); oForm.addLongRO( TestBoxData.ksParam_cMbMemory, oData.cMbMemory, 'Installed RAM size (MB)'); oForm.addLongRO( TestBoxData.ksParam_cMbScratch, oData.cMbScratch, 'Available scratch space (MB)'); oForm.addIntRO( TestBoxData.ksParam_iTestBoxScriptRev, oData.iTestBoxScriptRev, 'TestBox Script SVN revision'); sHexVer = oData.formatPythonVersion(); oForm.addIntRO( TestBoxData.ksParam_iPythonHexVersion, oData.iPythonHexVersion, 'Python version (hex)', sPostHtml = webutils.escapeElem(sHexVer)); return [('Machine Only Settables', oForm.finalize()),];
def showAddModifyPage(self, sAction, dErrors=None): """ Render add global resource HTML form. """ from testmanager.webui.wuiadmin import WuiAdmin sFormActionUrl = '%s?%s=%s' % (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, sAction) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: sTitle = 'Add Global Resource' elif sAction == WuiAdmin.ksActionGlobalRsrcEdit: sTitle = 'Modify Global Resource' sFormActionUrl += '&%s=%s' % ( GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc) else: raise WuiException('Invalid paraemter "%s"' % (sAction, )) oForm = WuiHlpForm('globalresourceform', sFormActionUrl, dErrors if dErrors is not None else dict()) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: oForm.addIntRO(GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc, 'Global Resource ID') oForm.addTimestampRO(GlobalResourceData.ksParam_tsEffective, self._oData.tsEffective, 'Last changed') oForm.addTimestampRO(GlobalResourceData.ksParam_tsExpire, self._oData.tsExpire, 'Expires (excl)') oForm.addIntRO(GlobalResourceData.ksParam_uidAuthor, self._oData.uidAuthor, 'Changed by UID') oForm.addText(GlobalResourceData.ksParam_sName, self._oData.sName, 'Name') oForm.addText(GlobalResourceData.ksParam_sDescription, self._oData.sDescription, 'Description') oForm.addCheckBox(GlobalResourceData.ksParam_fEnabled, self._oData.fEnabled, 'Enabled') oForm.addSubmit('Submit') return (sTitle, oForm.finalize())
def _generateMainReason(self, oTestResultTree, oTestSet): """ Generates the form for displaying and updating the main failure reason. oTestResultTree is an instance TestResultDataEx. oTestSet is an instance of TestSetData. """ _ = oTestSet; sHtml = ' '; if oTestResultTree.isFailure() or oTestResultTree.cErrors > 0: sHtml += ' <h2>Failure Reason:</h2>\n'; oData = oTestResultTree.oReason; # We need the failure reasons for the combobox. aoFailureReasons = FailureReasonLogic(self._oDisp.getDb()).fetchForCombo('Test Sheriff, you figure out why!'); assert len(aoFailureReasons) > 0; # For now we'll use the standard form helper. sFormActionUrl = '%s?%s=%s' % ( self._oDisp.ksScriptName, self._oDisp.ksParamAction, WuiMain.ksActionTestResultFailureAddPost if oData is None else WuiMain.ksActionTestResultFailureEditPost ) oForm = WuiHlpForm('failure-reason', sFormActionUrl, sOnSubmit = WuiHlpForm.ksOnSubmit_AddReturnToFieldWithCurrentUrl); oForm.addTextHidden(TestResultFailureData.ksParam_idTestResult, oTestResultTree.idTestResult); oForm.addTextHidden(TestResultFailureData.ksParam_idTestSet, oTestSet.idTestSet); if oData is not None: oForm.addComboBox(TestResultFailureData.ksParam_idFailureReason, oData.idFailureReason, 'Reason', aoFailureReasons, sPostHtml = u' ' + WuiFailureReasonDetailsLink(oData.idFailureReason).toHtml() + u' ' + WuiFailureReasonAddLink('New', fBracketed = False).toHtml()); oForm.addMultilineText(TestResultFailureData.ksParam_sComment, oData.sComment, 'Comment') oForm.addNonText(u'%s (%s), %s' % ( oData.oAuthor.sUsername, oData.oAuthor.sUsername, self.formatTsShort(oData.tsEffective),), 'Sheriff', sPostHtml = ' ' + WuiTestResultFailureDetailsLink(oData.idTestResult, "Show Details").toHtml() ) oForm.addTextHidden(TestResultFailureData.ksParam_tsEffective, oData.tsEffective); oForm.addTextHidden(TestResultFailureData.ksParam_tsExpire, oData.tsExpire); oForm.addTextHidden(TestResultFailureData.ksParam_uidAuthor, oData.uidAuthor); oForm.addSubmit('Change Reason'); else: oForm.addComboBox(TestResultFailureData.ksParam_idFailureReason, -1, 'Reason', aoFailureReasons, sPostHtml = ' ' + WuiFailureReasonAddLink('New').toHtml()); oForm.addMultilineText(TestResultFailureData.ksParam_sComment, '', 'Comment'); oForm.addTextHidden(TestResultFailureData.ksParam_tsEffective, ''); oForm.addTextHidden(TestResultFailureData.ksParam_tsExpire, ''); oForm.addTextHidden(TestResultFailureData.ksParam_uidAuthor, ''); oForm.addSubmit('Add Reason'); sHtml += oForm.finalize(); return sHtml;
def showAddModifyPage(self, sAction, dErrors=None): """ Render add global resource HTML form. """ from testmanager.webui.wuiadmin import WuiAdmin sFormActionUrl = "%s?%s=%s" % (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, sAction) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: sTitle = "Add Global Resource" elif sAction == WuiAdmin.ksActionGlobalRsrcEdit: sTitle = "Modify Global Resource" sFormActionUrl += "&%s=%s" % (GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc) else: raise WuiException('Invalid paraemter "%s"' % (sAction,)) oForm = WuiHlpForm("globalresourceform", sFormActionUrl, dErrors if dErrors is not None else dict()) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: oForm.addIntRO(GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc, "Global Resource ID") oForm.addTimestampRO(GlobalResourceData.ksParam_tsEffective, self._oData.tsEffective, "Last changed") oForm.addTimestampRO(GlobalResourceData.ksParam_tsExpire, self._oData.tsExpire, "Expires (excl)") oForm.addIntRO(GlobalResourceData.ksParam_uidAuthor, self._oData.uidAuthor, "Changed by UID") oForm.addText(GlobalResourceData.ksParam_sName, self._oData.sName, "Name") oForm.addText(GlobalResourceData.ksParam_sDescription, self._oData.sDescription, "Description") oForm.addCheckBox(GlobalResourceData.ksParam_fEnabled, self._oData.fEnabled, "Enabled") oForm.addSubmit("Submit") return (sTitle, oForm.finalize())
def showAddModifyPage(self, sAction, dErrors = None): """ Render add global resource HTML form. """ from testmanager.webui.wuiadmin import WuiAdmin sFormActionUrl = '%s?%s=%s' % (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, sAction) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: sTitle = 'Add Global Resource' elif sAction == WuiAdmin.ksActionGlobalRsrcEdit: sTitle = 'Modify Global Resource' sFormActionUrl += '&%s=%s' % (GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc) else: raise WuiException('Invalid paraemter "%s"' % (sAction,)) oForm = WuiHlpForm('globalresourceform', sFormActionUrl, dErrors if dErrors is not None else dict()) if sAction == WuiAdmin.ksActionGlobalRsrcAdd: oForm.addIntRO (GlobalResourceData.ksParam_idGlobalRsrc, self._oData.idGlobalRsrc, 'Global Resource ID') oForm.addTimestampRO(GlobalResourceData.ksParam_tsEffective, self._oData.tsEffective, 'Last changed') oForm.addTimestampRO(GlobalResourceData.ksParam_tsExpire, self._oData.tsExpire, 'Expires (excl)') oForm.addIntRO (GlobalResourceData.ksParam_uidAuthor, self._oData.uidAuthor, 'Changed by UID') oForm.addText (GlobalResourceData.ksParam_sName, self._oData.sName, 'Name') oForm.addText (GlobalResourceData.ksParam_sDescription, self._oData.sDescription, 'Description') oForm.addCheckBox (GlobalResourceData.ksParam_fEnabled, self._oData.fEnabled, 'Enabled') oForm.addSubmit('Submit') return (sTitle, oForm.finalize())