XML::Simple returns by default an empty hash ref if it encounters an xml tag
with no attributes or content. If memcached_servers is empty, as the installer
sets it when this feature is disabled, then we get the empty hash ref.
In checking if memcached_servers is set the empty hash ref evaluates as true.
I.E.
$servers = C4::Context->config('memcached_servers');
if ($servers) {
so we get a comiler error from memcached trying to resolve the nonexistant
server address.
A patch will follow with the changes to the koha-conf.xml and with instructions on installing memcached
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
* added POD
* removed optional $barcode argument - in all cases,
itemnumber is known, and we should stick with
itemnumber when retrieving an existing item
* use ModItem to do the update so that indexer
will know to reindex bib - otherwise, can't
do an accurate search of items that are on
the shelving cart.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Allows temporary locations corresponding to 'in processing' and 'shelving'
so that newly-created items, and newly-returned items do not show
immediately as a available. Three new system preferences govern the usage
of these features.
NewItemsDefaultLocation. If system pref NewItemsDefaultLocation is set to a location code,
all newly catalogued items will be set to the location set in this preference.
Location code must be a valid LOC authorized value type.
InProcessingToShelvingCart. if the system pref InProcessingToShelvingCart is turned on,
any items run through returns.pl with a location code for 'PROC', will be modified to
have a new location code of 'CART'.
ReturnToShelvingCart. If the syspref ReturnToShelvingCart is turned on,
all items returned other than confirmed holds will have a new location code of 'CART'.
Any item issued is automatically taken of the shelving cart.
Adds a cron script shelf_to_cart.pl which should be run hourly.
Updates all items with a location of CART to the item's permanent location.
The original location code is stored in the new items column 'permanent_location'.
Original Author: PTFS Contractor <dbavousett@ptfs.com>
This work co-sponsored by
Middletown Township Public Library, Middletown, NJ USA and
East Brunswick Public Library, East Brunswick, NJ USA
Signed-off-by: Colin Campbell <colin.campbell@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
If IndependantBranches is ON and user attempts to return an
item at a library other than the item's home library, bail out.
This action, which was previously just a suggestion in the code,
is now required to ensure that the item doesn't get its
holdingbranch set to the library at which the attempt to return
the item was made.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Prior to this patch, this was done only when returning
an item after it had been out on loan. Even if the
item had not been on loan, the fact that it was checked
in means that it is now in fact at the new holding library.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Make _GetCircControlBranch() default to the item's home library
in the case where it otherwise would have returned the item's
holding library but that field is null.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
New name is _GetCircControlBranch so as not to confuse
the library that a circulation transaction is taking
place at with the library that is supposed to control
circulation policy lookup.
Also fixed formatting errors in _GetCircControlBranch.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This patch add the use of CircControl and HomeOrHoldingBranch for return and transfert rules.
* ItemHomeLibrary goes to item{HomeOrHoldingBranch}
* PatronLibrary goes to the borrower library
* PickupLibrary depends where the items was checked out, and the actual library.
This add a little improvment that does not re-request each time the circcontrol syspref.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Numbers in perl with leading zeros are interpreted in octal
Ensure that comparisons are done using string operators
or where appropriate use the MARC::Field method
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
The comparison to check the ceilingDueDate is done in the syspref format,
which isn't a good comparison. This changes to code so the comparison is done
using iso format.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
* Add AWSPrivateKey system preference to the
Enhanced Content tab in the syspref editor
* Now warns to log if attempting to use
the Amazon API without setting AWSPrivateKey
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
[1] There were some ersataz spaces in the string
being signed.
[2] AWS expects a trailing '=' in the Base64 signature
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
After 2009-08-15, Amazon Web Services will expect that
all requests to the Product Advertising API, which is what
Koha uses for retrieving reviews and other enhanced content
from Amazon, include signatures. This patch and
subsequenct patches implement this functionality.
What this means in practice (assuming the user has elected
to use any enhanced content from Amazon) is that
[1] The user must get a Amazon Secret Access Key. This can
be done by logging in to the user's AWS account
at (e.g.) http://aws.amazon.com/, going to the 'Access Identifiers'
page, and from there retrieving and/or creating a new Secret
Access Key.
[2] The contents of the Secret Access Key should then be
entered into the new AWSPrivateKey system preference.
Once that is done, grabbing reviews and table of contents from Amazon
should work as normal. If the user doesn't do this before 2009-08-15,
reviews and TOCs will no longer be supplied from Amazon, although there
should be no crashes - the content will simply not show up.
Note that the requirement to sign requests does *NOT* appear to apply
to simply displaying book covers from Amazon.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This adds to the interface and code the ability to set the reserve date when
requesting a hold.
Resubmit. Sorry, I formatted it from the wrong branch.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Fix the following crash when adding or editing an
item record in the staff interface:
Can't call method "append_fields" on an undefined value at
/usr/local/share/perl/5.10.0/MARC/File/SAX.pm line 92.
at /usr/local/share/perl/5.10.0/MARC/File/SAX.pm line 92
This crash appears only if a version of MARC::File::XML
greater than 0.88 is installed, and was triggered by
C4::Biblio::TransformHtmlToXml() failing to create a valid
MARCXML blob, which must include a <record> element.
This patch also fixes the indicator values generated by
TransformHtmlToXml(), setting them to " " instead of
"" when no indicator value is supplied.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
batches, it is now possible to 'clean' a batch by
removing all bib and item records staged in the batch. This
has the effect of helping to reduce database space used
by old import batches as well as removing staged records
from the cataloging reservoir search. Note that 'cleaning'
a batch affects only the copies of the records that were staged;
if the batch was committed, cleaning the batch does not
affect any bibs and items that were committed into the catalog.
Also note that once you clean a committed batch of records, it is
impossible to undo the previous commit operation.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Fixes display of branch name in opac-full-serial-issues.tmpl and opac-serial-issues.tmpl. Also enables zebra striping in opac-serial-issues.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
For some reason, it would not really do an exact match on stopwords but would also prune some other part of words
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Without this, the mainenance page would not display because of:
Cannot use undefined value as a HASH reference in C4/Auth.pm
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This change the shelf view in opac, to show publication year, in the column "Year"(that was previously copyrightdate), and is there is no publication year, show copyright date.
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Displays the Branch name and Category description along with their codes in Suggestion Management.
Also since I joined to the branches table the 'map' function in opac-suggestions.pl to retrieve the branchname was no longer necessary.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
We're returning issue information when available,
not just item information. Fixes problem where
circ/returns.pl wasn't displaying the due date
and patron when returning a loan.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Implement the optional fields: CR CS CT CV CY and DA.
Also silenced some outstanding debugging print statements.
Consolidated similar accesseor subs in Patron.pm to use x_items.
Adjust SIP tests to specify correct AP (location). Add a 3rd item
to SIPtext.pm for later use.
Note CT (destination) is currently populated with destination branch code.
We can adjust that to be destination branch name, or some combination in
a subsequent patch if necessary.
This work was sponsored by the Northeast Kansas Library system.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Required for SIP checkin implementation, but also for internal correctness.
AddReturn had too many things going on, with no guarantee of data being
available for the later calls. At some point we started tacking on all the
branch transfer logic without testing edge cases. In particular, $borrower
is not checked to be sure it is defined, considering the item may not have been
checked out so no borrower would be associated. That means that CircControl
of "PatronLibrary" would be inaccurate, Circ Alerts will be totally confused
(untargeted), and the Fix... subs would fail.
Note that *many* errors are still present in _FixAccountForLostAndReturned, including
those where comments are added, such that it might behave strangely even with $borrower.
Renamed the internal subs with leading underscore, per convention. Changed
the arguments to be scalars when only scalars are needed, not entire objects.
Added depth to WrongBranch message that includes Rightbranch.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Reimplemented using jquery, added OSS plugin to both interfaces. This is
another case where having a /common directory used by both OPAC and STAFF
would increase runtime efficiency and cut development time.
Removed unused variables.
I changed the OPAC .term color to match the staff interface, rather than being a
second shade of blue. The highlight/unhighlight link is currently a bit bolder
than its neighbors, but my styling choices are provisional. I expect the final
tweaking of CSS to come from another more capable designer, like Owen.
Note this patch may rely on previously submitted "Search.pm minor cleanup" patch.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Trying to move towards enabling warnings.
Add warn for unknown $query_type.
Use common $dbh.
push @array, ({key1=>value1...}); is the same as
push @array, {key1=>value1...};
if ( scalar(@$arrayref) > 0 ) is the same as
if (scalar @$arrayref)
Lines like:
my @operators = @$operators if $operators;
are bad because we need @operators to be declared and in scope later,
even if it is undef. Without $operators, the variable is not in scope.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
A couple of enhancments to Suggestions Management.
Adds a display of the borrower category of the suggesting patron for each item.
Adds links to the title and author displays so that the catalog can be quickly search for an existing bib.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This reverts commit 7a3bdce23d.
Even though patches were submitted that fixed the breakage
that this commit caused to NoZebra searchs, it turns out
this breaks code that uses SimpleSearch - clients of that
routine currently expect ISO2709 blobs, not MARCXML.
No further patches for 3226 will be pushed until a complete,
comprehensive patchset is submitted that (a) includes a
test case for the original bug and (b) demonstrates that
it doesn't break any aspect of bibliographic and authority
searching.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Only one argument is needed, as the name suggests.
Also removed unused package variable, added comments.
Fix POD for GetReservesFromBiblionumber
Only one argument is needed, as the name suggests.
Also removed unused package variable, added comments.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Mostly formatting SELECT statement for readability. Also updated POD
and added a comment. This command:
git diff -w C4/Reserves.pm
shows only the POD and comment chnages.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Updated POD for correctness.
Replaced strftime + regexp w/ C4::Dates->today.
Also removed some sth->finish statements.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This was, an in part still is, some of the worst-formatted code in Koha.
Also made a few minor changes:
~ removing sth->finish
~ adding comment
~ removed whitespace error trailing spaces
~ use trinary op, like: return ( $debarredstatus eq '1' ? 1 : 0 );
Note that the logic is the same, even where I condsider it faulty.
(In the exampe case, because $debarredstatus may be undef.)
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Avoids generating a slew of warnings in the log when the undefined
value was concatenated or used in regexps
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This includes some initial work for the 3M SIP2 extensions.
It also better populates the Patron object with methods for
a fuller Patron Information Reponse. This is positively affect
EnvisionWare software, as used by NEKLS.
This work was sponsored by the Northeast Kansas Library System.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
In cataloging, depending on installation and how biblio framework has been
created/modified, fields are not displayed ordered by tag number. For example,
in UNIMARC you can have in tab '2':
225
200
210
This patch order fields in tabs by tag and letter in the tag.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
When displayed on result page, some UNIMARC biblio
records are marc8 to utf8 converted for whatever
reason! It appears that iso2709 records in Zebra can't
always properly by used to construct MARC::Record.
This patch ask Zebra to return xml record rather than
iso2709 and use it to create MARC::Record (like
C4::GetMarcBiblio). i
Fix facet display.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The hash keys were made using a base and $item->{date_due}, but this key doesn't exists, so the possibility to have duplicate keys exists, and sometimes the others items were not shown. This patch fix this bug.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
When displayed on result page, some UNIMARC biblio
records are marc8 to utf8 converted for whatever
reason! It appears that iso2709 records in Zebra can't
always properly by used to construct MARC::Record.
This patch ask Zebra to return xml record rather than
iso2709 and use it to create MARC::Record (like
C4::GetMarcBiblio).
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Also prevents infinite-length renewals by returning undef
if passed an invalid date instead of renewing with no due date.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Adding a new item should pre-select the library you are logged in at, where possible.
Use GetBranchesLoop. This solves indy branches filtering, and sort order problems.
Set default off of ->{selected}, to establish pre-selected branch.
Fix flags check in onlymine sub, so superlibrarian + other flags still gets everything.
Removed defined(@array) check, since perl -wc warns it is deprecated.
Note new FIXME for botched date processing.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Allow replicate and update to be zero.
Break out logic into separate subs.
Do only one bind attempt depending on setting, instead of
necessarily failing first before trying auth_by_bind.
POD added for active directory and to document permutations of
behavior given different conditions. Fixed mistaken debug lines
that called "print STDERR printf ...", i.e. printed the line to output
and "1" to the error log. Added principal_name feature for generating
bind user from Koha userid.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Enabling compression gives a ~26% *reduction* over non-compressed Type 3 font embedding.
ie. 4.5 K/pg (compressed graphic) vs. 17.5 K/pg (uncompressed Type 3 font) vs 111 K/pg
(uncompressed graphic).
It also appears that most other applications that export in pdf use compression by
default. (OO Writer, etc.) So this approach appears justified. One could always add code
to allow the user to select embedding mode and compression.
Also correcting mode parameter value.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Label pdfs containing barcodes generated by Koha do not display barcodes
properly in Adobe Reader >v7.0.
This does not appear to be a bug in Koha code nor in PDF::Reuse::Barcode code,
but rather in the backward compatibility of Adobe Reader.
This patch changes the barcode embedding method from a Type3
font to graphical embedding which appears to work around the issue.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Adds the change suggested by Amer Denni to fix Bug 2599
in comment #7 at:
http://bugs.koha.org/cgi-bin/bugzilla3/show_bug.cgi?id=2599
For UNIMARC installations, this patch only works after
updating the "NoZebraIndexes" system preference to
UNIMARC indexes (by default, NoZebraIndexes is being
wrongly set to MARC21 values in UNIMARC installations).
That has also been reported as a Bug, by me (see Bug 2178):
Bug 2178 - "NoZebraIndexes" system preference is being set
to MARC21 values in UNIMARC installations
http://bugs.koha.org/cgi-bin/bugzilla3/show_bug.cgi?id=2178
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This patch adds some variables for the sortfield that are passed through the URL so that the sort-by feature works when the jquery tablesorter is used for a list of titles in opac-shelves.tmpl.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This patch fixes inconsistencies with the public and private list tables in opac-shelves.tmpl. It adds a "new list" link to the public list view, and it adds a "sort by" column.
This patch also removes the toggle variables from the tables in opac-shelves.tmpl and Page.pm, and uses the template __odd__ variable for table highlighting if javascript is turned off.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Code cannot rely on issueinformation being populated.
Note there is room for better efficiency to have AddReturn also provide the
itemnumber (where existing) so that GetItemnumberFromBarcode is not called
at both levels. Unfortunately there is discrepancy between this idea (for
efficiency) and the stated purpose of the $iteminformation object returned,
since $iteminformation is specifically the info from the issues table and
MUST be empty when the item was not in fact issued.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Passing $dbh around is an ancient style that doesn't know
to use C4::Context. C4::Context->dbh is efficient, especially
for modules that already use Context, including almost all C4.
I also internalized $today into the SQL using NOW() in the query
and removed sth->finish. Even though I dislike the return style
that gives the count, then the array, I left it becuase I don't
have time to fix/test all the callers. However, I did convert
it so it doesn't require a $count variable and its own loop.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The main change here is to get an {amount} field for CREDITS,
not just CHARGES. I also use a fallback to default value (5)
in case noissuescharge has been deleted or set to 0.
POD is reworked to keep the salient chunks
about patronflags in the correct section and format them for
easier reference. Deprecated display layer code.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
MoveMemberToDeleted is problematic. It has a bad name, since it
only copies, not moves. Also the POD for it referenced a totally
different function name and was largely useless. Sanity checks inserted.
A couple sth->finish removed.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
If a patron has no email address, we need to avoid stockpiling all
their messages indefinitely. Otherwise they get mailbombed when
their email IS added.
Note that overdues should not be affected, since the overdues job
checks whether the patron email exists before sending the message
(falling back to the admin). The other messaging features are the
targets affected by this patch.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Prior to this patch, turning AllowNotForLoanOverride on
allowed the circ operator to permit the loan of an
item who's individual not-for-loan flag was set, but did
not allow the loan of an item whose item type's not-for-loan
flag was set. This patch extends the definition of the
system preference so that both cases are covered.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Thanks to Frédéric Demians for the original impetus
to improve this function and for doing profiling.
Note that Memoize is a core module since at least 5.8.0.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The following functions are no longer in use:
* old_newsubscription
* old_modsubscription
* old_getserials
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
The distributedto column of the subscription table is
no longer used, having been replaced by the serials
routing list table. This patch removes two C4::Serials
functions and a script and template, none of which were
reachable by current code:
C4::Serials::GetDistributedTo()
C4::Serials::SetDistributedTo()
koha-tmpl/intranet-tmpl/prog/en/modules/serials/distributedto.tmpl
serials/distributedto.pl
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
* also start to standardize ISBN normalization
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Also corrected several links to viewlog.pl that
didn't take into account the recent renaming
of one of its parameters from 'module' to 'modules'
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Also removed POD containing disused function
checkvalidisbn.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Also fix issues with normalizing ISBNs and the default
normalizer in C4::Matcher.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Removed routines in C4/NewsChannels.pm that refered
to missing database tables news_channels and news_channel_categories.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Removed routines in C4/NewsChannels.pm that refer to
a missing opac_electronic table.
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Previous conditional check with if ($restype) is not needed because a true
result for one item will result in subsqeuent items defaulting to this true
value.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
When renewing a loan from the patron details page, setting
the renewal due date now works again. Broken by patch
for bug 2770.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Fixes a hang of the staging import tool when it
attempts to process a MARC21 record that claims
that it's UTF-8 when it is not. The staging import
will now attempt to fix the character encoding of such
records.
Also added a FIXME to bulkmarcimport.pl, which because
of its use of MARC::Batch will skip over such records -
better than the original hang of the staging import, but
worse than the staging import's new ability to fix such
records.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Use GetBranchesLoop and warnings. Remove unused code. Moved the Get's to after auth.
I begin to show how this script will use referer to redirect back to the sending
page upon successful change of branch or printer (see hidden div and recycle_loop).
Indicator for singleBranchMode added.
Also added another helper function for GetBranchesLoop, namely mybranch. This
encapsulates the logic for finding an intelligent default selection, which is
almost always desirable.
This does not resolve bug 2426, but is work in that direction.
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>