Pflichtenhefte: benutzerdefinierte Variablen anzeigen und bearbeiten
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 28 Jan 2015 13:55:31 +0000 (14:55 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 5 Mar 2015 12:42:58 +0000 (13:42 +0100)
SL/Controller/RequirementSpec.pm
SL/DB/RequirementSpec.pm
css/requirement_spec.css
templates/webpages/common/render_cvar_value_readonly.html [new file with mode: 0644]
templates/webpages/requirement_spec/_form.html
templates/webpages/requirement_spec/_show_basic_settings.html

index 3158cd0..bd37a02 100644 (file)
@@ -373,9 +373,17 @@ sub create_or_update {
   my $self   = shift;
   my $is_new = !$self->requirement_spec->id;
   my $params = delete($::form->{requirement_spec}) || { };
+  my $cvars  = delete($::form->{cvars})            || { };
 
   $self->requirement_spec->assign_attributes(%{ $params });
 
+  foreach my $var (@{ $self->requirement_spec->cvars_by_config }) {
+    my $value = $cvars->{ $var->config->name };
+    $value    = $::form->parse_amount(\%::myconfig, $value) if $var->config->type eq 'number';
+
+    $var->value($value);
+  }
+
   my $title  = $is_new && $self->requirement_spec->is_template ? t8('Create a new requirement spec template')
              : $is_new                                         ? t8('Create a new requirement spec')
              :            $self->requirement_spec->is_template ? t8('Edit requirement spec template')
@@ -396,7 +404,7 @@ sub create_or_update {
     if ($self->copy_source) {
       $self->requirement_spec($self->copy_source->create_copy(%{ $params }));
     } else {
-      $self->requirement_spec->save;
+      $self->requirement_spec->save(cascade => 1);
     }
   })) {
     $::lxdebug->message(LXDebug::WARN(), "Error: " . $db->error);
index bc68c17..bad9803 100644 (file)
@@ -9,6 +9,10 @@ use Rose::DB::Object::Helpers;
 use SL::DB::MetaSetup::RequirementSpec;
 use SL::DB::Manager::RequirementSpec;
 use SL::DB::Helper::AttrDuration;
+use SL::DB::Helper::CustomVariables (
+  module      => 'RequirementSpecs',
+  cvars_alias => 1,
+);
 use SL::DB::Helper::LinkedRecords;
 use SL::Locale::String;
 use SL::Util qw(_hashify);
index 9dbd0d6..36dfeb5 100644 (file)
@@ -3,7 +3,7 @@
 /* ------------------------------------------------------------ */
 
 input.rs_input_field, select.rs_input_field,
-table.rs_input_field input, table.rs_input_field select {
+table.rs_input_field input[type=text], table.rs_input_field input[type=password], table.rs_input_field select {
   width: 300px;
 }
 
diff --git a/templates/webpages/common/render_cvar_value_readonly.html b/templates/webpages/common/render_cvar_value_readonly.html
new file mode 100644 (file)
index 0000000..76e3fa8
--- /dev/null
@@ -0,0 +1,18 @@
+[%- USE T8 %]
+[%- USE HTML %]
+[%- USE L %]
+[%- USE LxERP %]
+
+[%- IF ( var.config .type == 'bool' ) %]
+  [% IF var.value %]
+   [% LxERP.t8("Yes") %]
+  [% ELSE %]
+   [% LxERP.t8("No") %]
+  [% END %]
+[%- ELSIF ( var.config .type == 'textfield' ) %]
+  <pre>[% HTML.escape(var.value) %]</pre>
+[%- ELSIF ( var.config.type == 'number' ) %]
+  [%- LxERP.format_amount(var.value, -2) %]
+[%- ELSE %]
+  [% HTML.escape(var.value) %]
+[%- END %]
index 20bf7a1..a89a99b 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE LxERP -%][%- USE L -%]
+[%- USE LxERP -%][%- USE L -%][%- USE HTML -%]
 [%- DEFAULT id_prefix = 'basic_settings_form'
             submit_as = 'post'
 %]
 
 [%- END %]
 
+  [% cvars = SELF.requirement_spec.cvars_by_config %]
+
+  [% FOREACH var = cvars %]
+   <tr>
+    <td>[% HTML.escape(var.config.description) %]</td>
+
+    <td>
+      [% INCLUDE 'common/render_cvar_input.html'
+                 cvar_name_prefix = 'cvars.'
+      %]
+    </td>
+   </tr>
+  [% END %]
+
  </table>
 
 [%- IF SELF.copy_source %]
index 7f69f8c..a89c36a 100644 (file)
    <td>[% HTML.escape(SELF.requirement_spec.hourly_rate_as_number) %]</td>
   </tr>
 
+  [% cvars = SELF.requirement_spec.cvars_by_config %]
+
+  [% FOREACH var = cvars %]
+   <tr class="listrow">
+    <td>[% HTML.escape(var.config.description) %]</td>
+    <td>[% INCLUDE 'common/render_cvar_value_readonly.html' %]</td>
+   </tr>
+  [% END %]
+
 [%- END %]
 
  </table>