Browse Source

Bug 17214: Add records to lists by biblionumber

To test:
1) Apply patch and go to Lists
2) Click on an existing list or create a new list
3) Add items by barcode, confirm this functionality still works
4) Trigger error messages (adding duplicate barcodes, barcodes that
don't exist) to confirm they still show as appropriate
5) Test adding by biblionumber, confirm this works as expected
6) Trigger error messages (adding duplicate biblionumbers, biblionumbers
that don't exist). Confirm wording is appropriate in messages.
7) Add both barcodes and biblionumbers at the same time, confirm this
works as expected

Sponsored-by: Catalyst IT

Signed-off-by: Israelex A Veleña for KohaCon17 <israelex19@gmail.com>
Signed-off-by: Israelex A Veleña for KohaCon17 <israelex19@gmail.com>

Signed-off-by: Harold <harold.sabanal@gmail.com>

Signed-off-by: macon lauren KohaCon2017 <caballeromaricon@gmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Bug 17214: [FOLLOW-UP] Using Koha::Biblios instead of GetBiblio

Ready to test

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
17.11.x
Aleisha Amohia 6 years ago
committed by Jonathan Druart
parent
commit
70d72e3d9c
  1. 25
      koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt
  2. 24
      virtualshelves/shelves.pl

25
koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt

@ -379,7 +379,11 @@ function AdjustRemark() {
[% CASE 'error_on_delete' %]
<span>An error occurred when deleting this list.</span>
[% CASE 'error_on_add_biblio' %]
<span>The item ([% m.item_barcode %]) has not been added to the list. Please verify it is not already in the list.</span>
[% IF m.item_barcode %]
<span>The item ([% m.item_barcode %]) has not been added to the list. Please verify it is not already in the list.</span>
[% ELSE %]
<span>The record ([% m.bibnum %]) has not been added to the list. Please verify it is not already in the list.</span>
[% END %]
[% CASE 'success_on_update' %]
<span>List updated.</span>
[% CASE 'success_on_insert' %]
@ -387,13 +391,21 @@ function AdjustRemark() {
[% CASE 'success_on_delete' %]
<span>List deleted.</span>
[% CASE 'success_on_add_biblio' %]
<span>The item ([% m.item_barcode %]) has been added to the list.</span>
[% IF m.item_barcode %]
<span>The item ([% m.item_barcode %]) has been added to the list.</span>
[% ELSE %]
<span>The record ([% m.bibnum %]) has been added to the list.</span>
[% END %]
[% CASE 'success_on_remove_biblios' %]
<span>The item has been removed from the list.</span>
[% CASE 'does_not_exist' %]
<span>This list does not exist.</span>
[% CASE 'item_does_not_exist' %]
<span>The item ([% m.item_barcode %]) does not exist.</span>
[% IF m.item_barcode %]
<span>The item ([% m.item_barcode %]) does not exist.</span>
[% ELSE %]
<span>The record ([% m.bibnum %]) does not exist.</span>
[% END %]
[% CASE 'unauthorized_on_view' %]
<span>You do not have permission to view this list.</span>
[% CASE 'unauthorized_on_update' %]
@ -687,6 +699,13 @@ function AdjustRemark() {
<input type="hidden" name="referer" value="view" />
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber %]" />
</li>
<li>
<label for="biblionumbers">Biblio numbers:</label>
<textarea name="biblionumbers" id="biblionumbers" class="focus" autocomplete="off" rows="5"></textarea>
<input type="hidden" name="op" value="add_biblio" />
<input type="hidden" name="referer" value="view" />
<input type="hidden" name="shelfnumber" value="[% shelf.shelfnumber %]" />
</li>
</ol>
<fieldset class="action">
<input type="submit" value="Add" />

24
virtualshelves/shelves.pl

@ -169,6 +169,30 @@ if ( $op eq 'add_form' ) {
push @messages, { type => 'alert', code => 'unauthorized_on_add_biblio' };
}
}
if ( my $biblionumbers = $query->param('biblionumbers') ) {
if ( $shelf->can_biblios_be_added( $loggedinuser ) ) {
my @biblionumbers = split /\n/, $biblionumbers;
foreach my $biblionumber (@biblionumbers) {
$biblionumber =~ s/\r$//; # strip any naughty return chars
next if $biblionumber eq '';
my $biblio = Koha::Biblios->find($biblionumber);
if (defined $biblio) {
my $added = eval { $shelf->add_biblio( $biblionumber, $loggedinuser ); };
if ($@) {
push @messages, { bibnum => $biblionumber, type => 'alert', code => ref($@), msg => $@ };
} elsif ( $added ) {
push @messages, { bibnum => $biblionumber, type => 'message', code => 'success_on_add_biblio' };
} else {
push @messages, { bibnum => $biblionumber, type => 'message', code => 'error_on_add_biblio' };
}
} else {
push @messages, { bibnum => $biblionumber, type => 'alert', code => 'item_does_not_exist' };
}
}
} else {
push @messages, { type => 'alert', code => 'unauthorized_on_add_biblio' };
}
}
} else {
push @messages, { type => 'alert', code => 'does_not_exist' };
}

Loading…
Cancel
Save