VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/testmanager/webui/wuiadminfailurereason.py@ 61220

最後變更 在這個檔案從61220是 61220,由 vboxsync 提交於 9 年 前

testmanager: failiure reason fixes, some exception throwing cleanups, delinting with pylint 1.5.5.

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 6.0 KB
 
1# -*- coding: utf-8 -*-
2# $Id: wuiadminfailurereason.py 61220 2016-05-27 01:16:02Z vboxsync $
3
4"""
5Test Manager WUI - Failure Reasons Web content generator.
6"""
7
8__copyright__ = \
9"""
10Copyright (C) 2012-2015 Oracle Corporation
11
12This file is part of VirtualBox Open Source Edition (OSE), as
13available from http://www.alldomusa.eu.org. This file is free software;
14you can redistribute it and/or modify it under the terms of the GNU
15General Public License (GPL) as published by the Free Software
16Foundation, in version 2 as it comes in the "COPYING" file of the
17VirtualBox OSE distribution. VirtualBox OSE is distributed in the
18hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
19
20The contents of this file may alternatively be used under the terms
21of the Common Development and Distribution License Version 1.0
22(CDDL) only, as it comes in the "COPYING.CDDL" file of the
23VirtualBox OSE distribution, in which case the provisions of the
24CDDL are applicable instead of those of the GPL.
25
26You may elect to license modified versions of this file under the
27terms and conditions of either the GPL or the CDDL or both.
28"""
29__version__ = "$Revision: 61220 $"
30
31
32# Validation Kit imports.
33from testmanager.webui.wuibase import WuiException
34from testmanager.webui.wuicontentbase import WuiFormContentBase, WuiListContentBase, WuiTmLink
35from testmanager.core.failurereason import FailureReasonData
36from testmanager.core.failurecategory import FailureCategoryLogic
37from testmanager.core.db import TMDatabaseConnection
38
39
40class WuiAdminFailureReason(WuiFormContentBase):
41 """
42 WUI Failure Reason HTML content generator.
43 """
44
45 def __init__(self, oFailureReasonData, sMode, oDisp):
46 """
47 Prepare & initialize parent
48 """
49
50 sTitle = 'Failure Reason';
51 if sMode == WuiFormContentBase.ksMode_Add:
52 sTitle = 'Add' + sTitle;
53 elif sMode == WuiFormContentBase.ksMode_Edit:
54 sTitle = 'Edit' + sTitle;
55 else:
56 assert sMode == WuiFormContentBase.ksMode_Show;
57
58 WuiFormContentBase.__init__(self, oFailureReasonData, sMode, 'FailureReason', oDisp, sTitle);
59
60 def _populateForm(self, oForm, oData):
61 """
62 Construct an HTML form
63 """
64
65 aoFailureCategories = FailureCategoryLogic(TMDatabaseConnection()).getFailureCategoriesForCombo()
66 if len(aoFailureCategories) == 0:
67 from testmanager.webui.wuiadmin import WuiAdmin
68 sExceptionMsg = 'Please <a href="%s?%s=%s">add</a> Failure Category first.' % \
69 (WuiAdmin.ksScriptName, WuiAdmin.ksParamAction, WuiAdmin.ksActionFailureCategoryAdd)
70
71 raise WuiException(sExceptionMsg)
72
73 oForm.addIntRO (FailureReasonData.ksParam_idFailureReason, oData.idFailureReason, 'Failure Reason ID')
74 oForm.addTimestampRO (FailureReasonData.ksParam_tsEffective, oData.tsEffective, 'Last changed')
75 oForm.addTimestampRO (FailureReasonData.ksParam_tsExpire, oData.tsExpire, 'Expires (excl)')
76 oForm.addIntRO (FailureReasonData.ksParam_uidAuthor, oData.uidAuthor, 'Changed by UID')
77
78 oForm.addComboBox (FailureReasonData.ksParam_idFailureCategory, oData.idFailureCategory, 'Failure Category',
79 aoFailureCategories)
80
81 oForm.addText (FailureReasonData.ksParam_sShort, oData.sShort, 'Short Description')
82 oForm.addText (FailureReasonData.ksParam_sFull, oData.sFull, 'Full Description')
83 oForm.addInt (FailureReasonData.ksParam_iTicket, oData.iTicket, 'Ticket Number')
84 oForm.addMultilineText(FailureReasonData.ksParam_asUrls, oData.asUrls, 'Other URLs to reports '
85 'or discussions of the '
86 'observed symptoms')
87 oForm.addSubmit()
88
89 return True
90
91
92class WuiAdminFailureReasonList(WuiListContentBase):
93 """
94 WUI Admin Failure Reasons Content Generator.
95 """
96
97 def __init__(self, aoEntries, iPage, cItemsPerPage, tsEffective, fnDPrint, oDisp):
98 WuiListContentBase.__init__(self, aoEntries, iPage, cItemsPerPage, tsEffective,
99 sTitle = 'Failure Reasons', sId = 'failureReasons',
100 fnDPrint = fnDPrint, oDisp = oDisp);
101
102 self._asColumnHeaders = ['ID', 'Category', 'Short Description',
103 'Full Description', 'Ticket', 'External References', 'Actions' ]
104
105 self._asColumnAttribs = ['align="right"', 'align="center"', 'align="center"',
106 'align="center"',' align="center"', 'align="center"', 'align="center"']
107
108 def _formatListEntry(self, iEntry):
109 from testmanager.webui.wuiadmin import WuiAdmin
110 oEntry = self._aoEntries[iEntry]
111
112 return [ oEntry.idFailureReason,
113 oEntry.idFailureCategory,
114 oEntry.sShort,
115 oEntry.sFull,
116 oEntry.iTicket,
117 oEntry.asUrls,
118 [ WuiTmLink('Details', WuiAdmin.ksScriptName,
119 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonDetails,
120 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason } ),
121 WuiTmLink('Modify', WuiAdmin.ksScriptName,
122 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonEdit,
123 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason } ),
124 WuiTmLink('Remove', WuiAdmin.ksScriptName,
125 { WuiAdmin.ksParamAction: WuiAdmin.ksActionFailureReasonDoRemove,
126 FailureReasonData.ksParam_idFailureReason: oEntry.idFailureReason },
127 sConfirm = 'Are you sure you want to remove failure reason #%d?' % (oEntry.idFailureReason,)),
128 ] ]
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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