Bugzilla – Attachment 16675 Details for
Bug 9163
Cataloguing validation workflow
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch rebased
0001-BUG-9163-Cataloguing-validation-workflow.patch (text/plain), 10.50 KB, created by
Christophe Croullebois
on 2013-03-21 16:19:12 UTC
(
hide
)
Description:
patch rebased
Filename:
MIME Type:
Creator:
Christophe Croullebois
Created:
2013-03-21 16:19:12 UTC
Size:
10.50 KB
patch
obsolete
>From e9471fe5a72090305b362bd106992b24d84561ed Mon Sep 17 00:00:00 2001 >From: Vitor FERNANDES <vfernandes@keep.pt> >Date: Wed, 28 Nov 2012 15:50:44 +0000 >Subject: [PATCH 1/1] BUG 9163 - Cataloguing validation workflow > >Added 3 systems preferences instead of one: > >- 1 to use/not use the validation workflow >- 1 to set the validation framework code >- 1 to set the users with access to the validation framework > >addbook.pl and addbiblio.pl show the frameworkcodes in the drop list according to settings: > >- if validation off shows all >- if validation on and framework code is different than validation framework code, shows the framework code >- if validation on and framework code equal to validation framework code and the user have permissions, shows the framework code >- if validation on and framework code equal to validation framework code and the user doesn't have permissions, don't shows the framework code > >addbiblio.pl also changed to: > >- prevent any user to use the validation framework (if validation on) when putting the code in the browser URL >- if validation on always set suppress = 1 in framework different than the validating one >--- > cataloguing/addbiblio.pl | 25 ++++++++++++++++++- > cataloguing/addbooks.pl | 16 ++++++++++++- > installer/data/mysql/sysprefs.sql | 3 ++ > installer/data/mysql/updatedatabase.pl | 8 ++++++ > .../en/modules/admin/preferences/cataloguing.pref | 18 ++++++++++++++ > 5 files changed, 67 insertions(+), 3 deletions(-) > >diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl >index 3314f1a..d9a20c0 100755 >--- a/cataloguing/addbiblio.pl >+++ b/cataloguing/addbiblio.pl >@@ -22,8 +22,9 @@ > use strict; > #use warnings; FIXME - Bug 2505 > use CGI; >+use CGI::Session; > use C4::Output; >-use C4::Auth; >+use C4::Auth qw/:DEFAULT get_session/; > use C4::Biblio; > use C4::Search; > use C4::AuthoritiesMarc; >@@ -734,6 +735,16 @@ my $fa_branch = $input->param('branch'); > my $fa_stickyduedate = $input->param('stickyduedate'); > my $fa_duedatespec = $input->param('duedatespec'); > >+# getting userID >+my $sessionID = $input->cookie("CGISESSID") ; >+my $session = get_session($sessionID); >+my $userid = $session->param('id'); >+ >+# getting validation variables >+my $validation = C4::Context->preference('CatalogingValidation'); >+my $validationframework = C4::Context->preference('CatalogingValidationFramework'); >+my %validationusers = map { $_ => 1 } split(/,/,C4::Context->preference('CatalogingValidationUsers')); >+ > my $userflags = 'edit_catalogue'; > if ($frameworkcode eq 'FA'){ > $userflags = 'fast_cataloging'; >@@ -753,6 +764,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > } > ); > >+# Clear the framework code if validation is on and the framework code is equal to validation framework but the user is not authorized to use it >+# Avoid users to user validation framework adding the code to the URL >+$frameworkcode = '' if ($validation && ($frameworkcode eq $validationframework && !$validationusers{$userid})); >+ > if ($frameworkcode eq 'FA'){ > # We need to grab and set some variables in the template for use on the additems screen > $template->param( >@@ -776,7 +791,11 @@ foreach my $thisframeworkcode ( keys %$frameworks ) { > if ($frameworkcode eq $thisframeworkcode){ > $row{'selected'} = 1; > } >- push @frameworkcodeloop, \%row; >+ # Add the framework code if validation is off. >+ # Add the framework code if validation is on, the framework code is equal to validation framework and the user is not authorized to use it >+ if (!$validation || ($validation && ($thisframeworkcode ne $validationframework || ($thisframeworkcode eq $validationframework && $validationusers{$userid})))) { >+ push @frameworkcodeloop, \%row; >+ } > } > $template->param( frameworkcodeloop => \@frameworkcodeloop, > breedingid => $breedingid ); >@@ -870,6 +889,8 @@ if ( $op eq "addbiblio" ) { > ModBiblio( $record, $biblionumber, $frameworkcode ); > } > else { >+ # force 942$n = 1 when validation is on and isn't validation framework >+ $record->field('942')->update('n' => '1') if ($validation && ($frameworkcode ne $validationframework)); > ( $biblionumber, $oldbibitemnum ) = AddBiblio( $record, $frameworkcode ); > } > if ($redirect eq "items" || ($mode ne "popup" && !$is_a_modif && $redirect ne "view")){ >diff --git a/cataloguing/addbooks.pl b/cataloguing/addbooks.pl >index f643599..8d16319 100755 >--- a/cataloguing/addbooks.pl >+++ b/cataloguing/addbooks.pl >@@ -27,7 +27,8 @@ > use strict; > use warnings; > use CGI; >-use C4::Auth; >+use CGI::Session; >+use C4::Auth qw/:DEFAULT get_session/; > use C4::Biblio; > use C4::Breeding; > use C4::Output; >@@ -36,6 +37,16 @@ use C4::Search; > > my $input = new CGI; > >+# getting userID >+my $sessionID = $input->cookie("CGISESSID"); >+my $session = get_session($sessionID); >+my $userid = $session->param('id'); >+ >+# getting validation variables >+my $validation = C4::Context->preference('CatalogingValidation'); >+my $validationframework = C4::Context->preference('CatalogingValidationFramework'); >+my %validationusers = map { $_ => 1 } split(/,/,C4::Context->preference('CatalogingValidationUsers')); >+ > my $success = $input->param('biblioitem'); > my $query = $input->param('q'); > my @value = $input->param('value'); >@@ -58,6 +69,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > my $frameworks = getframeworks; > my @frameworkcodeloop; > foreach my $thisframeworkcode ( sort { uc($frameworks->{$a}->{'frameworktext'}) cmp uc($frameworks->{$b}->{'frameworktext'}) } keys %{$frameworks} ) { >+ # Add the framework code if validation is off. >+ # Add the framework code if validation is on, the framework code is equal to validation framework and the user is not authorized to use it >+ if (!$validation || ($validation && ($thisframeworkcode ne $validationframework || ($thisframeworkcode eq $validationframework && $validationusers{$userid})))) { > push @frameworkcodeloop, { > value => $thisframeworkcode, > frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, >diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql >index df821c0..e939b69 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -419,3 +419,6 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES(' > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('FinesIncludeGracePeriod','1','If enabled, fines calculations will include the grace period.',NULL,'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UNIMARCAuthorsFacetsSeparator',', ', 'UNIMARC authors facets separator', NULL, 'short'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('UseKohaPlugins','1','Enable or disable the ability to use Koha Plugins.','','YesNo'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidation', '0','Active cataloging validation',NULL,'YesNo'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidationFramework','','Cataloging validation framework',NULL,'long'); >+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidationUsers', '','Cataloging validation users',NULL,'long'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 222428d..ff680e4 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6652,6 +6652,14 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > "); > > print "Upgrade to $DBversion done (Bug 7804: Added plugin system.)\n"; >+} >+ >+$DBversion = '3.11.00.XXX'; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidation', '0','Active cataloging validation',NULL,'YesNo');"); >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidationFramework','','Cataloging validation framework',NULL,'long');"); >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogingValidationUsers', '','Cataloging validation users',NULL,'long');"); >+ print "Upgrade to $DBversion done (Bug 9163 - Cataloguing validation workflow)\n"; > SetVersion($DBversion); > } > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >index 96f3603..045b63f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >@@ -176,3 +176,21 @@ Cataloging: > - pref: NotesBlacklist > class: multi > - note fields in title notes separator (OPAC record details) and in the description separator (Staff client record details). The fields should appear separated with commas and according with the Koha MARC format (eg 3.. for UNIMARC, 5.. for MARC21) >+ Validation: >+ - >+ - pref: CatalogingValidation >+ choices: >+ yes: Use >+ no: "Don't use" >+ - "cataloging validation. This allows some users to use a special MARC framework (only visible to them) to validate and put the record online in OPAC.<br />" >+ - "NOTE:<br /> - All MARC frameworks except the validation framework (set in CatalogingValidationFramework) needs to have the suppress subfield hidden.<br /> - The validation framework needs to have suppress subfield visible.<br />- The system preference OPACSuppresion needs to be on.<br /> - The users with access to the validation framework are set in CatalogingValidationUsers." >+ - >+ - "Code of the validation framework:" >+ - pref: CatalogingValidationFramework >+ class: long >+ - "<br />NOTE:<br /> - CatalogingValidation needs to be on.<br /> - The framework needs to be created in the MARC frameworks administration panel.<br /> - The framework needs to have suppress subfield visible." >+ - >+ - "The following users (list comma separated) will have access to validation framework:" >+ - pref: CatalogingValidationUsers >+ class: long >+ - "<br />NOTE:<br /> - CatalogingValidation needs to be on." >-- >1.7.0.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 9163
:
13737
|
13743
|
16383
|
16384
|
16525
|
16526
|
16605
|
16619
|
16675
|
19270
|
19271
|
21192
|
21194
|
45474
|
45475