If we implement Bug 22844, we should update the database column selection process for UniqueItemFields to match. However, UniqueItemFields is expected to contain space-delimited data rather than pipe-delimited data. This should be changed in order to make the db column selection process consistent.
Created attachment 89473 [details] [review] Bug 22867: UniqueItemFields preference value should be pipe-delimited This patch updates the UniqueItemFields system preference so that it contains pipe-delimited data instead of space-delimited data. This makes it consistent with other system preferences which contain lists of database column names, and enables the selection process provided by Bug 22844. This patch includes a database update to convert space-delimited values in UniqueItemFields to pipe-delimited. To test you should have two or more space-delimited items table columns saved in the UniqueItemFields system preference. Apply the patch and run the database update. - Go to Administration -> System preferences -> Acquisitions and confirm that the value of UniqueItemFields is now pipe-delimited. - Set the AcqCreateItem system preference to "placing an order." - Go to Acquisitions -> Vendor -> Basket -> Add to basket -> From a new (empty) record. - Fill out the item add form, including those fields specified in UniqueItemFields. - Click the "Add multiple items" button and specify one or more items. - Click "Add" and verify that in the table of items added, the fields specified in UniqueItemFields were not duplicated. - Edit one or more of those items and add duplicate values to one or more of the fields specified in UniqueItemFields. - Click "Save" and confirm that you are presented with an error highlighting the duplicated data. - Correct the data to remove the duplicates and click "Save" again. It should save correctly. - Set the AcqCreateItem system preference to "receiving an order." - Repeat the test above during the process of receiving an order.
Created attachment 89486 [details] [review] Bug 22867: UniqueItemFields preference value should be pipe-delimited This patch updates the UniqueItemFields system preference so that it contains pipe-delimited data instead of space-delimited data. This makes it consistent with other system preferences which contain lists of database column names, and enables the selection process provided by Bug 22844. This patch includes a database update to convert space-delimited values in UniqueItemFields to pipe-delimited. To test you should have two or more space-delimited items table columns saved in the UniqueItemFields system preference. Apply the patch and run the database update. - Go to Administration -> System preferences -> Acquisitions and confirm that the value of UniqueItemFields is now pipe-delimited. - Set the AcqCreateItem system preference to "placing an order." - Go to Acquisitions -> Vendor -> Basket -> Add to basket -> From a new (empty) record. - Fill out the item add form, including those fields specified in UniqueItemFields. - Click the "Add multiple items" button and specify one or more items. - Click "Add" and verify that in the table of items added, the fields specified in UniqueItemFields were not duplicated. - Edit one or more of those items and add duplicate values to one or more of the fields specified in UniqueItemFields. - Click "Save" and confirm that you are presented with an error highlighting the duplicated data. - Correct the data to remove the duplicates and click "Save" again. It should save correctly. - Set the AcqCreateItem system preference to "receiving an order." - Repeat the test above during the process of receiving an order. Signed-off-by: Liz Rea <wizzyrea@gmail.com>
Created attachment 89532 [details] [review] Bug 22867: UniqueItemFields preference value should be pipe-delimited This patch updates the UniqueItemFields system preference so that it contains pipe-delimited data instead of space-delimited data. This makes it consistent with other system preferences which contain lists of database column names, and enables the selection process provided by Bug 22844. This patch includes a database update to convert space-delimited values in UniqueItemFields to pipe-delimited. To test you should have two or more space-delimited items table columns saved in the UniqueItemFields system preference. Apply the patch and run the database update. - Go to Administration -> System preferences -> Acquisitions and confirm that the value of UniqueItemFields is now pipe-delimited. - Set the AcqCreateItem system preference to "placing an order." - Go to Acquisitions -> Vendor -> Basket -> Add to basket -> From a new (empty) record. - Fill out the item add form, including those fields specified in UniqueItemFields. - Click the "Add multiple items" button and specify one or more items. - Click "Add" and verify that in the table of items added, the fields specified in UniqueItemFields were not duplicated. - Edit one or more of those items and add duplicate values to one or more of the fields specified in UniqueItemFields. - Click "Save" and confirm that you are presented with an error highlighting the duplicated data. - Correct the data to remove the duplicates and click "Save" again. It should save correctly. - Set the AcqCreateItem system preference to "receiving an order." - Repeat the test above during the process of receiving an order. Signed-off-by: Liz Rea <wizzyrea@gmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 89533 [details] [review] Bug 22867: (QA follow-up) Build items.json for UniqueItemFields Adding items.json, built from latest kohastructure.sql. Control UniqueItemFields with this source file. And add StatisticsFields. Test plan: Go to Preferences, play with UniqueItemFields. Adjust StatisticsFields and look at patron record, statistics tab. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 89534 [details] [review] Bug 22867: (QA follow-up) Build items.json for UniqueItemFields Adding items.json, built from latest kohastructure.sql. Control UniqueItemFields with this source file. And add StatisticsFields. Test plan: Go to Preferences, play with UniqueItemFields. Adjust StatisticsFields and look at patron record, statistics tab. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
minor: systempreferences.value still says: 623 ('UniqueItemFields','barcode','','Space-separated list of fields that should be unique (used in acquisition module for item creation). Fields must be valid SQL column names of items table','Free'),
Created attachment 89659 [details] [review] Bug 22867: Update the syspref's description in sysprefs.sql
Owen, could you bring to the next meeting that those .json will need attention from the QA team when a field is added/renamed/removed from the DB tables?
Nice work! Pushed to master for 19.11.00
I have reverted the QA follow-up and copied it across into bug 22844 and reversed the dependencies. It seemed pertinent to get this consistency fix in place as it had already passed QA.