From 4555e1300f7ddd26d4548156360f4988d5b835ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Wed, 1 Sep 2010 17:45:35 +0200 Subject: [PATCH] Bugfix: CVar Sichtbarkeit in Projekten. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 9 ++++----- SL/Projects.pm | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) 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(); -- 2.20.1