Lines 55-60
use Koha::ItemTypes;
Link Here
|
55 |
use Koha::Virtualshelves; |
55 |
use Koha::Virtualshelves; |
56 |
use Koha::Ratings; |
56 |
use Koha::Ratings; |
57 |
use Koha::Reviews; |
57 |
use Koha::Reviews; |
|
|
58 |
use Koha::SharedContent; |
59 |
|
60 |
use DateTime; |
61 |
use constant DURATION_BEFORE_REFRESH => DateTime::Duration->new( months => 3 ); |
58 |
|
62 |
|
59 |
BEGIN { |
63 |
BEGIN { |
60 |
if (C4::Context->preference('BakerTaylorEnabled')) { |
64 |
if (C4::Context->preference('BakerTaylorEnabled')) { |
Lines 819-824
$template->param(
Link Here
|
819 |
|
823 |
|
820 |
my ( $loggedincommenter, $reviews ); |
824 |
my ( $loggedincommenter, $reviews ); |
821 |
if ( C4::Context->preference('reviewson') ) { |
825 |
if ( C4::Context->preference('reviewson') ) { |
|
|
826 |
if ( C4::Context->preference( 'Mana' ) ){ |
827 |
my $now = DateTime->now(); |
828 |
my $biblioitem = Koha::Biblioitems->find( $biblionumber ); |
829 |
$biblioitem = $biblioitem->unblessed if $biblioitem; |
830 |
my $last_update; |
831 |
eval {$last_update = DateTime::Format::MySQL->parse_date( $biblioitem->{last_mana_update} )}; |
832 |
if ( (!$last_update) or DateTime::Duration->compare( ( $now - $last_update ), DURATION_BEFORE_REFRESH ) == -1 ){ |
833 |
my $idtype; |
834 |
my $documentid; |
835 |
if ( $isbn ){ |
836 |
$idtype= 'isbn'; |
837 |
$documentid = $isbn; |
838 |
} |
839 |
elsif ( $biblioitem->{issn} ){ |
840 |
$idtype = 'issn'; |
841 |
$documentid= $biblioitem->{issn}; |
842 |
} |
843 |
elsif ( $biblioitem->{ean} ){ |
844 |
$idtype = 'ean'; |
845 |
$documentid= $ean; |
846 |
} |
847 |
|
848 |
if ( $documentid and $idtype ){ |
849 |
my $mana_ip = C4::Context->config('mana_config'); |
850 |
my $url = "$mana_ip/review.json?documentid=$documentid&idtype=$idtype"; |
851 |
my $request = HTTP::Request->new( GET => $url ); |
852 |
$request->content_type('aplication/json'); |
853 |
my $response = Koha::SharedContent::manaRequest( $request ); |
854 |
my $mana_reviews = $response->{data}; |
855 |
foreach my $mana_review ( @$mana_reviews ){ |
856 |
my $existing = Koha::Reviews->search( mana_id => $mana_review->{id}); |
857 |
unless ( scalar @{ $existing->unblessed } ){ |
858 |
my $review; |
859 |
$review->{borrowernumber} = undef; |
860 |
$review->{biblionumber} = $biblionumber; |
861 |
$review->{review} = $mana_review->{review}; |
862 |
$review->{approved} = 1; |
863 |
$review->{datereviewed} = DateTime->now(); |
864 |
$review->{share_auth} = 1; |
865 |
$review->{mana_id} = $mana_review->{id}; |
866 |
Koha::Review->new( $review )->store; |
867 |
} |
868 |
} |
869 |
} |
870 |
} |
871 |
my $biblioitem = Koha::Biblioitems->find( $biblionumber ); |
872 |
$biblioitem->last_mana_update( $now->ymd() ); |
873 |
$biblioitem->store(); |
874 |
|
875 |
} |
876 |
|
877 |
|
878 |
|
879 |
|
822 |
$reviews = Koha::Reviews->search( |
880 |
$reviews = Koha::Reviews->search( |
823 |
{ |
881 |
{ |
824 |
biblionumber => $biblionumber, |
882 |
biblionumber => $biblionumber, |