def GenerateOverviewHTML(self): HtmlParser = self.TestResultEnvironmentObject.HtmlParser HTMLTemplate = self.TestResultEnvironmentObject.OverviewHTMLTemplate FinalHTML = HTMLTemplate # Stylesheet StylesheetHTMLTemplate = HtmlParser.getSubpart(HTMLTemplate, '###HEAD_STYLESHEET_TEMPLATE###') StylesheetHTML = HtmlParser.substituteMarkerArray( StylesheetHTMLTemplate, { '###STYLESHEET###':self.TestResultEnvironmentObject.MainStylesheet+ self.TestResultEnvironmentObject.OverviewStylesheet, } ) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEETS###', StylesheetHTML ) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEET_TEMPLATE###', '' ) TableHTMLTemplate = HtmlParser.getSubpart(self.TestResultEnvironmentObject.OverviewHTMLTemplate, '###OVERVIEWTABLE###') TableDataObject = self.TableData() TableHTML = '' TableMap = TableDataObject['Map'] if TableMap: TableHTML += HtmlParser.GenerateTableHTML(TableHTMLTemplate, TableMap, { '###ADDITIONALCSSCLASS###': '', '###ID###': 'OverviewTableMap', }) TableHTML += "<br><br>" TableData = TableDataObject['List'] TableHTML += HtmlParser.GenerateTableHTML(TableHTMLTemplate, TableData, { '###ADDITIONALCSSCLASS###':'', '###ID###':'OverviewTable', }) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###OVERVIEWTABLE###', TableHTML ) return FinalHTML
def GenerateOverviewHTML(self): HtmlParser = self.TestResultEnvironmentObject.HtmlParser HTMLTemplate = self.TestResultEnvironmentObject.OverviewHTMLTemplate FinalHTML = HTMLTemplate # Stylesheet StylesheetHTMLTemplate = HtmlParser.getSubpart( HTMLTemplate, '###HEAD_STYLESHEET_TEMPLATE###') StylesheetHTML = HtmlParser.substituteMarkerArray( StylesheetHTMLTemplate, { '###STYLESHEET###': self.TestResultEnvironmentObject.MainStylesheet + self.TestResultEnvironmentObject.OverviewStylesheet, }) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, '###HEAD_STYLESHEETS###', StylesheetHTML) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEET_TEMPLATE###', '') TableHTMLTemplate = HtmlParser.getSubpart( self.TestResultEnvironmentObject.OverviewHTMLTemplate, '###OVERVIEWTABLE###') TableDataObject = self.TableData() TableHTML = '' TableMap = TableDataObject['Map'] if TableMap: TableHTML += HtmlParser.GenerateTableHTML( TableHTMLTemplate, TableMap, { '###ADDITIONALCSSCLASS###': '', '###ID###': 'OverviewTableMap', }) TableHTML += "<br><br>" TableData = TableDataObject['List'] TableHTML += HtmlParser.GenerateTableHTML( TableHTMLTemplate, TableData, { '###ADDITIONALCSSCLASS###': '', '###ID###': 'OverviewTable', }) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, '###OVERVIEWTABLE###', TableHTML) return FinalHTML
def GenerateOverviewHTML(self): HtmlParser = self.TestResultEnvironmentObject.HtmlParser HTMLTemplate = self.TestResultEnvironmentObject.OverviewHTMLTemplate FinalHTML = HTMLTemplate # Stylesheet StylesheetHTMLTemplate = HtmlParser.getSubpart(HTMLTemplate, "###HEAD_STYLESHEET_TEMPLATE###") StylesheetHTML = HtmlParser.substituteMarkerArray( StylesheetHTMLTemplate, { "###STYLESHEET###": self.TestResultEnvironmentObject.MainStylesheet + self.TestResultEnvironmentObject.OverviewStylesheet }, ) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, "###HEAD_STYLESHEETS###", StylesheetHTML) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, "###HEAD_STYLESHEET_TEMPLATE###", "") TableHTMLTemplate = HtmlParser.getSubpart( self.TestResultEnvironmentObject.OverviewHTMLTemplate, "###OVERVIEWTABLE###" ) TableDataObject = self.TableData() TableHTML = "" TableMap = TableDataObject["Map"] if TableMap: TableHTML += HtmlParser.GenerateTableHTML( TableHTMLTemplate, TableMap, {"###ADDITIONALCSSCLASS###": "", "###ID###": "OverviewTableMap"} ) TableHTML += "<br><br>" TableData = TableDataObject["List"] TableHTML += HtmlParser.GenerateTableHTML( TableHTMLTemplate, TableData, {"###ADDITIONALCSSCLASS###": "", "###ID###": "OverviewTable"} ) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, "###OVERVIEWTABLE###", TableHTML) return FinalHTML
def Boxed(self, HTML, Width = -1): if Width < 1: Width = self.DisplayOptions['Width'] HtmlParser = self.TestResultEnvironmentObject.HtmlParser SingleBoxWidth = 200 SingleBoxHeight = 200 ClearStyle = '' if self.DisplayOptions.has_key('Clear'): ClearStyle = "clear:%s;"%self.DisplayOptions['Clear'] return HtmlParser.substituteSubpart( '<div style="' + ClearStyle + 'margin:3px;padding:2px;border:none;float:left;width:{BoxWidth}px;min-height:{BoxHeight}px;"><h4>{Title}</h4><!-- ###CONTENT### -->content<!-- ###CONTENT### --></div>'.format(BoxWidth = Width * SingleBoxWidth, BoxHeight=SingleBoxHeight, Title=self.Title), '###CONTENT###', HTML )
def Boxed(self, HTML, Width=-1): if Width < 1: Width = self.DisplayOptions['Width'] HtmlParser = self.TestResultEnvironmentObject.HtmlParser SingleBoxWidth = 200 SingleBoxHeight = 200 ClearStyle = '' if self.DisplayOptions.has_key('Clear'): ClearStyle = "clear:%s;" % self.DisplayOptions['Clear'] return HtmlParser.substituteSubpart( '<div style="' + ClearStyle + 'margin:3px;padding:2px;border:none;float:left;width:{BoxWidth}px;min-height:{BoxHeight}px;"><h4>{Title}</h4><!-- ###CONTENT### -->content<!-- ###CONTENT### --></div>' .format(BoxWidth=Width * SingleBoxWidth, BoxHeight=SingleBoxHeight, Title=self.Title), '###CONTENT###', HTML)
def Table(self, TableData, RowLimit=999): HtmlParser = self.TestResultEnvironmentObject.HtmlParser TableHTMLTemplate = self.TestResultEnvironmentObject.ProductionOverviewTableHTMLTemplate # Key Value Dict Pairs TableColumnHTMLTemplate = HtmlParser.getSubpart( TableHTMLTemplate, '###TABLE_COLUMN###') TableRowHTMLTemplate = HtmlParser.getSubpart(TableHTMLTemplate, '###TABLE_ROW###') TableRows = '' HTML = '' TableID = "table_%s" % hash(str(TableData)) HideRowsID = "hidebutton_%s" % hash(str(TableData)) # fill rows NRows = 0 NRowsHidden = 0 RowLimitReached = False for Row in TableData: NRows += 1 RowClass = '' if NRows > RowLimit: RowClass = 'hidden' NRowsHidden += 1 TableRow = '' for Column in Row: if type(Column) is dict: Class = Column['Class'] Value = Column['Value'] else: Class = 'Value' Value = Column TableRow += HtmlParser.substituteMarkerArray( TableColumnHTMLTemplate, { '###CLASS###': Class, '###VALUE###': Value, }) TableRows += HtmlParser.substituteMarkerArray( HtmlParser.substituteSubpart(TableRowHTMLTemplate, '###TABLE_COLUMN###', TableRow), { '###CLASS###': RowClass, }) # build table HTML += HtmlParser.substituteMarkerArray( HtmlParser.substituteSubpart(TableHTMLTemplate, '###TABLE_ROW###', TableRows), { '###TABLEID###': TableID, }) # button to show hidden rows if NRowsHidden > 0: HTML += "<div id='{HideRowsID}'><a href='#' onclick='var table=document.getElementById(\"{TableID}\");var len=table.childNodes[1].childNodes.length;for (var i=0;i<len;i++){{table.childNodes[1].childNodes[i].className=\" \";}};document.getElementById(\"{HideRowsID}\").style.display=\"none\";return false;'>show hidden {NRowsHidden} of {NRows} rows</a></div>".format( TableID=TableID, NRows=NRows, NRowsHidden=NRowsHidden, HideRowsID=HideRowsID) return HTML
def GenerateOverviewHTML(self): ModuleData = self.FetchData() HtmlParser = self.TestResultEnvironmentObject.HtmlParser HTMLTemplate = self.TestResultEnvironmentObject.ProductionOverviewHTMLTemplate FinalHTML = HTMLTemplate # Stylesheet StylesheetHTMLTemplate = HtmlParser.getSubpart( HTMLTemplate, '###HEAD_STYLESHEET_TEMPLATE###') StylesheetHTML = HtmlParser.substituteMarkerArray( StylesheetHTMLTemplate, { '###STYLESHEET###': self.TestResultEnvironmentObject.MainStylesheet + self.TestResultEnvironmentObject.ProductionOverviewStylesheet, }) FinalHTML = HtmlParser.substituteSubpart(FinalHTML, '###HEAD_STYLESHEETS###', StylesheetHTML) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEET_TEMPLATE###', '') FinalHTML = HtmlParser.substituteMarkerArray( FinalHTML, { '###PAGETITLE###': self.Attributes['Title'], }) ContentHTML = '' ### load modules for SubPage in self.SubPages: SubModule = SubPage['Module'] importdir = self.ImportPath + '.' + SubModule try: f = __import__( importdir + '.' + SubModule, fromlist=[importdir + '.' + 'ProductionOverview']) except ImportError as inst: f = __import__(importdir + '.ProductionOverview', fromlist=['']) pass SubPage['ProductionOverview'] = f ### run submodules for SubPage in self.SubPages: InitialAttributes = {} if SubPage.has_key('InitialAttributes'): InitialAttributes = SubPage['InitialAttributes'] InitialAttributes['BasePath'] = self.Attributes['BasePath'] ### instanciate submodule SubPageClass = SubPage['ProductionOverview'].ProductionOverview( TestResultEnvironmentObject=self.TestResultEnvironmentObject, InitialAttributes=InitialAttributes, ParentObject=self) ### generate html overview of submodule #try: SubPageContentHTML = SubPageClass.GenerateOverview() #except: # SubPageContentHTML = "sub page module not found or 'SubPage['ProductionOverview'].GenerateOverview()' failed" ### add to this module html page ContentHTML += SubPageContentHTML FinalHTML = HtmlParser.substituteSubpart(FinalHTML, '###PRODUCTIONOVERVIEW###', ContentHTML) # Clickpath Levels = self.Attributes['BasePath'][:].split('/') ClickPathEntries = [] ClickPathEntryTemplate = HtmlParser.getSubpart( HTMLTemplate, '###CLICKPATH_ENTRY###') LevelPath = '' i = 0 tmpTestResultObject = self for Level in Levels[2:]: LevelPath = '../' * i ClickPathEntries.append( HtmlParser.substituteMarkerArray( ClickPathEntryTemplate, { '###URL###': HtmlParser.MaskHTML(LevelPath + self.HTMLFileName), '###LABEL###': HtmlParser.MaskHTML( tmpTestResultObject.Attributes['Title']) })) try: if self.ParentObject: tmpTestResultObject = tmpTestResultObject.ParentObject except: pass i += 1 OverviewHTMLLink = '../../ProductionOverview/ProductionOverview.html' ClickPathEntries.append( HtmlParser.substituteMarkerArray( ClickPathEntryTemplate, { '###URL###': HtmlParser.MaskHTML(OverviewHTMLLink), '###LABEL###': 'Production Overview' })) ClickPathEntries.reverse() CSSClasses = '' FinalHTML = HtmlParser.substituteSubpartArray( FinalHTML, { '###CLICKPATH_ENTRY###': ''.join(ClickPathEntries), }) return FinalHTML
def Table(self, TableData, RowLimit = 999): HtmlParser = self.TestResultEnvironmentObject.HtmlParser TableHTMLTemplate = self.TestResultEnvironmentObject.ProductionOverviewTableHTMLTemplate # Key Value Dict Pairs TableColumnHTMLTemplate = HtmlParser.getSubpart(TableHTMLTemplate, '###TABLE_COLUMN###') TableRowHTMLTemplate = HtmlParser.getSubpart(TableHTMLTemplate, '###TABLE_ROW###') TableRows = '' HTML = '' TableID = "table_%s"%hash(str(TableData)) HideRowsID = "hidebutton_%s"%hash(str(TableData)) # fill rows NRows = 0 NRowsHidden = 0 RowLimitReached = False for Row in TableData: NRows += 1 RowClass = '' if NRows > RowLimit: RowClass = 'hidden' NRowsHidden += 1 TableRow = '' for Column in Row: if type(Column) is dict: Class = Column['Class'] Value = Column['Value'] else: Class = 'Value' Value = Column TableRow += HtmlParser.substituteMarkerArray( TableColumnHTMLTemplate, { '###CLASS###': Class, '###VALUE###': Value, } ) TableRows += HtmlParser.substituteMarkerArray( HtmlParser.substituteSubpart(TableRowHTMLTemplate, '###TABLE_COLUMN###', TableRow), { '###CLASS###': RowClass, }) # build table HTML += HtmlParser.substituteMarkerArray( HtmlParser.substituteSubpart(TableHTMLTemplate, '###TABLE_ROW###', TableRows), { '###TABLEID###': TableID, }) # button to show hidden rows if NRowsHidden > 0: HTML += "<div id='{HideRowsID}'><a href='#' onclick='var table=document.getElementById(\"{TableID}\");var len=table.childNodes[1].childNodes.length;for (var i=0;i<len;i++){{table.childNodes[1].childNodes[i].className=\" \";}};document.getElementById(\"{HideRowsID}\").style.display=\"none\";return false;'>show hidden {NRowsHidden} of {NRows} rows</a></div>".format(TableID=TableID,NRows=NRows,NRowsHidden=NRowsHidden,HideRowsID=HideRowsID) return HTML
def GenerateOverviewHTML(self): ModuleData = self.FetchData() HtmlParser = self.TestResultEnvironmentObject.HtmlParser HTMLTemplate = self.TestResultEnvironmentObject.ProductionOverviewHTMLTemplate FinalHTML = HTMLTemplate # Stylesheet StylesheetHTMLTemplate = HtmlParser.getSubpart(HTMLTemplate, '###HEAD_STYLESHEET_TEMPLATE###') StylesheetHTML = HtmlParser.substituteMarkerArray( StylesheetHTMLTemplate, { '###STYLESHEET###':self.TestResultEnvironmentObject.MainStylesheet+ self.TestResultEnvironmentObject.ProductionOverviewStylesheet, } ) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEETS###', StylesheetHTML ) FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###HEAD_STYLESHEET_TEMPLATE###', '' ) FinalHTML = HtmlParser.substituteMarkerArray( FinalHTML, { '###PAGETITLE###': self.Attributes['Title'], } ) ContentHTML = '' ### load modules for SubPage in self.SubPages: SubModule = SubPage['Module'] importdir = self.ImportPath + '.' + SubModule try: f = __import__(importdir + '.' + SubModule, fromlist=[importdir + '.' + 'ProductionOverview']) except ImportError as inst: f = __import__(importdir + '.ProductionOverview', fromlist=['']) pass SubPage['ProductionOverview'] = f ### run submodules for SubPage in self.SubPages: InitialAttributes = {} if SubPage.has_key('InitialAttributes'): InitialAttributes = SubPage['InitialAttributes'] InitialAttributes['BasePath'] = self.Attributes['BasePath'] ### instanciate submodule SubPageClass = SubPage['ProductionOverview'].ProductionOverview(TestResultEnvironmentObject=self.TestResultEnvironmentObject, InitialAttributes = InitialAttributes, ParentObject = self) ### generate html overview of submodule #try: SubPageContentHTML = SubPageClass.GenerateOverview() #except: # SubPageContentHTML = "sub page module not found or 'SubPage['ProductionOverview'].GenerateOverview()' failed" ### add to this module html page ContentHTML += SubPageContentHTML FinalHTML = HtmlParser.substituteSubpart( FinalHTML, '###PRODUCTIONOVERVIEW###', ContentHTML ) # Clickpath Levels = self.Attributes['BasePath'][:].split('/') ClickPathEntries = [] ClickPathEntryTemplate = HtmlParser.getSubpart(HTMLTemplate, '###CLICKPATH_ENTRY###') LevelPath = '' i = 0 tmpTestResultObject = self for Level in Levels[2:]: LevelPath = '../' * i ClickPathEntries.append(HtmlParser.substituteMarkerArray( ClickPathEntryTemplate, { '###URL###': HtmlParser.MaskHTML(LevelPath + self.HTMLFileName), '###LABEL###': HtmlParser.MaskHTML(tmpTestResultObject.Attributes['Title']) } )) try: if self.ParentObject: tmpTestResultObject = tmpTestResultObject.ParentObject except: pass i += 1 OverviewHTMLLink = '../../ProductionOverview/ProductionOverview.html' ClickPathEntries.append(HtmlParser.substituteMarkerArray( ClickPathEntryTemplate, { '###URL###': HtmlParser.MaskHTML(OverviewHTMLLink), '###LABEL###': 'Production Overview' } )) ClickPathEntries.reverse() CSSClasses = '' FinalHTML = HtmlParser.substituteSubpartArray( FinalHTML, { '###CLICKPATH_ENTRY###': ''.join(ClickPathEntries), } ) return FinalHTML