Bugzilla – Attachment 17986 Details for
Bug 10200
Add more Independent Branches options
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10200 - Add more Independent Branches options - Part 3 - IndependentBranchesMarcEditing
Bug-10200---Add-more-Independent-Branches-options-.patch (text/plain), 11.44 KB, created by
Kyle M Hall
on 2013-05-07 14:39:03 UTC
(
hide
)
Description:
Bug 10200 - Add more Independent Branches options - Part 3 - IndependentBranchesMarcEditing
Filename:
MIME Type:
Creator:
Kyle M Hall
Created:
2013-05-07 14:39:03 UTC
Size:
11.44 KB
patch
obsolete
>From 5e96b8cb4273ae84d2ffc0a2961929027e69d0fc Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Mon, 6 May 2013 13:51:27 -0400 >Subject: [PATCH] Bug 10200 - Add more Independent Branches options - Part 3 - IndependentBranchesMarcEditing > >Adds a new system preference IndependentBranchesMarcEditing. If this new >syspref is enabled, a librarian can only edit or delete a bib record if >his or her logged in branch code matches the branchcode in >biblio.branchcode. This feature does not affect the ability to edit or >delete items, as that functionality is determined by >IndependantBranches. > >Test Plan: > 1) Apply patch > 2) Run updatedatabase.pl > 3) Map a nonrepeatable field/subfield to biblio.branchcode > Pro-tip: Use the authorised value 'branches' to get a pulldown of > libraries instead of entering the branchcode manually. > 4) Edit a record, and add a branchcode. > 5) Log in as a non-superlibrarian with cataloging priveleges > 6) Change the logged in branch to a branch other than the one you > entered in the record. > 7) You should note the 'edit' pulldown for the record is missing the > "Edit record" and "Delete record" options. > 8) Switch the logged in branch to match the branchcode of the record. > 9) You should now see the edit and delete options for that record. >10) Attempt to edit a record with no branchcode defined, you should be > able to. >--- > C4/Auth.pm | 1 + > C4/Biblio.pm | 21 ++++++++++++---- > catalogue/detail.pl | 2 + > installer/data/mysql/kohastructure.sql | 2 + > installer/data/mysql/updatedatabase.pl | 25 ++++++++++++++++++++ > .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 21 ++++++++++++---- > .../prog/en/modules/admin/preferences/admin.pref | 7 +++++ > 7 files changed, 68 insertions(+), 11 deletions(-) > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index ca061b5..08d9701 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -186,6 +186,7 @@ sub get_template_and_user { > # to create the template's parameters that will indicate > # which menus the user can access. > if ( $flags && $flags->{superlibrarian}==1 ) { >+ $template->param( CAN_user_superlibrarian => 1 ); > $template->param( CAN_user_circulate => 1 ); > $template->param( CAN_user_catalogue => 1 ); > $template->param( CAN_user_parameters => 1 ); >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index 7af8619..d390fff 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -2955,12 +2955,16 @@ sub _koha_add_biblio { > seriestitle = ?, > copyrightdate = ?, > datecreated=NOW(), >- abstract = ? >+ abstract = ?, >+ branchcode = ? > "; > my $sth = $dbh->prepare($query); > $sth->execute( >- $frameworkcode, $biblio->{'author'}, $biblio->{'title'}, $biblio->{'unititle'}, $biblio->{'notes'}, >- $biblio->{'serial'}, $biblio->{'seriestitle'}, $biblio->{'copyrightdate'}, $biblio->{'abstract'} >+ $frameworkcode, $biblio->{'author'}, >+ $biblio->{'title'}, $biblio->{'unititle'}, >+ $biblio->{'notes'}, $biblio->{'serial'}, >+ $biblio->{'seriestitle'}, $biblio->{'copyrightdate'}, >+ $biblio->{'abstract'}, $biblio->{'branchcode'}, > ); > > my $biblionumber = $dbh->{'mysql_insertid'}; >@@ -2997,15 +3001,20 @@ sub _koha_modify_biblio { > serial = ?, > seriestitle = ?, > copyrightdate = ?, >- abstract = ? >+ abstract = ?, >+ branchcode = ? > WHERE biblionumber = ? > " > ; > my $sth = $dbh->prepare($query); > > $sth->execute( >- $frameworkcode, $biblio->{'author'}, $biblio->{'title'}, $biblio->{'unititle'}, $biblio->{'notes'}, >- $biblio->{'serial'}, $biblio->{'seriestitle'}, $biblio->{'copyrightdate'}, $biblio->{'abstract'}, $biblio->{'biblionumber'} >+ $frameworkcode, $biblio->{'author'}, >+ $biblio->{'title'}, $biblio->{'unititle'}, >+ $biblio->{'notes'}, $biblio->{'serial'}, >+ $biblio->{'seriestitle'}, $biblio->{'copyrightdate'}, >+ $biblio->{'abstract'}, $biblio->{'branchcode'}, >+ $biblio->{'biblionumber'} > ) if $biblio->{'biblionumber'}; > > if ( $dbh->errstr || !$biblio->{'biblionumber'} ) { >diff --git a/catalogue/detail.pl b/catalogue/detail.pl >index a5b32c6..dff07a4 100755 >--- a/catalogue/detail.pl >+++ b/catalogue/detail.pl >@@ -61,6 +61,8 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( > my $biblionumber = $query->param('biblionumber'); > my $record = GetMarcBiblio($biblionumber); > >+$template->param( biblio => GetBiblio( $biblionumber ) ); >+ > if ( not defined $record ) { > # biblionumber invalid -> report and exit > $template->param( unknownbiblionumber => 1, >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 34a4cec..f5e7f4c 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -126,6 +126,7 @@ CREATE TABLE `biblio` ( -- table that stores bibliographic information > `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- date and time this record was last touched > `datecreated` DATE NOT NULL, -- the date this record was added to Koha > `abstract` mediumtext, -- summary from the MARC record (520$a in MARC21) >+ `branchcode` VARCHAR( 10 ) NULL DEFAULT NULL, -- branchcode for the opationl 'owner' of this record. > PRIMARY KEY (`biblionumber`), > KEY `blbnoidx` (`biblionumber`) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8; >@@ -612,6 +613,7 @@ CREATE TABLE `deletedbiblio` ( -- stores information about bibliographic records > `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- date and time this record was last touched > `datecreated` DATE NOT NULL, -- the date this record was added to Koha > `abstract` mediumtext, -- summary from the MARC record (520$a in MARC21) >+ `branchcode` VARCHAR( 10 ) NULL DEFAULT NULL, -- branchcode for the opationl 'owner' of this record. > PRIMARY KEY (`biblionumber`), > KEY `blbnoidx` (`biblionumber`) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8; >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 7d61069..963db1d 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6818,6 +6818,31 @@ if ( CheckVersion($DBversion) ) { > 'YesNo' > ) > }); >+ >+ $dbh->do(q{ >+ INSERT INTO systempreferences ( >+ variable, >+ value, >+ options, >+ explanation, >+ type >+ ) VALUES ( >+ 'IndependentBranchesMarcEditing', >+ '0', >+ '', >+ "If on, this preference disallows the editing of a bibliographic record unless the logged in library's branchcode matchs the branchcode stored in biblio.branchcode.", >+ 'YesNo' >+ ) >+ }); >+ >+ $dbh->do(q{ >+ ALTER TABLE biblio ADD branchcode VARCHAR( 10 ) NULL DEFAULT NULL >+ }); >+ >+ $dbh->do(q{ >+ ALTER TABLE deletedbiblio ADD branchcode VARCHAR( 10 ) NULL DEFAULT NULL >+ }); >+ > SetVersion ($DBversion); > } > >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 f669d2c..729f81a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >@@ -1,3 +1,5 @@ >+[% USE Koha %] >+ > <script type="text/javascript"> > //<![CDATA[ > [% IF ( CAN_user_editcatalogue_edit_catalogue ) %] >@@ -137,7 +139,7 @@ CAN_user_serials_create_subscription ) %] > <div class="btn-group"> > <button class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="icon-pencil"></i> Edit <span class="caret"></span></button> > <ul class="dropdown-menu"> >- [% IF ( CAN_user_editcatalogue_edit_catalogue ) %] >+ [% IF ( CAN_user_editcatalogue_edit_catalogue ) && ( !biblio.branchcode || CAN_user_superlibrarian || ( !Koha.Preference( 'IndependentBranchesMarcEditing' ) || ( Koha.Preference( 'IndependentBranchesMarcEditing' ) && LoginBranchcode == biblio.branchcode ) ) ) %] > <li><a id="editbiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]&frameworkcode=[% current_framework %]&op=">Edit record</a></li> > [% END %] > >@@ -155,11 +157,20 @@ CAN_user_serials_create_subscription ) %] > [% IF ( LocalCoverImages || OPACLocalCoverImages) %][% IF ( CAN_user_tools_upload_local_cover_images ) %]<li><a href="/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&filetype=image">Upload image</a>[% END %][% END %] > > [% IF ( CAN_user_editcatalogue_edit_catalogue ) %] >- <li><a id="duplicatebiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]&frameworkcode=[% current_framework %]&op=duplicate">Edit as new (duplicate)</a></li> >- <li><a href="#" id="z3950copy">Replace record via Z39.50</a></li> >+ <li><a id="duplicatebiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% biblionumber %]&frameworkcode=[% current_framework %]&op=duplicate">Edit as new (duplicate)</a></li> >+ <li><a href="#" id="z3950copy">Replace record via Z39.50</a></li> >+ >+ >+ [% IF ( !biblio.branchcode || CAN_user_superlibrarian || ( !Koha.Preference( 'IndependentBranchesMarcEditing' ) || ( Koha.Preference( 'IndependentBranchesMarcEditing' ) && LoginBranchcode == biblio.branchcode ) ) ) %] >+ [% IF ( count ) %] >+ <li class="disabled"> >+ [% ELSE %] >+ <li> >+ [% END %] > >- [% IF ( count ) %]<li class="disabled">[% ELSE %]<li>[% END %] >- <a id="deletebiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&biblionumber=[% biblionumber %]">Delete record</a></li> >+ <a id="deletebiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl?op=delete&biblionumber=[% biblionumber %]">Delete record</a> >+ </li> >+ [% END %] > [% END %] > > [% IF ( CAN_user_editcatalogue_edit_items ) %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref >index 5435daf..dd0195b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/admin.pref >@@ -84,6 +84,13 @@ Administration: > yes: Prevent > no: "Don't prevent" > - OPAC search results from containing records that do not have item's owned by the library defined by the OPAC's branch via the URL. >+ - >+ - pref: IndependentBranchesMarcEditing >+ default: 0 >+ choices: >+ yes: Prevent >+ no: "Don't prevent" >+ - the logged in library from editing bibliographic records of other libraries. The owning library is defined by the branchcode in biblio.branchcode which should be mapped to a MARC field ( 951$o ). > CAS Authentication: > - > - pref: casAuthentication >-- >1.7.2.5
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 10200
:
17960
|
17961
|
17963
|
17981
|
17982
|
17983
|
17984
|
17985
| 17986 |
17987