nyuuzyou/wikis huggingface dataset:
Marseille hackfest 2017

Basic Schedule:
Mon AM: Unimarc Framework work
Mon PM: Bug 18066
Tue AM: Coral
Tue PM: ILL
Wed AM: Multiple OPAC best practices / ES
Wed PM: RDF/ES
Thu AM: Mana / NGINX
Thu PM: CrowdFunding / Folio
Fri AM: 
Fri PM:
Trello Board:
https://trello.com/b/NYqWuFsO/koha-hackest-2017-hfk17
Category:Hackfests
Matomo

Matomo is an open source web analytics application like google analytics. It's quite simple to use an existing Matomo installation in koha. 
== With opaccredits ==
#Matomo: Copy the tracking code with script-tags 
#Koha: In the intranet interface search in the global system preferences in Administration for "opaccredits" 
#Koha: Add the tracking code in the text field
Now all OPAC pages will be tracked by Matomo. 
== With plugin ==
Since Koha 17.11.11 you can use the plugin made by Biblibre :
OpacMatomo
== Weblinks ==
*Official matomo site
Category:Tips_&_Tricks
Category:Plugins
Mattermost

Mattermost is like an open chat room where you can drop in to see what's going on, ask questions, or find out how to participate in regular community meetings. 
== Navigating and Using Mattermost ==
===First read the Welcome Message===
Read the short Welcome Message. (Find it also within Mattermost by selecting the Pinned Messages icon in the Town Square channel.) Topics covered include formatting tips and:
#Code of Conduct. The Koha Community Code of Conduct applies to Mattermost.
#Channels. Default channels, finding and joining Channels. Not sure where to post? 'Town Square' is the general discussion.
#Award points. How to show appreciation to others.
===Then get started===
#Connect. Point any web browser to chat.koha-community.org
#Choose a username. You will be able to put your real life name into your Profile.
#Drop in at different times. The project is truly international, you will quickly find that there are 'busy' times for various parts of the world. If you want to talk to someone in New Zealand or America you will find they are around at vastly different hours :-) 
#Don't be discouraged. Every volunteer on the project, even those who work for support companies have work outside of Chat and may not be able to answer. If you don't get an answer in chat the mailing lists are a good backup. 
#Come back often. The more you are in the Chat the more questions you will be able to answer and the more people you will get to know
===Additional tips===
#View members. You can choose the little 'down arrow' next to 'Koha Community' to see everyone's username and name.
#DMs (Direct Messages). Select a user's name, and a window will appear with the option to Message them.
#Calls. In the 'DIRECT MESSAGES' area, in a DM with a user, you can launch an audio call.
#Video meeting with Jitsi. You can access Jitsi via the 'Start Jitsi Meeting' button (on the right in most web browser displays)
#GitLab. You can access GitLab via the 'GitLab' button (on the right in most web browser displays)
#Apps. Select the 'waffle' then 'Download apps.'
#See your points & more. To see your Channel Posts, Emoji Distribution, Appreciation and Points, type into a post box: /karma me stats This response from the bot will be visible only to you.
Category:Participation
Mechanized testing suite RFC

==Config==
The one currently proposed patch using Test::WWW::Mechanize uses environment variables for the information it needs to access the test installation:
 To test:
 1. Install Test::WWW::Mechanize
 > sudo apt-get install libtest-www-mechanize-perl
 2. Set environment variables to reflect your Koha instance:
 > export KOHA_USER=kohaadmin
 > export KOHA_PASS=katikoan
 > export KOHA_INTRANET_URL=http://localhost:8080
 > export KOHA_OPAC_URL=http://localhost
 3. Run the test:
 > prove t/db_dependent/www/batch.t
Is this flexible enough? Would it be better to store the relevant information in config files, and then use one environment variable to point to the config file that should be used? That would perhaps make it easier to switch between testing different setups. 
==Utilities==
When writing tests with Test::WWW::Mechanize there are some things we will want to do in most of the tests. We could always use Test::WWW::Mechanize to do what we need, but implementing the same steps over and over in different test scripts would be inelegant. 
Here are some things that it would be nice to have utility methods for:
* Logging in to the OPAC and staff client (there should be tests for each of these of course, but each test script should not have to reproduce the steps needed)
* Changing user permissions (to test some functionality with and without the permission to use it, and as superlibrarian)
* Changing system preferences
These utilities could 
* talk to the Koha API/modules/database directly, or they could 
* be implemented with Test::WWW::Mechanize, and just centralized in their own methods (this would require always having a superlibrarian user on hand for doing the changes, though)
==Two kinds of tests?==
Would it make any kind of sense to somehow divide the tests in two - those that do not change anything in the database on the one hand and those that do change the database on the other? If the first ones were separated out, they could be used to test live installations (e.g. after an upgrade) where you don't want to insert dummy data.
Category:Architecture,_internals,_and_plumbing_RFCs
Merge biblio and biblioitems tables RFC

=== Merge biblio and biblioitems tables ===
* 1-1 relation is error-prone and adds unnecessary complexity to code.
* I've identified the following columns from the two tables that are still in use.
* Frameworks will have to be adjusted.
* If any columns are missing that have any functionality , please add them.
Field Type Null Key Default Extra 
	
	
		 biblionumber int(11) NO PRI NULL auto_increment 
	
	
		 frameworkcode varchar(4) NO 
	
	
		 author mediumtext YES NULL 
	
	
		 title mediumtext YES NULL 
	
	
		 unititle mediumtext YES NULL 
	
	
		 serial tinyint(1) YES NULL 
	
	
		 seriestitle mediumtext YES NULL 
	
	
		 copyrightdate smallint(6) YES NULL 
	
	
		 timestamp timestamp NO CURRENT_TIMESTAMP 
	
	
		 datecreated date NO NULL 
	
	
		 abstract mediumtext YES NULL 
	
	
		 isbn varchar(14) YES MUL NULL 
	
	
		 issn varchar(9) YES NULL 
	
	
		 publicationyear text YES NULL 
	
	
		 publishercode varchar(255) YES MUL NULL 
	
	
		 collectiontitle mediumtext YES NULL 
	
	
		 collectionissn text YES NULL 
	
	
		 collectionvolume mediumtext YES NULL 
	
	
		 editionstatement text YES NULL 
	
	
		 editionresponsibility text YES NULL 
	
	
		 timestamp timestamp NO CURRENT_TIMESTAMP 
	
	
		 illus varchar(255) YES NULL 
	
	
		 pages varchar(255) YES NULL 
	
	
		 notes mediumtext YES NULL 
	
	
		 size varchar(255) YES NULL 
	
	
		 place varchar(255) YES NULL 
	
	
		 totalissues int(10) YES NULL 
	
	
		 marcxml longtext NO NULL 
Category:Abandoned_RFC
MergingOfTables

=  Glourious plan to merge tables =
== Why? ==
In Koha's DB, instead of having a "soft" deletion of entries by flagging the deleted one as so, the rows in the db is actually deleted, but only after a new row in a different table is inserted.
Koha's DB is relational, so there is a cascade of links between each object: a biblio is referred by many items, and each item is referred by issues, holds, messages.
E.g.: when a row in the item table is moved from "items" to "deleted_items", then all the references from holds, transfers and so on will be broken.
The suggested more orthodox approach to this would be to add a "deleted_at" column, which is normally null unless the row is deleted, then it set to the timestamp of when it was deletion.
This means that the row is still there and will still be referred by other tables, but it just won't be shown in the relevant lists.
This would improve the maintenance of Koha in many ways (e.g.: the auto_increment id on those tables caused lots of issues when you add an item and delete it immediately after. the next new item will have the same itemnumber as the previously deleted one, clashing with it in many ways, see 
https://wiki.koha-community.org/wiki/DBMS_auto_increment_fix ).
== Previous discussions ==
Relevant discussions on mailing lists:
* 2017 July: AUTO_INCREMENT fix - prevent data lost
* 2016 January: Merge borrowers and deletedborrowers tables
== Which tables? ==
*deletedborrowers => borrowers (CONSIDER: maybe postpone this?)
*deletedbiblio => biblio 
*deletedbiblioitems => biblioitems 
*deletedbiblio_metadata => biblio_metadata
*deleteditems => items 
*old_issues => issues 
*old_reserves => reserves
== How ==
Add a deleted column to the tables, and merge old_/deleted-tables into them. Column could be a booelan (tinyint in MySQL) or maybe better deleted_at with a timestamp denoting when the borrower/item/reserve etc was deleted/obsoleted.
== Bugzilla bugs ==
bug #20271
a initial patch for items, biblio (and corollary) pushed to bz
== Other tasks ==
* Update SQL reports library
== Bugs and Issues ==
* barcode in items table is UNIQUE, so deleting an item won't let you reuse its barcode again after.
* maybe some view in koha should shows all the items (with the deleted ones grayed out) and allow un-delete (this should be a follow up task IMHO)
* deletedborrowers table isn't used anywhere. It's fairly easy to merge them but any unique indexes (email?) would cause several problems. I think this need more planning.
Migration from Librarians Edge to Koha

This page contains instructions to help export existing library data from Librarian’s Edge to Koha. This is maintained on GitHub and contributions are welcomed.
= Process =
Note: these steps assume you’re working on Mac OS X (MySQL, command line) and Windows 7 Pro (MarcEdit). You may need to adjust based on your operating systems.
== 1. Getting the Data ==
* Connect to MSSQL server containing Librarian’s Edge data, using Navicat or another MSSQL client.
* Export at least the Media, MediaTypes, and MediaLocations tables as CSV, preferably with column headings.
* Create a MySQL database, use the Media table syntax SQL file to set up the tables, then import the CSV files to those tables.
== 2. Tweaking the Data ==
* Set up the item types in your Koha installation and make note of the item type codes.
* Make a list of the media types in your Librarian’s Edge installation and the corresponding item types in your new Koha library.
* Export the data from MySQL to tab-separated text files by setting variables and running the query in the Export MySQL to TSV file as many times as you have distinct MediaTypes in Librarian’s Edge.
== 3. Converting the Data ==
* Using MarcEdit’s Delimited Text Translator tool, open the .txt files one at a time, set the “Text Qualifier” field to a double quote mark, and convert the .txt files to MRK format using the MarcEdit template for field mappings.
* Using MarcEdit’s MarcMaker tool, convert the .mrk files to MRC format.
== 4. Importing the Data to Koha ==
* Navigate to the Koha “Stage MARC records for import” tool.
* Upload the compiled .mrc file into the resevoir.
* Navigate to the “Staged MARC management” tool, click on the file name of the batch(es) you imported, set preferences as desired, and import them to the library.
== 5. Adding Items to Koha ==
* Once you have added all the items to Koha, export the biblio and biblioitems tables and import them to your local MySQL instance.
* Set the parameters and run the Build holdings table SQL queries as many times as you have distinct MediaTypes in Librarian’s Edge.
* Import the .csv files into Koha, using the first line to match field names.
= Reference =
* For information on MARC codes and formatting, see the official MARC21 format site and the Koha-specific fields.
* For information on the Librarian’s Edge fields to MARC21 mappings, refer to this file.
Category:Installation
Millennium Data Export

By Rebecca Crago
Decide which patron fields are most important to export from the system. In our library we had multiple duplicates in Millennium. 
Check Outs Run search on empty file Name review file Store Record Type: Patrons Leave operator blank Type: p Field: CUR CHKOUT (50) Condition: Greater than Value A: 1 Save Select Review File in Create Lists Export Records Type: p Field: CUR CHKOUT Name File OK Go to Data Exchange Output MARC using FTS Create Name File Select “review” Input “p” Select range, if applicable Select file on main Data Exchange view Put PC Find file on local drive Save to dropbox Checkout fields to append to export file: "RECORD #(BIBLIO)","COPY #","PATRON#","ICODE1","I TYPE","PRICE","OUT DATE","DUE DATE","# RENEWALS","TOT CHKOUT","# OVERDUE","TOT RENEW","LOCATION","LOANRULE","YTDCIRC","LYCIRC","ITEM FLD","BARCODE","CALL #(ITEM)","RECORD #(ITEM)" 
----
Patrons Select fields applicable to your system and those you want transfered. Some may need mapped to match Koha patron attributes. Variable Fields: N patrn name, A address, H home address, E university id, D department, T phone, M message, Z emailFixed Fields: 56 Mblock, 54 pmessage, 96 money owed, Exp date, Ptype, Tot chkout, Cur chkout, Tot renwal, Home libr, Piuse, Notice pref, Created, Updated, Record#, Patrn name, Pbarcode, ILL record, Items Export by appending fields (note, BARCODE must be in the first column followed by RECORD #(BIBLIO): "BARCODE","RECORD #(BIBLIO)","COPY #","PRICE","OUT DATE","DUE DATE","PATRON#","LCHKIN","# RENEWALS","TOT CHKOUT","TOT RENEW","LOCATION","STATUS","RECORD #(ITEM)","CREATED(ITEM)","UPDATED(ITEM)","VOLUME","MESSAGE(ITEM)","NOTE(ITEM)","CALL #(ITEM)"
Category:Installation
Millennium iii Bibs Export for Koha

By Rebecca CragoInstructions for Exporting BibsFrom Create Lists module-Select a list field that allows for the most record numbers possible. Empty a list, if needed. -Search records-Name Review File-Select record type in Store Record Type-Search all records in range-If record type contains more than 125,000 records, note the beginning and end record numbers.-Go to Data Exchange module-Give output file name with the extension .mrc out-Input the range of record numbers from the list you pulled in the previous steps. -Start-When command finishes running, close-Open Data Exchange module and select the file you just created-Select process to output MARC records using another system FTS-Select Put PC-Delete .out from extension file name (so your file is something like bibs.mrc)-Save to C:\ drive on local computer 
Open MARC editor-Go to MARC tools-Open saved file from C:\ drive as input file and name output file-Use MarcBreaker function-Translate to UTF8 -Execute 
MARC Fields from a formatted Bib record .mrc=LDR 01608cam a2200361 a 4500=001 7837322=003 OCoLC=005 19830722144843.0=008 810916s1982\\\\cau\\\\\\b\\\s001\0\eng\\=010 \\$a81016469=020 \\$a0520045718=040 \\$aDLC$cDLC$dCUX$dQRA=049 \\$aQRA{dollar}=050 0\$aHV4711$b.R36 1982=050 \\$aHV4711$b.R36 1982=050 0\$aHV4711$b.R36 1982=100 1\$aRegan, Tom.=245 10$aAll that dwell therein :$banimal rights and environmental ethics /$cTom Regan.=260 \\$aBerkeley :$bUniversity of California Press,$cc1982.=300 \\$ax, 249 p. ;$c23 cm.=500 \\$a"Papers and lectures written and delivered over the past six years or so on the general topic of human obligations to nonhumans"--Pref.=504 \\$aBibliography: p. 241-246.=500 \\$aIncludes index.=505 0\$aThe moral basis of vegetarianism -- Utilitarianism, vegetarianism, and animal rights -- Animal experimentation -- Animal rights, human wrongs -- Why whaling is wrong -- An examination and defense of one argument concerning animal rights -- Animals and the law -- What sorts of beings can have rights? -- The nature and possibility of an environmental ethic -- Environmental ethics and the ambiguity of the Native Americans' relationship with nature.=650 \0$aAnimal welfare.=650 \0$aAnimal welfare$xLaw and legislation.=650 \2$aAnimals$xessays.=650 \2$aBioethics$xessays.=650 \2$aLegislation, Veterinary$xessays.=907 \\$ab1000001x$c-=902 \\$a090224=998 \\$b3$c970530$dm$ea$f-$g0=945 \\$lhstks$s-$t0$y.i1000001x
Category:Installation
Mirko Tietgen

Mirko Tietgen is a Koha support provider based in Berlin, Germany.
He is a free software enthusiast, started working with Koha end of 2009, contributed his first patch in 2012 and offers paid support for Koha since 2015.
He organized the first Koha hackfest in Germany in Berlin in 2016.
His website is koha.abunchofthings.net
Category:Support_Companies
Money Calculations

This is mentioned in a comments on a couple of bugs in Mozilla.
Money amounts in the database should be handled by integer arithmetic not by floats with the inherent approximation and rounding errors that result. Most systems do calculation in cents and the insertion of the decimal separator is a matter of print formatting, this produces more reliable results. There are a couple of CPAN modules that introduce a money class. Even if not used their documentation is relevant on how to handle money amounts and calculations.
(BibLibre will deal with this RFC for 3.4)
Category:Acquisitions_RFCs
Category:Koha_3.4_RFCs
Moving an installation from a regular install to the Debian packages

This guide assumes you have one Koha installation running as a "normal" installation on Debian, and you want to switch to using the packages, on the same server. 
Initially, this is a draft based on running through the process once, feel free to correct, elaborate and improve.
Caveat: So far, this guide does not explain how to get rid of all the old files associated with the regular install.
==What you need==
* Debian Squeeze (a.k.a. version 6.x). If you have an older version of Debian (e.g. Lenny) you will have to upgrade to Squeeze, which is a process beyond the scope of this wiki. 
==Backup==
Before you do anything, backup your database! 
 $ mysqldump -u <dbuser> -p <dbname> > mybackup.sql
See also: Backing up Koha
==Get rid of some of the old stuff==
===Cron===
Remove any Koha-related tasks in cron. 
 $ crontab -e 
===Zebra===
De-daemonize Zebra.
 $ sudo update-rc.d -f koha-zebra-daemon remove
 $ sudo rm /etc/init.d/koha-zebra-daemon
===Apache===
Disable the Koha site. 
 $ sudo a2dissite koha
 $ sudo /etc/init.d/apache2 reload
==Install koha-common==
Follow the instructions on Koha 3.6 on Debian Squeeze, up to and including the point where it has you doing: 
 $ apt-get install koha-common
You might get a number of questions like this: 
 Configuration file `/etc/koha/zebradb/ccl.properties'
 ==> File on system created by you or by a script.
 ==> File also in package provided by package maintainer.
 What would you like to do about it ? Your options are:
 Y or I : install the package maintainer's version
 N or O : keep your currently-installed version
 D : show the differences between the versions
 Z : start a shell to examine the situation
 The default action is to keep your current version.
 *** ccl.properties (Y/I/N/O/D/Z) [default=N] ?
What you answer here will depend on whether you have any customisations in the relevant files that you need to keep or not. 
==Get your site up and running==
Edit /etc/koha/koha-sites.conf to your liking. 
Run:
 $ sudo koha-create --create-db <instancename>
Instancename will be used as part of your domain name, so choose something that matches what you want the URL to your Koha to be. If you want it to live at koha.example.org, you should use "koha" for your instancename. 
Running this will create a new database called koha_<instancename>, so if your old database was called simply "koha", it will not be affected by running this command. 
Now load your databasedump: 
 $ sudo koha-mysql <instancename> < mybackup.sql
Upgrade the schema:
 $ sudo koha-upgrade-schema <instancename>
And rebuild the Zebra indexes: 
 $ sudo koha-rebuild-zebra -f -v <instancename>
(-f = full reindex, -v = verbose)
And that should have you up and running again!
Category:Debian_Packages
Multiple currencies for same vendor

Currently a vendor currency is specified at a vendor level. This is not suitable in scenarios where a vendor can sell books in multiple currencies. 
We propose to remove the currency field in vendor creation/edit screens and instead provide it in in the order screen. For each title on order, a currency can be selected. Totals and other fields can be calculated based on the exchange rates for that currency.
Category:RFCs
Category:Internationalisation,_Localisation,_and_Globalisation_RFCs
Category:Acquisitions_RFCs
Category:RFCs_not_targeted_at_a_particular_Koha_version
NNCIPP

This page willl initially collect some notes on how to develop and test support for NNCIPP (the Norwegian NCIP Profile for ILL) in Koha. Later it will document how to set NNCIPP up for use in production.
==Setup==
===Patches from Bug 7317===
Gitified Koha with the patches from Bug 7317 - Add an Interlibrary Loan Module to Circulation and OPAC. 
You will get a couple of easy conflicts in the DBIC schema files. Make sure you resolve them. See the description on the bug for how to set things up, sysprefs to toggle etc.
you will also have to be sure to include the <interlibrary_loans>...</> part to your koha-conf.xml and make sure the backend_directory points to the right path (KOHA_HOME/Koha/Illbackends) and the category type is correct (I changed mine to 'IL'). You'll find the template in $kohaclone_root/etc/koha-conf.xml
===koha-illbackend-nncipp===
koha-illbackend-nncipp
This needs to go into Koha/Illbackends/NNCIPP:
 cd $kohaclone_root/Koha/ && mkdir Illbackends && cd Illbackends
 git clone https://github.com/Libriotech/koha-illbackend-nncipp NNCIPP
===NCIPServer===
NCIPServer - the "norway2" branch
Make sure you check out the "norway2" branch. This is a Dancer-based server. 
You will have to edit config.yml to reflect local paths etc. 
Run it like so, and remember to adjust the paths: 
 sudo KOHA_CONF=/etc/koha/sites/kohadev/koha-conf.xml perl -I/home/me/kohaclone/ bin/ncip_dancing.pl
By default it will listen on port 3000.
===bb2koha===
bb2koha
Once we have NNCIPP up and running we will need the data from "Base Bibliotek", so other libraries can log into our OPAC and place ILL requests, and so that we know which NNCIPP endpoints to talk to. 
===nciptester===
nciptester
This is a simple script for sending canned NCIP messages to e.g. NCIPServer. Use it like so: 
 perl nciptester.pl -e http://localhost:3000 -s ItemRequested
The canned messages assume some specific data is present in the Koha instance you test against. See the README.pod for details.
==Progress==
* Code needs to be moved from this old Koha branch to koha-illbackend-nncipp
** opac/opac-nncipp.pl
** Koha/ILLRequest/Backend/NNCIPP.pm
* Code in NCIPServer needs to be updated to reflect the changes in ILL from earlier versions to the patches published on bug 7317
These are the NCIP messages that we need to support, and how far we have progressed: 
 Koha NCIPServer
 1 LookupAgency ...... OK
 8 ItemRequested ..... OK OK
 3 RequestItem ....... OK OK
 10 CancelRequestItem . OK OK
 11 CancelRequestItem . OK OK
 4 ItemShipped ....... OK OK
 5 ItemReceived ...... OK OK
 9 RenewItem ......... OK 
 6 ItemShipped ....... OK OK
 7 ItemReceived ...... OK OK
The messages that have an "OK" should be properly implemented and tested. 
Category:Norway
NZ Pop Culture

==Music==
* Salmonella Dub (Spotify)
* Fat Freddy's Drop (Spotify)
* Shihad (Spotify)
* The Phoenix Foundation
* The Black Seeds (Spotify)
* Whirimako Black
* 
==Movies==
* Boy (IMDb)
* Eagle vs Shark (IMDB ) An irreverent comedy that happens to have "romance" in it.
* Stickmen (IMDb) It's funny as, just watch it.
* Siones Wedding (IMDb) Marketed to Yanks under Samoan Wedding.
* No 2 (IMDb)
* Whalerider (IMDb) A heart touching drama with a young female lead.
* Once Were Warriors (IMDb) A riveting drama featuring Māori actors.
==Books==
* Tu - Patricia Grace
* Potiki - Patricia Grace
* Guardian of the dead - Karen Healy ()
==Web Links==
Category:KohaCon10
Category:KohaCon10