*** replaceafill has quit IRC | 00:47 | |
*** menesis has joined #schooltool | 04:01 | |
*** th1a has quit IRC | 07:09 | |
*** menesis has quit IRC | 07:25 | |
*** menesis has joined #schooltool | 13:29 | |
*** th1a has joined #schooltool | 13:52 | |
*** replaceafill has joined #schooltool | 17:18 | |
th1a | hi replaceafill. | 17:35 |
---|---|---|
replaceafill | hey th1a | 17:35 |
th1a | We're having a vaguely defined holiday weekend here, with Indpendence Day falling on Saturday. | 17:36 |
replaceafill | oh | 17:36 |
replaceafill | right | 17:36 |
replaceafill | ok, not much to report from me | 17:36 |
replaceafill | fixed the bugfix release :/ | 17:36 |
replaceafill | there was a validation problem with the request view | 17:36 |
replaceafill | so i released gradebook 2.8.4.1 | 17:37 |
th1a | OK. | 17:37 |
replaceafill | also, i updated the spanish translation of the homepage | 17:37 |
replaceafill | and uploaded it | 17:37 |
th1a | Oh, we can take out the extra trademark info in the footer. | 17:38 |
th1a | (critical links and intel) | 17:38 |
replaceafill | ah ok | 17:38 |
th1a | I should send CL an email someday. | 17:38 |
th1a | I'm glad I had an excuse to visit Portugal... | 17:39 |
replaceafill | :) | 17:39 |
th1a | Anyhow, I'd say the next thing on the list is Proximity still. | 17:40 |
replaceafill | footer updated | 17:42 |
replaceafill | removed the trademarks | 17:42 |
th1a | Thanks. | 17:42 |
th1a | Have you thought in general how we'd talk to Canvas? | 17:44 |
th1a | Using the API. | 17:44 |
replaceafill | not really | 17:44 |
replaceafill | i was thinking i should go through all these emails | 17:44 |
replaceafill | and get notes | 17:44 |
replaceafill | because at this point i have no concrete idea on what we'll do | 17:44 |
th1a | Well, I'm not sure that's the necessary starting point. | 17:44 |
th1a | OK, so. | 17:44 |
replaceafill | i remember you sent some ideas | 17:45 |
th1a | In terms of 80% of this. | 17:45 |
replaceafill | (about canvas) | 17:45 |
th1a | I think it may be pretty simple. | 17:45 |
th1a | IF | 17:45 |
th1a | we can get a good abstraction for making these calls. | 17:45 |
th1a | I mean, essentially, when a person is added to SchoolTool, we need to add them to Canvas. | 17:46 |
replaceafill | so, the idea is to produce a xls and send it, right? | 17:46 |
replaceafill | all in the background | 17:46 |
th1a | OK, so | 17:46 |
replaceafill | ok | 17:46 |
replaceafill | we may not need the xls | 17:46 |
th1a | based on my somewhat closer look at the api, I think if we can get a good wrapper for that, yes, we don't need xls. | 17:46 |
replaceafill | right | 17:46 |
th1a | It maps pretty well to what we do conceptually. | 17:46 |
th1a | Seems straightforward, clean, json. | 17:47 |
th1a | otoh, you just have the general overhead of dealing with, for example, keeping track of whether the persons has *successfully* been added to Canvas. | 17:47 |
replaceafill | and retry attempts | 17:48 |
th1a | It is that level I'm worried about. | 17:48 |
th1a | Yeah. | 17:48 |
th1a | How much of that is "for free" with Celery, etc. | 17:48 |
replaceafill | i was thinking we could code some dumb api | 17:48 |
th1a | Yes. | 17:48 |
replaceafill | i mean, simulate canvas | 17:49 |
replaceafill | just something that prints | 17:49 |
replaceafill | and do the schooltool part as an experiment | 17:49 |
th1a | And just work through creating a subscriber that would add a person to Canvas when you added them to SchoolTool. | 17:49 |
th1a | Yes. | 17:49 |
replaceafill | i can work on that today | 17:49 |
th1a | Yes, and particularly how much of this can be handled just as a generic task queue issue. | 17:50 |
* replaceafill was thinking of trying the demographics catalog | 17:50 | |
replaceafill | but this sounds interesting too :) | 17:50 |
replaceafill | ok | 17:51 |
replaceafill | this is the right link for the canva docs, right? | 17:51 |
replaceafill | https://canvas.instructure.com/doc/api/index.html | 17:51 |
th1a | Yeah. | 17:53 |
replaceafill | ok | 17:54 |
replaceafill | oh my | 17:54 |
replaceafill | oauth2 authentication | 17:54 |
th1a | Yeah. | 17:54 |
replaceafill | panic attack... | 17:54 |
replaceafill | :D | 17:54 |
th1a | Well, there is a Python library. | 17:54 |
replaceafill | yeah | 17:54 |
th1a | I have to remember that the one thing that seemed to calm down Jose at ARK was when I thought to point out that Zope 3 is specifically designed to integrate standard python libraries. | 17:55 |
th1a | I mean, it is only relevant to another geek. | 17:55 |
th1a | But that's one reason it will work for us almost indefinitely. | 17:56 |
th1a | As long as there is a Python library -- and every new technology will have one -- we can integrate it. | 17:56 |
replaceafill | standard? | 17:56 |
th1a | Well, | 17:56 |
replaceafill | ah got it | 17:56 |
replaceafill | btw | 17:56 |
replaceafill | at some point | 17:56 |
th1a | I mean, not "special" ones, like you'd need for Zope 2 say. | 17:56 |
replaceafill | i think we'll need to discuss python 3 :) | 17:56 |
replaceafill | i've been reading ubuntu 16.04 will switch | 17:57 |
replaceafill | i mean | 17:57 |
replaceafill | to python 3.5 | 17:57 |
th1a | Maybe when we hire a second developer. | 17:57 |
th1a | That's one reason we're probably riding 14.04 into the ground. ;-) | 17:57 |
replaceafill | i'm glad you're optimist we'll get there... | 17:57 |
replaceafill | anyway | 17:58 |
replaceafill | i won't worry about authentication yet | 17:58 |
replaceafill | small steps :) | 17:58 |
th1a | It doesn't seem like it should be a problem when dealing with a specific instance. | 17:59 |
th1a | As opposed to, say, "This LDAP will just work with yours (we hope)." | 18:00 |
replaceafill | could you answer: https://answers.launchpad.net/schooltool/+question/268806 | 18:01 |
replaceafill | i'm not good at saying "No." :D | 18:01 |
*** menesis has quit IRC | 18:02 | |
th1a | Hm? You can do a report card for one student. | 18:02 |
th1a | Can't you? | 18:02 |
replaceafill | yeah | 18:03 |
th1a | Isn't that what he's asking? | 18:04 |
replaceafill | the report sheet part confuses me | 18:04 |
replaceafill | i think he wants an export? | 18:04 |
th1a | I'll handle it. | 18:05 |
replaceafill | thanks | 18:05 |
th1a | OK, so you have something a little different to research and play with. | 18:06 |
replaceafill | yeah | 18:07 |
replaceafill | i'll try to stay focused :) | 18:07 |
th1a | Thanks replaceafill. | 18:09 |
replaceafill | kk, thanks th1a | 18:09 |
th1a | btw replaceafill, I'll definitely help out with translating the API into SchoolTool terms. | 18:17 |
replaceafill | ah cool | 18:17 |
th1a | Probably just do this first? https://canvas.instructure.com/doc/api/users.html#method.users.create | 18:18 |
replaceafill | probably | 18:19 |
*** menesis has joined #schooltool | 18:19 | |
replaceafill | user[timezone]!!! :D | 18:20 |
th1a | ;-) | 18:20 |
th1a | Damn virtual schools. | 18:21 |
replaceafill | th1a, you there? | 19:25 |
th1a | hi replaceafill. | 20:41 |
replaceafill | hey th1a | 20:41 |
replaceafill | we're only adding "students" to canvas, right? | 20:41 |
th1a | Well, I don't know if only. | 20:41 |
th1a | Why? | 20:41 |
replaceafill | to know when to fire the event | 20:42 |
replaceafill | to set the tasks | 20:42 |
replaceafill | i mean | 20:42 |
replaceafill | so i know what part of the person view to modify | 20:43 |
replaceafill | and the importer probably | 20:43 |
th1a | Well, everyone is a user in canvas? | 20:46 |
th1a | I like their "observers" and "observees" terminology. | 20:46 |
th1a | For relationship based permission, I think. | 20:46 |
replaceafill | ah | 20:46 |
replaceafill | haven't seen that yet | 20:46 |
replaceafill | well, i moved on from that part anyway | 20:47 |
th1a | https://canvas.instructure.com/doc/api/user_observees.html | 20:47 |
replaceafill | (when to fire the event) | 20:47 |
th1a | OK. What did you decide? | 20:47 |
replaceafill | it's a single view anyway | 20:47 |
replaceafill | for adding people | 20:47 |
replaceafill | we just use group ids | 20:47 |
replaceafill | to put people in the right group | 20:47 |
replaceafill | i'm now messing with the remote task machinery | 20:48 |
replaceafill | i'm trying to bring the db down | 20:48 |
replaceafill | so i get an exception | 20:48 |
replaceafill | and see the retries working | 20:49 |
th1a | OK, so celery will pretty much retry on its own? | 20:50 |
replaceafill | well, currently there's only a couple of scenarios for the retry | 20:50 |
replaceafill | (i think) | 20:50 |
replaceafill | db not found | 20:50 |
replaceafill | and two phase commit not ready | 20:50 |
replaceafill | (tpc error happens for example when the task was deleted in the task container) | 20:51 |
replaceafill | which currently users can't do | 20:51 |
replaceafill | anyway, i can continue | 20:52 |
th1a | So will it require some additional code to make it retry based on the HTTP request to Canvas? | 20:53 |
replaceafill | not sure yet | 20:54 |
replaceafill | but that's the only place where i've seen the retry being called explicitly | 20:54 |
th1a | It has been? | 20:55 |
replaceafill | when there's no database and when the task has been aborted in ST | 20:55 |
th1a | Oh, ok right. | 20:55 |
th1a | OK. I'll let you get back to work. | 20:56 |
replaceafill | kk | 20:56 |
th1a | We're getting ready to paint the bedroom. | 20:56 |
replaceafill | :) | 20:56 |
*** menesis has quit IRC | 21:44 | |
*** menesis has joined #schooltool | 21:54 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!