Bugzilla – Attachment 56178 Details for
Bug 17047
Mana Knowledge Base : Data sharing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17047 ability to share a subscription to mana
Bug-17047-ability-to-share-a-subscription-to-mana.patch (text/plain), 20.95 KB, created by
Alex Arnaud
on 2016-10-11 13:08:46 UTC
(
hide
)
Description:
Bug 17047 ability to share a subscription to mana
Filename:
MIME Type:
Creator:
Alex Arnaud
Created:
2016-10-11 13:08:46 UTC
Size:
20.95 KB
patch
obsolete
>From e02db382f13e218209090eebe808affebb2ff5a8 Mon Sep 17 00:00:00 2001 >From: morgane alonso <morgane.alonso@biblibre.com> >Date: Thu, 25 Aug 2016 14:18:42 +0000 >Subject: [PATCH] Bug 17047 ability to share a subscription to mana > >- add a mana_id to subscription table >- add a share button on serials-toolbar.inc and a modal to ask >the language of the share and to alert if the subscription is >already link to a mana subscription model >- add function in C4/Serials to get all the info for a subscription >sharing >- modify subscription-detail.pl to manage sharing to mana >--- > C4/Serials.pm | 8 +- > Koha/SharedContent.pm | 14 +++ > Koha/Subscription.pm | 51 ++++++++++ > .../mana_01-add_mana_id_in_subscription.sql | 1 + > .../prog/en/includes/serials-toolbar.inc | 108 +++++++++++++++++++++ > .../prog/en/modules/serials/subscription-detail.tt | 16 ++- > serials/subscription-detail.pl | 71 +++++++++++--- > 7 files changed, 251 insertions(+), 18 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql > >diff --git a/C4/Serials.pm b/C4/Serials.pm >index 543b1dc..885192e 100644 >--- a/C4/Serials.pm >+++ b/C4/Serials.pm >@@ -1402,7 +1402,7 @@ sub NewSubscription { > $innerloop3, $status, $notes, $letter, $firstacquidate, $irregularity, > $numberpattern, $locale, $callnumber, $manualhistory, $internalnotes, > $serialsadditems, $staffdisplaycount, $opacdisplaycount, $graceperiod, >- $location, $enddate, $skip_serialseq, $itemtype, $previousitemtype >+ $location, $enddate, $skip_serialseq, $itemtype, $previousitemtype, $mana_id > ) = @_; > my $dbh = C4::Context->dbh; > >@@ -1416,8 +1416,8 @@ sub NewSubscription { > irregularity, numberpattern, locale, callnumber, > manualhistory, internalnotes, serialsadditems, staffdisplaycount, > opacdisplaycount, graceperiod, location, enddate, skip_serialseq, >- itemtype, previousitemtype) >- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) >+ itemtype, previousitemtype, mana_id) >+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ?) > |; > my $sth = $dbh->prepare($query); > $sth->execute( >@@ -1428,7 +1428,7 @@ sub NewSubscription { > $firstacquidate, $irregularity, $numberpattern, $locale, $callnumber, > $manualhistory, $internalnotes, $serialsadditems, $staffdisplaycount, > $opacdisplaycount, $graceperiod, $location, $enddate, $skip_serialseq, >- $itemtype, $previousitemtype >+ $itemtype, $previousitemtype, $mana_id > ); > > my $subscriptionid = $dbh->{'mysql_insertid'}; >diff --git a/Koha/SharedContent.pm b/Koha/SharedContent.pm >index ced0e6c..81a6a3e 100644 >--- a/Koha/SharedContent.pm >+++ b/Koha/SharedContent.pm >@@ -40,6 +40,20 @@ sub manaRequest { > return $result if ( $response->code =~ /^2..$/ ); > } > >+sub manaPostRequest { >+ my $resource = shift; >+ my $content = shift; >+ >+ my $url = "$MANA_IP/$resource.json"; >+ my $request = HTTP::Request->new( POST => $url ); >+ >+ $content->{bulk_import} = 0; >+ my $json = to_json( $content, { utf8 => 1 } ); >+ $request->content($json); >+ >+ return manaRequest($request); >+} >+ > sub manaGetRequest { > my $resource = shift; > my $parameters = shift; >diff --git a/Koha/Subscription.pm b/Koha/Subscription.pm >index 332a018..29a2c66 100644 >--- a/Koha/Subscription.pm >+++ b/Koha/Subscription.pm >@@ -22,6 +22,12 @@ use Modern::Perl; > use Carp; > > use Koha::Database; >+use Koha::Biblios; >+use Koha::Biblioitems; >+use Koha::Subscriptions; >+use Koha::Subscription::Frequencies; >+use Koha::Subscription::Numberpatterns; >+use JSON; > > use base qw(Koha::Object); > >@@ -39,6 +45,51 @@ Koha::Subscription - Koha Subscription Object class > > =cut > >+sub get_sharable_info { >+ my $shared_sub_id = shift; >+ my $subscription = Koha::Subscriptions->find($shared_sub_id); >+ my $biblio = Koha::Biblios->find( $subscription->biblionumber ); >+ my $biblioitem = Koha::Biblioitems->find( >+ { 'biblionumber' => $subscription->biblionumber } ); >+ my $sub_frequency = >+ Koha::Subscription::Frequencies->find( $subscription->periodicity ); >+ my $sub_numberpatteern = >+ Koha::Subscription::Numberpatterns->find( $subscription->numberpattern ); >+ >+ my $sub_mana_info = { >+ 'title' => $biblio->title, >+ 'sfdescription' => $sub_frequency->description, >+ 'unit' => $sub_frequency->unit, >+ 'unitsperissue' => $sub_frequency->unitsperissue, >+ 'issuesperunit' => $sub_frequency->issuesperunit, >+ 'label' => $sub_numberpatteern->label, >+ 'sndescription' => $sub_numberpatteern->description, >+ 'numberingmethod' => $sub_numberpatteern->numberingmethod, >+ 'label1' => $sub_numberpatteern->label1, >+ 'add1' => $sub_numberpatteern->add1, >+ 'every1' => $sub_numberpatteern->every1, >+ 'whenmorethan1' => $sub_numberpatteern->whenmorethan1, >+ 'setto1' => $sub_numberpatteern->setto1, >+ 'numbering1' => $sub_numberpatteern->numbering1, >+ 'label2' => $sub_numberpatteern->label2, >+ 'add2' => $sub_numberpatteern->add2, >+ 'every2' => $sub_numberpatteern->every2, >+ 'whenmorethan2' => $sub_numberpatteern->whenmorethan2, >+ 'setto2' => $sub_numberpatteern->setto2, >+ 'numbering2' => $sub_numberpatteern->numbering2, >+ 'label3' => $sub_numberpatteern->label3, >+ 'add3' => $sub_numberpatteern->add3, >+ 'every3' => $sub_numberpatteern->every3, >+ 'whenmorethan3' => $sub_numberpatteern->whenmorethan3, >+ 'setto3' => $sub_numberpatteern->setto3, >+ 'numbering3' => $sub_numberpatteern->numbering3, >+ 'issn' => $biblioitem->issn, >+ 'ean' => $biblioitem->ean, >+ 'publishercode' => $biblioitem->publishercode >+ }; >+ return $sub_mana_info; >+} >+ > sub _type { > return 'Subscription'; > } >diff --git a/installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql b/installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql >new file mode 100644 >index 0000000..5c590d1 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/mana_01-add_mana_id_in_subscription.sql >@@ -0,0 +1 @@ >+ALTER TABLE subscription ADD mana_id int(11); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >index b368317..c2aaee2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-toolbar.inc >@@ -13,6 +13,9 @@ > window.location="subscription-detail.pl?subscriptionid=[% subscriptionid %]&op=reopen"; > } > } >+ function share() { >+ window.location="subscription-detail.pl?subscriptionid=[% subscriptionid %]&op=share"; >+ } > > $(document).ready(function() { > $("#deletesub").click(function(){ >@@ -43,6 +46,13 @@ > [% ELSE %] > <div class="btn-group"><a id="newsubscription" class="btn btn-small" href="/cgi-bin/koha/serials/subscription-add.pl"><i class="fa fa-plus"></i> New subscription</a></div> > [% END %] >+ [% IF Koha.Preference('Mana') %] >+ [% IF one_language_enabled==0 or mana_id %] >+ <div class="btn-group"><a data-toggle="modal" data-toggle="tooltip" title="Your email address will be associated to your sharing." data-target="#mana_share_modal" class="btn btn-small"><i class="fa fa-share-alt"></i> Share</a></div> >+ [% ELSE %] >+ <div class="btn-group" data-toggle="tooltip" title="Your email address will be associated to your sharing."><a class="btn btn-small" onclick="share()"><i class="fa fa-share-alt"></i> Share</a></div> >+ [% END %] >+ [% END %] > [% END %] > > [% IF ( CAN_user_serials_edit_subscription || CAN_user_serials_create_subscription || CAN_user_serials_delete_subscription ) %] >@@ -99,3 +109,101 @@ > [% END %] > </div> > [% END %] >+ >+<div id="mana_share_modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="mana_share_modal_label" style="display: none;"> >+ <div class="modal-dialog"> >+ <div class="modal-content"> >+ <div class="modal-header"> >+ <h3 id="mana_share_modal_label">Share [% bibliotitle %] to Mana</h3> >+ </div> >+ <div class="modal-body"> >+ [% IF (mana_id) %] >+ <div class="alert"> >+ <p>Your subscription is already linked with a Mana subscription model. Share it if you have made modifications, otherwide it will do nothing.</p> >+ </div> >+ [% END %] >+ [% IF ( languages_loop ) %] >+ [% UNLESS ( one_language_enabled ) %] >+ <div class="rows"> >+ <p>The frequency and the numberpattern of [% bibliotitle %] are :</p> >+ <ol> >+ <li><span class="label">Frequency : </span> >+ [% frequency.description %] >+ </li> >+ <li><span class="label">Number pattern : </span> >+ [% numberpattern.label %] >+ </li> >+ </ol> >+ </div> >+ <div class="rows"> >+ <form method="get" id="mana_share_form" action="/cgi-bin/koha/serials/subscription-detail.pl" class="validated" > >+ <fieldset> >+ <label for="mana_language">Language of your sharing :</label> >+ <select id="mana_language" name="mana_language"> >+ [% FOREACH languages_loo IN languages_loop %] >+ [% IF ( languages_loo.group_enabled ) %] >+ [% IF ( languages_loo.plural ) %] >+ [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %] >+ [% IF ( sublanguages_loo.enabled ) %] >+ [% IF ( sublanguages_loo.sublanguage_current ) %] >+ <option value="[% languages_loo.rfc4646_subtag %]" selected> >+ [% sublanguages_loo.native_description %] >+ [% sublanguages_loo.script_description %] >+ [% sublanguages_loo.region_description %] >+ [% sublanguages_loo.variant_description %] >+ ([% sublanguages_loo.rfc4646_subtag %]) >+ </option> >+ [% ELSE %] >+ <option value="[% languages_loo.rfc4646_subtag %]"> >+ [% sublanguages_loo.native_description %] >+ [% sublanguages_loo.script_description %] >+ [% sublanguages_loo.region_description %] >+ [% sublanguages_loo.variant_description %] >+ ([% sublanguages_loo.rfc4646_subtag %]) >+ </option> >+ [% END %] >+ [% END %] >+ [% END %] >+ [% ELSE %] >+ [% IF ( languages_loo.group_enabled ) %] >+ [% IF ( languages_loo.current ) %] >+ <option value="[% languages_loo.rfc4646_subtag %]" selected> >+ [% IF ( languages_loo.native_description ) %] >+ [% languages_loo.native_description %] >+ [% ELSE %] >+ [% languages_loo.rfc4646_subtag %] >+ [% END %] >+ </option> >+ [% ELSE %] >+ <option value="[% languages_loo.rfc4646_subtag %]"> >+ [% IF ( languages_loo.native_description ) %] >+ [% languages_loo.native_description %] >+ [% ELSE %] >+ [% languages_loo.rfc4646_subtag %] >+ [% END %] >+ </option> >+ [% END %] >+ [% END %] >+ [% END %] >+ [% END %] >+ [% END %] >+ </select> >+ <input type="hidden" id="op" name="op" value="share"/> >+ <input type="hidden" id="subscriptionid" name="subscriptionid" value="[% subscriptionid %]"/> >+ </fieldset> >+ </form> >+ </div> >+ [% END %] >+ [% END %] >+ </div> >+ <div class="modal-footer"> >+ <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> >+ [% IF one_language_enabled==0 %] >+ <button type="submit" form="mana_share_form" class="btn btn-primary">Share</button> >+ [% ELSE %] >+ <div class="btn-group"><a class="btn btn-primary" onclick="share()">Share</a></div> >+ [% END %] >+ </div> >+ </div> >+ </div> >+</div> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt >index 157c135..52daa78 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt >@@ -1,6 +1,7 @@ > [% USE Koha %] > [% USE Branches %] > [% USE AuthorisedValues %] >+[% USE Koha %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Serials › Details for subscription #[% subscriptionid %]</title> > [% INCLUDE 'doc-head-close.inc' %] >@@ -41,7 +42,7 @@ $(document).ready(function() { > <div id="bd"> > <div id="yui-main"> > <div class="yui-b"> >- [% INCLUDE 'serials-toolbar.inc' %] >+ [% INCLUDE 'serials-toolbar.inc' mana_id = mana_id %] > > <h1>Subscription for [% bibliotitle%] [% IF closed %](closed)[% END %]</h1> > [% IF ( abouttoexpire ) %] >@@ -70,7 +71,18 @@ $(document).ready(function() { > </form> > > </div> >- [% END %] <!-- NEEDSCONFIRMATION --> >+ [% END %] <!-- NEEDSCONFIRMATION --> >+ [% IF mana_code.defined %] >+ <div id="alert-community" class="dialog message"> >+ <p> >+ [% IF (mana_code == 201) %] >+ The export is done, thank you for your contribution. >+ [% ELSIF (mana_code == 200) %] >+ The model already exists on Mana, thank you for your contribution. >+ [% END %] >+ </p> >+ </div> >+ [% END %] > > <div id="subscription_description" class="toptabs"> > <ul class="ui-tabs-nav"> >diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl >index 824ffc2..6bfa85d 100755 >--- a/serials/subscription-detail.pl >+++ b/serials/subscription-detail.pl >@@ -32,6 +32,12 @@ use Koha::Acquisition::Bookseller; > use Date::Calc qw/Today Day_of_Year Week_of_Year Add_Delta_Days/; > use Carp; > >+use LWP::UserAgent; >+use Koha::SharedContent; >+use Koha::Patrons; >+use Koha::Subscriptions; >+use Koha::Libraries; >+ > my $query = new CGI; > my $op = $query->param('op') || q{}; > my $issueconfirmed = $query->param('issueconfirmed'); >@@ -67,31 +73,72 @@ my ($totalissues,@serialslist) = GetSerials($subscriptionid); > $totalissues-- if $totalissues; # the -1 is to have 0 if this is a new subscription (only 1 issue) > > if ($op eq 'del') { >- if ($$subs{'cannotedit'}){ >- carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; >- print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); >- exit; >- } >- >+ if ($$subs{'cannotedit'}){ >+ carp "Attempt to delete subscription $subscriptionid by ".C4::Context->userenv->{'id'}." not allowed"; >+ print $query->redirect("/cgi-bin/koha/serials/subscription-detail.pl?subscriptionid=$subscriptionid"); >+ exit; >+ } >+ > # Asking for confirmation if the subscription has not strictly expired yet or if it has linked issues > my $strictlyexpired = HasSubscriptionStrictlyExpired($subscriptionid); > my $linkedissues = CountIssues($subscriptionid); > my $countitems = HasItems($subscriptionid); > if ($strictlyexpired == 0 || $linkedissues > 0 || $countitems>0) { >- $template->param(NEEDSCONFIRMATION => 1); >- if ($strictlyexpired == 0) { $template->param("NOTEXPIRED" => 1); } >- if ($linkedissues > 0) { $template->param("LINKEDISSUES" => 1); } >- if ($countitems > 0) { $template->param("LINKEDITEMS" => 1); } >+ $template->param(NEEDSCONFIRMATION => 1); >+ if ($strictlyexpired == 0) { $template->param("NOTEXPIRED" => 1); } >+ if ($linkedissues > 0) { $template->param("LINKEDISSUES" => 1); } >+ if ($countitems > 0) { $template->param("LINKEDITEMS" => 1); } > } else { >- $issueconfirmed = "1"; >+ $issueconfirmed = "1"; > } > # If it's ok to delete the subscription, we do so > if ($issueconfirmed eq "1") { >- &DelSubscription($subscriptionid); >+ &DelSubscription($subscriptionid); > print $query->redirect("/cgi-bin/koha/serials/serials-home.pl"); > exit; > } > } >+elsif ( $op and $op eq "share" ) { >+ my $mana_language; >+ if ( $query->param('mana_language') ) { >+ $mana_language = $query->param('mana_language'); >+ } >+ else { >+ $mana_language = C4::Context->preference('language'); >+ } >+ >+ my $mana_email; >+ if ( $loggedinuser ne 0 ) { >+ my $borrower = Koha::Patrons->find($loggedinuser); >+ $mana_email = $borrower->email >+ if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) ); >+ $mana_email = $borrower->emailpro >+ if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) ); >+ $mana_email = >+ Koha::Libraries->find( C4::Context->userenv->{'branch'} )->branchemail >+ if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) ); >+ } >+ $mana_email = C4::Context->preference('KohaAdminEmailAddress') >+ if ( ( not defined($mana_email) ) or ( $mana_email eq '' ) ); >+ my %versions = C4::Context::get_versions(); >+ >+ my $mana_info = { >+ language => $mana_language, >+ kohaversion => $versions{'kohaVersion'}, >+ exportemail => $mana_email >+ }; >+ my $sub_mana_info = Koha::Subscription::get_sharable_info($subscriptionid); >+ $sub_mana_info = { %$sub_mana_info, %$mana_info }; >+ my $result = Koha::SharedContent::manaPostRequest( "subscription", >+ $sub_mana_info ); >+ if ( $result->{code} eq "200" and $result->{code} eq "201" ) { >+ my $subscription = Koha::Subscriptions->find($subscriptionid); >+ $subscription->set( { mana_id => $result->{id} } )->store; >+ $subs->{mana_id} = $result->{id}; >+ } >+ $template->param( mana_code => $result->{code} ); >+} >+ > my $hasRouting = check_routing($subscriptionid); > > (undef, $cookie, undef, undef) >-- >2.7.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17047
:
56175
|
56176
|
56177
|
56178
|
56179
|
56180
|
56181
|
59728
|
59729
|
59931
|
61905
|
62045
|
62046
|
62047
|
62048
|
62049
|
62050
|
62051
|
62052
|
62053
|
62054
|
62075
|
62465
|
62475
|
62485
|
62540
|
62542
|
62543
|
62544
|
62545
|
62546
|
62547
|
62548
|
62549
|
62550
|
62551
|
62552
|
62553
|
62589
|
62591
|
62592
|
62593
|
62594
|
62595
|
62596
|
62597
|
62598
|
62599
|
62603
|
62604
|
62605
|
62606
|
62607
|
62768
|
63476
|
63601
|
63618
|
63619
|
63620
|
63621
|
63622
|
63623
|
64484
|
64530
|
64618
|
64619
|
64620
|
64621
|
64622
|
64623
|
64624
|
64625
|
64626
|
64627
|
64628
|
64629
|
64630
|
64631
|
64632
|
64633
|
64634
|
64635
|
64636
|
64637
|
64638
|
64639
|
64640
|
64641
|
64642
|
64643
|
64648
|
64649
|
64650
|
64651
|
64652
|
64653
|
64654
|
64706
|
64962
|
65058
|
65059
|
65060
|
65061
|
65062
|
65063
|
65064
|
65065
|
65773
|
66667
|
66668
|
66987
|
67003
|
67004
|
67005
|
67006
|
67009
|
67010
|
67011
|
67012
|
67013
|
67014
|
67015
|
67016
|
67017
|
67018
|
67019
|
67020
|
67021
|
67022
|
67023
|
69034
|
69035
|
69036
|
69037
|
69038
|
69039
|
69040
|
69041
|
69091
|
70203
|
70204
|
70205
|
70206
|
70208
|
70209
|
70210
|
70211
|
70561
|
70874
|
72660
|
72661
|
72662
|
72663
|
72664
|
72665
|
72666
|
72667
|
72668
|
72669
|
72670
|
73699
|
73737
|
73738
|
73739
|
73740
|
73741
|
73742
|
73743
|
73744
|
73745
|
73746
|
73747
|
73748
|
73975
|
73976
|
73977
|
73978
|
73979
|
73980
|
73981
|
73982
|
73983
|
73984
|
73985
|
73986
|
76673
|
76674
|
76675
|
76676
|
76677
|
76678
|
76679
|
76680
|
76681
|
76682
|
76683
|
76684
|
78215
|
78216
|
78217
|
78218
|
78219
|
78220
|
78221
|
78222
|
78223
|
78224
|
78225
|
78226
|
78227
|
78228
|
78229
|
79868
|
79869
|
79870
|
79871
|
79872
|
79874
|
79877
|
79878
|
79879
|
79880
|
79881
|
79882
|
79883
|
79884
|
79885
|
79886
|
79887
|
79888
|
79922
|
79923
|
79924
|
79925
|
79926
|
79927
|
79928
|
79929
|
79930
|
79931
|
79932
|
79933
|
79934
|
79935
|
79936
|
79937
|
79938
|
79939
|
80183
|
80184
|
80185
|
80186
|
80187
|
80188
|
80189
|
80190
|
80191
|
80192
|
80193
|
80194
|
80195
|
80196
|
80197
|
80198
|
80199
|
80200
|
80471
|
80472
|
80473
|
80907
|
80908
|
80909
|
80910
|
80911
|
80912
|
80913
|
80914
|
80915
|
80916
|
80917
|
80918
|
80919
|
80920
|
80921
|
80922
|
80923
|
80924
|
81935
|
81936
|
81937
|
81938
|
81939
|
81940
|
81941
|
81942
|
81943
|
81944
|
81945
|
81946
|
81947
|
81948
|
81949
|
81950
|
81951
|
81952
|
81968
|
83863
|
83864
|
83865
|
83866
|
83867
|
83868
|
83869
|
83870
|
83871
|
83872
|
83873
|
83874
|
83875
|
83876
|
83877
|
83878
|
83879
|
83880
|
83881
|
83892
|
83893
|
83894
|
83895
|
83896
|
83897
|
83898
|
83899
|
83900
|
83901
|
83902
|
83903
|
83904
|
83905
|
83906
|
83907
|
83908
|
83909
|
83910
|
83911
|
83912
|
84142
|
84145
|
84210
|
84260
|
84261
|
84262
|
84263
|
84264
|
84265
|
84323
|
84324
|
84325
|
84326
|
84327
|
84328
|
84329
|
84332