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.
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();
CVar->save_custom_variables('dbh' => $dbh,
'module' => 'Projects',
'trans_id' => $params{id},
- 'variables' => $form);
+ 'variables' => $form,
+ 'always_valid' => 1);
$dbh->commit();