VirtualBox

Ignore:
Timestamp:
May 28, 2016 8:36:17 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
107559
Message:

Quick 'inbox' implementation by extending the current test case failure listing with a filter on whether a reason has been assigned or not. Renamed it 'Sheriff', short for 'Testing Sheriff'.

Location:
trunk/src/VBox/ValidationKit/testmanager/webui
Files:
3 edited

Legend:

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

    r61250 r61267  
    919919
    920920
    921     def _actionGenericFormPost(self, sMode, fnLogicAction, oDataType, oFormType, sRedirectTo, fStrict=True):
     921    def _actionGenericFormPost(self, sMode, fnLogicAction, oDataType, oFormType, sRedirectTo, fStrict = True):
    922922        """
    923923        Generic POST request handling from a WuiFormContentBase child.
     
    989989        return self._actionGenericFormPost(WuiFormContentBase.ksMode_Add, oLogic.addEntry, oDataType, oFormType,
    990990                                           '?' + webutils.encodeUrlParams({self.ksParamAction: sRedirAction}), fStrict=fStrict)
     991
    991992    def _actionGenericFormEditPost(self, oDataType, oLogicType, oFormType, sRedirAction, fStrict = True):
    992993        """
  • trunk/src/VBox/ValidationKit/testmanager/webui/wuimain.py

    r61250 r61267  
    154154    ksParamGroupMemberId        = 'GroupMemberId'
    155155    ## Optional parameter for indicating whether to restrict the listing to failures only.
    156     ksParamOnlyFailures         = 'OnlyFailures'
     156    ksParamOnlyFailures         = 'OnlyFailures';
     157    ## The sheriff parameter for getting failures needing a reason or two assigned to them.
     158    ksParamOnlyNeedingReason    = 'OnlyNeedingReason';
    157159    ## Result listing sorting.
    158160    ksParamTestResultsSortBy    = 'enmSortBy'
     
    271273
    272274        # Shorthand to keep within margins.
    273         sActUrlBase = self._sActionUrlBase;
    274         sOFail = '&%s' % webutils.encodeUrlParams({self.ksParamOnlyFailures: True});
     275        sActUrlBase   = self._sActionUrlBase;
     276        sOnlyFailures = '&%s%s' % ( webutils.encodeUrlParams({self.ksParamOnlyFailures: True}), sExtraTimeNav, );
     277        sSheriff      = '&%s%s' % ( webutils.encodeUrlParams({self.ksParamOnlyNeedingReason: True}), sExtraTimeNav, );
    275278
    276279        self._aaoMenus = \
    277280        [
    278281            [
    279                 'Inbox',            sActUrlBase + 'TODO', ## @todo list of failures that needs categorizing.
    280                 []
     282                'Sheriff',     sActUrlBase + self.ksActionResultsUnGrouped + sSheriff,
     283                [
     284                    [ 'Ungrouped results',           sActUrlBase + self.ksActionResultsUnGrouped           + sSheriff ],
     285                    [ 'Grouped by Scheduling Group', sActUrlBase + self.ksActionResultsGroupedBySchedGroup + sSheriff ],
     286                    [ 'Grouped by Test Group',       sActUrlBase + self.ksActionResultsGroupedByTestGroup  + sSheriff ],
     287                    [ 'Grouped by TestBox',          sActUrlBase + self.ksActionResultsGroupedByTestBox    + sSheriff ],
     288                    [ 'Grouped by Test Case',        sActUrlBase + self.ksActionResultsGroupedByTestCase   + sSheriff ],
     289                    [ 'Grouped by Revision',         sActUrlBase + self.ksActionResultsGroupedByBuildRev   + sSheriff ],
     290                ]
    281291            ],
    282292            [
     
    300310            ],
    301311            [
    302                 'Test Failures',     sActUrlBase + self.ksActionResultsUnGrouped + sOFail + sExtraTimeNav,
     312                'Test Failures',     sActUrlBase + self.ksActionResultsUnGrouped + sOnlyFailures,
    303313                [
    304                     [ 'Ungrouped results',           sActUrlBase + self.ksActionResultsUnGrouped          +sOFail+sExtraTimeNav],
    305                     [ 'Grouped by Scheduling Group', sActUrlBase + self.ksActionResultsGroupedBySchedGroup+sOFail+sExtraTimeNav],
    306                     [ 'Grouped by Test Group',       sActUrlBase + self.ksActionResultsGroupedByTestGroup +sOFail+sExtraTimeNav],
    307                     [ 'Grouped by TestBox',          sActUrlBase + self.ksActionResultsGroupedByTestBox   +sOFail+sExtraTimeNav],
    308                     [ 'Grouped by Test Case',        sActUrlBase + self.ksActionResultsGroupedByTestCase  +sOFail+sExtraTimeNav],
    309                     [ 'Grouped by Revision',         sActUrlBase + self.ksActionResultsGroupedByBuildRev  +sOFail+sExtraTimeNav],
     314                    [ 'Ungrouped results',           sActUrlBase + self.ksActionResultsUnGrouped           + sOnlyFailures ],
     315                    [ 'Grouped by Scheduling Group', sActUrlBase + self.ksActionResultsGroupedBySchedGroup + sOnlyFailures ],
     316                    [ 'Grouped by Test Group',       sActUrlBase + self.ksActionResultsGroupedByTestGroup  + sOnlyFailures ],
     317                    [ 'Grouped by TestBox',          sActUrlBase + self.ksActionResultsGroupedByTestBox    + sOnlyFailures ],
     318                    [ 'Grouped by Test Case',        sActUrlBase + self.ksActionResultsGroupedByTestCase   + sOnlyFailures ],
     319                    [ 'Grouped by Revision',         sActUrlBase + self.ksActionResultsGroupedByBuildRev   + sOnlyFailures ],
    310320                ]
    311321            ],
     
    326336    def _isMenuMatch(self, sMenuUrl, sActionParam):
    327337        if super(WuiMain, self)._isMenuMatch(sMenuUrl, sActionParam):
     338            fOnlyNeedingReason = self.getBoolParam(self.ksParamOnlyNeedingReason, fDefault = False);
     339            if fOnlyNeedingReason:
     340                return (sMenuUrl.find(self.ksParamOnlyNeedingReason) > 0);
    328341            fOnlyFailures = self.getBoolParam(self.ksParamOnlyFailures, fDefault = False);
    329             return (sMenuUrl.find(self.ksParamOnlyFailures) > 0) == fOnlyFailures;
     342            return (sMenuUrl.find(self.ksParamOnlyFailures) > 0) == fOnlyFailures \
     343                and sMenuUrl.find(self.ksParamOnlyNeedingReason) < 0;
    330344        return False;
    331345
     
    705719        oListContentType is a child of WuiListContentBase.
    706720        """
    707         cItemsPerPage     = self.getIntParam(self.ksParamItemsPerPage,  iMin =  2, iMax =   9999, iDefault = 128);
    708         iPage             = self.getIntParam(self.ksParamPageNo,        iMin =  0, iMax = 999999, iDefault = 0);
    709         tsEffective       = self.getEffectiveDateParam();
    710         iGroupMemberId    = self.getIntParam(self.ksParamGroupMemberId, iMin = -1, iMax = 999999, iDefault = -1);
    711         fOnlyFailures     = self.getBoolParam(self.ksParamOnlyFailures, fDefault = False);
    712         enmResultSortBy   = self.getStringParam(self.ksParamTestResultsSortBy,
    713                                                 asValidValues = TestResultLogic.kasResultsSortBy,
    714                                                 sDefault = TestResultLogic.ksResultsSortByRunningAndStart);
     721        cItemsPerPage       = self.getIntParam(self.ksParamItemsPerPage,  iMin =  2, iMax =   9999, iDefault = 128);
     722        iPage               = self.getIntParam(self.ksParamPageNo,        iMin =  0, iMax = 999999, iDefault = 0);
     723        tsEffective         = self.getEffectiveDateParam();
     724        iGroupMemberId      = self.getIntParam(self.ksParamGroupMemberId, iMin = -1, iMax = 999999, iDefault = -1);
     725        fOnlyFailures       = self.getBoolParam(self.ksParamOnlyFailures, fDefault = False);
     726        fOnlyNeedingReason  = self.getBoolParam(self.ksParamOnlyNeedingReason, fDefault = False);
     727        enmResultSortBy     = self.getStringParam(self.ksParamTestResultsSortBy,
     728                                                  asValidValues = TestResultLogic.kasResultsSortBy,
     729                                                  sDefault = TestResultLogic.ksResultsSortByRunningAndStart);
    715730
    716731        # Get testing results period and validate it
    717         asValidValues     = [x for (x, _, _) in self.kaoResultPeriods]
    718         sCurPeriod        = self.getStringParam(self.ksParamEffectivePeriod, asValidValues = asValidValues,
    719                                                 sDefault = self.ksResultPeriodDefault)
     732        asValidValues       = [x for (x, _, _) in self.kaoResultPeriods]
     733        sCurPeriod          = self.getStringParam(self.ksParamEffectivePeriod, asValidValues = asValidValues,
     734                                                  sDefault = self.ksResultPeriodDefault)
    720735        assert sCurPeriod != ''; # Impossible!
    721736
     
    790805                                                    enmResultsGroupingType = enmResultsGroupingType,
    791806                                                    iResultsGroupingValue = idMember,
    792                                                     fOnlyFailures = fOnlyFailures);
     807                                                    fOnlyFailures = fOnlyFailures,
     808                                                    fOnlyNeedingReason = fOnlyNeedingReason);
    793809            if cEntries == 0: # Do not display empty groups
    794810                continue
     
    800816                                                            enmResultsGroupingType = enmResultsGroupingType,
    801817                                                            iResultsGroupingValue = idMember,
    802                                                             fOnlyFailures = fOnlyFailures);
     818                                                            fOnlyFailures = fOnlyFailures,
     819                                                            fOnlyNeedingReason = fOnlyNeedingReason);
    803820            cEntriesMax = max(cEntriesMax, cEntries)
    804821
  • trunk/src/VBox/ValidationKit/testmanager/webui/wuitestresult.py

    r61263 r61267  
    394394                oForm.addTextHidden(TestResultFailureData.ksParam_uidAuthor, oData.uidAuthor);
    395395                oForm.addSubmit('Change Reason');
    396 
    397396            else:
    398397                oForm.addComboBox(TestResultFailureData.ksParam_idFailureReason, -1, 'Reason', aoFailureReasons,
     
    808807        # Reason:
    809808        oReason = None;
     809        #assert (oEntry.oFailureReason is None) == (oEntry.tsFailureReasonAssigned is None);
    810810        if oEntry.oFailureReason is not None:
    811811            sReasonTitle  = 'Reason:  \t%s\n' % ( oEntry.oFailureReason.sShort, );
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