Revision 459574b9
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
SL/Controller/RequirementSpecComplexity.pm | ||
---|---|---|
1 |
package SL::Controller::RequirementSpecComplexity; |
|
2 |
|
|
3 |
use strict; |
|
4 |
|
|
5 |
use parent qw(SL::Controller::Base); |
|
6 |
|
|
7 |
use SL::DB::RequirementSpecComplexity; |
|
8 |
use SL::Helper::Flash; |
|
9 |
use SL::Locale::String; |
|
10 |
|
|
11 |
use Rose::Object::MakeMethods::Generic |
|
12 |
( |
|
13 |
scalar => [ qw(requirement_spec_complexity) ], |
|
14 |
); |
|
15 |
|
|
16 |
__PACKAGE__->run_before('check_auth'); |
|
17 |
__PACKAGE__->run_before('load_requirement_spec_complexity', only => [ qw(edit update destroy) ]); |
|
18 |
|
|
19 |
# |
|
20 |
# actions |
|
21 |
# |
|
22 |
|
|
23 |
sub action_list { |
|
24 |
my ($self) = @_; |
|
25 |
|
|
26 |
$self->render('requirement_spec_complexity/list', |
|
27 |
title => t8('Complexities'), |
|
28 |
REQUIREMENT_SPEC_COMPLEXITIES => SL::DB::Manager::RequirementSpecComplexity->get_all_sorted); |
|
29 |
} |
|
30 |
|
|
31 |
sub action_new { |
|
32 |
my ($self) = @_; |
|
33 |
|
|
34 |
$self->{requirement_spec_complexity} = SL::DB::RequirementSpecComplexity->new; |
|
35 |
$self->render('requirement_spec_complexity/form', title => t8('Create a new complexity')); |
|
36 |
} |
|
37 |
|
|
38 |
sub action_edit { |
|
39 |
my ($self) = @_; |
|
40 |
$self->render('requirement_spec_complexity/form', title => t8('Edit complexity')); |
|
41 |
} |
|
42 |
|
|
43 |
sub action_create { |
|
44 |
my ($self) = @_; |
|
45 |
|
|
46 |
$self->{requirement_spec_complexity} = SL::DB::RequirementSpecComplexity->new; |
|
47 |
$self->create_or_update; |
|
48 |
} |
|
49 |
|
|
50 |
sub action_update { |
|
51 |
my ($self) = @_; |
|
52 |
$self->create_or_update; |
|
53 |
} |
|
54 |
|
|
55 |
sub action_destroy { |
|
56 |
my ($self) = @_; |
|
57 |
|
|
58 |
if (eval { $self->{requirement_spec_complexity}->delete; 1; }) { |
|
59 |
flash_later('info', t8('The complexity has been deleted.')); |
|
60 |
} else { |
|
61 |
flash_later('error', t8('The complexity is in use and cannot be deleted.')); |
|
62 |
} |
|
63 |
|
|
64 |
$self->redirect_to(action => 'list'); |
|
65 |
} |
|
66 |
|
|
67 |
sub action_reorder { |
|
68 |
my ($self) = @_; |
|
69 |
|
|
70 |
SL::DB::RequirementSpecComplexity->reorder_list(@{ $::form->{requirement_spec_complexity_id} || [] }); |
|
71 |
|
|
72 |
$self->render(\'', { type => 'json' }); |
|
73 |
} |
|
74 |
|
|
75 |
# |
|
76 |
# filters |
|
77 |
# |
|
78 |
|
|
79 |
sub check_auth { |
|
80 |
$::auth->assert('config'); |
|
81 |
} |
|
82 |
|
|
83 |
# |
|
84 |
# helpers |
|
85 |
# |
|
86 |
|
|
87 |
sub create_or_update { |
|
88 |
my $self = shift; |
|
89 |
my $is_new = !$self->{requirement_spec_complexity}->id; |
|
90 |
my $params = delete($::form->{requirement_spec_complexity}) || { }; |
|
91 |
my $title = $is_new ? t8('Create a new complexity') : t8('Edit complexity'); |
|
92 |
|
|
93 |
$self->{requirement_spec_complexity}->assign_attributes(%{ $params }); |
|
94 |
|
|
95 |
my @errors = $self->{requirement_spec_complexity}->validate; |
|
96 |
|
|
97 |
if (@errors) { |
|
98 |
flash('error', @errors); |
|
99 |
$self->render('requirement_spec_complexity/form', title => $title); |
|
100 |
return; |
|
101 |
} |
|
102 |
|
|
103 |
$self->{requirement_spec_complexity}->save; |
|
104 |
|
|
105 |
flash_later('info', $is_new ? t8('The complexity has been created.') : t8('The complexity has been saved.')); |
|
106 |
$self->redirect_to(action => 'list'); |
|
107 |
} |
|
108 |
|
|
109 |
sub load_requirement_spec_complexity { |
|
110 |
my ($self) = @_; |
|
111 |
$self->{requirement_spec_complexity} = SL::DB::RequirementSpecComplexity->new(id => $::form->{id})->load; |
|
112 |
} |
|
113 |
|
|
114 |
1; |
SL/Controller/RequirementSpecRisk.pm | ||
---|---|---|
1 |
package SL::Controller::RequirementSpecRisk; |
|
2 |
|
|
3 |
use strict; |
|
4 |
|
|
5 |
use parent qw(SL::Controller::Base); |
|
6 |
|
|
7 |
use SL::DB::RequirementSpecRisk; |
|
8 |
use SL::Helper::Flash; |
|
9 |
use SL::Locale::String; |
|
10 |
|
|
11 |
use Rose::Object::MakeMethods::Generic |
|
12 |
( |
|
13 |
scalar => [ qw(requirement_spec_risk) ], |
|
14 |
); |
|
15 |
|
|
16 |
__PACKAGE__->run_before('check_auth'); |
|
17 |
__PACKAGE__->run_before('load_requirement_spec_risk', only => [ qw(edit update destroy) ]); |
|
18 |
|
|
19 |
# |
|
20 |
# actions |
|
21 |
# |
|
22 |
|
|
23 |
sub action_list { |
|
24 |
my ($self) = @_; |
|
25 |
|
|
26 |
$self->render('requirement_spec_risk/list', |
|
27 |
title => t8('Risk levels'), |
|
28 |
REQUIREMENT_SPEC_RISKS => SL::DB::Manager::RequirementSpecRisk->get_all_sorted); |
|
29 |
} |
|
30 |
|
|
31 |
sub action_new { |
|
32 |
my ($self) = @_; |
|
33 |
|
|
34 |
$self->{requirement_spec_risk} = SL::DB::RequirementSpecRisk->new; |
|
35 |
$self->render('requirement_spec_risk/form', title => t8('Create a new risk level')); |
|
36 |
} |
|
37 |
|
|
38 |
sub action_edit { |
|
39 |
my ($self) = @_; |
|
40 |
$self->render('requirement_spec_risk/form', title => t8('Edit risk level')); |
|
41 |
} |
|
42 |
|
|
43 |
sub action_create { |
|
44 |
my ($self) = @_; |
|
45 |
|
|
46 |
$self->{requirement_spec_risk} = SL::DB::RequirementSpecRisk->new; |
|
47 |
$self->create_or_update; |
|
48 |
} |
|
49 |
|
|
50 |
sub action_update { |
|
51 |
my ($self) = @_; |
|
52 |
$self->create_or_update; |
|
53 |
} |
|
54 |
|
|
55 |
sub action_destroy { |
|
56 |
my ($self) = @_; |
|
57 |
|
|
58 |
if (eval { $self->{requirement_spec_risk}->delete; 1; }) { |
|
59 |
flash_later('info', t8('The risk level has been deleted.')); |
|
60 |
} else { |
|
61 |
flash_later('error', t8('The risk level is in use and cannot be deleted.')); |
|
62 |
} |
|
63 |
|
|
64 |
$self->redirect_to(action => 'list'); |
|
65 |
} |
|
66 |
|
|
67 |
sub action_reorder { |
|
68 |
my ($self) = @_; |
|
69 |
|
|
70 |
SL::DB::RequirementSpecRisk->reorder_list(@{ $::form->{requirement_spec_risk_id} || [] }); |
|
71 |
|
|
72 |
$self->render(\'', { type => 'json' }); |
|
73 |
} |
|
74 |
|
|
75 |
# |
|
76 |
# filters |
|
77 |
# |
|
78 |
|
|
79 |
sub check_auth { |
|
80 |
$::auth->assert('config'); |
|
81 |
} |
|
82 |
|
|
83 |
# |
|
84 |
# helpers |
|
85 |
# |
|
86 |
|
|
87 |
sub create_or_update { |
|
88 |
my $self = shift; |
|
89 |
my $is_new = !$self->{requirement_spec_risk}->id; |
|
90 |
my $params = delete($::form->{requirement_spec_risk}) || { }; |
|
91 |
my $title = $is_new ? t8('Create a new risk level') : t8('Edit risk level'); |
|
92 |
|
|
93 |
$self->{requirement_spec_risk}->assign_attributes(%{ $params }); |
|
94 |
|
|
95 |
my @errors = $self->{requirement_spec_risk}->validate; |
|
96 |
|
|
97 |
if (@errors) { |
|
98 |
flash('error', @errors); |
|
99 |
$self->render('requirement_spec_risk/form', title => $title); |
|
100 |
return; |
|
101 |
} |
|
102 |
|
|
103 |
$self->{requirement_spec_risk}->save; |
|
104 |
|
|
105 |
flash_later('info', $is_new ? t8('The risk level has been created.') : t8('The risk level has been saved.')); |
|
106 |
$self->redirect_to(action => 'list'); |
|
107 |
} |
|
108 |
|
|
109 |
sub load_requirement_spec_risk { |
|
110 |
my ($self) = @_; |
|
111 |
$self->{requirement_spec_risk} = SL::DB::RequirementSpecRisk->new(id => $::form->{id})->load; |
|
112 |
} |
|
113 |
|
|
114 |
1; |
SL/Controller/SimpleSystemSetting.pm | ||
---|---|---|
155 | 155 |
], |
156 | 156 |
}, |
157 | 157 |
|
158 |
requirement_spec_complexity => { |
|
159 |
class => 'RequirementSpecComplexity', |
|
160 |
titles => { |
|
161 |
list => t8('Complexities'), |
|
162 |
add => t8('Add complexity'), |
|
163 |
edit => t8('Edit complexity'), |
|
164 |
}, |
|
165 |
}, |
|
166 |
|
|
158 | 167 |
requirement_spec_predefined_text => { |
159 | 168 |
# Make locales.pl happy: $self->render("simple_system_setting/_requirement_spec_predefined_text_form") |
160 | 169 |
class => 'RequirementSpecPredefinedText', |
... | ... | |
172 | 181 |
], |
173 | 182 |
}, |
174 | 183 |
|
184 |
requirement_spec_risk => { |
|
185 |
class => 'RequirementSpecRisk', |
|
186 |
titles => { |
|
187 |
list => t8('Risk levels'), |
|
188 |
add => t8('Add risk level'), |
|
189 |
edit => t8('Edit risk level'), |
|
190 |
}, |
|
191 |
}, |
|
192 |
|
|
175 | 193 |
requirement_spec_status => { |
176 | 194 |
# Make locales.pl happy: $self->render("simple_system_setting/_requirement_spec_status_form") |
177 | 195 |
class => 'RequirementSpecStatus', |
locale/de/all | ||
---|---|---|
192 | 192 |
'Add bank account' => 'Bankkonto erfassen', |
193 | 193 |
'Add booking group' => 'Buchungsgruppe erfassen', |
194 | 194 |
'Add business' => 'Kunden-/Lieferantentyp hinzufügen', |
195 |
'Add complexity' => 'Komplexitätsgrad hinzufügen', |
|
195 | 196 |
'Add custom variable' => 'Benutzerdefinierte Variable erfassen', |
196 | 197 |
'Add department' => 'Abteilung hinzufügen', |
197 | 198 |
'Add empty line (csv_import)' => 'Leere Zeile einfügen', |
... | ... | |
218 | 219 |
'Add project type' => 'Projekttypen hinzufügen', |
219 | 220 |
'Add requirement spec status' => 'Pflichtenheftstatus hinzufügen', |
220 | 221 |
'Add requirement spec type' => 'Pflichtenhefttypen hinzufügen', |
222 |
'Add risk level' => 'Risikograd hinzufügen', |
|
221 | 223 |
'Add section' => 'Abschnitt hinzufügen', |
222 | 224 |
'Add sub function block' => 'Unterfunktionsblock hinzufügen', |
223 | 225 |
'Add taxzone' => 'Steuerzone hinzufügen', |
... | ... | |
667 | 669 |
'Create PDF' => 'PDF erzeugen', |
668 | 670 |
'Create a new background job' => 'Einen neuen Hintergrund-Job anlegen', |
669 | 671 |
'Create a new client' => 'Einen neuen Mandanten anlegen', |
670 |
'Create a new complexity' => 'Einen Komplexitätsgrad anlegen', |
|
671 | 672 |
'Create a new delivery term' => 'Neue Lieferbedingungen anlegen', |
672 | 673 |
'Create a new group' => 'Neue Benutzergruppe erfassen', |
673 | 674 |
'Create a new payment term' => 'Neue Zahlungsbedingungen anlegen', |
... | ... | |
678 | 679 |
'Create a new purchase price rule' => 'Neue Einkaufspreisregel anlegen', |
679 | 680 |
'Create a new requirement spec' => 'Ein neues Pflichtenheft anlegen', |
680 | 681 |
'Create a new requirement spec template' => 'Eine neue Pflichtenheftvorlage erfassen', |
681 |
'Create a new risk level' => 'Einen neuen Risikograd anlegen', |
|
682 | 682 |
'Create a new sales price rule' => 'Neue Verkaufspreisregel anlegen', |
683 | 683 |
'Create a new user' => 'Einen neuen Benutzer anlegen', |
684 | 684 |
'Create a new user group' => 'Eine neue Benutzergruppe erfassen', |
... | ... | |
1850 | 1850 |
'No bins have been added to this warehouse yet.' => 'Es wurden zu diesem Lager noch keine Lagerplätze angelegt.', |
1851 | 1851 |
'No changes since previous version.' => 'Keine Änderungen seit der letzten Version.', |
1852 | 1852 |
'No clients have been created yet.' => 'Es wurden noch keine Mandanten angelegt.', |
1853 |
'No complexities has been created yet.' => 'Es wurden noch keine Komplexitätsgrade angelegt.', |
|
1854 | 1853 |
'No contact selected to delete' => 'Keine Ansprechperson zum Löschen ausgewählt', |
1855 | 1854 |
'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgewählt.', |
1856 | 1855 |
'No data was found.' => 'Es wurden keine Daten gefunden.', |
... | ... | |
1887 | 1886 |
'No requirement spec templates have been created yet.' => 'Es wurden noch keine Pflichtenheftvorlagen angelegt.', |
1888 | 1887 |
'No results.' => 'Keine Artikel', |
1889 | 1888 |
'No revert available.' => 'Dieser Vorgang kann nicht rückgängig gemacht werden, ggf. falsch erstellte Buchungen müssen einzeln manuell korrigiert werden.', |
1890 |
'No risks level has been created yet.' => 'Es wurden noch keine Risikograde angelegt.', |
|
1891 | 1889 |
'No search results found!' => 'Keine Suchergebnisse gefunden!', |
1892 | 1890 |
'No sections created yet' => 'Keine Abschnitte erstellt', |
1893 | 1891 |
'No sections have been created so far.' => 'Bisher wurden noch keine Abschnitte angelegt.', |
... | ... | |
2925 | 2923 |
'The columns "Dunning Duedate", "Total Fees" and "Interest" show data for the previous dunning created for this invoice.' => 'Die Spalten "Zahlbar bis", "Kumulierte Gebühren" und "Zinsen" zeigen Daten der letzten für diese Rechnung erzeugten Mahnung.', |
2926 | 2924 |
'The combination of database host, port and name is not unique.' => 'Die Kombination aus Datenbankhost, -port und -name ist nicht eindeutig.', |
2927 | 2925 |
'The command is missing.' => 'Der Befehl fehlt.', |
2928 |
'The complexity has been created.' => 'Der Komplexitätsgrad wurde angelegt.', |
|
2929 |
'The complexity has been deleted.' => 'Der Komplexitätsgrad wurde gelöscht.', |
|
2930 |
'The complexity has been saved.' => 'Der Komplexitätsgrad wurde gespeichert.', |
|
2931 |
'The complexity is in use and cannot be deleted.' => 'Der Komplexitätsgrad wird verwendet und kann nicht gelöscht werden.', |
|
2932 | 2926 |
'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/kivitendo.conf.' => 'Die Verbindung zum LDAP-Server kann nicht verschlüsselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte überprüfen Sie die Angaben in config/kivitendo.conf.', |
2933 | 2927 |
'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:', |
2934 | 2928 |
'The connection to the configured client database "#1" on host "#2:#3" failed.' => 'Die Verbindung zur konfigurierten Datenbank "#1" auf Host "#2:#3" schlug fehl.', |
... | ... | |
3083 | 3077 |
'The requirement spec has been saved.' => 'Das Pflichtenheft wurde gespeichert.', |
3084 | 3078 |
'The requirement spec is in use and cannot be deleted.' => 'Das Pflichtenheft wird verwendet und kann nicht gelöscht werden.', |
3085 | 3079 |
'The requirement spec template has been saved.' => 'Die Pflichtenheftvorlage wurde gespeichert.', |
3086 |
'The risk level has been created.' => 'Der Risikograd wurde angelegt.', |
|
3087 |
'The risk level has been deleted.' => 'Der Risikograd wurde gelöscht.', |
|
3088 |
'The risk level has been saved.' => 'Der Risikograd wurde gespeichert.', |
|
3089 |
'The risk level is in use and cannot be deleted.' => 'Der Risikograd wird verwendet und kann nicht gelöscht werden.', |
|
3090 | 3080 |
'The second reason is that kivitendo allowed the user to enter the tax amount manually regardless of the taxkey used.' => 'Der zweite Grund war, dass kivitendo zuließ, dass die Benutzer beliebige, von den tatsächlichen Steuerschlüsseln unabhängige Steuerbeträge eintrugen.', |
3091 | 3081 |
'The second way is to use Perl\'s CPAN module and let it download and install the module for you.' => 'Die zweite Variante besteht darin, Perls CPAN-Modul zu benutzen und es das Modul für Sie installieren zu lassen.', |
3092 | 3082 |
'The selected bank account does not exist anymore.' => 'Das ausgewählte Bankkonto existiert nicht mehr.', |
menus/user/00-erp.yaml | ||
---|---|---|
1161 | 1161 |
name: Complexities |
1162 | 1162 |
order: 400 |
1163 | 1163 |
params: |
1164 |
action: RequirementSpecComplexity/list |
|
1164 |
action: SimpleSystemSetting/list |
|
1165 |
type: requirement_spec_complexity |
|
1165 | 1166 |
- parent: system_requirement_specs |
1166 | 1167 |
id: system_requirement_specs_risks |
1167 | 1168 |
name: Risks |
1168 | 1169 |
order: 500 |
1169 | 1170 |
params: |
1170 |
action: RequirementSpecRisk/list |
|
1171 |
action: SimpleSystemSetting/list |
|
1172 |
type: requirement_spec_risk |
|
1171 | 1173 |
- parent: system_requirement_specs |
1172 | 1174 |
id: system_requirement_specs_acceptance_statuses |
1173 | 1175 |
name: Acceptance Statuses |
templates/webpages/requirement_spec_complexity/form.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
<h1>[% FORM.title %]</h1> |
|
3 |
|
|
4 |
<form method="post" action="controller.pl"> |
|
5 |
|
|
6 |
[%- INCLUDE 'common/flash.html' %] |
|
7 |
|
|
8 |
<table> |
|
9 |
<tr> |
|
10 |
<td>[% LxERP.t8("Description") %]</td> |
|
11 |
<td>[% L.input_tag("requirement_spec_complexity.description", SELF.requirement_spec_complexity.description) %]</td> |
|
12 |
</tr> |
|
13 |
</table> |
|
14 |
|
|
15 |
<p> |
|
16 |
[% L.hidden_tag("id", SELF.requirement_spec_complexity.id) %] |
|
17 |
[% L.hidden_tag("action", "RequirementSpecComplexity/dispatch") %] |
|
18 |
[% L.submit_tag("action_" _ (SELF.requirement_spec_complexity.id ? "update" : "create"), LxERP.t8('Save')) %] |
|
19 |
[%- IF SELF.requirement_spec_complexity.id %] |
|
20 |
[% L.submit_tag("action_destroy", LxERP.t8('Delete'), confirm=LxERP.t8('Do you really want to delete this object?')) %] |
|
21 |
[%- END %] |
|
22 |
<a href="[% SELF.url_for(action => 'list') %]">[%- LxERP.t8('Abort') %]</a> |
|
23 |
</p> |
|
24 |
</form> |
templates/webpages/requirement_spec_complexity/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
<h1>[% FORM.title %]</h1> |
|
3 |
|
|
4 |
[%- INCLUDE "common/flash.html" %] |
|
5 |
|
|
6 |
<form method="post" action="controller.pl"> |
|
7 |
[% IF !REQUIREMENT_SPEC_COMPLEXITIES.size %] |
|
8 |
<p> |
|
9 |
[%- LxERP.t8("No complexities has been created yet.") %] |
|
10 |
</p> |
|
11 |
|
|
12 |
[%- ELSE %] |
|
13 |
<table id="requirement_spec_complexity_list"> |
|
14 |
<thead> |
|
15 |
<tr class="listheading"> |
|
16 |
<th align="center"><img src="image/updown.png" alt="[%- LxERP.t8("reorder item") %]"></th> |
|
17 |
<th>[%- LxERP.t8("Description") %]</th> |
|
18 |
</tr> |
|
19 |
</thead> |
|
20 |
|
|
21 |
<tbody> |
|
22 |
[%- FOREACH requirement_spec_complexity = REQUIREMENT_SPEC_COMPLEXITIES %] |
|
23 |
<tr class="listrow[% loop.count % 2 %]" id="requirement_spec_complexity_id_[% requirement_spec_complexity.id %]"> |
|
24 |
<td align="center" class="dragdrop"><img src="image/updown.png" alt="[%- LxERP.t8("reorder item") %]"></td> |
|
25 |
<td> |
|
26 |
<a href="[% SELF.url_for(action => "edit", id => requirement_spec_complexity.id) %]"> |
|
27 |
[%- HTML.escape(requirement_spec_complexity.description) %] |
|
28 |
</a> |
|
29 |
</td> |
|
30 |
</tr> |
|
31 |
[%- END %] |
|
32 |
</tbody> |
|
33 |
</table> |
|
34 |
[%- END %] |
|
35 |
|
|
36 |
<p> |
|
37 |
<a href="[% SELF.url_for(action => "new") %]">[%- LxERP.t8("Create a new complexity") %]</a> |
|
38 |
</p> |
|
39 |
</form> |
|
40 |
|
|
41 |
[% L.sortable_element("#requirement_spec_complexity_list tbody", url => "controller.pl?action=RequirementSpecComplexity/reorder", with => "requirement_spec_complexity_id") %] |
templates/webpages/requirement_spec_risk/form.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
<h1>[% FORM.title %]</h1> |
|
3 |
|
|
4 |
<form method="post" action="controller.pl"> |
|
5 |
|
|
6 |
[%- INCLUDE 'common/flash.html' %] |
|
7 |
|
|
8 |
<table> |
|
9 |
<tr> |
|
10 |
<td>[% LxERP.t8("Description") %]</td> |
|
11 |
<td>[% L.input_tag("requirement_spec_risk.description", SELF.requirement_spec_risk.description) %]</td> |
|
12 |
</tr> |
|
13 |
</table> |
|
14 |
|
|
15 |
<p> |
|
16 |
[% L.hidden_tag("id", SELF.requirement_spec_risk.id) %] |
|
17 |
[% L.hidden_tag("action", "RequirementSpecRisk/dispatch") %] |
|
18 |
[% L.submit_tag("action_" _ (SELF.requirement_spec_risk.id ? "update" : "create"), LxERP.t8('Save')) %] |
|
19 |
[%- IF SELF.requirement_spec_risk.id %] |
|
20 |
[% L.submit_tag("action_destroy", LxERP.t8('Delete'), confirm=LxERP.t8('Do you really want to delete this object?')) %] |
|
21 |
[%- END %] |
|
22 |
<a href="[% SELF.url_for(action => 'list') %]">[%- LxERP.t8('Abort') %]</a> |
|
23 |
</p> |
|
24 |
</form> |
templates/webpages/requirement_spec_risk/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
2 |
<h1>[% FORM.title %]</h1> |
|
3 |
|
|
4 |
[%- INCLUDE "common/flash.html" %] |
|
5 |
|
|
6 |
<form method="post" action="controller.pl"> |
|
7 |
[% IF !REQUIREMENT_SPEC_RISKS.size %] |
|
8 |
<p> |
|
9 |
[%- LxERP.t8("No risks level has been created yet.") %] |
|
10 |
</p> |
|
11 |
|
|
12 |
[%- ELSE %] |
|
13 |
<table id="requirement_spec_risk_list"> |
|
14 |
<thead> |
|
15 |
<tr class="listheading"> |
|
16 |
<th align="center"><img src="image/updown.png" alt="[%- LxERP.t8("reorder item") %]"></th> |
|
17 |
<th>[%- LxERP.t8("Description") %]</th> |
|
18 |
</tr> |
|
19 |
</thead> |
|
20 |
|
|
21 |
<tbody> |
|
22 |
[%- FOREACH requirement_spec_risk = REQUIREMENT_SPEC_RISKS %] |
|
23 |
<tr class="listrow[% loop.count % 2 %]" id="requirement_spec_risk_id_[% requirement_spec_risk.id %]"> |
|
24 |
<td align="center" class="dragdrop"><img src="image/updown.png" alt="[%- LxERP.t8("reorder item") %]"></td> |
|
25 |
<td> |
|
26 |
<a href="[% SELF.url_for(action => "edit", id => requirement_spec_risk.id) %]"> |
|
27 |
[%- HTML.escape(requirement_spec_risk.description) %] |
|
28 |
</a> |
|
29 |
</td> |
|
30 |
</tr> |
|
31 |
[%- END %] |
|
32 |
</tbody> |
|
33 |
</table> |
|
34 |
[%- END %] |
|
35 |
|
|
36 |
<p> |
|
37 |
<a href="[% SELF.url_for(action => "new") %]">[%- LxERP.t8("Create a new risk level") %]</a> |
|
38 |
</p> |
|
39 |
</form> |
|
40 |
|
|
41 |
[% L.sortable_element("#requirement_spec_risk_list tbody", url => "controller.pl?action=RequirementSpecRisk/reorder", with => "requirement_spec_risk_id") %] |
Auch abrufbar als: Unified diff
SimpleSystemSetting: Umstellung von »Pflichtenhefte« → »Komplexitätsgrade«, »Risikograde«