]> wagnertech.de Git - mfinanz.git/commitdiff
Bugfix: CVar Sichtbarkeit in Projekten.
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 1 Sep 2010 15:45:35 +0000 (17:45 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 1 Sep 2010 15:57:48 +0000 (17:57 +0200)
Dieser Patch behebt zwei unabhängige Bugs, die dazu geführt haben, dass CVars
für Projekte nicht bearbeitbar waren.

Der erste ist, dass CVars für Projekte nicht vom validiersystem betrofen sind,
und deshalb always_valid geflaggt sein müssen.  Das zweite hat verhindert, dass
bereits bestehende invalid flags gelöscht werden, wenn ein always_valid Objekt
seine CVars speichert. Normalerweise ist das kein Problem, muss hier aber
passieren für die Backwards Kompatibilität.

SL/CVar.pm
SL/Projects.pm

index 19f1e5f3d72ed4b90163df460d3d91e7f1ebf4d4..7f82a2d8bb6e86c706f70b964c1747de87d8dec7 100644 (file)
@@ -337,11 +337,10 @@ sub save_custom_variables {
 
     do_statement($form, $sth, $query, @values);
 
-    unless ($params{always_valid}) {
-      $self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id},
-        validity => ($params{variables}->{"$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"} ? 1 : 0)
-      );
-    };
+    my $valid_index = "$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid";
+    $self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id},
+      validity => ($params{variables}{$valid_index} || $params{always_valid} ? 1 : 0)
+    );
   }
 
   $sth->finish();
index f5f48e7f7d383420e49a589af7f641538941d993..c25e75ae3264e9babffe251a7c716be8a0727190 100644 (file)
@@ -189,7 +189,8 @@ sub save_project {
   CVar->save_custom_variables('dbh'       => $dbh,
                               'module'    => 'Projects',
                               'trans_id'  => $params{id},
-                              'variables' => $form);
+                              'variables' => $form,
+                              'always_valid' => 1);
 
   $dbh->commit();