[Koha-patches] [PATCH] [SIGNED-OFF] Bug 4222 - allow nonpublicnote to be a mapped DB column

Nicole Engard nengard at gmail.com
Thu Jul 28 13:46:06 CEST 2011


Oops  - ignore this. Updated ticket with one small problem.

Nicole

On Wed, Jul 27, 2011 at 12:40 AM, Nicole C. Engard
<nengard at bywatersolutions.com> wrote:
> From: Srdjan Jankovic <srdjan at catalyst.net.nz>
>
> This means that it's possible (and easy) to put non-public notes
> (usually 952$x) on a template, same as public notes. It creates a
> mapping between the 952$x field and the new database column.
>
> Note that when this is applied, it will only work on newly saved records.
>
> It is possible this will need to be altered to allow for UNIMARC etc. if
> they use 952 differently.
>
> Signed-off-by: Nicole C. Engard <nengard at bywatersolutions.com>
> ---
>  catalogue/detail.pl                                |   10 +++++++++-
>  catalogue/moredetail.pl                            |    1 +
>  circ/returns.pl                                    |    1 +
>  installer/data/mysql/kohastructure.sql             |    2 ++
>  installer/data/mysql/updatedatabase.pl             |    8 ++++++++
>  .../prog/en/modules/catalogue/detail.tt            |    4 +++-
>  .../prog/en/modules/catalogue/moredetail.tt        |    1 +
>  .../prog/en/modules/circ/circulation.tt            |    8 ++++----
>  .../intranet-tmpl/prog/en/modules/circ/returns.tt  |    1 +
>  9 files changed, 30 insertions(+), 6 deletions(-)
>
> diff --git a/catalogue/detail.pl b/catalogue/detail.pl
> index 8738737..f8feec5 100755
> --- a/catalogue/detail.pl
> +++ b/catalogue/detail.pl
> @@ -223,6 +223,13 @@ foreach my $item (@items) {
>         $item->{waitingdate} = format_date($wait_hashref->{waitingdate});
>     }
>
> +    foreach my $f (qw( itemnotes nonpublicnote )) {
> +        if ($item->{$f}) {
> +            $item->{$f} =~ s|\n|<br />|g;
> +            $itemfields{$f} = 1;
> +        }
> +    }
> +
>     push @itemloop, $item;
>  }
>
> @@ -240,7 +247,8 @@ $template->param(
>        itemdata_uri        => $itemfields{uri},
>        itemdata_copynumber => $itemfields{copynumber},
>        volinfo                         => $itemfields{enumchron},
> -    itemdata_itemnotes  => $itemfields{itemnotes},
> +       itemdata_itemnotes  => $itemfields{itemnotes},
> +       itemdata_nonpublicnote  => $itemfields{nonpublicnote},
>        z3950_search_params     => C4::Search::z3950_search_args($dat),
>     holdcount           => $holdcount,
>        C4::Search::enabled_staff_search_views,
> diff --git a/catalogue/moredetail.pl b/catalogue/moredetail.pl
> index d848188..364c26c 100755
> --- a/catalogue/moredetail.pl
> +++ b/catalogue/moredetail.pl
> @@ -145,6 +145,7 @@ foreach my $item (@items){
>     } else {
>         $item->{'issue'}= 0;
>     }
> +    $item->{nonpublicnote} =~ s|\n|<br />|g if $item->{nonpublicnote};
>  }
>  $template->param(count => $data->{'count'},
>        subscriptionsnumber => $subscriptionsnumber,
> diff --git a/circ/returns.pl b/circ/returns.pl
> index bb5230b..afaf5b2 100755
> --- a/circ/returns.pl
> +++ b/circ/returns.pl
> @@ -573,6 +573,7 @@ foreach ( sort { $a <=> $b } keys %returneditems ) {
>         $ri{itemcallnumber}   = $biblio->{'itemcallnumber'};
>         $ri{itemtype}         = $biblio->{'itemtype'};
>         $ri{itemnote}         = $biblio->{'itemnotes'};
> +        $ri{nonpublicnote}    = $biblio->{'nonpublicnote'};
>         $ri{ccode}            = $biblio->{'ccode'};
>         $ri{itemnumber}       = $biblio->{'itemnumber'};
>         $ri{barcode}          = $bar_code;
> diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
> index e3c6f42..62bbf51 100644
> --- a/installer/data/mysql/kohastructure.sql
> +++ b/installer/data/mysql/kohastructure.sql
> @@ -761,6 +761,7 @@ CREATE TABLE `deleteditems` (
>   `enumchron` text default NULL,
>   `copynumber` varchar(32) default NULL,
>   `stocknumber` varchar(32) default NULL,
> +  `nonpublicnote` mediumtext default NULL,
>   `marc` longblob,
>   PRIMARY KEY  (`itemnumber`),
>   KEY `delitembarcodeidx` (`barcode`),
> @@ -1028,6 +1029,7 @@ CREATE TABLE `items` (
>   `enumchron` text default NULL,
>   `copynumber` varchar(32) default NULL,
>   `stocknumber` varchar(32) default NULL,
> +  `nonpublicnote` mediumtext default NULL,
>   PRIMARY KEY  (`itemnumber`),
>   UNIQUE KEY `itembarcodeidx` (`barcode`),
>   KEY `itemstocknumberidx` (`stocknumber`),
> diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
> index 9cbc8db..8b65080 100755
> --- a/installer/data/mysql/updatedatabase.pl
> +++ b/installer/data/mysql/updatedatabase.pl
> @@ -4370,6 +4370,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
>     SetVersion($DBversion);
>  }
>
> +$DBversion = '3.05.00.XXX';
> +if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
> +    $dbh->do("ALTER TABLE items ADD COLUMN nonpublicnote MEDIUMTEXT");
> +    $dbh->do("ALTER TABLE deleteditems ADD COLUMN nonpublicnote MEDIUMTEXT");
> +    $dbh->do("UPDATE marc_subfield_structure SET kohafield='items.nonpublicnote' WHERE (kohafield IS NULL OR kohafield = '') AND tagfield='952' AND tagsubfield='x'");
> +    print "Upgrade to $DBversion done (Make nonpublicnote easier to use)\n";
> +}
> +
>  =head1 FUNCTIONS
>
>  =head2 DropAllForeignKeys($table)
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
> index 2ea7091..ec1ba1d 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
> @@ -247,7 +247,8 @@ function verify_images() {
>                 [% IF ( itemdata_uri ) %]<th>url</th>[% END %]
>                 [% IF ( itemdata_copynumber ) %]<th>Copy No.</th>[% END %]
>                 [% IF ( itemdata_itemnotes ) %]<th>Public notes</th>[% END %]
> -               [% IF ( SpineLabelShowPrintOnBibDetails ) %]<th>Spine Label</th>[% END %]
> +                [% IF itemdata_nonpublicnote %]<th>Non-public Note</th>[% END %]
> +                [% IF ( SpineLabelShowPrintOnBibDetails ) %]<th>Spine Label</th>[% END %]
>             </tr>
>             [% FOREACH itemloo IN itemloop %]
>                 <tr>
> @@ -370,6 +371,7 @@ function verify_images() {
>                                        <td class="copynumber">[% itemloo.copynumber %]</td>
>                                [% END %]
>                 [% IF ( itemdata_itemnotes ) %]<td><div class="itemnotes">[% itemloo.itemnotes %]</div></td>[% END %]
> +                [% IF itemdata_nonpublicnote %]<td class="nonpublicnote">[% itemdata_nonpublicnote %]</td>[% END %]
>                 [% IF ( itemloo.type ) %]
>                     <td><a href="/cgi-bin/koha/maint/catmaintain.pl?type=fixitemtype&amp;bi=[% itemloo.biblioitemnumber %]&amp;item=[% itemloo.itemtype %]">Fix Itemtype</a></td>
>                 [% END %]
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt
> index 86c8a3f..db251fd 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt
> @@ -174,6 +174,7 @@
>                [% IF ( ITEM_DAT.card2 ) %]<li><span class="label">Previous Borrower:</span> <a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% ITEM_DAT.borrower2 %]">[% ITEM_DAT.card2 %]</a>&nbsp;</li>[% END %]
>                 <li><span class="label">Paid for?:</span> [% ITEM_DAT.paidfor %]&nbsp;</li>
>             <li><span class="label">Serial enumeration:</span> [% ITEM_DAT.enumchron %]&nbsp;</li>
> +            <li><span class="label">Non-public Note:</span> [% ITEM_DAT.nonpublicnote %]&nbsp;</li>
>             <li><span class="label">Public Note:</span>
>                 [% IF ( CAN_user_editcatalogue_edit_items ) %]
>               <form class="inline" action="updateitem.pl" method="post"><input type="hidden" name="biblionumber" value="[% ITEM_DAT.biblionumber %]" />
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
> index 9dcb16d..2776948 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
> @@ -701,7 +701,7 @@ No patron matched <span class="ex">[% message %]</span>
>         [% IF ( todayissue.od ) %]<td class="od">[% ELSE %]<td>[% END %]
>         [% todayissue.dd %]
>         </td>
> -        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% todayissue.biblionumber %]&amp;type=intra"><strong>[% todayissue.title |html %]</strong></a>[% IF ( todayissue.author ) %], by [% todayissue.author %][% END %][% IF ( todayissue.itemnotes ) %]- <span class="circ-hlt">[% todayissue.itemnotes %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% todayissue.biblionumber %]&amp;itemnumber=[% todayissue.itemnumber %]#item[% todayissue.itemnumber %]">[% todayissue.barcode %]</a></td>
> +        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% todayissue.biblionumber %]&amp;type=intra"><strong>[% todayissue.title |html %]</strong></a>[% IF ( todayissue.author ) %], by [% todayissue.author %][% END %][% IF ( todayissue.itemnotes ) %]- <span class="circ-hlt">[% todayissue.itemnotes %]</span>[% END %][% IF ( todayissue.nonpublicnote ) %]- <span class="circ-hlt">[% todayissue.nonpublicnote %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% todayissue.biblionumber %]&amp;itemnumber=[% todayissue.itemnumber %]#item[% todayissue.itemnumber %]">[% todayissue.barcode %]</a></td>
>         <td>[% UNLESS ( noItemTypeImages ) %] [% IF ( todayissue.itemtype_image ) %]<img src="[% todayissue.itemtype_image %]" alt="" />[% END %][% END %][% todayissue.itemtype %]</td>
>         <td>[% todayissue.checkoutdate %]</td>
>         [% IF ( todayissue.multiple_borrowers ) %]<td>[% todayissue.borrowername %]</td>[% END %]
> @@ -773,7 +773,7 @@ No patron matched <span class="ex">[% message %]</span>
>         [% IF ( previssue.od ) %]<td class="od">[% ELSE %]<td>[% END %]
>         [% previssue.dd %]
>         </td>
> -        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% previssue.biblionumber %]&amp;type=intra"><strong>[% previssue.title |html %]</strong></a>[% IF ( previssue.author ) %], by [% previssue.author %][% END %] [% IF ( previssue.itemnotes ) %]- [% previssue.itemnotes %][% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% previssue.biblionumber %]&amp;itemnumber=[% previssue.itemnumber %]#item[% previssue.itemnumber %]">[% previssue.barcode %]</a></td>
> +        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% previssue.biblionumber %]&amp;type=intra"><strong>[% previssue.title |html %]</strong></a>[% IF ( previssue.author ) %], by [% previssue.author %][% END %] [% IF ( previssue.itemnotes ) %]- [% previssue.itemnotes %][% END %][% IF ( previssue.nonpublicnote ) %]- [% previssue.nonpublicnote %][% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% previssue.biblionumber %]&amp;itemnumber=[% previssue.itemnumber %]#item[% previssue.itemnumber %]">[% previssue.barcode %]</a></td>
>         <td>
>             [% previssue.itemtype %]
>         </td>
> @@ -879,7 +879,7 @@ No patron matched <span class="ex">[% message %]</span>
>     [% END %]
>         [% IF ( relissue.overdue ) %]<td class="od">[% ELSE %]<td>[% END %]
>             [% relissue.dd %]</td>
> -        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% relissue.biblionumber %]&amp;type=intra"><strong>[% relissue.title |html %]</strong></a>[% IF ( relissue.author ) %], by [% relissue.author %][% END %][% IF ( relissue.itemnotes ) %]- <span class="circ-hlt">[% relissue.itemnotes %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% relissue.biblionumber %]&amp;itemnumber=[% relissue.itemnumber %]#item[% relissue.itemnumber %]">[% relissue.barcode %]</a></td>
> +        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% relissue.biblionumber %]&amp;type=intra"><strong>[% relissue.title |html %]</strong></a>[% IF ( relissue.author ) %], by [% relissue.author %][% END %][% IF ( relissue.itemnotes ) %]- <span class="circ-hlt">[% relissue.itemnotes %]</span>[% END %][% IF ( relissue.nonpublicnote ) %]- <span class="circ-hlt">[% relissue.nonpublicnote %]</span>[% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% relissue.biblionumber %]&amp;itemnumber=[% relissue.itemnumber %]#item[% relissue.itemnumber %]">[% relissue.barcode %]</a></td>
>         <td>[% UNLESS ( noItemTypeImages ) %] [% IF ( relissue.itemtype_image ) %]<img src="[% relissue.itemtype_image %]" alt="" />[% END %][% END %][% relissue.itemtype %]</td>
>         <td>[% relissue.displaydate %]</td>
>         <td>[% relissue.itemcallnumber %]</td>
> @@ -899,7 +899,7 @@ No patron matched <span class="ex">[% message %]</span>
>         [% IF ( relprevissue.overdue ) %]<td class="od">[% ELSE %]<td>[% END %]
>         [% relprevissue.dd %]
>         </td>
> -        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% relprevissue.biblionumber %]&amp;type=intra"><strong>[% relprevissue.title |html %]</strong></a>[% IF ( relprevissue.author ) %], by [% relprevissue.author %][% END %] [% IF ( relprevissue.itemnotes ) %]- [% relprevissue.itemnotes %][% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% relprevissue.biblionumber %]&amp;itemnumber=[% relprevissue.itemnumber %]#item[% relprevissue.itemnumber %]">[% relprevissue.barcode %]</a></td>
> +        <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% relprevissue.biblionumber %]&amp;type=intra"><strong>[% relprevissue.title |html %]</strong></a>[% IF ( relprevissue.author ) %], by [% relprevissue.author %][% END %] [% IF ( relprevissue.itemnotes ) %]- [% relprevissue.itemnotes %][% END %][% IF ( relprevissue.nonpublicnote ) %] - [% relprevissue.nonpublicnote %][% END %] <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% relprevissue.biblionumber %]&amp;itemnumber=[% relprevissue.itemnumber %]#item[% relprevissue.itemnumber %]">[% relprevissue.barcode %]</a></td>
>         <td>[% UNLESS noItemTypeImages %][% IF relprevissue.itemtype_image %]<img src="[% relprevissue.itemtype_image %]" alt="" />[% END %][% END %][% relprevissue.itemtype %]</td>
>         <td>[% relprevissue.displaydate %]</td>
>         <td>[% relprevissue.itemcallnumber %]</td>
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
> index c02be49..3cab835 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
> @@ -422,6 +422,7 @@ function Dopop(link) {
>             [% ELSE %]Not checked out[% END %]</td>
>             <td>[% IF ( riloo.bornote ) %]<span class="circ-hlt">[% riloo.bornote %]<br /></span>[% END %]
>             [% IF ( riloo.itemnote ) %]<span class="circ-hlt">[% riloo.itemnote %]</span>[% END %]
> +            [% IF ( riloo.nonpublicnote ) %]<span class="circ-hlt">[% riloo.nonpublicnote %]</span>[% END %]
>             </td>
>            </tr>
>         [% END %]
> --
> 1.7.2.3
>
> _______________________________________________
> Koha-patches mailing list
> Koha-patches at lists.koha-community.org
> http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
> website : http://www.koha-community.org/
> git : http://git.koha-community.org/
> bugs : http://bugs.koha-community.org/
>


More information about the Koha-patches mailing list