[Koha-devel] Plugin hooks on datas and store()

Renvoize, Martin martin.renvoize at ptfs-europe.com
Wed Mar 10 09:18:31 CET 2021


I've read the code a bit more now...

You could probably use ->_result to reach inside the object and call a
store without triggering the Koha::Objects store to circumnavigate the
issues here... but.. should you.. I've commented on the bug.

On Wed, 10 Mar 2021 at 06:54, Renvoize, Martin <
martin.renvoize at ptfs-europe.com> wrote:

> Indeed, I can't see calling SUPER working here.. and I can see the issue
> with calling a bare 'store' as you'd end up causing a recursion..  I
> initially wondered about setting an internal flag in the object that you
> could look for in the second call to the hook, but as get pass a new copy
> of the object (get_from_storage) and not the object itself I can't see that
> working either... Hummm
>
> On Tue, 9 Mar 2021, 8:32 am Fridolin SOMERS, <fridolin.somers at biblibre.com>
> wrote:
>
>> Yop
>>
>> I've tried with :
>>
>> sub after_item_action {
>>      my ( $self, $params ) = @_;
>>      warn "AFTER ITEM ACTION";
>>
>>      my $item = $params->{item};
>>      $item->itemnotes("Edited at " . localtime);
>> }
>>
>> Calling $item->SUPER::store() generates an error :
>>
>> Plugin error (Example Kitchen-Sink Plugin): Can't locate object method
>> "store" via package "Koha::Plugin::Com::ByWaterSolutions::KitchenSink"
>> at
>> /mnt/git/koha-plugin-kitchen-sink/Koha/Plugin/Com/ByWaterSolutions/KitchenSink.pm
>>
>> line 580.
>>
>> Surely only Koha::Item can call SUPER.
>>
>> Adding $self->SUPER::store() at the end of Koha::Item->store() does also
>> not work.
>>
>> Is it because of "get_from_storage" ?
>>
>> $self->get_from_storage->_after_item_action_hooks({ action => $action });
>>
>> The _after_item_action_hooks method is called not on object $self but on
>> a copy ?
>>
>> Best regards,
>>
>> Le 08/03/2021 à 11:49, Jonathan Druart a écrit :
>> > I wouldn't add other hooks, they are "_after_item_action_hooks" for
>> > creation and modification.
>> > "After item creation" should allow you to modify the item, unless we
>> > need a "pre store" hook.
>> > I had a look at the code and I didn't find any problems.
>> > Fridolin, what did you try exactly, can you share the code?
>> >
>> > Le lun. 8 mars 2021 à 11:17, Tomas Cohen Arazi <tomascohen at gmail.com
>> > <mailto:tomascohen at gmail.com>> a écrit :
>> >
>> >     Maybe you need some other hook. Ones that allows you to make changes
>> >     to the object right before it is stored instead of this one, that
>> >     gets the 'just updated' object.
>> >     When I added 'after' hooks for biblios and items actions, the idea
>> >     was that they should act as triggers for other actions: in my case,
>> >     fill a zebraqueue-ish table my plugin uses.
>> >
>> >     El lun, 8 mar 2021 a las 5:11, Fridolin SOMERS
>> >     (<fridolin.somers at biblibre.com
>> >     <mailto:fridolin.somers at biblibre.com>>) escribió:
>> >
>> >         Hi,
>> >
>> >         While testing new hook :
>> >         https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=27066
>> >         <
>> https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=27066>
>> >
>> >         I faced a problem :
>> >         How can I modify the current patron object ?
>> >         Since we are in the store() method of that object and inside a
>> >         transation.
>> >         I tried to call $self->SUPER::store(); but does not work.
>> >
>> >         Should we implement this possiblity or document hooks to say it
>> is
>> >         impossible.
>> >
>> >         Thanks a lot for your help :D
>> >
>> >         Best regards,
>> >
>> >         --
>> >         Fridolin SOMERS <fridolin.somers at biblibre.com
>> >         <mailto:fridolin.somers at biblibre.com>>
>> >         Software and system maintainer 🦄
>> >         BibLibre, France
>> >         _______________________________________________
>> >         Koha-devel mailing list
>> >         Koha-devel at lists.koha-community.org
>> >         <mailto:Koha-devel at lists.koha-community.org>
>> >
>> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
>> >         <
>> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel>
>> >         website : https://www.koha-community.org/
>> >         <https://www.koha-community.org/>
>> >         git : https://git.koha-community.org/
>> >         <https://git.koha-community.org/>
>> >         bugs : https://bugs.koha-community.org/
>> >         <https://bugs.koha-community.org/>
>> >
>> >
>> >
>> >     --
>> >     Tomás Cohen Arazi
>> >     Theke Solutions (http://theke.io <http://theke.io/>)
>> >     ✆ +54 9351 3513384
>> >     GPG: B2F3C15F
>> >     _______________________________________________
>> >     Koha-devel mailing list
>> >     Koha-devel at lists.koha-community.org
>> >     <mailto:Koha-devel at lists.koha-community.org>
>> >
>> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
>> >     <
>> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel>
>> >     website : https://www.koha-community.org/
>> >     <https://www.koha-community.org/>
>> >     git : https://git.koha-community.org/ <
>> https://git.koha-community.org/>
>> >     bugs : https://bugs.koha-community.org/
>> >     <https://bugs.koha-community.org/>
>> >
>>
>> --
>> Fridolin SOMERS <fridolin.somers at biblibre.com>
>> Software and system maintainer 🦄
>> BibLibre, France
>> _______________________________________________
>> Koha-devel mailing list
>> Koha-devel at lists.koha-community.org
>> https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel
>> website : https://www.koha-community.org/
>> git : https://git.koha-community.org/
>> bugs : https://bugs.koha-community.org/
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.koha-community.org/pipermail/koha-devel/attachments/20210310/be15c691/attachment-0001.htm>


More information about the Koha-devel mailing list