Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
     )
Пример #5
0
 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)
Пример #6
0
    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
Пример #7
0
    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