Time |
Nick |
Message |
07:12 |
|
kworstell-isl joined #evergreen |
07:50 |
|
BDorsey joined #evergreen |
07:58 |
|
collum joined #evergreen |
08:06 |
|
mantis1 joined #evergreen |
08:35 |
|
mmorgan joined #evergreen |
08:50 |
|
kworstell_isl joined #evergreen |
08:51 |
|
kworstell_isl_ joined #evergreen |
08:55 |
|
kworstell-isl joined #evergreen |
09:03 |
|
Dyrcona joined #evergreen |
09:09 |
|
rfrasur joined #evergreen |
09:27 |
csharp_ |
@decide evergreen or evergree |
09:27 |
pinesol |
csharp_: go with evergree |
09:27 |
csharp_ |
pinesol: I evergree with you |
09:27 |
pinesol |
csharp_: What we have here is a failure to communicate. |
09:27 |
csharp_ |
pinesol: no doubt |
09:27 |
pinesol |
csharp_: pretty sure there's already a bug report about that. |
09:56 |
|
kworstell-isl joined #evergreen |
09:59 |
Dyrcona |
pinesol: Don't speak. |
09:59 |
pinesol |
Dyrcona: always listen to berick |
10:00 |
Dyrcona |
That I do. |
10:02 |
berick |
buy gold |
10:08 |
Dyrcona |
That, I also do. |
10:09 |
* Dyrcona |
is likely going to drop out for a minute or two. I'm playing with .config/environment.d/ and I'll need to logout to see if the changes work. |
10:10 |
Dyrcona |
Too bad systemd isn't the shell and I can't just source a file into it. |
10:12 |
|
Christineb joined #evergreen |
10:12 |
Dyrcona |
BRB. |
10:15 |
|
Dyrcona joined #evergreen |
10:16 |
Dyrcona |
OK. A restart worked, but not a logout and login. There was probably some sysstemd/systemctl command I could have run to have it read the environment files. |
10:37 |
mmorgan |
Anybody on 3.9.1 having trouble saving circulation policies? Not sure if it's a server issue or Evergreen issue. |
10:56 |
mmorgan |
Seems to work ok on demo.evergreencatalog.com (which is 3.9.1), so must be a server thing. |
11:14 |
|
dbriem joined #evergreen |
11:15 |
|
ACSpike98 joined #evergreen |
11:19 |
|
ACSpike joined #evergreen |
11:22 |
|
dbriem left #evergreen |
11:22 |
Dyrcona |
branches > patches |
11:24 |
Dyrcona |
I also don't agree with myself from four years ago: https://bugs.launchpad.net/evergreen/+bug/1815950/comments/1 |
11:24 |
pinesol |
Launchpad bug 1815950 in Evergreen "fields should be hidden when the relevant ".show" org unit setting is false" [Wishlist,Confirmed] - Assigned to Jason Stephenson (jstephenson) |
11:26 |
|
mantis1 joined #evergreen |
11:40 |
Dyrcona |
I also don't think the patron edit/register show/suggest/require settings work the way that some people think they should. |
11:41 |
Dyrcona |
Looking at this, I don't think the value should ever be set to false, or rather a non-existent setting should probably be treated as false. |
11:42 |
Dyrcona |
Think I'll have some lunch and ponder this more later. |
12:05 |
|
jihpringle joined #evergreen |
12:10 |
ACSpike |
I'm interested to learn how create and update user information using the New-style OpenSRF JSON gateway. So far my web searches are leading me in circles. Is there a good place to find an example of listing, creating, and modifying users? |
12:12 |
|
mantis1 joined #evergreen |
12:15 |
Bmagic |
ACSpike: when I'm working on a project like that, I generally refer to the Evergreen source code. To discover the API/service calls that I need to make. Editing patrons will require a login authentication token. Then from there, you'll write your code to interact with the service(s) which would need to include the auth token. Have a look at perlmods/lib/OpenILS/Application/Actor.pm |
12:17 |
Bmagic |
Looks like you'll be interested in open-ils.actor.patron.update |
12:17 |
ACSpike |
Is over here the right spot? https://github.com/evergreen-library-system/Evergreen/blob/master/Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm |
12:17 |
Bmagic |
that's it, yep |
12:18 |
Bmagic |
Evergreen also has "Examples" of interacting with it's own API's. Mostly in Javascript |
12:18 |
Bmagic |
I grepped the code for "open-ils.actor.patron.update" |
12:19 |
Bmagic |
There's a pretty straightforward example in Perl inside one of the perl tests. I'm looking at 30-barcode-completion.t |
12:20 |
Bmagic |
but in that case, you'd have to run your code on the Evergreen server. I assume you're developing something that would interact with the API over the internet |
12:21 |
ACSpike |
Right, I want to interact in JSON over HTTP. |
12:22 |
Bmagic |
so, you're going to be interested in the javascript implementation. That we have written for our own staff client |
12:22 |
ACSpike |
I'm sending requests to https://<my evergreen>/osrf-gateway-v1 |
12:24 |
Bmagic |
I don't have any other examples other than those that we can find in the Evergreen repo. Which might be a bit of a heavy lift, since it's built on a stack of JS (egCore). So when you see something like: egCore.net.request( 'open-ils.actor', 'open-ils.actor.patron.update', egCore.auth.token(), user ).then(function() {grid.refresh()}); |
12:26 |
Bmagic |
Maybe someone else here can provide an easier way to get onboarded with the API, other than trying to re-create egCore |
12:26 |
ACSpike |
Yeah, I need to dig down far enough to see how to formulate my own HTTP request. |
12:26 |
Bmagic |
ACSpike: which language are you targeting? |
12:26 |
ACSpike |
probably Python |
12:27 |
Bmagic |
should be doable. Python has HTTP payload/api modules you can use |
12:28 |
ACSpike |
Oh, for sure, I'm not going to be stitching together the bits :-) |
12:28 |
Bmagic |
essentially it's: login, get auth token, then query the API (with the auth token) for a patron object, then make edits, and call the update service, passing your new object |
12:29 |
ACSpike |
Getting the authtoken was easy enough. How is the auth token supplied on subsequent requests? Header? |
12:30 |
jeff |
often as the first parameter to the method call. |
12:30 |
Bmagic |
One thing I might do is interact with the server with a browser and watch the requests going to the server, inspect the payload/JSON, and use that as my reference when making my own |
12:30 |
ACSpike |
Is there an appropriate place in Evergreen to store a unique identifier to help tie users together with an external system? |
12:31 |
ACSpike |
Oh, that's a good idea. |
12:35 |
jeff |
ACSpike: what kind of thing are you trying to do? |
12:36 |
ACSpike |
I work at a small college. Our library is switching to Evergreen soon. With the old system I wrote some integrations that create patrons automatically when students enroll and staff is hired. I'd like to do something similar with Evergreen. |
12:37 |
jeff |
ACSpike: how sensitive is your itentifier? if it's an opaque token and you don't expect that any staff or user will be sufficiently motivated to modify it, you could create a user setting and store it there. user notes are an option also, though those have changed recently and have some side effects. |
12:37 |
jeff |
ACSpike: do you have access to the Evergreen system, especially access to run scripts on the server with access to the OpenSRF XMPP endpoints, or the ability to have SQL access to the database? |
12:37 |
ACSpike |
Worst case scenario, I keep the barcodes on our side. I think I could use that to link things together. |
12:38 |
ACSpike |
I have SQL access to the db. |
12:39 |
ACSpike |
And access to a HTTP gateway for OpenSRF. |
12:39 |
jeff |
you will have a happier time loading users that way (via SQL), IMO. I can probably write up some of what we do for that kind of thing, where we're doing daily userloads of staff and students. |
12:40 |
ACSpike |
Hmm, I usually try to keep my sql access to third party systems read-only just to be safe. |
12:40 |
jeff |
if there's a reason you need to call it as an API and not a batch process, then maybe the old JSON HTTP gateway would be reasonable, but you will soon tire of dealing with fieldmapper objects without the benefit of a first class library supporting them. :-) |
12:40 |
* jeff |
nods |
12:41 |
ACSpike |
I only have to write it once ;-) |
12:41 |
ACSpike |
what does "batch process" refer to? |
12:41 |
jeff |
"here's a file with all the students, load them into a temporary table, stage them, add/update users that need adding/updating" |
12:42 |
ACSpike |
Oh, like we're doing real SQL stuff then. |
12:42 |
jeff |
batch process as in "scheduled thing that runs daily/hourly" and not "API call that our SIS/ERP makes in semi-realtime when a user is created" |
12:43 |
ACSpike |
I'm doing it daily right now |
12:43 |
ACSpike |
Whatever the "Right Way(TM)" is would be great. |
12:43 |
ACSpike |
Documented is even better. :-) |
12:44 |
jeff |
yeah, it's that balance between "right" and "practical", I think. |
12:45 |
jeff |
I'll try to pass more information later. Don't take only my advice, though. :-) |
12:45 |
ACSpike |
Well, now that I've found an entry point into to the source and a suggestion for sniffing the network traffic in the web client, I'll start there. |
12:46 |
ACSpike |
And if you've got more info to share, that's very welcome. |
12:46 |
ACSpike |
I'm sure you'll see more of me in the near future. :-) |
13:28 |
Bmagic |
ACSpike: we have several projects out there that loads patron files into Evergreen (exactly the same scenario as you): https://github.com/EquinoxOpenLibraryInitiative/migration-tools/tree/master/patron_loader and here's another example: https://github.com/mcoia/mobius_evergreen/blob/master/Random/patron_create.pl |
13:28 |
Bmagic |
These are server-side |
13:30 |
|
kworstell-isl joined #evergreen |
13:44 |
|
jihpringle joined #evergreen |
14:06 |
Dyrcona |
Heh. I submitted a pull request to Battle for Wesnoth on Monday that changed a > to >=. It looks like part of a patch I'm going to submit to Evergreen will change >= to >. |
14:10 |
Dyrcona |
Hmm... Maybe not.... |
14:10 |
Dyrcona |
I'm beginning to question again the wisdom of show/suggested/required.... |
14:11 |
|
jihpringle joined #evergreen |
14:12 |
Dyrcona |
My take on how it works (and possibly is supposed to work): Shown fields always show. Required fields always show and get highlighted yellow. Suggested fields show if suggested or all fields are shown. |
14:13 |
Dyrcona |
Fields with no setting or that are forgotten by the code also always show, and that, I think, is a bug. |
14:13 |
mmorgan |
Dyrcona: Maybe we need a 'hide' |
14:14 |
Dyrcona |
mmorgan: After I'm done, you should be able to set the show org unit setting to false in order to hide. |
14:14 |
mmorgan |
Dyrcona++ |
14:14 |
Dyrcona |
That will be courtesy of abellenir++ |
14:19 |
mmorgan |
abellenir++ |
14:20 |
Dyrcona |
We will probably need to add more config.org_unit_setting_type entries.... I wonder if I can make that smart so I don't have to a) write a lot of code or b) run into settings that may have been added locally. |
14:23 |
* Dyrcona |
eats his words from an earlier meeting: "It should be simple to make the fields respect an org. unit setting." |
14:27 |
|
ACSpike joined #evergreen |
14:29 |
rhamby |
ACSpike if you're looking to bulk load patrons server side the Equinox one is the one I use and works with csv files since that's how I susually get them, the moebius one probably does too but I don't have personal experience with it |
14:31 |
ACSpike |
Thanks! I'll check them out. |
14:31 |
Dyrcona |
ACSpike: We have some SQL scripts that were passed around a decade ago that we still use to load patrons. You probably do not want those. :) |
14:33 |
Dyrcona |
I commend your attempt to write something that can use the osrf gateway. I've done some little toy programs to get the basics, but I've never come up with a generically useful code library. If you do, that would be extremely useful. |
14:34 |
ACSpike |
Oh, sorry. I don't know that I'm that dedicated. I just need to manage the patrons without having to manage the patrons. But if something generally useful results, I'll definitely share. |
14:36 |
Dyrcona |
I'd also suggest trying the websocket gateway. That's more modern, hip, showy, web 2.0ey.... :) |
14:40 |
Dyrcona |
berick: Do your rust bindings use the gateway or do they expect ejabberd access? (I could look but I'm lazy.) |
14:41 |
berick |
Dyrcona: the rust code assumes a Redis setup, no jabber. they don't use the gateway for anything (yet). |
14:42 |
Dyrcona |
OK. I should have actually looked at the repo instead of glancing at my github feed. :) |
14:44 |
berick |
the gateway is pretty easy to code for, though, and works fine for most tasks, so it's a decent option |
14:45 |
Dyrcona |
berick: On patron edit, I want to change all default visibility of 2 to 1. |
14:46 |
Dyrcona |
Yeah, the gateway isn't too bad. I wrote something once to log in and logout as a test. I did the same with XML RPC, then a bug was fixed and it broke. :_ |
14:48 |
berick |
Dyrcona: modifying default visibility in patron editor (2 to 1) should be pretty simple |
14:49 |
berick |
angjs editor has a default_field_visibility map |
14:49 |
Dyrcona |
My reasoning is 2 is show which always shows up. One is suggested which can be easily hidden. This obviates the need for so many settings. |
14:49 |
Dyrcona |
Yeah. I'm looking at the angjs editor as we "speak." |
14:51 |
Dyrcona |
Though, I'm planning to expand the settings that are looked up, so it may not be necessary if show = false can hide the field entirely. |
14:51 |
Dyrcona |
I'll just write the code and we can sort it out in Thunderdome. :) |
16:03 |
berick |
gmcharlt++ |
16:13 |
Dyrcona |
"Does anybody finish the day with dozens of Evergreen tabs open?" I suspect that the answer to that question is, "Yes, everyone." |
16:16 |
|
stompro_home joined #evergreen |
16:27 |
stompro_home |
Has anyone noticed content cafe being strange today, lots of 404 images for cover art? |
16:30 |
mmorgan |
stompro_home: Yes, our cover images are missing. |
16:33 |
stompro_home |
mmorgan, great, I can stop trying to troubleshoot it to see if it is on our end. Thanks |
16:35 |
Dyrcona |
stompro_home: I haven't noticed nor seen any reports of it in our local ticket system, but I've busy slamming everyone with a wall of text bug comment this afternoon. :) |
16:36 |
Dyrcona |
OK. Yeahp. Our carousel isn't loading images. |
16:36 |
* mmorgan |
checked a few other catalogs today and observed the same thing |
16:39 |
* Dyrcona |
is surprised there were no tickets. Maybe everyone is busy playing in the snow? |
16:40 |
mmorgan |
Dyrcona: We only heard from one library. |
16:40 |
mmorgan |
@blame snow |
16:40 |
pinesol |
mmorgan: snow is NOT CONNECTED TO THE NETWORK!!! |
16:40 |
mmorgan |
:) |
16:41 |
Dyrcona |
Yeah, that's usually why there is "snow." Only those of us over 45 will get that one. :) |
16:42 |
stompro_home |
I should get a B&T support account. I wonder if I just ask coverartb&T if that will get to someone. mmorgan, have you started a ticket with them? |
16:43 |
mmorgan |
stompro_home: We contract with EBSCO for the service, I have opened a ticket with EBSCO. |
16:53 |
* Dyrcona |
runs outside to play in the snow. |
17:01 |
|
jihpringle joined #evergreen |
17:11 |
|
mmorgan left #evergreen |
23:52 |
|
smcalilly joined #evergreen |
23:55 |
smcalilly |
hi, i'm working on a project that creates and updates patrons on an evergreen system. does anybody know the right format for submitting data to the open-ils.actor.patron.update endpoint? https://github.com/atz/OpenILS-Evergreen/blob/master/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm#L320 |
23:56 |
smcalilly |
i don't know perl very well and haven't been able to find anything in the source code describing the format of the patron object (https://github.com/atz/OpenILS-Evergreen/blob/master/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm#L334) |
23:58 |
smcalilly |
anytime i hit that endpoint, no matter how i try to format it, i get an error about an unblessed reference |
23:59 |
smcalilly |
i've successfully authenticated and able to search patrons via the open-ils.actor.patron.search.advanced.fleshed endpoint, but the data for that endpoint seems to be formatted differently than the open-ils.actor.patron.update endpoint |