diff --git a/Koha/ERM/Licenses.pm b/Koha/ERM/Licenses.pm index b1619ee63c..abece2c679 100644 --- a/Koha/ERM/Licenses.pm +++ b/Koha/ERM/Licenses.pm @@ -22,7 +22,7 @@ use Koha::Database; use Koha::ERM::License; -use base qw(Koha::Objects Koha::Objects::Mixin::AdditionalFields); +use base qw(Koha::Objects::Mixin::AdditionalFields Koha::Objects); =head1 NAME diff --git a/Koha/Objects/Mixin/AdditionalFields.pm b/Koha/Objects/Mixin/AdditionalFields.pm index a412d3215a..8351aba549 100644 --- a/Koha/Objects/Mixin/AdditionalFields.pm +++ b/Koha/Objects/Mixin/AdditionalFields.pm @@ -2,6 +2,8 @@ package Koha::Objects::Mixin::AdditionalFields; use Modern::Perl; +use base qw(Koha::Objects::Mixin::ExtendedAttributes); + =head1 NAME Koha::Objects::Mixin::AdditionalFields @@ -56,6 +58,28 @@ sub filter_by_additional_fields { return $class->search(\%conditions, { join => [ ('additional_field_values') x $idx ] }); } +=head3 extended_attributes_config + +=cut + +sub extended_attributes_config { + my ($self) = @_; + + my $tablename_query = $self->extended_attributes_tablename_query; + + return { + 'id_field' => { 'foreign' => 'record_id', 'self' => $self->_resultset->result_source->primary_columns }, + 'key_field' => 'field_id', + 'schema_class' => 'Koha::Schema::Result::AdditionalFieldValue', + }; +} + +sub extended_attributes_tablename_query { + my ($self) = @_; + + return { 'tablename' => $self->_resultset->result_source->name, 'operator' => '=' }; +} + =head1 AUTHOR Koha Development Team