[Koha-patches] [PATCH] Analytical records: ability to create analytical records from items, to view linked analytics, and prevent deletion of items that have linked analytics
savitra.sirohi at osslabs.biz
savitra.sirohi at osslabs.biz
Thu Dec 9 15:45:28 CET 2010
From: Savitra Sirohi <savitra.sirohi at osslabs.biz>
---
C4/Items.pm | 26 ++++++++++++++++++++
catalogue/detail.pl | 18 ++++++++++++-
cataloguing/additem.pl | 7 +++++
.../prog/en/includes/biblio-view-menu.inc | 2 +
.../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 1 +
.../prog/en/modules/cataloguing/additem.tmpl | 2 +-
6 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/C4/Items.pm b/C4/Items.pm
index a908356..937762f 100644
--- a/C4/Items.pm
+++ b/C4/Items.pm
@@ -74,6 +74,8 @@ BEGIN {
MoveItemFromBiblio
GetLatestAcquisitions
CartToShelf
+
+ GetAnalyticsCount
);
}
@@ -2357,4 +2359,28 @@ sub _parse_unlinked_item_subfields_from_xml {
return $unlinked_subfields;
}
+=head2 GetAnalyticsCount
+
+ $count= &GetAnalyticsCount($itemnumber)
+
+counts Usage of itemnumber in Analytical bibliorecords.
+
+=cut
+
+sub GetAnalyticsCount {
+ my ($itemnumber) = @_;
+ if (C4::Context->preference('NoZebra')) {
+ # Read the index Koha-Auth-Number for this authid and count the lines
+ my $result = C4::Search::NZanalyse("hi=$itemnumber");
+ my @tab = split /;/,$result;
+ return scalar @tab;
+ } else {
+ ### ZOOM search here
+ my $query;
+ $query= "hi=".$itemnumber;
+ my ($err,$res,$result) = C4::Search::SimpleSearch($query,0,10);
+ return ($result);
+ }
+}
+
1;
diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index 272e32e..3e84ed9 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -41,9 +41,13 @@ use C4::XSLT;
# use Smart::Comments;
my $query = CGI->new();
+
+my $analyze = $query->param('analyze');
+
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
- template_name => "catalogue/detail.tmpl",
+ template_name => ($analyze? 'catalogue/analyze.tmpl':
+ 'catalogue/detail.tmpl'),
query => $query,
type => "intranet",
authnotrequired => 0,
@@ -145,6 +149,8 @@ my (@itemloop, %itemfields);
my $norequests = 1;
my $authvalcode_items_itemlost = GetAuthValCode('items.itemlost',$fw);
my $authvalcode_items_damaged = GetAuthValCode('items.damaged', $fw);
+
+my $analytics_flag;
foreach my $item (@items) {
# can place holds defaults to yes
@@ -212,6 +218,13 @@ foreach my $item (@items) {
if ($item->{biblionumber} ne $biblionumber){
$item->{hostbiblionumber} = $item->{biblionumber};
}
+
+ #count if item is used in analytical bibliorecords
+ my $countanalytics= GetAnalyticsCount($item->{itemnumber});
+ if ($countanalytics > 0){
+ $analytics_flag=1;
+ $item->{countanalytics} = $countanalytics;
+ }
push @itemloop, $item;
}
@@ -233,6 +246,7 @@ $template->param(
itemdata_itemnotes => $itemfields{itemnotes},
z3950_search_params => C4::Search::z3950_search_args($dat),
hostrecords => $hostrecords,
+ analytics_flag => $analytics_flag,
C4::Search::enabled_staff_search_views,
);
@@ -247,7 +261,7 @@ foreach ( keys %{$dat} ) {
$template->param(
itemloop => \@itemloop,
biblionumber => $biblionumber,
- detailview => 1,
+ ($analyze? 'analyze':'detailview') =>1,
subscriptions => \@subs,
subscriptionsnumber => $subscriptionsnumber,
subscriptiontitle => $dat->{title},
diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl
index 816e884..13b59d1 100755
--- a/cataloguing/additem.pl
+++ b/cataloguing/additem.pl
@@ -372,6 +372,12 @@ foreach my $field (@fields) {
last;
}
}
+
+ my $countanalytics=GetAnalyticsCount($this_row{itemnumber});
+ if ($countanalytics > 0){
+ $this_row{countanalytics} = $countanalytics;
+ }
+
}
if (%this_row) {
push(@big_array, \%this_row);
@@ -394,6 +400,7 @@ for my $row ( @big_array ) {
$row_data{'nomod'} = $row->{'nomod'};
$row_data{'hostitemflag'} = $row->{'hostitemflag'};
$row_data{'hostbiblionumber'} = $row->{'hostbiblionumber'};
+ $row_data{'countanalytics'} = $row->{'countanalytics'};
push(@item_value_loop,\%row_data);
}
foreach my $subfield_code (sort keys(%witness)) {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
index 7a9ed64..4fc22db 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
@@ -23,6 +23,8 @@
<!-- TMPL_IF NAME="CAN_user_reserveforothers" -->
<!-- TMPL_IF NAME="holdsview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">Holds</a></li>
<!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="analyze" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" -->&analyze=1<!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" -->&analyze=1<!-- /TMPL_IF -->">Analytics</a></li>
+ <!-- /TMPL_IF -->
<!-- TMPL_IF name="subscriptionsnumber" --><li><a href="/cgi-bin/koha/serials/serials-home.pl?searched=1&title_filter=<!-- TMPL_VAR NAME="subscriptiontitle" -->">Subscription(s)</a></li><!-- /TMPL_IF -->
</ul>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
index f3776a6..a4388c9 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
@@ -79,6 +79,7 @@ function confirm_items_deletion() {
{text: _("New Record"), url: "/cgi-bin/koha/cataloguing/addbiblio.pl" },
{text: _("New Item"), url: "/cgi-bin/koha/cataloguing/additem.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->#additema" },
{text: _("New Subscription"), url: "/cgi-bin/koha/serials/subscription-add.pl?biblionumber_for_new_subscription=<!-- TMPL_VAR NAME="biblionumber" -->"},
+ {text: _("Analyze items"), url: "/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&analyze=1" },
];
var editmenu = [
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
index 2145ddb..68bd084 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tmpl
@@ -207,7 +207,7 @@ function set_to_today(id, force) {
<!-- TMPL_LOOP NAME="item_loop" -->
<tr id="row<!-- TMPL_VAR NAME="itemnumber" -->">
<!-- TMPL_IF Name="nomod"--> <td colspan="2"> </td><!--TMPL_ELSIF Name ="hostitemflag"--><td><a href="additem.pl?op=edititem&biblionumber=<!-- TMPL_VAR NAME="hostbiblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit in Host</a></td><td><a href="additem.pl?op=delinkitem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&hostitemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">Delink</a></td><!--TMPL_ELSE--><td><a href="additem.pl?op=edititem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->#edititem">Edit</a></td>
- <td><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->" onclick="confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,<!-- TMPL_VAR NAME="itemnumber" -->); return false;">Delete</a></td><!--/TMPL_IF-->
+ <td><!-- TMPL_IF NAME="countanalytics" --><a href="/cgi-bin/koha/catalogue/search.pl?idx=hi&q=<!-- TMPL_VAR NAME="itemnumber"-->">view analytics</a><!-- TMPL_ELSE--><a class="delete" href="/cgi-bin/koha/cataloguing/additem.pl?op=delitem&biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->" onclick="confirm_deletion(<!-- TMPL_VAR NAME="biblionumber" -->,<!-- TMPL_VAR NAME="itemnumber" -->); return false;">Delete</a><!-- /TMPL_IF --></td><!--/TMPL_IF-->
<!-- TMPL_LOOP NAME="item_value" -->
<td><!-- TMPL_VAR ESCAPE=HTML NAME="field" --></td>
<!-- /TMPL_LOOP -->
--
1.5.4.5
More information about the Koha-patches
mailing list