Why a refactoring was need for this script?
The export tool (tools/export.pl) can be called from the command line
and some parts of code were unnecessarity complicated (just look at the
code, you will understand).
Worse still, the script does not provide the same options for both
interface. For instance you cannot export records given a range of
biblionumbers, authids, callnumbers, etc. from the commandline.
What does this patch?
1/ Important: The script tools/export.pl does not work anymore if called from
the command line (should be in the release notes).
2/ The code used to generated a file (csv, iso2709 or xml) has been moved to a new
module (Koha::Exporter::Record) and tests have been provided.
3/ No change is done on the web interface
4/ Some new options have been added to the commandline script
(misc/export.pl):
- starting_authid
- ending_authid
- authtype
- starting_biblionumber
- ending_biblionumber
- itemtype
- starting_callnumber
- ending_callnumber
- start_accession
- end_accession
5/ There is a change in the behavior if an error occurs:
Can't call method "as_usmarc" on an undefined value at Koha/Exporter/Record.pm line 114.
record (number 5530) is invalid and therefore not exported because its reopening generates warnings above at Koha/Exporter/Record.pm line 117.
Before this patch, they were not displayed (using the command line).
What does not do this patch?
It does not provide the 'clean', 'timestamp' and 'deleted_barcodes' options to
the web interface (same as before).
What about the perfs?
With a DB with ~800 biblios (MARC21)
Before: perl tools/export.pl 14.79s user 0.83s system 71% cpu 21.905 total
After: perl misc/export.pl 17.19s user 0.84s system 75% cpu 24.018 total
With a DB with ~6400 biblios (UNIMARC)
Before: perl tools/export.pl 26.55s user 0.76s system 76% cpu 35.498 total
After: perl misc/export.pl 26.78s user 0.84s system 80% cpu 34.494 total
How to test this patch?
Test plan:
A. Web interface:
1/ On the current master, export some records, biblios and authorities (with
the 3 differents exports) playing with the different filters (item type,
libraries, callnumber, accession date, don't export items, remove
non-local items, don't export fields, etc.).
2/ Apply this patch, export again the same records, and compare the
generated files. They must be identical!
3/ Confirm that the export features on the checkout list
(circ/circulation.pl) works as before this patch.
B. The command line
1/ On the current master, export some records, biblios and authorities (with
the 2 differents exports) playing with the different options (date,
deleted_barcodes, clean).
2/ Apply this patch, export again the same records, and compare the
generated files. They must be identical!
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
In this simple patch the width gets controlled by CSS and it becomes
easy to set it in just one place.
The exact width may need to be discussed but I thought 30em made it look ok on my screen.
With this patch we get the wider search boxes with a very small change and another bug may
be created if needed to do a bigger refactor and remove stuff not needed in the html and
perhaps do this in a modern/responsive way. (Preferrably a UX/GUI developer will do this)
To test:
Apply the patch and reload the staff client. Now the search box is a bit wider and the border
etc has changed with it.
Some places with more than one search box like "Serials" will not be affected.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
I think showing the title with the user name is quite unusual for
Koha. Wrapping the title in a span with a unique class makes it
possible to hide it.
http://bugs.koha-community.org/show_bug.cgi?id=14248
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
TEST PLAN
---------
1) apply patch
2) prove -v t/db_dependent/NewsChannels.t
3) run koha qa test tools.
Signed-off-by: Martin Persson <xarragon@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
* Apply dependant patches 14246 and 14247.
* Apply current patch.
* Log into the Staff client, go to
'Administration' -> 'Global Preferences' -> 'Tools',
a new section titled 'News' should appear with a single option named 'NewsAuthorDisplay'.
Available values should be 'Not at all', 'OPAC only', 'Staff client only' and
Both OPAC and staff client'. By default the value should be 'Not at all'
(to mimic existing behaviour, important!).
* Change the value to something different and save the changes.
* Go to 'Tools' -> 'News' and add some news items (at least 2).
* Use the MySQL command line tool to edit the opac_news table,
removing the user id from one of the news items:
$ mysql -u kohaadmin -p -D koha
> SELECT `idnew`, `title`, `borrowernumber` FROM `opac_news`;
* Make a mental note of one of the 'newid' numbers to change.
> UPDATE `opac_news` SET `borrowernumber` = NULL WHERE `idnew` = <your-id-here>;
* Now one of the news items will have no user id, and no author should be shown for it.
* Go to OPAC and Staff client and make sure the display modes works as intended.
* Repeat for all values, making sure that the settings works as intended.
* The changed news item should have no author info shown at any time.
* The unchanged news item should show your own user name if the
settings match the section where it is displayed.
Sponsored-By: Halland County Library
Tested on top of Bugs 1246 and 1247, works as advertised.
Note: Some whitespaces changed / removed in koha-news.tt to pass qa tools.
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This trivial patch changes the name of the SQL update
file to match the guidelines on the wiki.
Sponsored-by: Halland County Library
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
* Apply dependant patch 14246 (if not done already).
* Apply current patch.
* Log into the Staff client, go to 'Administration' -> 'Global Preferences' -> 'Tools', a new section titled 'News' should appear with a single option named 'NewsAuthorDisplay'. Available values should be 'Not at all', 'OPAC only', 'Staff client only' and 'Both OPAC and staff client'. By default the value should be 'Not at all' (to mimic existing behaviour, important!).
* Change the value to something different and save the changes.
* Use the mysql command line client to connect to the Koha database:
$ mysql -u kohaadmin -p -D koha
* Enter the following query:
SELECT * FROM systempreferences WHERE variable = 'NewsAuthorDisplay';
* Check to make sure that the 'value' column has changed to reflect the choice you made in the above step.
Separate SQL testing (clean installation of Koha):
* Koha$ mysql -u root < create_koha_test_db.sql
* Koha$ mysql -u koha_test -D koha_test < installer/data/mysql/kohastructure.sql
* Koha$ mysql -u koha_test -D koha_test < installer/data/mysql/sysprefs.sql
Testing the update script works the same way:
* Koha$ echo "DELETE FROM systempreferences WHERE variable = 'NewsAuthorDisplay';" | mysql -u koha_test -D koha_test
* Koha$ mysql -u koha_test -D koha_test < installer/data/mysql/atomicupdate/add_news_prefs.sql
Signed-off-by: Marc Véron <veron@veron.ch>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Ran misc/devel/update_dbix_class_files.pl as shown on
wiki/Database_updates#updatedatabase.pl
However, only git added Borrower and Opacnews, since
those were the two affected by this patch.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Address bug 14246 comment 13 remark - correcting MySQL ALTER TABLE
syntax.
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit adds the new 'borrowernumber' field to the existing
test framework to make it pass. It does not include new tests.
Sponsored-by: Halland County Library
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
As suggested by kind reviewers, an AFTER statement was added to the atomic
upgrade script to ensure that the final field order is consistent is both
fresh and upgraded databases.
Also:
* UPDATE action changed to CASCADE to improve robustness.
Test plan:
* Apply first patch in this set.
* Apply this patch.
* Perform a database upgrade.
* Use mysql client to inspect field order.
It should be identical to the kohastructure.sql order.
Sponsored-by: Halland County Library
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch adds a new column to koha_news that links a
borrowernumber to each item. This allows Koha to display the
author for each entry which makes it suitable as a simple CMS.
Changes (from rejected patch):
* Added missing kohastructure.sql changes.
* Turned the atomic update file into a SQL file and changed name
in accordance with wiki guidelines.
* Changed SQL syntax and naming to be consistent with existing code.
* Attached test plan to commit message.
Test plan:
* You need at least one news item, log in and add one from
'Administration' -> 'Tools' -> 'News'.
* Apply the patch.
* Apply database upgrade (directly or indirectly).
* Go back to Staff interface and post a new news item.
* Use the mysql command line client to connect to the Koha installation's database:
mysql -u kohaadmin -p -D koha (change username and database to values
appropiate for your system).
* Execute the following query: SELECT title, borrowernumber FROM opac_news;
* Inspect the results, the 'borrowernumber' column should be NULL for all news items
created before the patch was applied, and non-NULL for the new item created AFTER
the patch was applied.
Optional: Remove database changes via:
ALTER TABLE opac_news DROP FOREIGN KEY borrowernumber_fk;
ALTER TABLE opac_news DROP COLUMN borrowernumber;
Sponsored-By: Halland County Library
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
- opac-suggestions.pl
- opac-readingrecord.pl
- opac-reserve.pl
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch fixes:
- reports/bor_issues_top.pl
- sort order
- adv search and search results
- opac-topissues.pl
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Not sure this is the best: now the messages will make the table moves.
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This patch mainly improves the errors handling.
It's now not possible to add several translations for the same entity-code-lang
combination.
It also:
- wording: Translate for other languages => into
- fixes encoding issues on add/update (was just display)
- add entity and code to the title of the pop-up window
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Test plan:
1/ update the Schema (misc/devel/update_dbix_class_files.pl)
2/ Translate templates for some languages (es-DE, de-DE for instance)
3/ Enable them in the pref (search for 'lang') for the staff interface
4/ Go on the item type admin page (admin/itemtypes.pl)
5/ Edit one
6/ Click on the 'translate for other languages' link
7/ You are now on the interface to translate the item type's description
in the languages you want. So translate some :)
8/ Go back on the item type list view (admin/itemtypes.pl)
9/ You should see the original description (non translated)
10/ Switch the language
11/ You should see the translated description in the correct language.
If the description is non translated, the original description is
displayed.
12/ On the different page where the item type is displayed, confirm that
the translated description appears.
Think further / Todo:
1/ Update all occurrences of the item type's description (DONE)
2/ Implement for authorised values
3/ Implement for syspref value (at least textarea)
4/ Implement for branch names
5/ Centralize all the translation on a single page in the admin area
...
N/ Implement a webservice to centralize all the translations and give
the ability to sync the item types/authorised values description with
the rest of the world (push and pull).
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This fixes the following:
* Remove unneeded year on use Modern::Perl
* Fix occasional freeze when reloading existing record
* Fix encoding for returned record on first save to catalog
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
More specifically:
* Use monospace font options that are more widely installed
* Don't allow entering macros until the user loads/creates a macro
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This fixes the following:
* License of editor.pl
* Remove tabs
* Use [% interface %]
* Re-order search fields like the old interface
* Add license information for new libraries
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This should fix the first-character deletion bug reported by Nick, and also:
* Fix subfield deletion
* Attempted fix for special keys on dropdowns
* Allow deleting empty fields
* Fix bug with composed characters
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This followup introduces a major change; instead of subfields starting
with '$<code><space>', they now start with '‡<code>'. The double-cross
character can be typed with Ctrl-D.
It also fixes the following:
* Add UUID.pm dependency
* Remove debugging call
* Fix toLocaleFormat error reported by Nick Clemens
* Ignore subfields that are marked as unrepeatable/mandatory AND
ignored (tab is -1)
* Mention lack of support for UNIMARC/NORMARC fixed fields in system
preferences screen
* Confirm when user creates new record and current record is modified
* Perform better when importing gigantic record dump
* Show "Edit" instead of "Import" and allow direct editing for local
catalog records in search screen
* Add "Keyboard shortcuts" help button to toolbar
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This fixes the following issues:
* Spaces are now allowed in indicators
* Shift-Enter is available to insert a newline if needed
* Item tags, if present, will prevent saving (as they are not correctly
processed by the backend)
* biblionumber tags (999 in MARC21) will be stripped before the record
is saved to Koha, to prevent their modification
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This fixes the following issues:
* ISO2709 import fails for Unicode
* Import only works with .mrc/.xml extensions
* MARC21 widgets not translatable
* Macro UI broken
* Uppercase subfield codes forbidden
* Tag with no valid subfields shows as error but tries to save
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This fixes the following issues:
* Help for UNIMARC tags broken
* MARC21 resources loaded when in UNIMARC
* Clicking on "advanced editor" in basic editor fails
* Shift-Tab goes to the beginning of a fixed-field widget rather
than the end
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
This fixes the following issues:
* Labels of search server checkboxes cannot be clicked
* Quick search fields cannot be focused
* Search results cannot be scrolled with a keyboard
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Full test plan is posted on bug. Test plan for system preference:
1. Apply patch, clear cookies.
2. Go to "Cataloging."
3. Add new record, verify that basic editor is used.
4. Navigate to existing record, click on "Edit record", verify that
basic editor is used.
5. Inside basic editor, verify that no button appears to switch to the
advanced editor.
6. Enable the "EnableAdvancedCatalogingEditor" syspref.
7. Repeat above steps, should still go to basic editor, but button
should appear to switch to the advanced editor; click it.
8. Now, adding new records and editing existing records should go to
the advanced editor.
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Adds the following JS libraries:
* CodeMirror - extensible text editor
* FileSaver - shim for saving files
* require - dependency resolver and module loader
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
* Extends login screen to pass along #hash
* Adds JSONP support to C4::Service
* Extends humanmsg to allow per-message classes
* Adds proper charset to results of svc/bib
Test plan:
1. C4/Auth.pm and .../intranet/.../auth.tt: verify that login/usage
works as expected, despite the change to pass on the fragment (...#blah)
from the URL.
2. C4/Service.pm and humanmsg.js: verify that editing system
preferences (the main user of these modules) works correctly despite
updates.
3. svc/bib: verify that records can be correctly downloaded with the
change of character set. This can be done in a Firebug/Chrome Devtools
console by running `$.get('/cgi-bin/koha/svc/bib/1')` and inspecting the
results (possibly replacing 1 with a different valid biblionumber).
Signed-off-by: Nick Clemens <nick@quecheelibrary.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Makes 264 repeatable, prefer 264 over 260. If 264/ind1=3 is present in the
record the xslt uses ind1 to determine latest 264, if no ind1=3 then all
264 fields are displayed.
Test Plan:
1) Apply this patch
2) Ensure you are using the default XSLT setting for the staff and opac record details
3) Find or create a record with multiple MARC tags 264
4) Perform a search that would show the record in the search results.
5) Review results for correct 264 display.
6) Click title to review record details.
Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com>
Works as advertised. 260 not showed when 264 exists, tested with multiple
records. If ind1=3 is present shows the current/latest data
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This is a follow-up for bug 13379.
items_search_fields.authorised_values_category is now a varchar(32) but
the updatedatabase.pl did not modify it (changed only on
kohastructure.sql)
Test plan:
SHOW CREATE TABLE items_search_fields
before and after this patch.
items_search_fields.authorised_values_category should be a varchar(32)
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Since bug 10803 adds a C4::Search::History module, the
PurgeSearchHistory routine should be moved.
Test plan:
- run misc/cronjobs/cleanup_database.pl with the searchhistory param and
verify behavior is the same as before applying this patch.
- run prove t/Search/History.t
Signed-off-by: Joonas Kylmälä <j.kylmala@gmail.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>