Bugzilla – Attachment 45474 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.47 KB, created by
Alex Arnaud
on 2015-12-08 09:06:21 UTC
(
hide
)
Description:
BUG 9163 - Cataloguing validation workflow
Filename:
MIME Type:
Creator:
Alex Arnaud
Created:
2015-12-08 09:06:21 UTC
Size:
10.47 KB
patch
obsolete
>From cbc58c0bbb68692e9d5910a62fac612696494685 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 | 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 b4784ed..7c371d4 100755 >--- a/cataloguing/addbiblio.pl >+++ b/cataloguing/addbiblio.pl >@@ -22,8 +22,9 @@ > use strict; > #use warnings; FIXME - Bug 2505 > use CGI q(-utf8); >+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; >@@ -709,6 +710,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'; > > my $changed_framework = $input->param('changed_framework'); >@@ -730,6 +741,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( >@@ -759,7 +774,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 ); >@@ -855,6 +874,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" && $redirect ne "just_save")){ >diff --git a/cataloguing/addbooks.pl b/cataloguing/addbooks.pl >index 038f291..1d3c2cc 100755 >--- a/cataloguing/addbooks.pl >+++ b/cataloguing/addbooks.pl >@@ -27,7 +27,8 @@ > use strict; > use warnings; > use CGI qw ( -utf8 ); >-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 484b3cd..35ff2f6 100644 >--- a/installer/data/mysql/sysprefs.sql >+++ b/installer/data/mysql/sysprefs.sql >@@ -87,6 +87,9 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('casServerUrl','https://localhost:8443/cas','','URL of the cas server','Free'), > ('CatalogModuleRelink','0',NULL,'If OFF the linker will never replace the authids that are set in the cataloging module.','YesNo'), > ('CataloguingLog','1',NULL,'If ON, log edit/create/delete actions on bibliographic data. WARNING: this feature is very resource consuming.','YesNo'), >+('CatalogingValidation','0',NULL,'Active cataloging validation','YesNo'); >+('CatalogingValidationFramework','',NULL,'Cataloging validation framework','long'); >+('CatalogingValidationUsers','',NULL,'Cataloging validation users','long'); > ('checkdigit','none','none|katipo','If ON, enable checks on patron cardnumber: none or \"Katipo\" style checks','Choice'), > ('CircAutocompl','1',NULL,'If ON, autocompletion is enabled for the Circulation input','YesNo'), > ('CircAutoPrintQuickSlip','qslip',NULL,'Choose what should happen when an empty barcode field is submitted in circulation: Display a print quick slip window, Display a print slip window or Clear the screen.','Choice'), >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index f8ab41e..d67ec34 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6697,6 +6697,14 @@ if ( CheckVersion($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 c1a721a..a5b6eb5 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 >@@ -247,3 +247,21 @@ Cataloging: > - "All values of repeating tags and subfields will be printed with the given RIS tag." > - "<br/>" > - "Use of TY ( record type ) as a key will <i>replace</i> the default TY with the field value of your choosing." >+ 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.10.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