This change corrects the effect of a typo (NULL NULL instead of NOT NULL).
M Open-ILS/src/sql/Pg/200.schema.acq.sql
M Open-ILS/src/sql/Pg/1.6.1-2.0-upgrade-db.sql
A Open-ILS/src/sql/Pg/upgrade/0404.schema.acq-provider-contact-null-null.sql
I will start with the changes which I think are straightforward. First, textual_holdings are sometimes used to augment the generated_coverage and at other times should completely replace it (generally when the holdings statement is too complex to be easily generated or has more detail than we care about). The 'show_generated' flag in each summary table is a simple means of indicating which type of display we want. Second, 'summary_method' will be consulted when generating the 'generated_coverage' fields, and tells us how any attached MFHD records (SREs) should be treated for this distribution in relation to the new structured data (attempt to merge the data, generate display data from both separately, or generate based on one or the other only).
The changes to serial.caption_and_pattern are not as straightforward, but I think they are justifiable. Any given caption/pattern is only valid for a certain period of time (i.e. until it changes). As it stands, we can infer the start and end dates of a caption/pattern only by consulting the attached issuances. In practice this means retrieving and sorting sometimes hundreds of issuances to provide for the sorted display of just a few caption/patterns. As I work with these objects more, I am simply often wishing for a more convenient access point to this important data. This also means that the 'active' flag is redundant (caption/patterns with end_date-s are not active), but we need to get end_date in place before we can start removing the 'active' flag from the code.
Make authority.normalize_heading() more defensive, and drop back to a plain (non-unique) index
NOTE: Database server now requires UUID::Tiny CPAN module in its Perl repertoire
When faced with terrible input, authority.normalize_heading() will generate a
heading based on the MD5 UUID of the input value, flagged with "BAD_MARCXML"
if the MARCXML could not be parsed, or "NOHEADING" if there was no 1xx field.
Previously, authority.normalize_heading() would throw raw, ugly Perl errors.
Many thanks to Mike Rylander and Galen Charlton for their suggestions on how
to break the original version of authority.normalize_heading(), this code
should be much more robust as a result.
In r15732, the Volume/Copy Creator was modified to serve double-duty as a batch interface for re-barcoding existing items. This extends that incarnation further and allows for changing the volumes for existing items as well. In Holdings Maintenance, the entry-point for this is Actions -> Replace Barcodes. However, it's Acquisitions that is prompting this development, and the entry point there is on the Line Item, under Actions -> Update Barcodes
Drop arn_value and arn_source from the authority.record_entry table
Now that we have the unique index by thesaurus on actual headings, arn_value
and arn_source are a dead weight that we can gleefully toss overboard.
Tested with authority record import via Vandelay and authority record
creation during bibliographic editing; confirmed that validating authorities
still works, no apparent visible difference to the world.
Create a unique index on authority records based on their heading, thesaurus, and heading text
By providing a truly unique index for headings for a given thesaurus, this
index sets the stage for removing the arn_value / arn_source columns from
the database.
Sites with loaded authority records who attempt to add this index may find that
it fails due to existing duplicate entries; some suggestions for hunting down
the trouble-doers (duplicate entries) is provided in
Open-ILS/src/sql/Pg/0400.schema.unique_authority_index.sql
add 'atevdef', 'ath', 'atreact', 'atval' to the list of classes to pull in so that Admin -> Local Administration -> Notifications / Action Triggers works
Several objects get updated potentially several times during processing,
and it is important to retrieve the item after earlier updates because
some columns are being populated by DB default values or 'NOW', for example.
The first 'NOW' for create_time would be correct, the subsequent ones incorrect,
so the value(s) must be fetched.
In order that an edi_message shows up in the list associated with a PO, we take the
first valid PO number, if present. Note that this mapping theoretically may vary:
multliple PO lineitems *could* appear in one response, but in practice, we
expect only one, so this should suffice. This is also a good reason to prevent
splitting a PO after it has been sent.
Lots of crosschecking. Accept files from command line or STDIN.
Had to break out the logic in EDI to accommodate non-retrieved input.
Remote retrieval now avoids pulling a file if the same file was
previously retrieved and successfully processed. If it bombed out,
then we get it again (on the hopes it might have been fixed).
Also better test_client behavior on edi2json failure.
Overhaul ORDRSP processing based on new Business::EDI capabilities
Lots of error checking
Fetch updates for xpath_value and a B&T data hack
ORDRSP is forced only b/c the DB requires it. We can't accurately
know the message type until the translator deals with it (or we
build our own fault-prone sniffer). But for now all we expect from
vendors in ORDRSP, so we can force temporarily.
* updated bibliographic tooltips; now current as of LC MARC21 Bibliographic
Update 11, including the RDA tags. Along the way, enhanced the bib tooltips to:
* include definitions for embedded holdings tags (84X, 853-855, 863-868, 876-878)
* expand dropdown for nonfiling indicator values
* added tooltip files for authority records and MFHDs
* taught MARC editor how to choose the correct tooltip file
Caveat: if you localize the authority and MFHD tooltips for a locale other than
en-US, you must edit marcedit.js, either to take your translation into account
or to make it smarter about checking for available translations of the tooltips.
additional issuance holds supporting code; in this case, hold_to_mvr func which is used by the uber hold details method; commit also includes a small speed tweak for fetching details for copy holds (1 less cstore call)
Integrate authority browse and creation support into the MARC editor
This commit changes the contextual authority menu to be based on
the authority browse interface; this should result in better
matching behavior. The browse axis (author, subject, title, topic)
is based on the context tag.
The browse interface has enabled the contextual menu to grow
"Next page" / "Previous page" menu items to enable cataloguers
to wade through long lists of similar authority entries.
The browse interface has also grown a "Create new authority record"
menu with two submenu items.
* "Create immediately" takes the field in context and creates a new authority
record based on that field, with matching indicators and subfields.
* "Create and edit..." displays the MARCXML for the authority record in
a MARC editor window before saving the record to the database.
TODO: Make the "Create..." contextual options add the $0 linking subfield
to the newly controlled field.
TODO: Address some of the flaky UI behaviour, such as having to right-click
three times on an authority-controllable field to display the authority menu.
fix retrieval of cat.default_classification_scheme
Fixes bug where the cat.default_classification_scheme OU
setting was effectively ignored in bib call # display
in bib overlay and list of default call numbers during volume
creation.
method for generating a set of compressed holdings statements for a bib with optional location and depth scoping, type filtering and item status filtering
we need to move permissions around for a Great Renumbering, but i18n is not protected by fkeys. this provides infratructure for maintaining i18n values that already exist in a db, and an example usage on permission.perm_list
The custom file need only contain the properties that you wish to change.
The xul <messagecatalog id="commonStrings" src="/xul/server/locale/<!--#echo var='locale'-->/common.properties" /> will attempt to parse both common.properties and common_custom.properties
senator [Sun, 12 Sep 2010 19:03:01 +0000 (19:03 +0000)]
Serials: dojo/autogrid-based scaffolding for building serials objects
Accessible from the staff client OPAC browser's "Actions for this Record" menu
as "Alternate Serial Control", these minimalist interfaces should support a
workflow by which the user can create a subscription and its related parts
(distributions, streams, etc), and get things going in a quick and dirty way
while the existing Serial Control View continues to develop.
Some notable differences in orientation between this and the existing
interface work include:
- The disuse of call numbers on distributions, instead favoring call number
application to items by issuance at receive time (i.e., all copies of
the Sep 2010 issue of Popular Mechanics share a call number rather than
all copies of Popular Mechanics, any issue, at a given library sharing a
call number).
- Lack of attention to binding (although the batch receive interface will
treat each item as a single bound unit, for barcoding, or will avoid
creating units altogether if you don't want to barcode your serials).
If this doesn't sound like the way you would do serials, I'd definitely
recommend sticking with Serials Control View and ignoring these interfaces.
Dan Wells' interface work promises broader functionality in the long run.
senator [Sun, 12 Sep 2010 00:12:26 +0000 (00:12 +0000)]
Serials: support predicting issuances until a specified end date
Previously you could specify a number of issues, or possibly a final holding,
but if you haven't created the final holding yet, but you know when the
subscription ends, this can be useful.
add "type" (siss.holding_type) and "status" (sitem.status) filters; renaming the method to be explicit about the fact that it is for issuances with received (sitem.date_received IS NOT NULL) items /only/
senator [Fri, 10 Sep 2010 22:24:44 +0000 (22:24 +0000)]
Add "refresh grid" buttons to some consistently glitchy autogrids.
This is obviously not an ideal solution, but if the user sees these grids
and it's clear that not all the rows that should appear are rendering, they
at least have a button to click to deal with it. There are probably other
places where this could be applied.
'use parent' consistently throughout OfflineStore.pm
If we're going to use "use parent" instead of "use base" when creating
the child instance of Class::DBI 3.01 that is OpenILS::Utils::OfflineStore,
we might as well be consistent when declaring its own children.