As part of fixing hold request bugs 1710 and 1739,
two new system preferences are defined:
AllowOnShelfHolds: YesNo, default value OFF
* if ON, allow item-level hold requests to be
placed for available items that are not on loan
AllowHoldsOnDamagedItems: YesNo, default value ON
* if OFF, item-level hold requests cannot
be placed on items that are marked damaged.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Patch to remove issuingrules.pl in favor of
using smart-rules.pl to manage loan and fine
rules. Several reasons for this:
* issuingrules.pl's matrix could grow rather large
if the library has a large number of item types
and patron categories
* successfully entering rules via issuingrules.pl
requires placing commas within input fields
* a sparse circulation policy matrix takes the
same amount of screen space as one that uses
rules for a lot of specific patron category/item type
combinations.
* having two administrative interfaces to the same
policy settings could be confusing.
* UI design of smart-rules.pl better lends itself
to adding more policy setting attributes to the
rules matrix.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Removed the separate admin/finesrules.pl script
to set the fines policy matrix: since admin/finesrules.pl
and admin/issuingrules.pl both touch issuingrules.pl, creating
a specific fine rule could silently override a default issuing
rule and prevent items from being checked out.
Circulation policy matrix settings for fines are now
handled in admin/smart-rules.pl
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
* Added ability to specify total loans allowed at a library
for the default patron category. If set, the default
limit is applied if no rule for the specific library
and patron category is set.
* Added ability to specify default total loans allowed
for the default library; this is applied if no rule
for the specify library is set.
* Form now indicates if the number of current checkouts
allowed is unlimited.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The alternate issuing rules editor can now allow
defining the maximum number of loans that a borrower
of a given category can take out per branch, regardless
of item type.
The form for entering this limit now appears below
the form for setting loan rules per patron category
and item type. The form only appears if a specific
branch is chosen, not if the default branch is used.
Also, some terminology changes:
* "Amount Loanable" => "Current Checkouts Allowed"
* "Amount" => "Fine Amount"
* "Grace Period" => "Fine Grace Period"
* "Charging Interval" => "Fine Charging Interval"
* "Loan time" => "Loan Period"
Documentation change: new screenshots for the alternate
loan rules form.
squashme terminology
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Issuing rules are now explicitly sorted by patron category,
then item type. The default patron category sorts last; within
a list of item types for a given patron category, the default
item type sorts last. This follows the order in which
the issuing rules are applied.
Since the primary sort is patron category, also moved that
to be the first column in the issuing rules table.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Improvements to smart-rules.pl to allow it to
replace issuingrules.pl.
* standardized "borrower type" to "patron category"
* made default item type and patron category ('Any')
translatable
* regularized construction of parameters for rule
deletion operatrion
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
removing "link" field which has been removed from table auth_subfield_structure
Removing a $dbh->disconnect
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
from circulation dashboard, creates new sysprefs, assigns
the sysprefs to the proper tab in sysprefs (Circulation),
updatedatabase changes to do the previous, and fixing one
redundent limit in the query for build_holds_queue.pl
Note: still need to address item-level holds
Third attempt to correct a bug affecting this page.
Combo lists wasn't reflecting DB content in modification.
To Joshua: You have to apply patch 2 first (patch 1 isn't required)
since I applied this quick fix without rolling back to original state!
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
An earlier attempt to prevent deletion of default framework
by passing a suitably constructured URL actually had
the opposite effect - the default framework could be deleted,
but ia hon-default one could not.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Changed some of the tests so that all frameworks
are tested, not just the first row.
This patch has turned up a reported error in the
unimarc_lecture_pub - items.homebranch
and items.holdinbranch for the WEB framework are
in tab -1 (i.e., ignored), but the check is expecting
them in tab 10. Not sure if this is a real error or not:
perhaps no items should be created for bibs in that framework;
on the other hand, it is still possible to do so, in which
case the branches need to be set.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Editing authorisedvalue now checks if OTHER value has the same authorised_value
before storing
id is now passed to the form so that it is used when editing authorised_value
when imageurl it is passed as '' not empty parameter
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Added new script under the Administration menu
to create, update, and delete patron attribute types.
Some things to note:
- once an attribute is created, its code cannot be changed
- the repeatibility and unique_id settings of an
attribute type cannot be changed after creation -
this is to avoid having to deal with changing
constraints if an attribute type is already in use
by patron records
- an attribute type cannot be deleted if it is
used by any patron records
- this administration page is always displayed regardless
of the value of the ExtendedPatronAttributes syspref. If
the syspref is off, the page will prompt the superlibrarian
to turn it on if desired.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Added two tables and system preference to support
a new patron alternate ID and attributes feature.
A patron attribute (or extended patron attribute) is an
additional piece of information associated with a patron
record. Each attribute has a type that specifies
whether the attribute is repeatable, can serve as
a unique identifier, can take a password, and
whether it can be used to search for patron records
in the staff interface.
The list of attribute types is controlled by the
superlibrarian. Once an attribute type is defined,
values for that attribute can be added to the patron record
via the staff interface or the batch patron import.
Two uses of extended attributes are:
- defining additional unique identifiers, such as
a campus student ID number, a library staff
HR number, and so on. These IDs can be used
for searching or matching and overlaying records
during a batch import.
- additional statistical categories. For example,
a library could define an attribute type for
tracking the academic major of a student patron.
Any number of attributes of this sort could be
defined.
The extended attributes feature is completely optional. If
the new syspref, ExtendPatronAttributes, is OFF, the patron
attributes tables will be ignored; it will not be possible
to display, edit, search for, or match on extended
attributes.
The tables are:
[1] borrower_attribute_types - store attribute types
defined by the administrator.
- code
- description
- repeatable (whether a patron record can have
more than value of a given attribute type)
- unique_id (whether values of this type
must be unique within the database)
- opac_display (whether values of this type
can display in the patron details page in the OPAC)
- staff_searchable (whether values of this type
can be used to retrieve patron records in circulation)
- password_allowed (if set, staff patron editor will
allow a password to be associated with a value; this
is mostly a hook for functionality to be implemented
in the future.
- authorised_value_category (code of an authorised_value
category. If one is specified, the staff patron
editor will use a dropdown for setting values of this type)
[2] borrower_attributes - the actual attributes.
- code (attribute type code, FK)
- borrowernumber (link to patron, FK)
- attribute (the value)
- password (password associated with value)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adding New Systempreference AddPatronLists
This systempreference allow administrator to choose if patrons are created on categorycode lists or category_type ones.
Overloading GetBorrowerCategory so that if no parameter provided, it returns the list of category records
Changing memberentry.pl in order to use the categorycode when provided.
Bug Fixing Circulation.pl so that doesnot come up with Error 500
with no category selected for GetBorrowerCategory
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Removed the categorytable, mediatypetable, and subcategorytable
tables. These three tables appear to be from an incomplete
patch from pre-git that defined these tables to implement
additional search limits, and are not present in the 2.2.9
package. In 3.0, these tables did nothing - the only code that
referred to them are incomplete admin editors that lack HTML
templates and are not referred to anywhere.
The updatedatabase.pl logic to remove these tables is conservative;
the tables are dropped only if they exist and are all empty. Effectively,
this means that they'll be dropped if you've been running a fresh install
of 3.0 from git or the alphas or betas; if you've upgraded your database
from 2.2.9, these tables likely weren't in your database to begin with.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch adds the ability to associate icon images with authorized values.
They're not displayed anywhere yet, though. There's also a database update
in here. I took version "3.00.00.075", but I can change that later if it gets
taken before I commit these patches.
DOCUMENTATION CHANGES: When you add or edit authorized values, you can now
associate image icons with them. These icons come from the same icon sets
that you can have with your itemtypes, such as media type. They don't show
up anywhere yet, but that's coming. Keep an eye on
http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=2047
for more updates.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
I'm extracting some of the icon manipulation logic so that I can get to it from the authorized values pages.
There should be no functionality or documentation changes with this commit.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
I've rearranged the two directories where media type icons live.
I've also added two more collections of icons, one from
http://apps.carleton.edu/campus/library/bridge_icons/
and one from liblime (Tina). The first has a license restriction that I added
to the "Licenses" tab on the "About" page.
Then, I've adjusted the Item Types Administration page so that it can deal
with multiple collections of icons.
I also added a test script to verify that the two identical icon directories
are actually identical.
DOCUMENTATION CHANGE: It's possible that we need to add something to the administration
documentation to indicate how you can add more sets of icons if you want. You simply add
directory to koha-tmpl/intranet-tmpl/prog/img/itemtypeimg/ and to
koha-tmpl/opac-tmpl/prog/itemtypeimg. The icons should start showing up.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The patch update the DB by adding a row in the subscription table (serialsadditems), that is filled with the value of the syspref.
then, the syspref is deleted.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Check verifies that all subfields for each tag
are assigned to the same editor tab (or are ignored).
This situation can lead to data corruption, because
if an incoming MARC record has a field whose subfields
are assigned to different tabs, the first time that
record is saved in the bib editor, the field
will be split into multiple versions, each containing
the subfields assigned to a given tab.
Errors identified by this test known
in the MARC21 frameworks - I'm working on a patch to
correct those.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Because of the way that the older fine and issuing
rule editors generate the HTML form, if a branch code,
patron category code, or item type code happened to have a
'-' or '.', the HTML form would not be parsed properly, thus
adding an implicit (rather than explicit) limit on the
characters allowed in one of those codes.
This fix removes this limitation by Base64-encoding the codes
when constructing the names for the <input> elements.
Two functions are added to C4::Koha:
str_to_base64() - UTF-8 string to Base64
base64_to_str() - reverse
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
First big commit in a project to add more granular
staff user permissions to Koha.
* Created two new database tables
permissions:
stores a list of defined permissions; each
permission is to be interpreted as a child
of a top-level permission defined in the
existing user flags. For example, Tools (bit 13)
now has a separate sub-permission for each
individual tool.
The columns are
module_bit = FK referencing userflags.bit
code = code, e.g., import_patrons
description = e.g., "Import patron data"
user_permissions:
stores a list of the specific permissions that
a staff user actually has. For example, if
staff user 123 has only the 'import_patrons' subpermission
of 'Tools' (module_bit = 13), that would be represented
by having (123, 13, 'import_patrons' in user_permissions.
user_permissions and borrowers.flags are now interpreted
as follows (assuming the CheckSpecificUserPermissions syspref
is ON):
* If the appropriate bit (e.g., bit 13 for Tools) is set
in borrowers.flags, the staff user can access all
Tools functions. There should be no rows in user_permissions
for that staff user and userflag bit combination.
* If the bit is not set in borrowers.flags, but one or
more rows are present in user_permissions for that
staff user and bit combination, the staff user can
access the specified sub-functions.
* If the bit is not set in borrower.flags and there are
no rows in user_permissions for that staff user and
bit combination, the user cannot access any of the functions.
Note that this means that if a staff user can access all
functions for a module (because the bit is set in borrowers.flags),
the user will automatically be able access any new subfunctions
added to permissions by a database update.
The columns are:
borrowernumber = FK referencing borrowers.borrowernumber
module_bit, code = FK referencing permissions
* Added a new system preference, CheckSpecificUserPermissions
If this system preference is ON, staff users can be assigned
specific permissions which will be respected during
authorization checks. If this system preference is OFF, the
current userflags semantics will continue to apply.
* Defined sub-permissions for Tools. The list of specific
tools permissions is now:
edit_news Write news for the OPAC and staff interfaces
label_creator Create printable labels and barcodes from catalog and patron data
edit_calendar Define days when the library is closed
moderate_comments Moderate patron comments
edit_notices Define notices
edit_notice_status_triggers Set notice/status triggers for overdue items
view_system_logs Browse the system logs
inventory Perform inventory (stocktaking) of your catalogue
stage_marc_import Stage MARC records into the reservoir
manage_staged_marc Manage staged MARC records, including completing and reversing imports
export_catalog Export bibliographic and holdings data
import_patrons Import patron data
delete_anonymize_patrons Delete old borrowers and anonymize circulation history (deletes borrower reading history)
batch_upload_patron_images Upload patron images in batch or one at a time
schedule_tasks Schedule tasks to run
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
As announced this past February, Amazon.com will no longer be
accepting web services requests to Amazon E-Commerce Service
(Amazon ECS) version 3.0 beginning on March 31, 2008.
This patch upgrades to Amazon.com's Associates Web Service 4.0
for the following components:
1. Amazon.com Locale support for: Canada, Germany, France, Japan,
UK, and US (see the new syspref called AmazonLocale)
2. Jacket Covers
3. Editorial Reviews
4. Customer Reviews
5. Amazon.com Similar Items
The following changes MUST be made to continue using Amazon.com
content:
1. Delete the system preference: AmazonDevKey (AmazonDevKeys used
with AmazonECS 3.0 are no longer valid)
2. Add the system preferences: AmazonLocale, AWSAccessKeyID
NOTE: steps 1, 2 are done by the web installer
3. Verify your AWSAccessKeyID:
You may already have an Access Key ID. You can access your Access
Key ID by going to http://aws.amazon.com, pointing to Your Web
Services Account, then clicking View Access Key Identifiers.
Depending on when you signed up for ECS 3.0, you may need to
re-register for an AWS account, which includes an Access Key ID.
4. Enter your AWSAccessKeyID in the Koha syspref called
AWSAccessKeyID
For complete details on the changes in Amazon.com Associates Web
Service 4.0, and the migration process, please see: http://tinyurl.com/ysorqy
Other changes with this patch:
* added $tabsysprefs{PatronsPerPage}="Patrons";
* Moved OPAC Features to OPAC in sysprefs
* removed experimental OPACXISBNAmazonSimilarItems and XISBNAmazonSimilarItems features
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
It wasn't possible to edit an existing tag. The program was idenfifying
tag modification as a tag creation.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>