Commit graph

739 commits

Author SHA1 Message Date
Galen Charlton
60a98d258a IMPORTANT - refactor MARC character set handling
* IsStringUTF8ish - determine if scalar contains a string in UTF8
* MarcToUTF8Record - convert MARC blob or MARC::Record to UTF8
* SetMarcUnicodeFlag - set appropriate MARC21 or UNIMARC field to
  indicate that record is in UTF-8.

Design points of this module include:

* No dependencies on other C4 modules, making it easier to add
  more test cases
* All character conversion code in one place
* Single entry point for doing a character conversion on a
  MARC record
* Capture of errors and warnings produced by Text::Iconv
  and MARC::Charset
* Start of support for guessing the source character set of
  a MARC record.

Several functions were moved from other scripts
or modules to C4::Charset:

* C4::Koha->FixEncoding (expanded and renamed
  MarcToUTF8Record)
* C4::Koha->char_decode5426
* fMARC8ToUTF8 from bulkmarcimport.pl (renamed
  _marc_marc8_to_utf8)

Several batch jobs were adjusted to use MarcToUTF8Record instead of
FixEncoding.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-03 07:23:56 -06:00
Paul POULAIN
baceb1e0f1 french translation updated
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-03 07:22:36 -06:00
Daniel Bünzli
78f3e56e2c bulkauthimport fix
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-22 07:20:28 -06:00
Joshua Ferraro
aa22aa852b adding generic OPAC translation
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 18:51:33 -06:00
Joshua Ferraro
0f35e4bbfc updating generic translation POT file
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 17:38:41 -06:00
Joshua Ferraro
920709e54f renaming translation files to conform to our standard convention. Moving stats.pl and update.pl out of the po/ dir to avoid conflicts with kartouche stats system
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 17:24:33 -06:00
Joshua Ferraro
a4d63149e8 adding translations to OPAC
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 11:18:49 -06:00
Joshua Ferraro
7ec47eb8b9 misc/translator/po/hy-Armn-i-staff-prog-v-30000.pot update
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 11:18:31 -06:00
Joshua Ferraro
e3f6202979 retab translation script
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-07 02:23:38 -06:00
Joshua Ferraro
fea1b22f19 adding Armenian translation (Tigran Zargaryan <tigran@flib.sci.am> )
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-07 01:50:33 -06:00
Joshua Ferraro
5544f1603c adding download link
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-05 02:59:57 -06:00
Joshua Ferraro
2a37c19dac Rudimentary import of MARC21 authorities
Also adding support for ingesting format MARCXML in bulkmarcimport and bulkauthimport

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-04 21:30:17 -06:00
Joshua Ferraro
8451b42a30 fixing incorrect URL for unapi
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-04 21:30:02 -06:00
Paul POULAIN
94e7695916 lot of fixes to french translation
Note that online help is mostly *not* translated, but OPAC & all staff screens are

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-04 18:10:57 -06:00
Joshua Ferraro
e3eda86bf9 fix misspelling on release nots
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 21:36:41 -06:00
Joshua Ferraro
9c25d6368a improvements to INSTALL.debian, adding Symbols for currencies adding \n to make bulkmarcimport.pl prettier
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 21:28:37 -06:00
Galen Charlton
8c60e82605 fixed variable masking warnings found by perl -w
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 20:23:59 -06:00
Galen Charlton
3b5c4e0fb9 misc/cronjobs/update_items.pl: fixed syntax errors
Fixed syntax errors preventing compilation; however,
unsure whether this is a dead utility that should be
removed outright.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 20:22:08 -06:00
Joshua Ferraro
030fbd2e80 Microformat support:
Needed to restore OpenSearch capabilities, and did the following while
I was at it:

  * add support for unAPI: http://unapi.info/
  * add basic support for COinS and OpenURL:
    http://ocoins.info;
    http://www.niso.org/committees/committee_ax.html
  * ^^ Gives us Zotero Support!
  * adding some XSLT stylesheets for handling additional transformations
    NOTE: English and MARC21 specific unfortunately
  * adding back opensearch/rss feed <link>s for autodiscovery

TODO: after the installation, to get the Zebra system running on an external
port it's necessary to hand-edit the configs. I'm looking into Virtual Hosts
which could solve that problem (run on both the socket and a port).

Need to add better error handling to the unapi and opensearch scripts

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 18:00:16 -06:00
Galen Charlton
991cdc31bc speed boost: command-line stage and commit biblios
Turned off autocommit and commit every 100 records.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:26:24 -06:00
Galen Charlton
c2a0ed8077 item rework: replaced AddBiblioAndItems
Replace C4::Biblio::AddBiblioAndItems with two
things:

* An option to C4::Biblio::AddBiblio to defer writing
  biblioitems.marc and biblioitems.marcxml.  This
  option was created to give a significant
  speed boost to bulkmarcimport.pl, but is *not*
  recommended for general use.
* C4::Items::AddItemBatchFromMarc

This refactoring removes the need to have functions
in C4::Biblio and C4::Items that call each other's
private functions.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:26:16 -06:00
Galen Charlton
9d4d8897b2 item rework: various changes
* Move CheckItemPreSave to C4::Items (from C4::Biblio)
* Modified C4::Biblio::AddBiblioAndItems to use appropriate
   internal routines from C4::Items
* Moved GetItemnumberFromBarcode to C4::Items
* Removed duplicate C4::Biblio::_koha_new_items
* Removed disused C4::Biblio::MARCitemchange

Currently AddBiblioAndItems is a special routine that
uses private subs from both C4::Biblio and C4::Items.
This needs to be refactored.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:25:42 -06:00
Galen Charlton
35f8f65b41 item rework: replace direct SQL update of items
with ModItem calls

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:24:38 -06:00
Joshua Ferraro
5c23369af2 Fixing Database Definitions for Statuses *PARTIAL*
Prior to this fix, the status fields had three 'off' values, NULL, "",
and 0. I've reduced it to two in the db, removing the option for NULL, and
setting the default value to 0, however, we need to verify that we don't ever
write out as "" as this needlessly complicates the indexing process,
critical for searching or limiting by status (e.g., availability). Also,
queries that attempt to write a NULL value to one of these fields will fail
(based on my tests).

This patch includes the following changes:

* Updated the database definition for notforloan, damaged, itemlost, and
wthdrawn in kohastructure.sql to forbid NULL and default to 0; MySQL
can't forbid other values (such as empty ""), so this has to be handled
at the application layer and REQUIRES further patching.

* Fixed the 'limit by availability' query node in Search.pm to use a
much less confusing definition of 'available'

* Added code to set values to 0 where they are NULL or empty ( "" ) for
notforloan, damaged, itemlost or wthdrawn in both the MARC and the items
table:

  * Biblio.pm -> AddBiblioAndItems
  * catalogue/updateitem.pl
  * SEE NOTE BELOW, REQUIRES UPDATE TO THE REST OF KOHA'S ITEM MGT!

* Removed code in bulkmarcimport.pl that sets notforloan status depending
  on item-level or bib-level itemtype -- that flag is designed to be set
  only to override the notforloan setting for the item's (or bib's,
  depending on the syspref) assigned itemtype (it doesn't need to override
  to 'for loan', only to 'not for loan').

  added $dbh->do("truncate zebraqueue"); when operation is 'delete'

* I updated some notes in catalogue/updateitem.pl as to why ModItem can't be
used -- we don't have _a_ place where we can change the item and marc :/

  I've tested the following:

  bulkmarcimport.pl..........................MARC/items OK
  Staged Records Import......................NOT OK
  updateitem.pl (via moredetail.pl)..........MARC/items OK
  circulation.pl.............................NOT OK
  returns.pl.................................NOT OK
  addbiblio.pl...............................NOT OK
  additem.pl.................................NOT OK

Basically, there isn't a single place to apply this patch that will
update both item data and MARC data in one place ... a future patch
needs to address this issue.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:23:04 -06:00
Chris Cormack
c7215e7a93 Escaping the $title in the regexes with \Q and \E to handle nested quantifiers
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 01:20:40 -06:00
Paul POULAIN
4c2d76e21f small fix to french translation
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 01:15:48 -06:00
Paul POULAIN
1f70b9aa17 french translation updated
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 01:15:47 -06:00
Paul POULAIN
319a32b16e rebuild_zebra : directories updated
the unimarc stuff has been moved to marc_defs directory and the
lang specific is in lang_defs

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 00:55:12 -06:00
Joshua Ferraro
fb61283115 adding release notes for 3.0
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-02 07:49:35 -06:00
Joshua Ferraro
554bbe1bda s/Waited/Expected/ for serials statuses reformating rebuild_nozebra.pl indexes
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-01 12:59:28 -06:00
Joshua Ferraro
6a9b9b09b9 more re-arranging prior to release
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:13:49 -06:00
Joshua Ferraro
062d46800e re-naming some files prior to release
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:13:39 -06:00
Joshua Ferraro
dd3f557f53 fixing nomenclature on files in misc/, adding a few new utilities
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:13:34 -06:00
Joshua Ferraro
c6ddddad98 adding a new option, -w, which disables shadow indexing for the current batch (faster indexing of large sets where ACID isn't critical)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:13:27 -06:00
Joshua Ferraro
dd50153f00 moving some files and deleting cataloguing/updateitem.pl, the _real_ updateitem.pl is in catalogue/
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-30 12:09:52 -06:00
Paul POULAIN
d46958af51 replacing SHELF_LOC by LOC, as decided with kados on the chat
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-26 14:33:02 -06:00
Galen Charlton
89e38b5d5f fixed typo in directory name
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:42 -06:00
Galen Charlton
3508933c66 bulkmarcimport: enable MARC-8 to UTF-8 conversion
Enabled automatic conversion of MARC-8 records to
UTF-8.  Record is converted if its Leader/09 contains
a blank and the -s (skip) option hasn't been supplied
on the command-line.  Any record that cannot be converted
to UTF-8 is skipped.

Also now use Unicode Normalization Form C (NFC) for
records converted from MARC-8.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:38 -06:00
Galen Charlton
d426a91d0e removed extraneous comments
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:35 -06:00
Galen Charlton
cb6cf680bc improved error detection in AddBiblioAndItems
Introduced new C4::Biblio function CheckItemPreSave,
which checks for duplicate barcodes and invalid
branch codes.  Not yet sure whether this function
needs to be exported or whether it will just be
used internally to C4::Bibli.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:34 -06:00
Galen Charlton
6b49df4c3f removed superfluous comments
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:31 -06:00
Galen Charlton
7d47666f7e bulk MARC record import - speed improved
Changes to improve speed of MARC bib and item
imports:

[1] Turn off autocommit and commit database
    transactions in larger batches.
[2] Introduce a new C4::Biblio function (AddBiblioAndItems)
    to combine AddBiblio and AddItems -- this is faster
    because we are not parsing the MARC XML of the biblio
    every time we add an item.
[3] Introduce FasterTransformMarcToKoha, which is much
    faster than TransformMarcToKoha.  The new version,
    which will replace the old one once it has been
    fully tested, scans through each field in the
    MARC record just once, instead of potentially
    dozens of times.
[4] Remove code in bulkmarcexport that moved the
    item tags to separate MARC::Record objects.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-25 09:08:28 -06:00
Galen Charlton
4609608ccc allow use of older version of File::Temp
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-22 22:58:12 -06:00
Galen Charlton
4c72d109ce fixed invocation of zebraqueue_daemon.pl
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-22 20:09:34 -06:00
Galen Charlton
0c192a4ece removed extra KOHA_CONF line
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-22 18:59:12 -06:00
Joshua Ferraro
dcb3858ffd Several important commits:
* adding zebra daemons for managing server and queue processes
  * improvements to the README.debian file
  * Fixes to Search.pm since last series of commits broke zebra-based
    searching (again)
  * moving some files to new misc/bin and misc/cronjobs

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-22 18:26:39 -06:00
paul
d0b4d7fe97 french translation updated
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-21 07:53:42 -06:00
paul
aa65b7fbf6 staff french translation updated
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-21 07:51:57 -06:00
paul
6b37b62a5f french staff translation updated
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-21 07:44:43 -06:00
Galen Charlton
93beb943c0 bug 1661: rebuild_zebra.pl changes
[1] Use File::Temp to create and manage
    export directory if -d is not specified.
[2] Added usage message.
[3] Code that attempts to fix up Zebra
    configuration files changed so that it
    is invoked only if --munge-config option
    is supplied; this code will ultimately
    either be removed or moved to a separate
    script -- the sorts of errors that it
    tries to fix should no longer be appearing
    in a standard install.
[4] Fixed Win32 portability problem when removing
    temporary directory.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-20 19:19:43 -06:00