Bugzilla – Attachment 13737 Details for
Bug 9163
Cataloguing validation workflow
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
BUG 9163 - Cataloguing validation workflow
BUG-9163---Cataloguing-validation-workflow.patch (text/plain), 10.58 KB, created by
Vitor Fernandes
on 2012-11-28 15:58:25 UTC
(
hide
)
Description:
BUG 9163 - Cataloguing validation workflow
Filename:
MIME Type:
Creator:
Vitor Fernandes
Created:
2012-11-28 15:58:25 UTC
Size:
10.58 KB
patch
obsolete
>From 3d1797ff87b1f584b868a90eab8d9282d511054d Mon Sep 17 00:00:00 2001 >From: Vitor FERNANDES <vfernandes@keep.pt> >Date: Wed, 28 Nov 2012 15:50:44 +0000 >Subject: [PATCH] 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 | 26 +++++++++++++++++--- > cataloguing/addbooks.pl | 25 +++++++++++++++---- > installer/data/mysql/sysprefs.sql | 3 +++ > installer/data/mysql/updatedatabase.pl | 9 +++++++ > .../en/modules/admin/preferences/cataloguing.pref | 19 +++++++++++++- > 5 files changed, 73 insertions(+), 9 deletions(-) > >diff --git a/cataloguing/addbiblio.pl b/cataloguing/addbiblio.pl >index 2d591c6..03f9f87 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; >@@ -718,7 +719,16 @@ my $dbh = C4::Context->dbh; > my $hostbiblionumber = $input->param('hostbiblionumber'); > my $hostitemnumber = $input->param('hostitemnumber'); > >- >+# 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'; >@@ -738,6 +748,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->{VARS}->{'circborrowernumber'} = $input->param('borrowernumber'); >@@ -759,7 +773,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 ); >@@ -853,6 +871,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 7bca2f3..efc57f7 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,10 +69,14 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > my $frameworks = getframeworks; > my @frameworkcodeloop; > foreach my $thisframeworkcode ( sort {$frameworks->{$a} cmp $frameworks->{$b}}keys %{$frameworks} ) { >- push @frameworkcodeloop, { >- value => $thisframeworkcode, >- frameworktext => $frameworks->{$thisframeworkcode}->{'frameworktext'}, >- }; >+ # 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 44f9eb3..8a84c46 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -387,3 +387,6 @@ INSERT INTO systempreferences (variable,value,explanation,type) VALUES('INTRAdid > INSERT INTO systempreferences (variable, value, options, explanation, type) VALUES ('BlockReturnOfWithdrawnItems', '1', '0', 'If enabled, items that are marked as withdrawn cannot be returned.', 'YesNo'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('HoldsToPullStartDate','2','Set the default start date for the Holds to pull list to this many days ago',NULL,'Integer'); > INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('alphabet','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z','Alphabet than can be expanded into browse links, e.g. on Home > Patrons',NULL,'free'); >+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 966ec9b..11fe365 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6083,6 +6083,15 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "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); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >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 91f15c3..bf98eb7 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 >@@ -156,4 +156,21 @@ Cataloging: > - pref: OpacSuppressionByIPRange > class: short > - (Leave blank if not used. Define a range like <code>192.168.</code>.) >- >+ 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.9.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 9163
:
13737
|
13743
|
16383
|
16384
|
16525
|
16526
|
16605
|
16619
|
16675
|
19270
|
19271
|
21192
|
21194
|
45474
|
45475