[PATCH] Bug 1003 Added lists to bib details pages

Nicole Engard nengard at gmail.com
Thu Aug 27 17:22:15 CEST 2009


This patch adds links to all public lists that a bib
record belongs to to the detail page in the OPAC and
the Inranet. If the item is not in any lists nothing
shows on the detail page.  The same goes if virtualshelves
is turned OFF.
---
 C4/VirtualShelves.pm                               |   19 +++++++++++++++++++
 catalogue/detail.pl                                |    7 +++++++
 .../prog/en/modules/catalogue/detail.tmpl          |   11 +++++++++++
 .../opac-tmpl/prog/en/modules/opac-detail.tmpl     |    9 +++++++++
 opac/opac-detail.pl                                |    8 ++++++++
 5 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/C4/VirtualShelves.pm b/C4/VirtualShelves.pm
index 76786e9..5047550 100644
--- a/C4/VirtualShelves.pm
+++ b/C4/VirtualShelves.pm
@@ -44,6 +44,7 @@ BEGIN {
             &ModShelf
             &ShelfPossibleAction
             &DelFromShelf &DelShelf
+            &GetBibliosShelves
 	);
         @EXPORT_OK = qw(
             &GetShelvesSummary &GetRecentShelves
@@ -532,6 +533,24 @@ sub DelShelf {
 	return $sth->execute(shift);
 }

+=item GetBibShelves
+
+This finds all the lists that this bib record is in.
+
+=cut
+
+sub GetBibliosShelves {
+  my ( $biblionumber )  = @_;
+  my $dbh = C4::Context->dbh;
+  my $sth = $dbh->prepare('SELECT vs.shelfname, vs.shelfnumber FROM
virtualshelves vs LEFT JOIN virtualshelfcontents vc ON
(vs.shelfnumber= vc.shelfnumber) WHERE vs.category != 1 AND
vc.biblionumber= ?');
+  $sth->execute( $biblionumber );
+  my @lists;
+  while (my $data = $sth->fetchrow_hashref){
+    push @lists,$data;
+  }
+  return \@lists;
+}
+
 =item RefreshShelvesSummary

 	($total, $pubshelves, $barshelves) =
RefreshShelvesSummary($sessionID, $loggedinuser, $row_count);
diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index 9c9ebe9..6c2afdc 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -35,6 +35,7 @@ use C4::Serials;
 use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
 use C4::External::Amazon;
 use C4::Search;		# enabled_staff_search_views
+use C4::VirtualShelves;

 # use Smart::Comments;

@@ -225,6 +226,12 @@ $template->param(

 # $debug and $template->param(debug_display => 1);

+# Lists
+
+if (C4::Context->preference("virtualshelves") ) {
+   $template->param( 'GetShelves' => GetBibliosShelves( $biblionumber ) );
+}
+
 # XISBN Stuff
 if (C4::Context->preference("FRBRizeEditions")==1) {
     eval {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
index e330f7f..251c6df 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tmpl
@@ -100,6 +100,7 @@ function verify_images() {
             <!-- /TMPL_LOOP --></ul>
 </li>
     <!-- /TMPL_IF -->
+
     <!-- TMPL_IF name="OpacUrl" -->
     	<li><strong>OPAC View:</strong>
     	<a href="http://<!-- TMPL_VAR name="OpacUrl"
-->/cgi-bin/koha/opac-detail.pl?biblionumber=<!-- TMPL_VAR
NAME="biblionumber" -->" target="_blank">Open in new window</a>
@@ -150,6 +151,16 @@ function verify_images() {
                 <!-- /TMPL_LOOP -->
             </li>
         <!-- /TMPL_IF -->
+        <!--This grabs all of the lists a bib record appears in -->
+        <!-- TMPL_IF NAME="GetShelves" -->
+	        <li><strong>Lists that include this title: </strong>
+	        <ul>
+	        <!-- TMPL_LOOP NAME="GetShelves" -->
+		        <li><a
href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=<!-- TMPL_VAR
NAME="shelfnumber" -->"><!-- TMPL_VAR NAME="shelfname" --></a></li>
+	        <!-- /TMPL_LOOP -->
+	        </ul>
+	        </li>
+        <!-- /TMPL_IF -->
         </ul>
 </div>
 </div>
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
index 12a5003..ae40837 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tmpl
@@ -216,6 +216,15 @@ YAHOO.util.Event.onContentReady("furtherm", function () {
     </span>
 <!-- /TMPL_IF -->

+<!--This grabs all of the lists a bib record appears in -->
+<!-- TMPL_IF NAME="GetShelves" -->
+	<span class="results_summary"><span class="label">List(s) this item
appears in: </span>
+	<!-- TMPL_LOOP NAME="GetShelves" -->
+		<a href="/cgi-bin/koha/opac-shelves.pl?viewshelf=<!-- TMPL_VAR
NAME="shelfnumber" -->&sortfield=title"><!-- TMPL_VAR NAME="shelfname"
--></a>
+		<!-- TMPL_IF NAME="__LAST__" --><!-- TMPL_ELSE -->|<!-- /TMPL_IF -->
+	<!-- /TMPL_LOOP -->
+	</span>
+<!-- /TMPL_IF -->

     <!-- TMPL_IF NAME="TagsShowOnDetail" -->
         <div class="results_summary">
diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl
index 52562c7..c3b104b 100755
--- a/opac/opac-detail.pl
+++ b/opac/opac-detail.pl
@@ -38,6 +38,7 @@ use C4::External::Syndetics qw(get_syndetics_index
get_syndetics_summary get_syn
 use C4::Review;
 use C4::Serials;
 use C4::Members;
+use C4::VirtualShelves;
 use C4::XSLT;

 BEGIN {
@@ -266,6 +267,13 @@ $template->param(
     loggedincommenter   => $loggedincommenter
 );

+# Lists
+
+if (C4::Context->preference("virtualshelves") ) {
+   $template->param( 'GetShelves' => GetBibliosShelves( $biblionumber ) );
+}
+
+
 # XISBN Stuff
 if (C4::Context->preference("OPACFRBRizeEditions")==1) {
     eval {
-- 
1.5.6.5

--001636b2b477a880f004723a8769
Content-Type: application/octet-stream; 
	name="0007-Bug-1003-Added-lists-to-bib-details-pages.patch"
Content-Disposition: attachment; 
	filename="0007-Bug-1003-Added-lists-to-bib-details-pages.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fyxg682a0

RnJvbSA4MjE2NTZhZTYzYTgxMmQzYzc1OTcwNDMwY2Q2NjZhMzcxZDg5ZGZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGUgRW5nYXJkIDxuZW5nYXJkQGdtYWlsLmNvbT4KRGF0
ZTogVGh1LCAyNyBBdWcgMjAwOSAxMToyMjoxNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyAx
MDAzIEFkZGVkIGxpc3RzIHRvIGJpYiBkZXRhaWxzIHBhZ2VzCkNvbnRlbnQtVHlwZTogdGV4dC9w
bGFpbjsgY2hhcnNldD0idXRmLTgiCgpUaGlzIHBhdGNoIGFkZHMgbGlua3MgdG8gYWxsIHB1Ymxp
YyBsaXN0cyB0aGF0IGEgYmliCnJlY29yZCBiZWxvbmdzIHRvIHRvIHRoZSBkZXRhaWwgcGFnZSBp
biB0aGUgT1BBQyBhbmQKdGhlIElucmFuZXQuIElmIHRoZSBpdGVtIGlzIG5vdCBpbiBhbnkgbGlz
dHMgbm90aGluZwpzaG93cyBvbiB0aGUgZGV0YWlsIHBhZ2UuICBUaGUgc2FtZSBnb2VzIGlmIHZp
cnR1YWxzaGVsdmVzCmlzIHR1cm5lZCBPRkYuCi0tLQogQzQvVmlydHVhbFNoZWx2ZXMucG0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysrKysrKysKIGNh
dGFsb2d1ZS9kZXRhaWwucGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyAr
KysrKysrCiAuLi4vcHJvZy9lbi9tb2R1bGVzL2NhdGFsb2d1ZS9kZXRhaWwudG1wbCAgICAgICAg
ICB8ICAgMTEgKysrKysrKysrKysKIC4uLi9vcGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29wYWMt
ZGV0YWlsLnRtcGwgICAgIHwgICAgOSArKysrKysrKysKIG9wYWMvb3BhYy1kZXRhaWwucGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArKysrKysrKwogNSBmaWxlcyBjaGFu
Z2VkLCA1NCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0M0L1Zp
cnR1YWxTaGVsdmVzLnBtIGIvQzQvVmlydHVhbFNoZWx2ZXMucG0KaW5kZXggNzY3ODZlOS4uNTA0
NzU1MCAxMDA2NDQKLS0tIGEvQzQvVmlydHVhbFNoZWx2ZXMucG0KKysrIGIvQzQvVmlydHVhbFNo
ZWx2ZXMucG0KQEAgLTQ0LDYgKzQ0LDcgQEAgQkVHSU4gewogICAgICAgICAgICAgJk1vZFNoZWxm
CiAgICAgICAgICAgICAmU2hlbGZQb3NzaWJsZUFjdGlvbgogICAgICAgICAgICAgJkRlbEZyb21T
aGVsZiAmRGVsU2hlbGYKKyAgICAgICAgICAgICZHZXRCaWJsaW9zU2hlbHZlcwogCSk7CiAgICAg
ICAgIEBFWFBPUlRfT0sgPSBxdygKICAgICAgICAgICAgICZHZXRTaGVsdmVzU3VtbWFyeSAmR2V0
UmVjZW50U2hlbHZlcwpAQCAtNTMyLDYgKzUzMywyNCBAQCBzdWIgRGVsU2hlbGYgewogCXJldHVy
biAkc3RoLT5leGVjdXRlKHNoaWZ0KTsKIH0KIAorPWl0ZW0gR2V0QmliU2hlbHZlcworCitUaGlz
IGZpbmRzIGFsbCB0aGUgbGlzdHMgdGhhdCB0aGlzIGJpYiByZWNvcmQgaXMgaW4uCisKKz1jdXQK
Kworc3ViIEdldEJpYmxpb3NTaGVsdmVzIHsKKyAgbXkgKCAkYmlibGlvbnVtYmVyICkgID0gQF87
CisgIG15ICRkYmggPSBDNDo6Q29udGV4dC0+ZGJoOworICBteSAkc3RoID0gJGRiaC0+cHJlcGFy
ZSgnU0VMRUNUIHZzLnNoZWxmbmFtZSwgdnMuc2hlbGZudW1iZXIgRlJPTSB2aXJ0dWFsc2hlbHZl
cyB2cyBMRUZUIEpPSU4gdmlydHVhbHNoZWxmY29udGVudHMgdmMgT04gKHZzLnNoZWxmbnVtYmVy
PSB2Yy5zaGVsZm51bWJlcikgV0hFUkUgdnMuY2F0ZWdvcnkgIT0gMSBBTkQgdmMuYmlibGlvbnVt
YmVyPSA/Jyk7CisgICRzdGgtPmV4ZWN1dGUoICRiaWJsaW9udW1iZXIgKTsKKyAgbXkgQGxpc3Rz
OworICB3aGlsZSAobXkgJGRhdGEgPSAkc3RoLT5mZXRjaHJvd19oYXNocmVmKXsKKyAgICBwdXNo
IEBsaXN0cywkZGF0YTsKKyAgfQorICByZXR1cm4gXEBsaXN0czsKK30KKwogPWl0ZW0gUmVmcmVz
aFNoZWx2ZXNTdW1tYXJ5CiAKIAkoJHRvdGFsLCAkcHVic2hlbHZlcywgJGJhcnNoZWx2ZXMpID0g
UmVmcmVzaFNoZWx2ZXNTdW1tYXJ5KCRzZXNzaW9uSUQsICRsb2dnZWRpbnVzZXIsICRyb3dfY291
bnQpOwpkaWZmIC0tZ2l0IGEvY2F0YWxvZ3VlL2RldGFpbC5wbCBiL2NhdGFsb2d1ZS9kZXRhaWwu
cGwKaW5kZXggOWM5ZWJlOS4uNmMyYWZkYyAxMDA3NTUKLS0tIGEvY2F0YWxvZ3VlL2RldGFpbC5w
bAorKysgYi9jYXRhbG9ndWUvZGV0YWlsLnBsCkBAIC0zNSw2ICszNSw3IEBAIHVzZSBDNDo6U2Vy
aWFsczsKIHVzZSBDNDo6WElTQk4gcXcoZ2V0X3hpc2JucyBnZXRfYmlibGlvbnVtYmVyX2Zyb21f
aXNibik7CiB1c2UgQzQ6OkV4dGVybmFsOjpBbWF6b247CiB1c2UgQzQ6OlNlYXJjaDsJCSMgZW5h
YmxlZF9zdGFmZl9zZWFyY2hfdmlld3MKK3VzZSBDNDo6VmlydHVhbFNoZWx2ZXM7CiAKICMgdXNl
IFNtYXJ0OjpDb21tZW50czsKIApAQCAtMjI1LDYgKzIyNiwxMiBAQCAkdGVtcGxhdGUtPnBhcmFt
KAogCiAjICRkZWJ1ZyBhbmQgJHRlbXBsYXRlLT5wYXJhbShkZWJ1Z19kaXNwbGF5ID0+IDEpOwog
CisjIExpc3RzCisKK2lmIChDNDo6Q29udGV4dC0+cHJlZmVyZW5jZSgidmlydHVhbHNoZWx2ZXMi
KSApIHsKKyAgICR0ZW1wbGF0ZS0+cGFyYW0oICdHZXRTaGVsdmVzJyA9PiBHZXRCaWJsaW9zU2hl
bHZlcyggJGJpYmxpb251bWJlciApICk7Cit9CisKICMgWElTQk4gU3R1ZmYKIGlmIChDNDo6Q29u
dGV4dC0+cHJlZmVyZW5jZSgiRlJCUml6ZUVkaXRpb25zIik9PTEpIHsKICAgICBldmFsIHsKZGlm
ZiAtLWdpdCBhL2tvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cvZW4vbW9kdWxlcy9jYXRhbG9n
dWUvZGV0YWlsLnRtcGwgYi9rb2hhLXRtcGwvaW50cmFuZXQtdG1wbC9wcm9nL2VuL21vZHVsZXMv
Y2F0YWxvZ3VlL2RldGFpbC50bXBsCmluZGV4IGUzMzBmN2YuLjI1MWM2ZGYgMTAwNjQ0Ci0tLSBh
L2tvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cvZW4vbW9kdWxlcy9jYXRhbG9ndWUvZGV0YWls
LnRtcGwKKysrIGIva29oYS10bXBsL2ludHJhbmV0LXRtcGwvcHJvZy9lbi9tb2R1bGVzL2NhdGFs
b2d1ZS9kZXRhaWwudG1wbApAQCAtMTAwLDYgKzEwMCw3IEBAIGZ1bmN0aW9uIHZlcmlmeV9pbWFn
ZXMoKSB7CiAgICAgICAgICAgICA8IS0tIC9UTVBMX0xPT1AgLS0+PC91bD4KIDwvbGk+CiAgICAg
PCEtLSAvVE1QTF9JRiAtLT4KKyAgICAKICAgICA8IS0tIFRNUExfSUYgbmFtZT0iT3BhY1VybCIg
LS0+CiAgICAgCTxsaT48c3Ryb25nPk9QQUMgVmlldzo8L3N0cm9uZz4KICAgICAJPGEgaHJlZj0i
aHR0cDovLzwhLS0gVE1QTF9WQVIgbmFtZT0iT3BhY1VybCIgLS0+L2NnaS1iaW4va29oYS9vcGFj
LWRldGFpbC5wbD9iaWJsaW9udW1iZXI9PCEtLSBUTVBMX1ZBUiBOQU1FPSJiaWJsaW9udW1iZXIi
IC0tPiIgdGFyZ2V0PSJfYmxhbmsiPk9wZW4gaW4gbmV3IHdpbmRvdzwvYT4KQEAgLTE1MCw2ICsx
NTEsMTYgQEAgZnVuY3Rpb24gdmVyaWZ5X2ltYWdlcygpIHsKICAgICAgICAgICAgICAgICA8IS0t
IC9UTVBMX0xPT1AgLS0+CiAgICAgICAgICAgICA8L2xpPgogICAgICAgICA8IS0tIC9UTVBMX0lG
IC0tPgorICAgICAgICA8IS0tVGhpcyBncmFicyBhbGwgb2YgdGhlIGxpc3RzIGEgYmliIHJlY29y
ZCBhcHBlYXJzIGluIC0tPgorICAgICAgICA8IS0tIFRNUExfSUYgTkFNRT0iR2V0U2hlbHZlcyIg
LS0+CisJICAgICAgICA8bGk+PHN0cm9uZz5MaXN0cyB0aGF0IGluY2x1ZGUgdGhpcyB0aXRsZTog
PC9zdHJvbmc+CisJICAgICAgICA8dWw+CisJICAgICAgICA8IS0tIFRNUExfTE9PUCBOQU1FPSJH
ZXRTaGVsdmVzIiAtLT4KKwkJICAgICAgICA8bGk+PGEgaHJlZj0iL2NnaS1iaW4va29oYS92aXJ0
dWFsc2hlbHZlcy9zaGVsdmVzLnBsP3ZpZXdzaGVsZj08IS0tIFRNUExfVkFSIE5BTUU9InNoZWxm
bnVtYmVyIiAtLT4iPjwhLS0gVE1QTF9WQVIgTkFNRT0ic2hlbGZuYW1lIiAtLT48L2E+PC9saT4K
KwkgICAgICAgIDwhLS0gL1RNUExfTE9PUCAtLT4KKwkgICAgICAgIDwvdWw+CisJICAgICAgICA8
L2xpPgorICAgICAgICA8IS0tIC9UTVBMX0lGIC0tPgogICAgICAgICA8L3VsPgogPC9kaXY+CiA8
L2Rpdj4KZGlmZiAtLWdpdCBhL2tvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29w
YWMtZGV0YWlsLnRtcGwgYi9rb2hhLXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vbW9kdWxlcy9vcGFj
LWRldGFpbC50bXBsCmluZGV4IDEyYTUwMDMuLmFlNDA4MzcgMTAwNjQ0Ci0tLSBhL2tvaGEtdG1w
bC9vcGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29wYWMtZGV0YWlsLnRtcGwKKysrIGIva29oYS10
bXBsL29wYWMtdG1wbC9wcm9nL2VuL21vZHVsZXMvb3BhYy1kZXRhaWwudG1wbApAQCAtMjE2LDYg
KzIxNiwxNSBAQCBZQUhPTy51dGlsLkV2ZW50Lm9uQ29udGVudFJlYWR5KCJmdXJ0aGVybSIsIGZ1
bmN0aW9uICgpIHsKICAgICA8L3NwYW4+CiA8IS0tIC9UTVBMX0lGIC0tPiAKIAorPCEtLVRoaXMg
Z3JhYnMgYWxsIG9mIHRoZSBsaXN0cyBhIGJpYiByZWNvcmQgYXBwZWFycyBpbiAtLT4KKzwhLS0g
VE1QTF9JRiBOQU1FPSJHZXRTaGVsdmVzIiAtLT4KKwk8c3BhbiBjbGFzcz0icmVzdWx0c19zdW1t
YXJ5Ij48c3BhbiBjbGFzcz0ibGFiZWwiPkxpc3QocykgdGhpcyBpdGVtIGFwcGVhcnMgaW46IDwv
c3Bhbj4KKwk8IS0tIFRNUExfTE9PUCBOQU1FPSJHZXRTaGVsdmVzIiAtLT4KKwkJPGEgaHJlZj0i
L2NnaS1iaW4va29oYS9vcGFjLXNoZWx2ZXMucGw/dmlld3NoZWxmPTwhLS0gVE1QTF9WQVIgTkFN
RT0ic2hlbGZudW1iZXIiIC0tPiZzb3J0ZmllbGQ9dGl0bGUiPjwhLS0gVE1QTF9WQVIgTkFNRT0i
c2hlbGZuYW1lIiAtLT48L2E+IAorCQk8IS0tIFRNUExfSUYgTkFNRT0iX19MQVNUX18iIC0tPjwh
LS0gVE1QTF9FTFNFIC0tPnw8IS0tIC9UTVBMX0lGIC0tPgorCTwhLS0gL1RNUExfTE9PUCAtLT4K
Kwk8L3NwYW4+Cis8IS0tIC9UTVBMX0lGIC0tPgogCiAgICAgPCEtLSBUTVBMX0lGIE5BTUU9IlRh
Z3NTaG93T25EZXRhaWwiIC0tPgogICAgICAgICA8ZGl2IGNsYXNzPSJyZXN1bHRzX3N1bW1hcnki
PgpkaWZmIC0tZ2l0IGEvb3BhYy9vcGFjLWRldGFpbC5wbCBiL29wYWMvb3BhYy1kZXRhaWwucGwK
aW5kZXggNTI1NjJjNy4uYzNiMTA0YiAxMDA3NTUKLS0tIGEvb3BhYy9vcGFjLWRldGFpbC5wbAor
KysgYi9vcGFjL29wYWMtZGV0YWlsLnBsCkBAIC0zOCw2ICszOCw3IEBAIHVzZSBDNDo6RXh0ZXJu
YWw6OlN5bmRldGljcyBxdyhnZXRfc3luZGV0aWNzX2luZGV4IGdldF9zeW5kZXRpY3Nfc3VtbWFy
eSBnZXRfc3luCiB1c2UgQzQ6OlJldmlldzsKIHVzZSBDNDo6U2VyaWFsczsKIHVzZSBDNDo6TWVt
YmVyczsKK3VzZSBDNDo6VmlydHVhbFNoZWx2ZXM7CiB1c2UgQzQ6OlhTTFQ7CiAKIEJFR0lOIHsK
QEAgLTI2Niw2ICsyNjcsMTMgQEAgJHRlbXBsYXRlLT5wYXJhbSgKICAgICBsb2dnZWRpbmNvbW1l
bnRlciAgID0+ICRsb2dnZWRpbmNvbW1lbnRlcgogKTsKIAorIyBMaXN0cworCitpZiAoQzQ6OkNv
bnRleHQtPnByZWZlcmVuY2UoInZpcnR1YWxzaGVsdmVzIikgKSB7CisgICAkdGVtcGxhdGUtPnBh
cmFtKCAnR2V0U2hlbHZlcycgPT4gR2V0QmlibGlvc1NoZWx2ZXMoICRiaWJsaW9udW1iZXIgKSAp
OworfQorCisKICMgWElTQk4gU3R1ZmYKIGlmIChDNDo6Q29udGV4dC0+cHJlZmVyZW5jZSgiT1BB
Q0ZSQlJpemVFZGl0aW9ucyIpPT0xKSB7CiAgICAgZXZhbCB7Ci0tIAoxLjUuNi41Cgo=
--001636b2b477a880f004723a8769--


More information about the Koha-patches mailing list