diff --git a/lib/CF/Helpers/Core.pm b/lib/CF/Helpers/Core.pm index 6aa10097c1f9102013ceac68d309d281dceff206..b60ae0a9b1805e08bba926cc58c4a66872515b59 100644 --- a/lib/CF/Helpers/Core.pm +++ b/lib/CF/Helpers/Core.pm @@ -140,6 +140,25 @@ sub register ($class, $self, $conf) { ); }); + $self->helper( prepare_update_data => sub($c, $result, $args) { + my $update = {}; + + my %protected = (); + if ( $result->resultset_class->can('PROTECTED_FIELDS')) { + %protected = map {$_ => 1} + @{ $result->resultset_class->PROTECTED_FIELDS()}; + } + + FIELD: + foreach my $field ( $result->columns() ) { + if ( exists $args->{$field} && ! $protected{$field} ) { + $update->{$field} = $args->{$field} ; + } + } + + return $update; + }); + $self->helper( format_timestamp => sub($c, $timestamp, $format) { return $timestamp; });