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

(-)a/Koha/BiblioFramework.pm (+35 lines)
Lines 33-38 Koha::BiblioFramework - Koha BiblioFramework Object class Link Here
33
33
34
=cut
34
=cut
35
35
36
=head3 set_default
37
38
    $framework->set_default;
39
40
Set this framework as the new default, and unset whichever framework is currently the default.
41
42
=cut
43
44
sub set_default {
45
    my ( $self ) = @_;
46
47
    my $current_default = Koha::BiblioFrameworks->get_default;
48
    if ( defined $current_default ){
49
        $current_default->unset_default;
50
    }
51
52
    $self->update({ is_default => 1 })->store;
53
    return $self;
54
}
55
56
=head3 unset_default
57
58
    $framework->unset_default;
59
60
Unset this framework as the default.
61
62
=cut
63
64
sub unset_default {
65
    my ( $self ) = @_;
66
67
    $self->update({ is_default => 0 })->store;
68
    return $self;
69
}
70
36
=head3 type
71
=head3 type
37
72
38
=cut
73
=cut
(-)a/Koha/BiblioFrameworks.pm (+15 lines)
Lines 35-40 Koha::BiblioFrameworks - Koha BiblioFramework Object set class Link Here
35
35
36
=cut
36
=cut
37
37
38
=head3 get_default
39
40
    my $default_framework = Koha::BiblioFrameworks->get_default;
41
42
Get the allocated default framework.
43
If returned undefined, then the current default framework is the Default framework (framework with no frameworkcode).
44
45
=cut
46
47
sub get_default {
48
    my ( $self ) = @_;
49
50
    return $self->find({ is_default => 1 });
51
}
52
38
=head3 type
53
=head3 type
39
54
40
=cut
55
=cut
(-)a/admin/biblio_framework.pl (+3 lines)
Lines 54-64 if ( $op eq 'add_form' ) { Link Here
54
} elsif ( $op eq 'add_validate' ) {
54
} elsif ( $op eq 'add_validate' ) {
55
    my $frameworkcode = $input->param('frameworkcode');
55
    my $frameworkcode = $input->param('frameworkcode');
56
    my $frameworktext = $input->param('frameworktext');
56
    my $frameworktext = $input->param('frameworktext');
57
    my $is_default    = $input->param('is_default');
57
    my $is_a_modif    = $input->param('is_a_modif');
58
    my $is_a_modif    = $input->param('is_a_modif');
58
59
59
    if ($is_a_modif) {
60
    if ($is_a_modif) {
60
        my $framework = Koha::BiblioFrameworks->find($frameworkcode);
61
        my $framework = Koha::BiblioFrameworks->find($frameworkcode);
61
        $framework->frameworktext($frameworktext);
62
        $framework->frameworktext($frameworktext);
63
        $is_default ? $framework->set_default : $framework->unset_default;
62
        eval { $framework->store; };
64
        eval { $framework->store; };
63
        if ($@) {
65
        if ($@) {
64
            push @messages, { type => 'error', code => 'error_on_update' };
66
            push @messages, { type => 'error', code => 'error_on_update' };
Lines 71-76 if ( $op eq 'add_form' ) { Link Here
71
                frameworktext => $frameworktext,
73
                frameworktext => $frameworktext,
72
            }
74
            }
73
        );
75
        );
76
        $is_default ? $framework->set_default : $framework->unset_default;
74
        eval { $framework->store; };
77
        eval { $framework->store; };
75
        if ($@) {
78
        if ($@) {
76
            push @messages, { type => 'error', code => 'error_on_insert' };
79
            push @messages, { type => 'error', code => 'error_on_insert' };
(-)a/cataloguing/addbiblio.pl (+6 lines)
Lines 970-975 if ( $record ne '-1' ) { Link Here
970
    my $title = C4::Context->preference('marcflavour') eq "UNIMARC" ? $record->subfield('200', 'a') : $record->title;
970
    my $title = C4::Context->preference('marcflavour') eq "UNIMARC" ? $record->subfield('200', 'a') : $record->title;
971
    $template->param( title => $title );
971
    $template->param( title => $title );
972
}
972
}
973
my $default_framework = Koha::BiblioFrameworks->get_default;
974
if ( defined $default_framework
975
    && defined $frameworkcode
976
    && $frameworkcode eq '' ){
977
    $frameworkcode = $default_framework->frameworkcode;
978
}
973
$template->param(
979
$template->param(
974
    popup => $mode,
980
    popup => $mode,
975
    frameworkcode => $frameworkcode,
981
    frameworkcode => $frameworkcode,
(-)a/cataloguing/addbooks.pl (+5 lines)
Lines 155-159 $template->param( Link Here
155
    z3950_search_params => C4::Search::z3950_search_args($query),
155
    z3950_search_params => C4::Search::z3950_search_args($query),
156
);
156
);
157
157
158
my $default_framework = Koha::BiblioFrameworks->get_default;
159
if ( $default_framework ){
160
    $template->param( default_frameworkcode => $default_framework->frameworkcode );
161
}
162
158
output_html_with_http_headers $input, $cookie, $template->output;
163
output_html_with_http_headers $input, $cookie, $template->output;
159
164
(-)a/installer/data/mysql/atomicupdate/bug-23111_add-is_default-column-to-biblio_framework.perl (+7 lines)
Line 0 Link Here
1
$DBversion = 'XXX';  # will be replaced by the RM
2
if( CheckVersion( $DBversion ) ) {
3
    if( !column_exists( 'biblio_framework', 'default' ) ) {
4
        $dbh->do(q{ALTER TABLE biblio_framework ADD is_default TINYINT(1) default 0 NOT NULL});
5
    }
6
    NewVersion( $DBversion, 23111, "Add is_default column to biblio_framework table");
7
}
(-)a/installer/data/mysql/kohastructure.sql (+1 lines)
Lines 157-162 DROP TABLE IF EXISTS `biblio_framework`; Link Here
157
CREATE TABLE `biblio_framework` ( -- information about MARC frameworks
157
CREATE TABLE `biblio_framework` ( -- information about MARC frameworks
158
  `frameworkcode` varchar(4) NOT NULL default '', -- the unique code assigned to the framework
158
  `frameworkcode` varchar(4) NOT NULL default '', -- the unique code assigned to the framework
159
  `frameworktext` varchar(255) NOT NULL default '', -- the description/name given to the framework
159
  `frameworktext` varchar(255) NOT NULL default '', -- the description/name given to the framework
160
  `is_default` TINYINT(1) NOT NULL default 0 -- indicates whether this framework is the default to be used when importing records or editing records with no framework mapped
160
  PRIMARY KEY  (`frameworkcode`)
161
  PRIMARY KEY  (`frameworkcode`)
161
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
162
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
162
163
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt (+8 lines)
Lines 87-92 Link Here
87
                    <input type="text" name="frameworktext" id="description" size="40" maxlength="80" value="[% framework.frameworktext | html %]" required="required" class="required" />
87
                    <input type="text" name="frameworktext" id="description" size="40" maxlength="80" value="[% framework.frameworktext | html %]" required="required" class="required" />
88
                    <span class="required">Required</span>
88
                    <span class="required">Required</span>
89
                </li>
89
                </li>
90
                <li>
91
                    <label for="default">Set as default: </label>
92
                    [% IF framework.is_default %]
93
                        <input type="checkbox" name="is_default" id="is_default" value="1" checked="checked">
94
                    [% ELSE %]
95
                        <input type="checkbox" name="is_default" id="is_default" value="1">
96
                    [% END %]
97
                </li>
90
            </ol>
98
            </ol>
91
        </fieldset>
99
        </fieldset>
92
        <fieldset class="action">
100
        <fieldset class="action">
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tt (-1 / +5 lines)
Lines 228-234 Link Here
228
            $("input[name=q]:eq(0)").focus();
228
            $("input[name=q]:eq(0)").focus();
229
229
230
            $("#z3950search").click(function(){
230
            $("#z3950search").click(function(){
231
                PopupZ3950("Default");
231
                [% IF default_frameworkcode %]
232
                    PopupZ3950('[% default_frameworkcode | html %]');
233
                [% ELSE %]
234
                    PopupZ3950("Default");
235
                [% END %]
232
                return false;
236
                return false;
233
            });
237
            });
234
238
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt (-1 / +5 lines)
Lines 225-231 Link Here
225
                                            <select name="framework" id="frameworks">
225
                                            <select name="framework" id="frameworks">
226
                                                <option value="">Default</option>
226
                                                <option value="">Default</option>
227
                                                [% FOREACH framework IN frameworks %]
227
                                                [% FOREACH framework IN frameworks %]
228
                                                    <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option>
228
                                                    [% IF framework.is_default %]
229
                                                        <option value="[% framework.frameworkcode | html %]" selected="selected">[% framework.frameworktext | html %]</option>
230
                                                    [% ELSE %]
231
                                                        <option value="[% framework.frameworkcode | html %]">[% framework.frameworktext | html %]</option>
232
                                                    [% END %]
229
                                                [% END %]
233
                                                [% END %]
230
                                            </select>
234
                                            </select>
231
                                        [% END %]
235
                                        [% END %]
(-)a/t/db_dependent/Koha/BiblioFrameworks.t (-2 / +17 lines)
Lines 18-24 Link Here
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
18
# along with Koha; if not, see <http://www.gnu.org/licenses>.
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
use Test::More tests => 3;
21
use Test::More tests => 7;
22
use Koha::BiblioFramework;
22
use Koha::BiblioFramework;
23
use Koha::BiblioFrameworks;
23
use Koha::BiblioFrameworks;
24
24
Lines 40-45 is( Koha::BiblioFrameworks->search->count, $nb_of_frameworks + 2, 'The 2 biblio Link Here
40
my $retrieved_framework_1 = Koha::BiblioFrameworks->find( $new_framework_1->frameworkcode );
40
my $retrieved_framework_1 = Koha::BiblioFrameworks->find( $new_framework_1->frameworkcode );
41
is( $retrieved_framework_1->frameworktext, $new_framework_1->frameworktext, 'Find a biblio framework by frameworkcode should return the correct framework' );
41
is( $retrieved_framework_1->frameworktext, $new_framework_1->frameworktext, 'Find a biblio framework by frameworkcode should return the correct framework' );
42
42
43
# testing of default frameworks
44
$new_framework_1->set_default;
45
my $default_framework = Koha::BiblioFrameworks->get_default;
46
is( $default_framework->frameworkcode, $new_framework_1->frameworkcode, 'Successfully identified default framework' );
47
48
$new_framework_2->set_default;
49
$default_framework = Koha::BiblioFrameworks->get_default;
50
is( $default_framework->frameworkcode, $new_framework_2->frameworkcode, 'Successfully changed default framework' );
51
$new_framework_1 = Koha::BiblioFrameworks->find( $new_framework_1->frameworkcode );
52
is( $new_framework_1->is_default, 0, 'Old default framework has been unset' );
53
54
$default_framework->unset_default;
55
my $nb_of_defaults = Koha::BiblioFrameworks->search({ is_default => 1 })->count;
56
is( $nb_of_defaults, 0, 'No default framework is set' );
57
# end of default frameworks testing
58
43
$retrieved_framework_1->delete;
59
$retrieved_framework_1->delete;
44
is( Koha::BiblioFrameworks->search->count, $nb_of_frameworks + 1, 'Delete should have deleted the biblio framework' );
60
is( Koha::BiblioFrameworks->search->count, $nb_of_frameworks + 1, 'Delete should have deleted the biblio framework' );
45
$schema->storage->txn_rollback;
61
$schema->storage->txn_rollback;
46
- 

Return to bug 23111