Bug 13881 - Add ability to defined circulation desks
Summary: Add ability to defined circulation desks
Status: Pushed to master
Alias: None
Product: Koha
Classification: Unclassified
Component: Circulation (show other bugs)
Version: master
Hardware: All All
: P5 - low new feature (vote)
Assignee: Nicolas Legrand
QA Contact: Katrin Fischer
URL:
Keywords:
Depends on:
Blocks: 14654 24201
  Show dependency treegraph
 
Reported: 2015-03-20 14:45 UTC by Nicolas Legrand
Modified: 2020-05-22 08:04 UTC (History)
15 users (show)

See Also:
Change sponsored?: Sponsored
Patch complexity: Medium patch
Who signed the patch off:
Text to go in the release notes:
When enabled, this feature makes it possible to define circulation desks per library. Future developments are planned to allow associating hold pickup locations with desks and other features. **New system preference**: `UseCirculationDesks` defaults to disabled.
Version(s) released in:
20.05.00


Attachments
Add desk management (23.09 KB, patch)
2015-04-14 10:34 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Select desk in an intranet session (18.81 KB, patch)
2015-06-04 09:47 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: attach a reserve to a desk (15.31 KB, patch)
2015-06-16 15:27 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: attach a reserve to a desk (15.31 KB, patch)
2015-06-24 10:21 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Basic desk management (22.76 KB, patch)
2015-06-29 09:36 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (53.70 KB, patch)
2015-07-09 15:32 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (54.84 KB, patch)
2015-07-30 14:05 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (54.58 KB, patch)
2015-09-23 13:11 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (55.00 KB, patch)
2015-10-20 19:53 UTC, Marc Véron
Details | Diff | Splinter Review
Bug 13881: Schema file DO NOT PUSH! (2.16 KB, patch)
2019-10-02 12:36 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: kohastructure and atomic update (3.92 KB, patch)
2019-10-02 12:36 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (16.80 KB, patch)
2019-10-02 12:36 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Schema file DO NOT PUSH! (2.16 KB, patch)
2019-10-02 12:53 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: kohastructure and atomic update (3.92 KB, patch)
2019-10-02 12:53 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.77 KB, patch)
2019-10-02 12:53 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Schema file DO NOT PUSH! (2.16 KB, patch)
2019-11-12 09:22 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: kohastructure and atomic update (2.69 KB, patch)
2019-11-12 09:22 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.50 KB, patch)
2019-11-12 09:22 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Schema file DO NOT PUSH! (2.30 KB, patch)
2019-11-12 10:27 UTC, Séverine Queune
Details | Diff | Splinter Review
Bug 13881: kohastructure and atomic update (2.84 KB, patch)
2019-11-12 10:27 UTC, Séverine Queune
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.65 KB, patch)
2019-11-12 10:27 UTC, Séverine Queune
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.92 KB, patch)
2020-03-19 16:11 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.72 KB, patch)
2020-03-19 16:34 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (18.73 KB, patch)
2020-03-20 08:33 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (20.98 KB, patch)
2020-03-20 10:28 UTC, Nicolas Legrand
Details | Diff | Splinter Review
Bug 13881: Add desk management (21.07 KB, patch)
2020-03-23 18:16 UTC, Owen Leonard
Details | Diff | Splinter Review
Bug 13881: Schema file DO NOT PUSH! (2.37 KB, patch)
2020-03-24 11:36 UTC, Katrin Fischer
Details | Diff | Splinter Review
Bug 13881: kohastructure and atomic update (2.91 KB, patch)
2020-03-24 11:36 UTC, Katrin Fischer
Details | Diff | Splinter Review
Bug 13881: Add desk management (21.13 KB, patch)
2020-03-24 11:36 UTC, Katrin Fischer
Details | Diff | Splinter Review
Bug 13881: (QA follow-up) Check for manage_libraries permission (1.02 KB, patch)
2020-03-24 11:36 UTC, Katrin Fischer
Details | Diff | Splinter Review
Bug 13881: (QA follow-up) Some documentation and terminology fixes (5.86 KB, patch)
2020-03-24 11:36 UTC, Katrin Fischer
Details | Diff | Splinter Review
Bug 13881: (RM follow-up) Make 'Desks' feature optional (4.81 KB, patch)
2020-05-18 10:41 UTC, Martin Renvoize
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Legrand 2015-03-20 14:45:29 UTC
A Library may have multiple desks inside its public space. If desks are defined in Koha, a librarion in public space should set her desk when opening her session as she should set her library. When items are checked-in and trigger a hold, the hold may be attachable to a desk and the patron may be advertised where she can retreive her hold.

This may also be usefull when items come from closed stacked. Some may be kept as hold behind the everyday items issue desk, some may be behind the rare books section desks.

Such a module was developped by Progilone for the BULAC Koha 3.2, check: <https://github.com/BULAC/koha/blob/bulac-dead_end-3.02.04/C4/Stack/Desk.pm>. The BULAC is going to port it to current master, with a more Kohaish style and comments. The circulation logic will be a bit different from those sources, as the BULAC plans to use Holds for books coming from closed stacked and dumps its overkill stack request module.
Comment 1 Nicolas Legrand 2015-04-14 10:34:13 UTC Comment hidden (obsolete)
Comment 2 Bernardo Gonzalez Kriegel 2015-06-02 14:31:21 UTC
Hi, can this be tested?
Comments:
1) Can this be defined into Koha namespace?
2) You could use GetBranchesLoop to get an ordered (by branchname) list of branches
3) Many backticks (`) 
(Coding guidelines SQL6: Backticks
Don't use ` in table or column names (this is a mySQLism))
4) I think we can't use smartmatch (~~). 
In test "ok($deskcode ~~ @$desks, 'GetDesks returns desk codes');"
Look at http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=11468#c6
Comment 3 Nicolas Legrand 2015-06-04 09:01:24 UTC
Hey,

thanks a lot for your comments.

(In reply to Bernardo Gonzalez Kriegel from comment #2)
> Hi, can this be tested?

It's not really functionnal yet, It'll be soon I hope, next week at least :).

> Comments:
> 1) Can this be defined into Koha namespace?

I'm not sure about it. I'm mostly unaware of namespace policy, I thought this kind of code was for C4. Where can I find policy for namespaces ?

> 2) You could use GetBranchesLoop to get an ordered (by branchname) list of
> branches

Ho, thanks, I missed the note in the doc and didn't catch the function cause it's not documented.

> 3) Many backticks (`) 
> (Coding guidelines SQL6: Backticks
> Don't use ` in table or column names (this is a mySQLism))

argh, ok, thanks.

> 4) I think we can't use smartmatch (~~). 
> In test "ok($deskcode ~~ @$desks, 'GetDesks returns desk codes');"
> Look at http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=11468#c6

Thanks again. I'll try to fix those soon.
Comment 4 Nicolas Legrand 2015-06-04 09:47:33 UTC Comment hidden (obsolete)
Comment 5 Nicolas Legrand 2015-06-16 15:27:30 UTC Comment hidden (obsolete)
Comment 6 Nicolas Legrand 2015-06-16 15:29:10 UTC
It seems to do now what we mostly expect from it.
Comment 7 Nicolas Legrand 2015-06-24 10:21:35 UTC Comment hidden (obsolete)
Comment 8 Nicolas Legrand 2015-06-29 09:36:55 UTC Comment hidden (obsolete)
Comment 9 Katrin Fischer 2015-07-09 11:51:36 UTC
Hi Nicolas,

are the patches in the right order? Could they be squashed? I am not sure how they are divided up and the first seems to refer +use C4::Desks;, which is only added by the third patch.

Also, should this be needs sign-off?
Comment 10 Nicolas Legrand 2015-07-09 15:32:36 UTC Comment hidden (obsolete)
Comment 11 Nicolas Legrand 2015-07-09 15:34:36 UTC Comment hidden (obsolete)
Comment 12 Nicolas Legrand 2015-07-09 15:39:59 UTC
(In reply to Katrin Fischer from comment #9)

Hey Katrin,

> are the patches in the right order? Could they be squashed? I am not sure
> how they are divided up and the first seems to refer +use C4::Desks;, which
> is only added by the third patch.

Yes, I wanted to change the first commit and then it appeared at the end of the list. Anyway, I just squashed them as you suggested.

> Also, should this be needs sign-off?

Sadely, there is a bit more work on databases, I'm fighting with constraints, the db updates doesn't work yet. I have been working on something else hoping it will be plain clear next time I look upon it ^^.
Comment 13 Nicolas Legrand 2015-07-30 14:05:41 UTC Comment hidden (obsolete)
Comment 14 Nicolas Legrand 2015-07-30 14:08:34 UTC
Hey Katrin,

(In reply to Nicolas Legrand from comment #12)
> (In reply to Katrin Fischer from comment #9)
> > Also, should this be needs sign-off?
> 
> Sadely, there is a bit more work on databases, I'm fighting with
> constraints, the db updates doesn't work yet. I have been working on
> something else hoping it will be plain clear next time I look upon it ^^.

Done. After trying to understand serials history and serials current management at the BULAC everything seems easy and MySQL errno: 150 due to bad collation matching just plain clear :).
Comment 15 Nicolas Legrand 2015-09-23 13:11:48 UTC Comment hidden (obsolete)
Comment 16 Marc Véron 2015-10-20 19:53:52 UTC Comment hidden (obsolete)
Comment 17 Jonathan Druart 2015-10-22 09:06:01 UTC
Nicolas,
This is the very old fashion way to do.
I am rewriting all the admin scripts not make them use Koha::Objects, so I am strongly against pushing this one as it.
See bug 10363, bug 14828, bug 14836, bug 14888 and bug 14889 for examples.
Comment 18 Nicolas Legrand 2015-10-22 09:32:46 UTC
ok, I'll check that, thanks!
Comment 19 Nicolas Legrand 2019-10-02 12:36:01 UTC
Created attachment 93445 [details] [review]
Bug 13881: Schema file DO NOT PUSH!
Comment 20 Nicolas Legrand 2019-10-02 12:36:04 UTC
Created attachment 93446 [details] [review]
Bug 13881: kohastructure and atomic update
Comment 21 Nicolas Legrand 2019-10-02 12:36:08 UTC Comment hidden (obsolete)
Comment 22 Nicolas Legrand 2019-10-02 12:53:12 UTC Comment hidden (obsolete)
Comment 23 Nicolas Legrand 2019-10-02 12:53:16 UTC Comment hidden (obsolete)
Comment 24 Nicolas Legrand 2019-10-02 12:53:22 UTC Comment hidden (obsolete)
Comment 25 Séverine Queune 2019-10-02 14:51:19 UTC
I notices several problems :
 - the creation form make me think I can choose the desk ID, but I can't : it has to be a number. If I write something else, it's replaced.
 - if I delete a desk and then create a new one, I can re-use the desk ID of the deleted desk. I don't know if it can lead to problems linking datas, but to me, it's seems a curious behaviour.
 - if I create a new desk using, by mistake, an existing desk ID, it updates the existing desk.

My conclusion is that desk ID should not be an editable field.

Except these points, it works fine :)
Comment 26 Josef Moravec 2019-10-04 18:51:09 UTC
Comment on attachment 93453 [details] [review]
Bug 13881: kohastructure and atomic update

Review of attachment 93453 [details] [review]:
-----------------------------------------------------------------

::: installer/data/mysql/kohastructure.sql
@@ +1842,4 @@
>    CONSTRAINT `reserves_ibfk_2` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
>    CONSTRAINT `reserves_ibfk_3` FOREIGN KEY (`itemnumber`) REFERENCES `items` (`itemnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
>    CONSTRAINT `reserves_ibfk_4` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE,
> +  CONSTRAINT `reserves_ibfk_5` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`) ON DELETE CASCADE ON UPDATE CASCADE,

added comma at the end of line by mistake...

@@ +1885,4 @@
>      ON DELETE SET NULL ON UPDATE SET NULL,
>    CONSTRAINT `old_reserves_ibfk_4` FOREIGN KEY (`itemtype`) REFERENCES `itemtypes` (`itemtype`)
>      ON DELETE SET NULL ON UPDATE SET NULL
> +        ON DELETE SET NULL ON UPDATE SET NULL

line duplicated by mistake
Comment 27 Nicolas Legrand 2019-11-12 09:20:35 UTC
oups, thank you
Comment 28 Nicolas Legrand 2019-11-12 09:22:23 UTC Comment hidden (obsolete)
Comment 29 Nicolas Legrand 2019-11-12 09:22:28 UTC Comment hidden (obsolete)
Comment 30 Nicolas Legrand 2019-11-12 09:22:34 UTC Comment hidden (obsolete)
Comment 31 Séverine Queune 2019-11-12 10:27:32 UTC
Created attachment 95293 [details] [review]
Bug 13881: Schema file DO NOT PUSH!

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Comment 32 Séverine Queune 2019-11-12 10:27:37 UTC
Created attachment 95294 [details] [review]
Bug 13881: kohastructure and atomic update

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Comment 33 Séverine Queune 2019-11-12 10:27:43 UTC Comment hidden (obsolete)
Comment 34 Katrin Fischer 2020-02-19 22:15:01 UTC
Hi Nicolas,

starting with QA review here:

1) QA test tools

Possibly a false positive:
 FAIL	Koha/Desk.pm
   FAIL	  pod coverage
		POD coverage was greater before, try perl  -MPod::Coverage=PackageName -e666


 FAIL	Koha/Desks.pm
   FAIL	  pod coverage
		POD is missing for 'object_class'


Possibly a false positive:
 FAIL	Koha/Schema/Result/Desk.pm
   FAIL	  pod coverage
		POD coverage was greater before, try perl -MPod::Coverage=PackageName -e666


 FAIL	koha-tmpl/intranet-tmpl/prog/en/includes/desks-admin-search.inc
   FAIL	  filters
		missing_filter at line 3 (<h1 id="logo"><a href="/cgi-bin/koha/mainpage.pl">[% LibraryName %]</a></h1><!-- Begin Desks Resident Search Box -->)
		missing_filter at line 7 (	<form action="[% script_name %]" method="post">)
		missing_filter at line 8 (        <input class="head-searchbox" type="text" name="desk_name" value="[% searchfield %]" size="40" />)
   FAIL	  forbidden patterns
		forbidden pattern: tab char (line 5)
		forbidden pattern: tab char (line 7)
		forbidden pattern: tab char (line 9)
		forbidden pattern: tab char (line 10)
		forbidden pattern: tab char (line 11)
		forbidden pattern: tab char (line 15)
		forbidden pattern: tab char (line 17)
		forbidden pattern: tab char (line 18)
		forbidden pattern: tab char (line 21)
		forbidden pattern: tab char (line 22)
		forbidden pattern: tab char (line 23)
		forbidden pattern: tab char (line 24)
		forbidden pattern: tab char (line 28)


 FAIL	koha-tmpl/intranet-tmpl/prog/en/modules/admin/desks.tt
   FAIL	  filters
		missing_filter at line 79 (                        <option value="[% branch.branchcode %]" selected="selected">[% branch.branchname %]</option>)
		missing_filter at line 79 (                        <option value="[% branch.branchcode %]" selected="selected">[% branch.branchname %]</option>)
		missing_filter at line 81 (                        <option value="[% branch.branchcode %]">[% branch.branchname %]</option>)
		missing_filter at line 81 (                        <option value="[% branch.branchcode %]">[% branch.branchname %]</option>)


2) Quick code review

admin/desks.pl

Are the copyright statements correct?
+# Copyright 2006 SAN OUEST-PROVENCE et Paul POULAIN
+# Copyright 2015 Koha Development Team

Leftover debugging code:
+use Data::Dumper;


The new page requires a new permission: manage_desks

+        flagsrequired   => { parameters => 'manage_desks' },

But the new permission is not properly added. It looks like maybe you were planning to use manage_libraries here instead?

Check:
 koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc
 koha-tmpl/intranet-tmpl/prog/en/includes/admin-menu.inc
Comment 35 Katrin Fischer 2020-02-19 22:15:31 UTC
Also missing tests!
Comment 36 Nicolas Legrand 2020-03-19 16:11:49 UTC Comment hidden (obsolete)
Comment 37 Nicolas Legrand 2020-03-19 16:34:24 UTC Comment hidden (obsolete)
Comment 38 Nicolas Legrand 2020-03-20 08:33:47 UTC Comment hidden (obsolete)
Comment 39 Nicolas Legrand 2020-03-20 10:28:25 UTC
Created attachment 101065 [details] [review]
Bug 13881: Add desk management

Add a desk and linked it to a library (branch). That's it. In the
future it'll have super features like being able to link waiting
reserve to a specific desk.

Test plan:

1. go to the administration page and notice there isn't any mention of
desk whatsoever
2. apply patches
3. ./installer/data/mysql/updatedatabase.pl
4. prove t/db_dependent/Koha/Desks.t
5. you now have desks links in admin-home and admin-menu
6. click the link
7. add a desk
8. add another one
9. delete one
10. you should have a fair list of all current desks defined
11. Done

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Comment 40 Nicolas Legrand 2020-03-20 10:31:45 UTC
(In reply to Katrin Fischer from comment #34)
> Hi Nicolas,
> 
> starting with QA review here:

Oups! From now on, I won't attach anything without running first qa-tools! Sorry! 

I've get rid of most of them, but not this one:

> 
> 1) QA test tools
> 
> Possibly a false positive:
>  FAIL	Koha/Desk.pm
>    FAIL	  pod coverage
> 		POD coverage was greater before, try perl  -MPod::Coverage=PackageName
> -e666

I don't really understand what the problem is...
Comment 41 Nicolas Legrand 2020-03-20 10:34:03 UTC
(In reply to Katrin Fischer from comment #35)
> Also missing tests!

done also, based on t/db_dependent/Koha/Cities.t and t/db_dependent/Koha/Suggestions.t
Comment 42 Owen Leonard 2020-03-23 18:16:18 UTC
Created attachment 101479 [details] [review]
Bug 13881: Add desk management

Add a desk and linked it to a library (branch). That's it. In the
future it'll have super features like being able to link waiting
reserve to a specific desk.

Test plan:

1. go to the administration page and notice there isn't any mention of
desk whatsoever
2. apply patches
3. ./installer/data/mysql/updatedatabase.pl
4. prove t/db_dependent/Koha/Desks.t
5. you now have desks links in admin-home and admin-menu
6. click the link
7. add a desk
8. add another one
9. delete one
10. you should have a fair list of all current desks defined
11. Done

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Comment 43 Katrin Fischer 2020-03-24 10:57:51 UTC
Not on IRC? ;)
Comment 44 Katrin Fischer 2020-03-24 11:36:06 UTC
Created attachment 101543 [details] [review]
Bug 13881: Schema file DO NOT PUSH!

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 45 Katrin Fischer 2020-03-24 11:36:10 UTC
Created attachment 101544 [details] [review]
Bug 13881: kohastructure and atomic update

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 46 Katrin Fischer 2020-03-24 11:36:15 UTC
Created attachment 101545 [details] [review]
Bug 13881: Add desk management

Add a desk and linked it to a library (branch). That's it. In the
future it'll have super features like being able to link waiting
reserve to a specific desk.

Test plan:

1. go to the administration page and notice there isn't any mention of
desk whatsoever
2. apply patches
3. ./installer/data/mysql/updatedatabase.pl
4. prove t/db_dependent/Koha/Desks.t
5. you now have desks links in admin-home and admin-menu
6. click the link
7. add a desk
8. add another one
9. delete one
10. you should have a fair list of all current desks defined
11. Done

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 47 Katrin Fischer 2020-03-24 11:36:19 UTC
Created attachment 101546 [details] [review]
Bug 13881: (QA follow-up) Check for manage_libraries permission

The .pl was checking for a new permission desks_management not
(yet) added. As the templates already checked for manage_libraries
the .pl was changed accordingly to also use it.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 48 Katrin Fischer 2020-03-24 11:36:24 UTC
Created attachment 101547 [details] [review]
Bug 13881: (QA follow-up) Some documentation and terminology fixes

- Branchcode = Library
- Desk id = Desk ID
- Show library name on desk list and when deleting desk instead of code
- Some small changes to the database documentation.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 49 Martin Renvoize 2020-03-25 09:43:20 UTC
Nice work everyone!

Pushed to master for 20.05
Comment 50 Marcel de Rooy 2020-03-27 07:01:26 UTC
Upgrade to 19.12.00.054 done [07:00:32]: Bug 13881 - Add desk management
DBD::mysql::db do failed: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'A' at line 2 [for Statement "
            ALTER TABLE suggestions ADD CONSTRAINT `suggestions_ibfk_lastmodificationby` FOREIGN KEY (`lastmodificationby`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE
            A
        "] at installer/data/mysql/updatedatabase.pl line 21300.
Comment 51 Katrin Fischer 2020-03-27 13:04:53 UTC
(In reply to Marcel de Rooy from comment #50)
> Upgrade to 19.12.00.054 done [07:00:32]: Bug 13881 - Add desk management
> DBD::mysql::db do failed: You have an error in your SQL syntax; check the
> manual that corresponds to your MariaDB server version for the right syntax
> to use near 'A' at line 2 [for Statement "
>             ALTER TABLE suggestions ADD CONSTRAINT
> `suggestions_ibfk_lastmodificationby` FOREIGN KEY (`lastmodificationby`)
> REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE
> CASCADE
>             A
>         "] at installer/data/mysql/updatedatabase.pl line 21300.

Hi Marcel, I think that#s the wrong bug - that's changes to suggestions, not desks. (see 23590)
Comment 52 Joy Nelson 2020-04-03 22:01:58 UTC
enhancement not backported to 19.11.x
Comment 53 Katrin Fischer 2020-05-16 14:29:25 UTC
Nicolas, should we add sponsorship by BULAC here?
Comment 54 Nicolas Legrand 2020-05-18 05:14:50 UTC
(In reply to Katrin Fischer from comment #53)
> Nicolas, should we add sponsorship by BULAC here?

maybe!
Comment 55 Martin Renvoize 2020-05-18 10:41:46 UTC
Created attachment 105009 [details] [review]
Bug 13881: (RM follow-up) Make 'Desks' feature optional

This patch adds a new 'UseIssueDesks' preference which defaults to
"Don't use" to enabled/disable the 'Desks' functionality added with this
bug.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Comment 56 Katrin Fischer 2020-05-18 21:29:23 UTC
(In reply to Martin Renvoize from comment #55)
> Created attachment 105009 [details] [review] [review]
> Bug 13881: (RM follow-up) Make 'Desks' feature optional
> 
> This patch adds a new 'UseIssueDesks' preference which defaults to
> "Don't use" to enabled/disable the 'Desks' functionality added with this
> bug.
> 
> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Missing out on QA here... don't use issue, use circulation ;)
Comment 57 David Cook 2020-05-20 01:44:25 UTC
Appreciate the title change. This bug is completely different to what I thought it was. Sounds niche... but I haven't worked at a circulation desk for nearly 10 years now.
Comment 58 Nicolas Legrand 2020-05-20 05:42:19 UTC
(In reply to David Cook from comment #57)
> Appreciate the title change. This bug is completely different to what I
> thought it was. Sounds niche... but I haven't worked at a circulation desk
> for nearly 10 years now.

A gut yor,

right, thanks Martin! At first it was doing more but I cut it up into three after rewrite to help the work for QA. I'm surprised it sounds niche :), I know not so few libraries with multiple desks and waiting reserves. Truth is it's even odd for me it wasn't there. Sadly I wasn't able to work more quickly on the “useful parts”, but it'll be ready soon for 20.11!

Thanks a lot everyone to help me on this one!
Comment 59 David Cook 2020-05-20 23:24:13 UTC
(In reply to Nicolas Legrand from comment #58)
> At first it was doing more but I cut it up into three
> after rewrite to help the work for QA. 

Makes sense to me.

> I'm surprised it sounds niche :), I
> know not so few libraries with multiple desks and waiting reserves. Truth is
> it's even odd for me it wasn't there. 

What sort of libraries are these? Public libraries? I've worked in academic libraries and special libraries and we always had just 1 circulation desk per library branch, which had all the waiting reserves for that branch behind it. 

I don't think that I've even used a library (in Canada or Australia) that has had multiple circulation desks? 

Not that I'm being negative. I'm really intrigued! Very different to my experience, so it's interesting to learn about different setups.
Comment 60 Katrin Fischer 2020-05-21 03:09:47 UTC
I know that this is a common feature in at least one ILS widely used here in Germany in academic libraries. I could also imagine it being useful in public libraries with different desks for adult and children services.
Comment 61 David Cook 2020-05-21 03:19:11 UTC
(In reply to Katrin Fischer from comment #60)
> I know that this is a common feature in at least one ILS widely used here in
> Germany in academic libraries. I could also imagine it being useful in
> public libraries with different desks for adult and children services.

Oh right! Good one! Now that I think about it, I have gone to a public library that had different circulation areas for adults and children. I wonder if they treated them as separate branches or as separate desks in the same branch. Interesting...
Comment 62 Josef Moravec 2020-05-21 05:09:19 UTC
(In reply to David Cook from comment #61)
> (In reply to Katrin Fischer from comment #60)
> > I know that this is a common feature in at least one ILS widely used here in
> > Germany in academic libraries. I could also imagine it being useful in
> > public libraries with different desks for adult and children services.
> 
> Oh right! Good one! Now that I think about it, I have gone to a public
> library that had different circulation areas for adults and children. I
> wonder if they treated them as separate branches or as separate desks in the
> same branch. Interesting...

In a public library with three circulation desk, we had to set them as branches, as there was no other option in Koha... It's not big issue in relatively small public library. But when the library has more branches and more desks at each of them, the branches and desks combination could be more precise and semantically much more meaningful
Comment 63 David Cook 2020-05-21 06:06:47 UTC
(In reply to Josef Moravec from comment #62)
> In a public library with three circulation desk, we had to set them as
> branches, as there was no other option in Koha... It's not big issue in
> relatively small public library. But when the library has more branches and
> more desks at each of them, the branches and desks combination could be more
> precise and semantically much more meaningful

This is so interesting. I used to use the biggest public library in the third biggest city (population 2.5 million) in Canada and it only had 1 area for circulation. 

In Australia, I live in the biggest city (population 5 million) but all our public libraries do seem to be small. Usually with 1 circulation area that is mostly self checkout with 1 desk and 1 hold/reserve area.

Having more desks seems like it would be more challenging from a management perspective... but maybe it's necessary for bigger libraries in bigger places?
Comment 64 Josef Moravec 2020-05-21 06:53:43 UTC
(In reply to David Cook from comment #63)
> (In reply to Josef Moravec from comment #62)
> > In a public library with three circulation desk, we had to set them as
> > branches, as there was no other option in Koha... It's not big issue in
> > relatively small public library. But when the library has more branches and
> > more desks at each of them, the branches and desks combination could be more
> > precise and semantically much more meaningful
> 
> This is so interesting. I used to use the biggest public library in the
> third biggest city (population 2.5 million) in Canada and it only had 1 area
> for circulation. 
> 
> In Australia, I live in the biggest city (population 5 million) but all our
> public libraries do seem to be small. Usually with 1 circulation area that
> is mostly self checkout with 1 desk and 1 hold/reserve area.
> 
> Having more desks seems like it would be more challenging from a management
> perspective... but maybe it's necessary for bigger libraries in bigger
> places?

This is really interesting David!

It looks like it does not depend on size of library but more on the attitude and customs of librariens ;)
Comment 65 Katrin Fischer 2020-05-21 10:12:19 UTC
I could think of another example: academic libraries with reading rooms for rare materials. That could be treated as a separate desk.
Comment 66 David Cook 2020-05-21 23:15:23 UTC
(In reply to Katrin Fischer from comment #65)
> I could think of another example: academic libraries with reading rooms for
> rare materials. That could be treated as a separate desk.

Oh that's an interesting idea. I think the academic libraries I've attended usually have a "special collections" branch for those, but I don't know for sure.
Comment 67 David Cook 2020-05-21 23:16:43 UTC
(In reply to Josef Moravec from comment #64)
> This is really interesting David!
> 
> It looks like it does not depend on size of library but more on the attitude
> and customs of librariens ;)

Indeed! Hopefully this comment thread will be inspiring to people. I know it's going to make me re-think the advice I give to libraries. We provide services to every library type around the world, so it's very possible that I'll run into this scenario and now I know it's more common than I thought!
Comment 68 Nicolas Legrand 2020-05-22 06:07:13 UTC
(In reply to David Cook from comment #59)

> > I'm surprised it sounds niche :), I
> > know not so few libraries with multiple desks and waiting reserves. Truth is
> > it's even odd for me it wasn't there. 
> 
> What sort of libraries are these? Public libraries? I've worked in academic
> libraries and special libraries and we always had just 1 circulation desk
> per library branch, which had all the waiting reserves for that branch
> behind it. 
> 
> I don't think that I've even used a library (in Canada or Australia) that
> has had multiple circulation desks? 
> 
> Not that I'm being negative. I'm really intrigued! Very different to my
> experience, so it's interesting to learn about different setups.

It's all sort of libraries in France, first the one I work into, la BULAC, its an academic library (more than 1,5 million documents, 1000 seats, three delivery desks). It's also what's done in the French national library (more than 40 millions of documents, something like 20 rooms with a delivery desk). My public library in Montrouge, which is a little one, has three delivery desks. It depends a lot of the library though, my academic library in Tours had just one delivery desk, the public library in Bourges has also just one...
Comment 69 Nicolas Legrand 2020-05-22 06:24:01 UTC
> It's all sort of libraries in France, first the one I work into, la BULAC,
> its an academic library (more than 1,5 million documents, 1000 seats, three
> delivery desks). It's also what's done in the French national library (more
> than 40 millions of documents, something like 20 rooms with a delivery
> desk). My public library in Montrouge, which is a little one, has three
> delivery desks. It depends a lot of the library though, my academic library
> in Tours had just one delivery desk, the public library in Bourges has also
> just one...

Sometimes where your document is deliver depends of the room you're into (BNF Tolbiac site). Sometimes its a document from a specific department you can consult only in the department reading room (BNF Richelieu site).

At my library (BULAC), we have a return desk at the entrance of the library where we keep all waiting reserves. We have another desk in another floor where we bring all documents asked from closed stacks. And finally, we have a place for rare or damaged books. Usually, we know from start a rare book will go into the rare books special room. But sometimes, a rare or damaged book may be asked and deliver to the common desk. The librarian checking in books as may decide it's a book that should be consulted in the rare books room. So it's put on a shelving cart and checked in again in the rare books room.
Comment 70 David Cook 2020-05-22 07:15:06 UTC
Thanks for following up, Nicolas.

It's great having this context!
Comment 71 Nicolas Legrand 2020-05-22 08:04:29 UTC
(In reply to David Cook from comment #70)
> Thanks for following up, Nicolas.
> 
> It's great having this context!

my pleasure, and thanks to you for asking!