From: Sven Schöling Date: Wed, 1 Sep 2010 15:45:35 +0000 (+0200) Subject: Bugfix: CVar Sichtbarkeit in Projekten. X-Git-Tag: release-2.6.2beta1~161 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=4555e1300f7ddd26d4548156360f4988d5b835ff;p=kivitendo-erp.git Bugfix: CVar Sichtbarkeit in Projekten. 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. --- diff --git a/SL/CVar.pm b/SL/CVar.pm index 19f1e5f3d..7f82a2d8b 100644 --- a/SL/CVar.pm +++ b/SL/CVar.pm @@ -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(); diff --git a/SL/Projects.pm b/SL/Projects.pm index f5f48e7f7..c25e75ae3 100644 --- a/SL/Projects.pm +++ b/SL/Projects.pm @@ -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();