VirtualBox

Ignore:
Timestamp:
Jan 31, 2020 11:13:38 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
135938
Message:

TestManager: Added revision range filtering.

File:
1 edited

Legend:

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

    r82638 r82939  
    932932        sHtml += u' <dl>\n';
    933933        for oCrit in oFilter.aCriteria:
    934             if oCrit.aoPossible:
     934            if oCrit.aoPossible or oCrit.sType == oCrit.ksType_Ranges:
    935935                if   (    oCrit.oSub is None \
    936936                      and (   oCrit.sState == oCrit.ksState_Selected \
    937                            or len(oCrit.aoPossible) <= 2)) \
     937                           or (len(oCrit.aoPossible) <= 2 and oCrit.sType != oCrit.ksType_Ranges))) \
    938938                  or (    oCrit.oSub is not None \
    939939                      and (   oCrit.sState == oCrit.ksState_Selected \
     
    962962                         % (sClass);
    963963
    964                 for oDesc in oCrit.aoPossible:
    965                     fChecked = oDesc.oValue in oCrit.aoSelected;
    966                     sHtml += u'    <li%s%s><label><input type="checkbox" name="%s" value="%s"%s%s/>%s%s</label>\n' \
    967                            % ( ' class="side-filter-irrelevant"' if oDesc.fIrrelevant else '',
    968                                (' title="%s"' % (webutils.escapeAttr(oDesc.sHover,)) if oDesc.sHover is not None else ''),
    969                                oCrit.sVarNm,
    970                                oDesc.oValue,
    971                                ' checked' if fChecked else '',
    972                                ' onclick="toggleCollapsibleCheckbox(this);"' if oDesc.aoSubs is not None else '',
    973                                webutils.escapeElem(oDesc.sDesc),
    974                                '<span class="side-filter-count"> [%u]</span>' % (oDesc.cTimes) if oDesc.cTimes is not None
    975                                else '', );
    976                     if oDesc.aoSubs is not None:
    977                         sHtml += u'     <ul class="sf-checkbox-%s">\n' % ('collapsible' if fChecked else 'expandable', );
    978                         for oSubDesc in oDesc.aoSubs:
    979                             fSubChecked = oSubDesc.oValue in oCrit.oSub.aoSelected;
    980                             sHtml += u'     <li%s%s><label><input type="checkbox" name="%s" value="%s"%s/>%s%s</label>\n' \
    981                                    % ( ' class="side-filter-irrelevant"' if oSubDesc.fIrrelevant else '',
    982                                        ' title="%s"' % ( webutils.escapeAttr(oSubDesc.sHover,) if oSubDesc.sHover is not None
    983                                                          else ''),
    984                                        oCrit.oSub.sVarNm, oSubDesc.oValue, ' checked' if fSubChecked else '',
    985                                        webutils.escapeElem(oSubDesc.sDesc),
    986                                        '<span class="side-filter-count"> [%u]</span>' % (oSubDesc.cTimes)
    987                                        if oSubDesc.cTimes is not None else '', );
    988 
    989                         sHtml += u'     </ul>\n';
    990                     sHtml += u'    </li>';
     964                if oCrit.sType == oCrit.ksType_Ranges:
     965                    assert not oCrit.oSub;
     966                    assert not oCrit.aoPossible;
     967                    asValues = [];
     968                    for tRange in oCrit.aoSelected:
     969                        if tRange[0] == tRange[1]:
     970                            asValues.append('%s' % (tRange[0],));
     971                        else:
     972                            asValues.append('%s-%s' % (tRange[0] if tRange[0] is not None else 'inf',
     973                                                       tRange[1] if tRange[1] is not None else 'inf'));
     974                    sHtml += u'    <li title="%s"><input type="text" name="%s" value="%s"/></li>\n' \
     975                           % ( webutils.escapeAttr('comma separate list of numerical ranges'), oCrit.sVarNm,
     976                               ', '.join(asValues), );
     977                else:
     978                    for oDesc in oCrit.aoPossible:
     979                        fChecked = oDesc.oValue in oCrit.aoSelected;
     980                        sHtml += u'    <li%s%s><label><input type="checkbox" name="%s" value="%s"%s%s/>%s%s</label>\n' \
     981                               % ( ' class="side-filter-irrelevant"' if oDesc.fIrrelevant else '',
     982                                   (' title="%s"' % (webutils.escapeAttr(oDesc.sHover,)) if oDesc.sHover is not None else ''),
     983                                   oCrit.sVarNm,
     984                                   oDesc.oValue,
     985                                   ' checked' if fChecked else '',
     986                                   ' onclick="toggleCollapsibleCheckbox(this);"' if oDesc.aoSubs is not None else '',
     987                                   webutils.escapeElem(oDesc.sDesc),
     988                                   '<span class="side-filter-count"> [%u]</span>' % (oDesc.cTimes) if oDesc.cTimes is not None
     989                                   else '', );
     990                        if oDesc.aoSubs is not None:
     991                            sHtml += u'     <ul class="sf-checkbox-%s">\n' % ('collapsible' if fChecked else 'expandable', );
     992                            for oSubDesc in oDesc.aoSubs:
     993                                fSubChecked = oSubDesc.oValue in oCrit.oSub.aoSelected;
     994                                sHtml += u'     <li%s%s><label><input type="checkbox" name="%s" value="%s"%s/>%s%s</label>\n' \
     995                                       % ( ' class="side-filter-irrelevant"' if oSubDesc.fIrrelevant else '',
     996                                           ' title="%s"' % ( webutils.escapeAttr(oSubDesc.sHover,) if oSubDesc.sHover is not None
     997                                                             else ''),
     998                                           oCrit.oSub.sVarNm, oSubDesc.oValue, ' checked' if fSubChecked else '',
     999                                           webutils.escapeElem(oSubDesc.sDesc),
     1000                                           '<span class="side-filter-count"> [%u]</span>' % (oSubDesc.cTimes)
     1001                                           if oSubDesc.cTimes is not None else '', );
     1002
     1003                            sHtml += u'     </ul>\n';
     1004                        sHtml += u'    </li>';
     1005
    9911006                sHtml += u'   </ul>\n' \
    9921007                         u'  </dd>\n';
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