VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurecategory.py@ 98103

Last change on this file since 98103 was 98103, checked in by vboxsync, 2 years ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.6 KB
Line 
1# -*- coding: utf-8 -*-
2# $Id: wuiadminfailurecategory.py 98103 2023-01-17 14:15:46Z vboxsync $
3
4"""
5Test Manager WUI - Failure Categories Web content generator.
6"""
7
8__copyright__ = \
9"""
10Copyright (C) 2012-2023 Oracle and/or its affiliates.
11
12This file is part of VirtualBox base platform packages, as
13available from https://www.virtualbox.org.
14
15This program is free software; you can redistribute it and/or
16modify it under the terms of the GNU General Public License
17as published by the Free Software Foundation, in version 3 of the
18License.
19
20This program is distributed in the hope that it will be useful, but
21WITHOUT ANY WARRANTY; without even the implied warranty of
22MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23General Public License for more details.
24
25You should have received a copy of the GNU General Public License
26along with this program; if not, see <https://www.gnu.org/licenses>.
27
28The contents of this file may alternatively be used under the terms
29of the Common Development and Distribution License Version 1.0
30(CDDL), a copy of it is provided in the "COPYING.CDDL" file included
31in the VirtualBox distribution, in which case the provisions of the
32CDDL are applicable instead of those of the GPL.
33
34You may elect to license modified versions of this file under the
35terms and conditions of either the GPL or the CDDL or both.
36
37SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
38"""
39__version__ = "$Revision: 98103 $"
40
41
42# Validation Kit imports.
43from testmanager.webui.wuicontentbase import WuiFormContentBase, WuiContentBase, WuiListContentBase, WuiTmLink;
44from testmanager.webui.wuiadminfailurereason import WuiAdminFailureReasonList;
45from testmanager.core.failurecategory import FailureCategoryData;
46from testmanager.core.failurereason import FailureReasonLogic;
47
48
49class WuiFailureReasonCategoryLink(WuiTmLink):
50 """ Link to a failure category. """
51 def __init__(self, idFailureCategory, sName = WuiContentBase.ksShortDetailsLink, sTitle = None, fBracketed = None):
52 if fBracketed is None:
53 fBracketed = len(sName) > 2;
54 from testmanager.webui.wuiadmin import WuiAdmin;
55 WuiTmLink.__init__(self, sName = sName,
56 sUrlBase = WuiAdmin.ksScriptName,
57 dParams = { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryDetails,
58 FailureCategoryData.ksParam_idFailureCategory: idFailureCategory, },
59 fBracketed = fBracketed,
60 sTitle = sTitle);
61 self.idFailureCategory = idFailureCategory;
62
63
64
65class WuiFailureCategory(WuiFormContentBase):
66 """
67 WUI Failure Category HTML content generator.
68 """
69
70 def __init__(self, oData, sMode, oDisp):
71 """
72 Prepare & initialize parent
73 """
74
75 sTitle = 'Failure Category';
76 if sMode == WuiFormContentBase.ksMode_Add:
77 sTitle = 'Add ' + sTitle;
78 elif sMode == WuiFormContentBase.ksMode_Edit:
79 sTitle = 'Edit ' + sTitle;
80 else:
81 assert sMode == WuiFormContentBase.ksMode_Show;
82
83 WuiFormContentBase.__init__(self, oData, sMode, 'FailureCategory', oDisp, sTitle);
84
85 def _populateForm(self, oForm, oData):
86 """
87 Construct an HTML form
88 """
89
90 oForm.addIntRO (FailureCategoryData.ksParam_idFailureCategory, oData.idFailureCategory, 'Failure Category ID')
91 oForm.addTimestampRO(FailureCategoryData.ksParam_tsEffective, oData.tsEffective, 'Last changed')
92 oForm.addTimestampRO(FailureCategoryData.ksParam_tsExpire, oData.tsExpire, 'Expires (excl)')
93 oForm.addIntRO (FailureCategoryData.ksParam_uidAuthor, oData.uidAuthor, 'Changed by UID')
94 oForm.addText (FailureCategoryData.ksParam_sShort, oData.sShort, 'Short Description')
95 oForm.addText (FailureCategoryData.ksParam_sFull, oData.sFull, 'Full Description')
96
97 oForm.addSubmit()
98
99 return True;
100
101 def _generatePostFormContent(self, oData):
102 """
103 Adds a table with the category members below the form.
104 """
105 if oData.idFailureCategory is not None and oData.idFailureCategory >= 0:
106 oLogic = FailureReasonLogic(self._oDisp.getDb());
107 tsNow = self._oDisp.getNow();
108 cMax = 4096;
109 aoEntries = oLogic.fetchForListingInCategory(0, cMax, tsNow, oData.idFailureCategory)
110 if aoEntries:
111 oList = WuiAdminFailureReasonList(aoEntries, 0, cMax, tsNow, fnDPrint = None, oDisp = self._oDisp);
112 return [ [ 'Members', oList.show(fShowNavigation = False)[1]], ];
113 return [];
114
115
116
117class WuiFailureCategoryList(WuiListContentBase):
118 """
119 WUI Admin Failure Category Content Generator.
120 """
121
122 def __init__(self, aoEntries, iPage, cItemsPerPage, tsEffective, fnDPrint, oDisp, aiSelectedSortColumns = None):
123 WuiListContentBase.__init__(self, aoEntries, iPage, cItemsPerPage, tsEffective,
124 sTitle = 'Failure Categories', sId = 'failureCategories',
125 fnDPrint = fnDPrint, oDisp = oDisp, aiSelectedSortColumns = aiSelectedSortColumns);
126
127 self._asColumnHeaders = ['ID', 'Short Description', 'Full Description', 'Actions' ]
128 self._asColumnAttribs = ['align="right"', 'align="center"', 'align="center"', 'align="center"']
129
130 def _formatListEntry(self, iEntry):
131 from testmanager.webui.wuiadmin import WuiAdmin
132 oEntry = self._aoEntries[iEntry]
133
134 aoActions = [
135 WuiTmLink('Details', WuiAdmin.ksScriptName,
136 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryDetails,
137 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory }),
138 ];
139 if self._oDisp is None or not self._oDisp.isReadOnlyUser():
140 aoActions += [
141 WuiTmLink('Modify', WuiAdmin.ksScriptName,
142 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryEdit,
143 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory }),
144 WuiTmLink('Remove', WuiAdmin.ksScriptName,
145 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureCategoryDoRemove,
146 FailureCategoryData.ksParam_idFailureCategory: oEntry.idFailureCategory },
147 sConfirm = 'Do you really want to remove failure cateogry #%d?' % (oEntry.idFailureCategory,)),
148 ]
149
150 return [ oEntry.idFailureCategory,
151 oEntry.sShort,
152 oEntry.sFull,
153 aoActions,
154 ];
155
Note: See TracBrowser for help on using the repository browser.

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