VirtualBox

Ignore:
Timestamp:
Jul 6, 2015 12:32:55 AM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
101459
Message:

testmanager: Test result sorting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/testmanager/webui/wuimain.py

    r56806 r56809  
    142142    ## @}
    143143
     144    ## @name Test result listing parameters.
     145    ## @{
     146    ## If this param is specified, then show only results for this member when results grouped by some parameter.
     147    ksParamGroupMemberId        = 'GroupMemberId'
     148    ## Optional parameter for indicating whether to restrict the listing to failures only.
     149    ksParamOnlyFailures         = 'OnlyFailures'
     150    ## Result listing sorting.
     151    ksParamTestResultsSortBy    = 'enmSortBy'
     152    ## @}
     153
    144154    ## Effective time period. one of the first column values in kaoResultPeriods.
    145155    ksParamEffectivePeriod      = 'sEffectivePeriod'
    146 
    147     ## If this param is specified, then show only results for this member when results grouped by some parameter.
    148     ksParamGroupMemberId        = 'GroupMemberId'
    149 
    150     ## Optional parameter for indicating whether to restrict the listing to failures only.
    151     ksParamOnlyFailures         = 'OnlyFailures'
    152156
    153157    ## Test result period values.
     
    296300    #
    297301
     302    def _generateSortBySelector(self, dParams, sPreamble, sPostamble):
     303        """
     304        Generate HTML code for the sort by selector.
     305        """
     306        if self.ksParamTestResultsSortBy in dParams:
     307            enmResultSortBy = dParams[self.ksParamTestResultsSortBy];
     308            del dParams[self.ksParamTestResultsSortBy];
     309        else:
     310            enmResultSortBy = TestResultLogic.ksResultsSortByRunningAndStart;
     311
     312        sHtmlSortBy  = '<form name="TimeForm" method="GET"> Sort by\n';
     313        sHtmlSortBy += sPreamble;
     314        sHtmlSortBy += '\n  <select name="%s" onchange="window.location=' % (self.ksParamTestResultsSortBy,);
     315        sHtmlSortBy += '\'?%s&%s=\' + ' % (webutils.encodeUrlParams(dParams), self.ksParamTestResultsSortBy)
     316        sHtmlSortBy += 'this.options[this.selectedIndex].value;" title="Sorting by">\n'
     317
     318        fSelected = False;
     319        for enmCode, sTitle in TestResultLogic.kaasResultsSortByTitles:
     320            if enmCode == enmResultSortBy:
     321                fSelected = True;
     322            sHtmlSortBy += '    <option value="%s"%s>%s</option>\n' \
     323                         % (enmCode, ' selected="selected"' if enmCode == enmResultSortBy else '', sTitle,);
     324        assert fSelected;
     325        sHtmlSortBy += '  </select>\n';
     326        sHtmlSortBy += sPostamble;
     327        sHtmlSortBy += '\n</form>\n'
     328        return sHtmlSortBy;
     329
    298330    def _generateStatusSelector(self, dParams, fOnlyFailures):
    299331        """
     
    318350        if WuiDispatcherBase.ksParamPageNo in dParams:
    319351            del dParams[WuiDispatcherBase.ksParamPageNo]
    320 
    321352
    322353        sHtmlTimeSelector  = '<form name="TimeForm" method="GET">\n'
     
    546577        # Generate the elements.
    547578        sHtmlStatusSelector = self._generateStatusSelector(self.getParameters(), fOnlyFailures);
     579        sHtmlSortBySelector = self._generateSortBySelector(self.getParameters(), '', sHtmlStatusSelector);
    548580        sHtmlPeriodSelector = self._generateResultPeriodSelector(self.getParameters(), sCurPeriod)
    549581        sHtmlTimeWalker     = self._generateTimeWalker(self.getParameters(), tsEffective, sCurPeriod);
     
    564596                '</tr>\n' \
    565597                '<tr>\n' \
    566                 ' <td width=30%>' + sHtmlStatusSelector + '</td>\n' \
     598                ' <td width=30%>' + sHtmlSortBySelector + '</td>\n' \
    567599                ' <td width=40% align=center>\n' + sHtmlPager + '</td>\n' \
    568600                ' <td width=30% align=right>\n' + sHtmlItemsPerPageSelector + '</td>\n'\
     
    638670        oListContentType is a child of WuiListContentBase.
    639671        """
    640         cItemsPerPage     = self.getIntParam(self.ksParamItemsPerPage,  iMin =  2, iMax =   9999, iDefault = 128)
    641         iPage             = self.getIntParam(self.ksParamPageNo,        iMin =  0, iMax = 999999, iDefault = 0)
    642         tsEffective       = self.getEffectiveDateParam()
    643         iGroupMemberId    = self.getIntParam(self.ksParamGroupMemberId, iMin = -1, iMax = 999999, iDefault = -1)
     672        cItemsPerPage     = self.getIntParam(self.ksParamItemsPerPage,  iMin =  2, iMax =   9999, iDefault = 128);
     673        iPage             = self.getIntParam(self.ksParamPageNo,        iMin =  0, iMax = 999999, iDefault = 0);
     674        tsEffective       = self.getEffectiveDateParam();
     675        iGroupMemberId    = self.getIntParam(self.ksParamGroupMemberId, iMin = -1, iMax = 999999, iDefault = -1);
    644676        fOnlyFailures     = self.getBoolParam(self.ksParamOnlyFailures, fDefault = False);
     677        enmResultSortBy   = self.getStringParam(self.ksParamTestResultsSortBy,
     678                                                asValidValues = TestResultLogic.kasResultsSortBy,
     679                                                sDefault = TestResultLogic.ksResultsSortByRunningAndStart);
    645680
    646681        # Get testing results period and validate it
    647         asValidValues = [x for (x, _, _) in self.kaoResultPeriods]
     682        asValidValues     = [x for (x, _, _) in self.kaoResultPeriods]
    648683        sCurPeriod        = self.getStringParam(self.ksParamEffectivePeriod, asValidValues = asValidValues,
    649684                                                sDefault = self.ksResultPeriodDefault)
     
    727762                                                            tsNow = tsEffective,
    728763                                                            sInterval = sCurPeriod,
     764                                                            enmResultSortBy = enmResultSortBy,
    729765                                                            enmResultsGroupingType = enmResultsGroupingType,
    730766                                                            iResultsGroupingValue = idMember,
    731                                                             fOnlyFailures = fOnlyFailures)
    732 
     767                                                            fOnlyFailures = fOnlyFailures);
    733768            cEntriesMax = max(cEntriesMax, cEntries)
    734769
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette