View | Details | Raw Unified | Return to bug 18138
Collapse All | Expand All

(-)a/cataloguing/addbiblio.pl (-6 / +9 lines)
Lines 45-52 use C4::ClassSource qw( GetClassSources ); Link Here
45
use C4::ImportBatch qw( GetImportRecordMarc );
45
use C4::ImportBatch qw( GetImportRecordMarc );
46
use C4::Charset qw( SetMarcUnicodeFlag );
46
use C4::Charset qw( SetMarcUnicodeFlag );
47
use C4::MarcModificationTemplates;
47
use C4::MarcModificationTemplates;
48
use Koha::MarcModificationTemplates;
48
use Koha::BiblioFrameworks;
49
use Koha::BiblioFrameworks;
49
use Koha::DateUtils qw( dt_from_string );
50
use Koha::DateUtils qw( dt_from_string );
51
use Carp;
50
52
51
use Koha::Biblios;
53
use Koha::Biblios;
52
use Koha::ItemTypes;
54
use Koha::ItemTypes;
Lines 59-65 use Koha::UI::Form::Builder::Biblio; Link Here
59
use MARC::File::USMARC;
61
use MARC::File::USMARC;
60
use MARC::File::XML;
62
use MARC::File::XML;
61
use URI::Escape qw( uri_escape_utf8 );
63
use URI::Escape qw( uri_escape_utf8 );
62
use List::MoreUtils qw(firstval);
63
64
64
if ( C4::Context->preference('marcflavour') eq 'UNIMARC' ) {
65
if ( C4::Context->preference('marcflavour') eq 'UNIMARC' ) {
65
    MARC::File::XML->default_record_format('UNIMARC');
66
    MARC::File::XML->default_record_format('UNIMARC');
Lines 667-682 if ( $op eq "addbiblio" ) { Link Here
667
    # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
668
    # it is not a duplicate (determined either by Koha itself or by user checking it's not a duplicate)
668
    if ( !$duplicatebiblionumber or $confirm_not_duplicate ) {
669
    if ( !$duplicatebiblionumber or $confirm_not_duplicate ) {
669
        my $oldbibitemnum;
670
        my $oldbibitemnum;
670
        my $marc_modification_template_name = C4::Context->preference("SaveBiblioMarcModificationTemplate");
671
671
        if ($marc_modification_template_name) {
672
        my $template_id = C4::Context->preference("SaveBiblioMarcModificationTemplate");
672
            my $template = firstval { $_->{'name'} eq $marc_modification_template_name } GetModificationTemplates();
673
        if ($template_id) {
674
            my $template = Koha::MarcModificationTemplates->find($template_id);
673
            if ($template) {
675
            if ($template) {
674
                ModifyRecordWithTemplate($template->{'template_id'}, $record);
676
                ModifyRecordWithTemplate($template_id, $record);
675
            }
677
            }
676
            else {
678
            else {
677
                warn "No MARC modification template exists with name \"$marc_modification_template_name\"";
679
                croak "No MARC modification template exists with id \"$template_id\"";
678
            }
680
            }
679
        }
681
        }
682
680
        if ( $is_a_modif ) {
683
        if ( $is_a_modif ) {
681
            my $member = Koha::Patrons->find($loggedinuser);
684
            my $member = Koha::Patrons->find($loggedinuser);
682
            ModBiblio(
685
            ModBiblio(
(-)a/svc/bib (-5 / +7 lines)
Lines 26-34 use C4::Auth qw( check_api_auth ); Link Here
26
use C4::Biblio qw( GetFrameworkCode );
26
use C4::Biblio qw( GetFrameworkCode );
27
use C4::Items;
27
use C4::Items;
28
use C4::MarcModificationTemplates;
28
use C4::MarcModificationTemplates;
29
use Koha::MarcModificationTemplates;
29
use XML::Simple;
30
use XML::Simple;
30
use Koha::Biblios;
31
use Koha::Biblios;
31
use List::MoreUtils qw(firstval);
32
use List::MoreUtils qw(firstval);
33
use Carp;
32
34
33
my $query = CGI->new;
35
my $query = CGI->new;
34
binmode STDOUT, ':encoding(UTF-8)';
36
binmode STDOUT, ':encoding(UTF-8)';
Lines 126-139 sub update_bib { Link Here
126
            }
128
            }
127
        }
129
        }
128
130
129
        my $marc_modification_template_name = C4::Context->preference("SaveBiblioMarcModificationTemplate");
131
        my $template_id = C4::Context->preference("SaveBiblioMarcModificationTemplate");
130
        if ($marc_modification_template_name) {
132
        if ($id) {
131
            my $template = firstval { $_->{'name'} eq $marc_modification_template_name } GetModificationTemplates();
133
            my $template = Koha::MarcModificationTemplates->find($template_id);
132
            if ($template) {
134
            if ($template) {
133
                ModifyRecordWithTemplate($template->{'template_id'}, $record);
135
                ModifyRecordWithTemplate($template_id, $record);
134
            }
136
            }
135
            else {
137
            else {
136
                warn "No MARC modification template exists with name \"$marc_modification_template_name\"";
138
                croak "No MARC modification template exists with id \"$template_id\"";
137
            }
139
            }
138
        }
140
        }
139
141
(-)a/t/db_dependent/www/EditBiblioMarcModificationTemplatePreference.t (-6 / +8 lines)
Lines 23-28 require HTTP::Request; Link Here
23
use MARC::Record;
23
use MARC::Record;
24
use XML::Simple;
24
use XML::Simple;
25
use C4::MarcModificationTemplates;
25
use C4::MarcModificationTemplates;
26
use Koha::MarcModificationTemplates;
26
use C4::Biblio qw(AddBiblio ModBiblioMarc GetMarcBiblio);
27
use C4::Biblio qw(AddBiblio ModBiblioMarc GetMarcBiblio);
27
28
28
eval{
29
eval{
Lines 47-56 subtest 'Templates applied using simple and advanced MARC Editor' => sub { Link Here
47
    plan tests => 13;
48
    plan tests => 13;
48
49
49
    # Create "Test" MARC modification template
50
    # Create "Test" MARC modification template
50
    my $template_id = AddModificationTemplate('TEST');
51
    #my $template_id = AddModificationTemplate('TEST');
51
    ok($template_id, 'MARC modification template successfully created');
52
    my $template = Koha::MarcModificationTemplate->new({ name => 'TEST' })->store;
53
54
    ok($template, 'MARC modification template successfully created');
52
    my $add_template_action_result = AddModificationTemplateAction(
55
    my $add_template_action_result = AddModificationTemplateAction(
53
        $template_id,
56
        $template->id,
54
        'update_field', # Action
57
        'update_field', # Action
55
        0,
58
        0,
56
        250, # Field
59
        250, # Field
Lines 88-94 subtest 'Templates applied using simple and advanced MARC Editor' => sub { Link Here
88
    is($saved_record_250_field->subfield('a'), '250 bottles of beer on the wall', 'Field 250a has the same value passed to AddBiblio');
91
    is($saved_record_250_field->subfield('a'), '250 bottles of beer on the wall', 'Field 250a has the same value passed to AddBiblio');
89
92
90
    my $old_template_preference = C4::Context->preference('SaveBiblioMarcModificationTemplate');
93
    my $old_template_preference = C4::Context->preference('SaveBiblioMarcModificationTemplate');
91
    C4::Context->set_preference('SaveBiblioMarcModificationTemplate', 'TEST');
94
    C4::Context->set_preference('SaveBiblioMarcModificationTemplate', $template->id);
92
95
93
    my $agent = Test::WWW::Mechanize->new(autocheck => 1);
96
    my $agent = Test::WWW::Mechanize->new(autocheck => 1);
94
97
Lines 149-154 EOF Link Here
149
152
150
    # Clean up
153
    # Clean up
151
    DelBiblio($biblionumber);
154
    DelBiblio($biblionumber);
152
    DelModificationTemplate($template_id);
155
    $template->delete;
153
    C4::Context->set_preference('SaveBiblioMarcModificationTemplate', $old_template_preference);
156
    C4::Context->set_preference('SaveBiblioMarcModificationTemplate', $old_template_preference);
154
};
157
};
155
- 

Return to bug 18138