Mmmm interesting.

Why not send the $self object to plugin
and call SUPER::store() after hook ?

Best regards,


Le 10/03/2021 à 09:22, Jonathan Druart a écrit :
 From perlobj pod:
"The |SUPER| pseudo-class is resolved from the package where the call is made. It is /not/ resolved based on the object's class."

You can still call $item->_result->update.

I suggest you open a bug report to add a no_trigger flag to Koha::Object->store (like we did in Koha::Objects).

Also spotted, at the end of store:
  193     my $result = $self->SUPER::store;

 202     $self->get_from_storage->_after_item_action_hooks({ action => $action });
  203
  204     return $result;

That's wrong!

Le mar. 9 mars 2021 à 09:32, Fridolin SOMERS <fridolin.som...@biblibre.com <mailto:fridolin.som...@biblibre.com>> a écrit :

    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
    <tomasco...@gmail.com <mailto:tomasco...@gmail.com>
     > <mailto:tomasco...@gmail.com <mailto:tomasco...@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.som...@biblibre.com
    <mailto:fridolin.som...@biblibre.com>
     >     <mailto:fridolin.som...@biblibre.com
    <mailto:fridolin.som...@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>
>  <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.som...@biblibre.com
    <mailto:fridolin.som...@biblibre.com>
     >         <mailto:fridolin.som...@biblibre.com
    <mailto:fridolin.som...@biblibre.com>>>
     >         Software and system maintainer 🦄
     >         BibLibre, France
     >         _______________________________________________
     >         Koha-devel mailing list
     > Koha-devel@lists.koha-community.org
    <mailto:Koha-devel@lists.koha-community.org>
     >         <mailto:Koha-devel@lists.koha-community.org
    <mailto:Koha-devel@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>
>  <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/>
     >         <https://www.koha-community.org/
    <https://www.koha-community.org/>>
     >         git : https://git.koha-community.org/
    <https://git.koha-community.org/>
     >         <https://git.koha-community.org/
    <https://git.koha-community.org/>>
     >         bugs : https://bugs.koha-community.org/
    <https://bugs.koha-community.org/>
     >         <https://bugs.koha-community.org/
    <https://bugs.koha-community.org/>>
     >
     >
     >
     >     --
     >     Tomás Cohen Arazi
     >     Theke Solutions (http://theke.io <http://theke.io>
    <http://theke.io/ <http://theke.io/>>)
     >     ✆ +54 9351 3513384
     >     GPG: B2F3C15F
     >     _______________________________________________
     >     Koha-devel mailing list
     > Koha-devel@lists.koha-community.org
    <mailto:Koha-devel@lists.koha-community.org>
     >     <mailto:Koha-devel@lists.koha-community.org
    <mailto:Koha-devel@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>
>  <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/>
     >     <https://www.koha-community.org/
    <https://www.koha-community.org/>>
     >     git : https://git.koha-community.org/
    <https://git.koha-community.org/> <https://git.koha-community.org/
    <https://git.koha-community.org/>>
     >     bugs : https://bugs.koha-community.org/
    <https://bugs.koha-community.org/>
     >     <https://bugs.koha-community.org/
    <https://bugs.koha-community.org/>>
     >

-- Fridolin SOMERS <fridolin.som...@biblibre.com
    <mailto:fridolin.som...@biblibre.com>>
    Software and system maintainer 🦄
    BibLibre, France


--
Fridolin SOMERS <fridolin.som...@biblibre.com>
Software and system maintainer 🦄
BibLibre, France
_______________________________________________
Koha-devel mailing list
Koha-devel@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/

Reply via email to