EPrints Technical Mailing List Archive

Message: #08138


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] Sending email when item is made live


overriding action_move_archive is a bit yucky and should be a last resort.

The trigger "eprint_status_change" will be called as part of the process, not by the indexer so you could just register a trigger and do the user message in it if the old status was buffer and the new status is archive.


On 22/04/2020 09:56, Yuri Carrer via Eprints-tech wrote:
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.eprints.org%2Fw%2FSending_user_messages&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=YcjMip5JD%2F1vtoaE1RdMLoNapZJ9CAevFUVnaGyCM5o%3D&amp;reserved=0

you want the message if the user clicked a button on screen, the link
you cited act on a status change which is instead an asyncronous
operation (it is performed outside the page flow).

You've to replace the actual screen action (for example "Move to the
repository" which is EPrint::Move (*)) with another one that perform the
add_message() after calling the action directly

(*)
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprints%2Feprints%2Fblob%2F3.3%2Fperl_lib%2FEPrints%2FPlugin%2FScreen%2FEPrint%2FMove.pm&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=C72Qn2Z07paAGdEIcH6lHTvIH48LqOAPlQlB95nF338%3D&amp;reserved=0

sub action_move_archive
{
      my( $self ) = @_;

      my $ok = $self->{processor}->{eprint}->move_to_archive;

      $self->add_result_message( $ok );
}

$self->{processor}->{eprint}->move_to_archive perform the status change
and activate the trigger but you can't know about trigger result because
it is done elsewhere (the epindexer deamon!) <- important!

At the end, you've to add the event (not the trigger, take a look to the
doi datacite plugin on how to do it (*)) in the code of in the screen
plugin and then the event, when triggered, will have the pluginid and
action set, so you can check where the triggered event came from, and
send/not send the email based on your logic.

(*)
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Feprintsug%2FDataCiteDoi%2Fblob%2Fmaster%2Flib%2Fplugins%2FEPrints%2FPlugin%2FScreen%2FEPrint%2FStaff%2FCoinDOI.pm%23L97&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=sVKuq7LlUvSTUYClKcYmR2BV4t6tIAJ3R2q1a%2BMG7HU%3D&amp;reserved=0

              $repository->dataset( "event_queue" )->create_dataobj({
                  pluginid => "Event::DataCiteEvent",
                  action => "datacite_doi",
                  params => [$eprint->internal_uri],
              }); <- here replace with Eprint::Move and move_to_archive

Il 22/04/20 10:05, Stenger, Avischai via Eprints-tech ha scritto:
Hi 2 all,

I am using this Method: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.eprints.org%2Fw%2FSending_email_when_item_is_made_live_or_deposited&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=C64tcmJKE9HXMBrpPUW2eRqWbpPLivROwPGEa%2BpVmrI%3D&amp;reserved=0

And it work fine, but I cannot get a „mailsend_OK /mailsend_Not_OK“  message to be shown on the user Screen. How do I get this done? I find no „object" with the add_message() funtion


Tnks and a healthy day


avi


*** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
*** Archive: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.eprints.org%2Ftech.php%2F&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=UIZzRCivmmZTYq8xAUYzh5se7WXQ1H%2FElVGGTKcHD%2B4%3D&amp;reserved=0
*** EPrints community wiki: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki.eprints.org%2F&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=ttMNQ%2FhOeDPpqbL15AVFexXWQp0oh1kgw579L7AJEIc%3D&amp;reserved=0
--
Yuri Carrer

   CAB - Centro di Ateneo per le Biblioteche, Università di Padova
   Tel: 049/827 9712 - Via Beato Pellegrino, 28 - Padova


*** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech
*** Archive: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.eprints.org%2Ftech.php%2F&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=UIZzRCivmmZTYq8xAUYzh5se7WXQ1H%2FElVGGTKcHD%2B4%3D&amp;reserved=0
*** EPrints community wiki: https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwiki.eprints.org%2F&amp;data=01%7C01%7C%7Cbf679c4da2df4dcb15aa08d7e6a24c04%7C4a5378f929f44d3ebe89669d03ada9d8%7C0&amp;sdata=ttMNQ%2FhOeDPpqbL15AVFexXWQp0oh1kgw579L7AJEIc%3D&amp;reserved=0

--
Christopher Gutteridge <totl@soton.ac.uk>
You should read our team blog at http://blog.soton.ac.uk/webteam/