Bug 20310: Redirect article record without items for article requests
If an article record has been catalogued separately, has no items and contains a reference to its host via MARC21 field 773 (host item entry), this patch makes an article request redirect to the host record while copying title, author and page info (from 773$g). This is accomplished by using the new Koha::Biblio->host_record method. Note: Subfield 773$g may contain additional information on volume and issue number etc. It will be very hard or perhaps impossible to parse $g and copy these details into the corresponding fields of the article request form for all possible variations used in libraries. A similar remark can be made for selecting the correct item (when item level is used). We could try this on a future report, but will probably need at least a preference to define the expected format. Test plan: [1] Enable article requests. Add rules for an ART and a SER itemtype. [2] Create a SER host biblio record. [3] Create an ART biblio record, no items. Include a 773w pointing to the SER record with '(MARCorgcode)[recno]' (keep the parentheses, remove the square brackets when inserting the biblionumber). Include text in 773$g too. [4] Place an article request on the ART record. Verify that it redirects you to the SER record while copying title, author, page info. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Hugo Agud <hagud@orex.es> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
80d93b62c1
commit
e5651d4dad
2 changed files with 15 additions and 7 deletions
|
@ -59,20 +59,20 @@
|
|||
<li>
|
||||
[% IF mandatory_fields.search('title') %]
|
||||
<label for="title" class="required">Title:</label>
|
||||
<input type="text" required="required" name="title" id="title" size="50"/>
|
||||
<input type="text" required="required" name="title" id="title" size="50" value="[% title | html %]"/>
|
||||
[% ELSE %]
|
||||
<label for="title">Title:</label>
|
||||
<input type="text" name="title" id="title" size="50"/>
|
||||
<input type="text" name="title" id="title" size="50" value="[% title | html %]"/>
|
||||
[% END %]
|
||||
</li>
|
||||
|
||||
<li>
|
||||
[% IF mandatory_fields.search('author') %]
|
||||
<label for="author" class="required">Author:</label>
|
||||
<input type="text" required="required" name="author" id="author" size="50"/>
|
||||
<input type="text" required="required" name="author" id="author" size="50" value="[% author | html %]"/>
|
||||
[% ELSE %]
|
||||
<label for="author">Author:</label>
|
||||
<input type="text" name="author" id="author" size="50"/>
|
||||
<input type="text" name="author" id="author" size="50" value="[% author | html %]"/>
|
||||
[% END %]
|
||||
</li>
|
||||
|
||||
|
@ -109,10 +109,10 @@
|
|||
<li>
|
||||
[% IF mandatory_fields.search('pages') %]
|
||||
<label for="pages" class="required">Pages:</label>
|
||||
<input type="text" required="required" name="pages" id="pages" size="50"/>
|
||||
<input type="text" required="required" name="pages" id="pages" size="50" value="[% pageinfo | html %]"/>
|
||||
[% ELSE %]
|
||||
<label for="pages">Pages:</label>
|
||||
<input type="text" name="pages" id="pages" size="50"/>
|
||||
<input type="text" name="pages" id="pages" size="50" value="[% pageinfo | html %]"/>
|
||||
[% END %]
|
||||
</li>
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
|
|||
|
||||
my $action = $cgi->param('action') || q{};
|
||||
my $biblionumber = $cgi->param('biblionumber');
|
||||
my $biblio = Koha::Biblios->find($biblionumber);
|
||||
|
||||
if ( $action eq 'create' ) {
|
||||
my $branchcode = $cgi->param('branchcode');
|
||||
|
@ -72,9 +73,16 @@ if ( $action eq 'create' ) {
|
|||
|
||||
print $cgi->redirect("/cgi-bin/koha/opac-user.pl#opac-user-article-requests");
|
||||
exit;
|
||||
} elsif ( !$action ) {
|
||||
# Should we redirect?
|
||||
# Conditions: no items, host item entry (MARC21 773)
|
||||
my ( $host, $pageinfo ) = $biblio->host_record({ no_items => 1 });
|
||||
if( $host ) {
|
||||
$template->param( pageinfo => $pageinfo, title => $biblio->title, author => $biblio->author );
|
||||
$biblio = $host;
|
||||
}
|
||||
}
|
||||
|
||||
my $biblio = Koha::Biblios->find($biblionumber);
|
||||
my $patron = Koha::Patrons->find($borrowernumber);
|
||||
|
||||
$template->param(
|
||||
|
|
Loading…
Reference in a new issue