*** pgulley has joined #schooltool | 00:03 | |
*** replaceafill has quit IRC | 00:10 | |
*** veloutin has quit IRC | 00:11 | |
*** veloutin has joined #schooltool | 00:12 | |
*** menesis has quit IRC | 01:22 | |
*** pgulley has quit IRC | 07:03 | |
*** menesis has joined #schooltool | 09:18 | |
*** menesis has quit IRC | 13:18 | |
*** ignas has joined #schooltool | 14:16 | |
*** pgulley has joined #schooltool | 14:28 | |
*** menesis has joined #schooltool | 14:35 | |
*** replaceafill has joined #schooltool | 15:47 | |
*** ignas has quit IRC | 16:28 | |
th1a | hi replaceafill, menesis, yvl. | 16:30 |
---|---|---|
replaceafill | good morning/afternoon | 16:31 |
yvl | good morning :) | 16:31 |
*** paulproteus has quit IRC | 16:31 | |
*** paulproteus has joined #schooltool | 16:33 | |
th1a | OK, so hotwebmatter's SchoolTool Book edits are done and here: lp:~matt-obert/+junk/schooltool-book | 16:34 |
menesis | hi | 16:34 |
th1a | It is mostly copy editing, consistency, etc. | 16:34 |
th1a | He ended up not having a lot of time to work on it. | 16:34 |
th1a | The classic problem of a contractor divided between SchoolTool and a very hyper and needy commercial client. | 16:35 |
th1a | Glad I haven't been dealing with that regularly for the past 5 years. | 16:35 |
th1a | So, menesis, could you merge that? | 16:36 |
menesis | with pleasure | 16:36 |
th1a | Thanks. | 16:37 |
th1a | Has anyone heard of St. Kitts and Nevis? | 16:37 |
th1a | They're interested in CanDo for http://www.sknpep.com/ | 16:38 |
replaceafill | an island? | 16:38 |
th1a | An island. | 16:38 |
th1a | The smallest nation in the Americas, apparently. | 16:38 |
th1a | We'll work our way up from smallest to largest. ;-) | 16:38 |
th1a | That's the world domination plan. | 16:38 |
replaceafill | :D | 16:39 |
th1a | So this may be a SIELibre hosting contract. | 16:39 |
th1a | I'm going to approach it as such. | 16:39 |
th1a | OK, yvl? | 16:40 |
yvl | I'm working on tasks that I sent you yesterday | 16:41 |
yvl | currently on "notifications" | 16:41 |
yvl | and fixing task cleanup | 16:42 |
* yvl wants to finish musts this week | 16:42 | |
th1a | How do you see notifications working? | 16:42 |
yvl | a number of new notifications near your username | 16:42 |
yvl | near your name | 16:43 |
yvl | where login is | 16:43 |
yvl | for example: "Schooltool Manager (5)" | 16:43 |
yvl | then a list in you home page | 16:43 |
th1a | I mean, technically | 16:43 |
yvl | simple container + catalog | 16:44 |
yvl | to store tombstones of finished celery tasks in ZODB | 16:44 |
yvl | we can also put other things there | 16:44 |
th1a | Walk me through the timeline. | 16:44 |
th1a | 1) I submit a report request... | 16:44 |
yvl | umm | 16:45 |
th1a | then? | 16:45 |
yvl | okay | 16:45 |
yvl | do you want me to walk you through first implementation or later implementation? | 16:45 |
yvl | ok, let's do the simplest one first | 16:46 |
yvl | - submit a request for report / import | 16:46 |
yvl | - get a dialog with spinner "waiting in queue", just with better/saner message | 16:46 |
yvl | - dialog also says you can close me now, and find report when it's done | 16:47 |
yvl | when report is being generated - if the user has not closed the dialog | 16:47 |
yvl | the text will change to "generating" | 16:47 |
yvl | and then to a download link for the report | 16:48 |
th1a | Meanwhile, an event was sent to Celery? | 16:48 |
yvl | ok | 16:48 |
yvl | let's go again | 16:48 |
yvl | - user requests a report | 16:48 |
yvl | - task is built with requested parameters | 16:49 |
yvl | - a two-phase commit is executed | 16:49 |
yvl | - a task "handler" is logged in ZODB | 16:49 |
yvl | - a task is pushed to celery broker | 16:49 |
yvl | meanwhile the html for dialog is returned that knows how to request the status of the task | 16:50 |
yvl | dialog requests the status of the task and tries to render it | 16:50 |
yvl | probably hits "waiting", so renders that | 16:51 |
yvl | broker picks a proper task queue and finds a free worker - or not | 16:51 |
yvl | at some point some celery worker starts executing the task (well, first try to execute it to be precise) | 16:52 |
yvl | and set | 16:52 |
th1a | So the dialog polls the task status in the zodb? | 16:52 |
yvl | no | 16:52 |
yvl | ... | 16:52 |
yvl | and updates the task status in redis | 16:52 |
yvl | btw - redis is also used by the task broker | 16:53 |
yvl | dialog polls bottle to query redis | 16:53 |
yvl | and return status | 16:53 |
th1a | OK. | 16:53 |
yvl | at some point the task completes, and commits the result to ZODB | 16:54 |
yvl | this will be a notification object and the PDF (in ZODB blob) | 16:54 |
yvl | a dialog renders the link to get the PDF | 16:55 |
yvl | if it was not close yet of course | 16:55 |
yvl | then... it depends | 16:56 |
yvl | if I'm not done with direct file serving, the PDF can be downloaded by clicking on the link and rendering the "file" object with Zope - as we do now | 16:57 |
yvl | if I'm done with direct file serving, the link will request bottle maybe via paster maybe to serve a file from file system directly maybe | 16:57 |
th1a | So there isn't a "done" message passed to Zope via REST or anything like that. | 16:57 |
yvl | well | 16:58 |
yvl | I don't know what to say. | 16:58 |
yvl | yes and no | 16:58 |
yvl | no REST | 16:58 |
yvl | result is written into ZODB, so yes | 16:58 |
yvl | if I do channels with long poll | 16:59 |
yvl | then it will feel as if some done message was passed | 16:59 |
th1a | I mean... | 17:00 |
th1a | I'm not being critical. | 17:00 |
yvl | I understand | 17:00 |
* yvl may be bad at explaining :( | 17:00 | |
th1a | I guess you can't literally push a status update to a webpage that someone is looking at. | 17:00 |
yvl | yes | 17:00 |
th1a | The page has to ask for more info. | 17:00 |
yvl | but there are techniques of cours | 17:00 |
yvl | e | 17:00 |
yvl | one is to ask the server if there's something new | 17:01 |
yvl | another is to do a long poll | 17:01 |
th1a | Yes, I'm getting it now. | 17:01 |
yvl | request with javascript for something new, | 17:01 |
yvl | and server just does not send the response | 17:01 |
yvl | until there's something new | 17:01 |
yvl | a long request | 17:01 |
yvl | ewll | 17:01 |
yvl | well | 17:01 |
yvl | actually it starts sending the response | 17:02 |
th1a | So we might end up with something where if we have a little "new event arrived" indicator in the top part of every page, every page will try to poll the server say, once a minute? | 17:02 |
yvl | and then does not finish it for a long time | 17:02 |
yvl | yes | 17:02 |
yvl | that's why I want to do long polling | 17:02 |
yvl | this also means I can't do that via Zope | 17:02 |
yvl | it may be a good thing ;) | 17:03 |
th1a | Ah. | 17:04 |
th1a | OK. | 17:04 |
yvl | Zope is bad for serving lots of things; | 17:04 |
yvl | it's also not very good at serving big things | 17:04 |
yvl | task updates (like import progress bar) are served separately, outside Zope | 17:05 |
th1a | Sure. | 17:05 |
yvl | hmm | 17:06 |
yvl | we should reserve an hour or so for this at the sprint | 17:06 |
yvl | just me walking through recent changes | 17:06 |
yvl | and reasons for them | 17:06 |
th1a | Well, I think we're going to be spending a lot more time than that going over all this. | 17:07 |
yvl | it is possible :) | 17:07 |
th1a | OK. Anything else? | 17:09 |
* yvl done, I think. | 17:09 | |
th1a | OK, thanks! | 17:10 |
th1a | replaceafill? | 17:10 |
replaceafill | ok | 17:10 |
replaceafill | i've been working on dwelsh report requests | 17:11 |
replaceafill | added iep information to the score student view | 17:11 |
replaceafill | and the student competency report | 17:11 |
replaceafill | i also updated the completion and progress reports | 17:11 |
replaceafill | and their descriptions | 17:11 |
replaceafill | (we still had some XXX around) | 17:11 |
replaceafill | added an extra column dwelsh requested for the new completion report | 17:12 |
replaceafill | all of that is finished | 17:12 |
replaceafill | now i'm going to work on pdfs | 17:12 |
replaceafill | finally! | 17:12 |
replaceafill | :D | 17:12 |
replaceafill | starting with the student competency report | 17:13 |
replaceafill | i mean, porting it | 17:13 |
replaceafill | and then adding the validated resume report + pdf | 17:13 |
th1a | Which version is that? | 17:13 |
replaceafill | the one in standard cando | 17:13 |
th1a | Numbers or graphs? | 17:13 |
replaceafill | neither | 17:14 |
replaceafill | it uses the scoresystem labels | 17:14 |
replaceafill | label, required, skill, date, rating | 17:14 |
replaceafill | for one section of the student | 17:14 |
replaceafill | so i'll work on that today | 17:15 |
replaceafill | ah | 17:15 |
replaceafill | i also met with aelkner to discuss the skill scoresystem issue | 17:15 |
replaceafill | yesterday i spent some time investigating why some tests are really slow | 17:15 |
replaceafill | had a good chat with yvl about it :) | 17:15 |
yvl | :) | 17:16 |
th1a | The student competency report is what? | 17:16 |
replaceafill | th1a, want to see a screenshot? | 17:16 |
th1a | Apparently. | 17:16 |
replaceafill | kk | 17:16 |
th1a | We have to be working together on printed reports now. | 17:17 |
th1a | They all have to be done to new specifications which don't completely exist yet. | 17:17 |
replaceafill | ah ok | 17:17 |
replaceafill | i was going to start by having basic functionality | 17:17 |
th1a | Except for Satan's report, which you can do however you want. | 17:17 |
replaceafill | and the focus on design | 17:17 |
replaceafill | :)) | 17:17 |
replaceafill | http://imagebin.org/243103 | 17:19 |
replaceafill | i'll set up a testing instance so we can work on this | 17:20 |
replaceafill | instead of using screenshots ;) | 17:20 |
replaceafill | that's too 2009 :P | 17:20 |
th1a | OK, I see. | 17:20 |
yvl | :D | 17:20 |
th1a | Let me know when you've got a first draft. | 17:21 |
replaceafill | sure | 17:21 |
th1a | Can we use the table magic yvl wrote? | 17:21 |
replaceafill | i hope so ;) | 17:21 |
th1a | I guess I'd say I need to see these BEFORE Welsh does. | 17:21 |
replaceafill | i hope this will be smooth | 17:21 |
replaceafill | sure | 17:21 |
replaceafill | oh, and i replied mr keiper about how schooltool calculates averages | 17:22 |
replaceafill | (the german user) | 17:22 |
replaceafill | when weighted categories are being used | 17:22 |
* replaceafill done | 17:22 | |
th1a | Did he reply? | 17:23 |
replaceafill | to my second email no | 17:24 |
replaceafill | he did to my first one | 17:24 |
th1a | Did I not see it? | 17:24 |
th1a | Did it go through LP? | 17:24 |
replaceafill | no | 17:24 |
replaceafill | he just replied to me | 17:24 |
replaceafill | but i cc you and yvl on my second email | 17:24 |
replaceafill | and there's the thread | 17:24 |
replaceafill | thanks top-posting! | 17:24 |
replaceafill | ;) | 17:24 |
replaceafill | th1a, btw | 17:25 |
replaceafill | i think we might be interested in adding the validated resume to standard cando | 17:25 |
replaceafill | let me take a good screenshot so we can discuss it later | 17:25 |
th1a | We should assume that everything is going into standard CanDo unless it is extremely Virginia specific or the Spawn of Satan. | 17:27 |
replaceafill | :)) | 17:27 |
replaceafill | http://imagebin.org/243105 | 17:27 |
replaceafill | seems pretty "standard" to me :) | 17:27 |
th1a | Welsh admitted, unprompted, that he can't that report. | 17:27 |
th1a | (the evil one) | 17:28 |
th1a | Anyhow, anything else, replaceafill? | 17:28 |
replaceafill | no | 17:28 |
replaceafill | that's it | 17:28 |
th1a | Thanks! | 17:28 |
th1a | menesis? | 17:28 |
menesis | I have been working on releases | 17:29 |
menesis | merged translations, fixed some msgids | 17:29 |
menesis | reviewed my branches whether I have anything to merge | 17:30 |
menesis | will release schooltool shortly | 17:30 |
menesis | also worked on scripts in celery branch - refactored management commands to a new script | 17:31 |
menesis | updated/created milestones and bugs on launchpad | 17:32 |
menesis | uploaded schooltool-book to the PPA and updated needs-packaging bug to be ready for inclusion | 17:33 |
menesis | you can try install it | 17:34 |
th1a | What does the package actually do with the book? | 17:34 |
menesis | the package installs the book contents to /usr/share/doc/schooltool-book/html | 17:34 |
menesis | and registers it with doc-base, whatever that means | 17:35 |
th1a | So you can view it if you know to point your browser there. | 17:36 |
menesis | to show up in server documentation viewers (dwww, dhelp) | 17:36 |
menesis | the files only are useful if you install on your desktop | 17:37 |
th1a | Right. | 17:38 |
menesis | they are not exposed via apache | 17:38 |
th1a | In this form. | 17:38 |
th1a | OK, but that's a later step. I'd like to do it later this year. | 17:38 |
menesis | unless you use general tools like dhelp | 17:39 |
menesis | apache setup is not automatic | 17:39 |
menesis | I can add a /book alias to the virtualhost example | 17:39 |
th1a | That would be nice for now. | 17:40 |
menesis | we need a link from the app | 17:40 |
menesis | haven't thought how to do that | 17:41 |
replaceafill | link in sidebar in /about.html? | 17:41 |
th1a | Well, for starters it could just be in the footer. | 17:42 |
th1a | But it really should be context sensitive. | 17:42 |
th1a | Essentially, the help system. | 17:42 |
th1a | Help link that takes you to the right page in the book. | 17:42 |
th1a | That's not an immediate priority now though. | 17:43 |
menesis | agree | 17:43 |
menesis | replaceafill: have you finished your virginia changes? | 17:44 |
replaceafill | menesis, yes | 17:44 |
replaceafill | i mean | 17:45 |
replaceafill | i still have things to do for dwelsh | 17:45 |
menesis | so the skills/projects issue you discussed in email is resolved? | 17:45 |
replaceafill | ah no | 17:45 |
replaceafill | aelkner, is working on that | 17:45 |
menesis | ok | 17:46 |
replaceafill | menesis, i moved to something else in the meantime | 17:46 |
menesis | no problem | 17:46 |
menesis | I was switching between tasks, too | 17:46 |
* menesis done | 17:46 | |
replaceafill | :) | 17:46 |
replaceafill | yvl, i have two quick questions | 17:46 |
replaceafill | about pdfs | 17:46 |
yvl | sure | 17:46 |
replaceafill | i've noticed that the section roster and the resource report | 17:47 |
replaceafill | produce: | 17:47 |
replaceafill | 2013-01-16 09:44:06,992 Directive 'pto_header' could not be processed and was ignored. (file resource_report_1301160944.pdf, line 199) | 17:47 |
replaceafill | 2013-01-16 09:44:06,992 Directive 'pto_trailer' could not be processed and was ignored. (file resource_report_1301160944.pdf, line 199) | 17:47 |
yvl | yes | 17:47 |
replaceafill | these are no biggie, right? | 17:47 |
replaceafill | i mean, not important :) | 17:47 |
yvl | yes | 17:48 |
yvl | if you wonder why that happens | 17:48 |
replaceafill | kk | 17:48 |
yvl | see | 17:48 |
yvl | z3c.rml.flowable.IPTO | 17:48 |
yvl | the signature is empty | 17:48 |
replaceafill | ah | 17:48 |
replaceafill | cool | 17:48 |
yvl | though it supposed to announce that it handles pto_header and pto_trailer | 17:48 |
replaceafill | and my second question | 17:48 |
replaceafill | if i have an html view with a table formatter | 17:49 |
replaceafill | and i want to use the same formatter for the pdf | 17:49 |
replaceafill | and say i have sortable columns in the table | 17:49 |
replaceafill | would it be possible to produce the pdf based on the "current" sorting of the table | 17:49 |
replaceafill | it's yagni | 17:49 |
replaceafill | i'm just curious :D | 17:49 |
yvl | the answer is yes | 17:50 |
yvl | if | 17:50 |
yvl | you do not break the flow of request params from table to pdf | 17:50 |
replaceafill | ah ok | 17:51 |
yvl | in other words you'll have to submit the table sorting form to the pdf rendering view | 17:51 |
replaceafill | right | 17:51 |
replaceafill | no idea if it's useful, but i'd like to try it :D | 17:51 |
replaceafill | "pdf what you see" ;) | 17:51 |
yvl | well, it's useful if you want to apply filters | 17:51 |
yvl | or search | 17:51 |
replaceafill | ah | 17:51 |
replaceafill | true | 17:51 |
replaceafill | thanks! | 17:52 |
* replaceafill done asking ;) | 17:52 | |
th1a | OK, thanks guys! | 17:53 |
th1a | Have a good week/end, and see you soon! | 17:53 |
* th1a drops the bag of gravel. | 17:53 | |
yvl | thanks! | 17:53 |
replaceafill | thanks everybody | 17:53 |
th1a | I'm sending the invoices in today, btw. | 17:53 |
replaceafill | th1a, question | 18:01 |
replaceafill | i'm not sure if you said something about it | 18:01 |
replaceafill | are you ok with "Export as PDF" option under Reports for the Student Competency Report | 18:01 |
* replaceafill vaguely remembers something about "export as..." links | 18:02 | |
th1a | Oh... that sounds ok. | 18:02 |
replaceafill | ah cool | 18:03 |
th1a | Export table as PDF? | 18:03 |
th1a | Or | 18:03 |
th1a | Print table? | 18:03 |
replaceafill | hhmm to me that makes sense in the case of "lists"? | 18:03 |
replaceafill | the SCR is info about one single person | 18:04 |
replaceafill | and his/her skills | 18:04 |
replaceafill | i'd use "export table as pdf" for the resources report for instance | 18:04 |
replaceafill | just my 0.02 | 18:04 |
th1a | Well... | 18:04 |
th1a | that phrases it in a highly technical way. | 18:05 |
replaceafill | true | 18:05 |
th1a | I was thinking about putting the link closer to the table itself. | 18:07 |
th1a | So then you don't have to be as descriptive. | 18:07 |
replaceafill | ah, good idea | 18:07 |
th1a | Like a "Print formatted" link. | 18:07 |
th1a | I kind of want to be specific enough that people can understand "well, technically I could print this web page but this other version should look better" | 18:08 |
th1a | But maybe we should just expect people to come to grips with "pdf" | 18:09 |
th1a | Let's say "Export table as pdf" | 18:09 |
th1a | It is tricky because literally we don't know that they really want to print, even if they want a pdf. | 18:09 |
replaceafill | yvl, you gone? | 18:20 |
replaceafill | th1a, we only have 2 pdf's with the new layout, right? | 18:21 |
replaceafill | section roster and resources | 18:21 |
th1a | Sounds right. | 18:21 |
replaceafill | neither of them use table formatters yet (i think) | 18:22 |
replaceafill | yvl, Person -> Profile raises "ValueError: max() arg is an empty sequence" | 18:26 |
th1a | You might have to pull an overnight shift to get these going with yvl. | 18:27 |
th1a | Lithuanian time. | 18:27 |
replaceafill | true | 18:27 |
replaceafill | yay! i almost got it | 19:11 |
replaceafill | thank you yvl for using good commit comments :D | 19:11 |
replaceafill | http://bazaar.launchpad.net/~justas-pov/schooltool/reports/revision/3524 | 19:11 |
replaceafill | ah :( i spoke too soon | 19:14 |
*** menesis has quit IRC | 19:52 | |
*** menesis has joined #schooltool | 21:55 | |
*** dreich has joined #schooltool | 22:12 | |
replaceafill | dreich, pgulley ping | 22:14 |
dreich | replaceafill pong! | 22:14 |
replaceafill | hey dreich | 22:15 |
replaceafill | u ready? | 22:15 |
dreich | mhm! | 22:15 |
dreich | although, that fix you gave me with docutils isn't working, I don't think | 22:15 |
dreich | but I got the google doc | 22:16 |
replaceafill | did you run "bin/buildout"? | 22:16 |
dreich | yup | 22:17 |
dreich | "KeyError: 'test-headless'" | 22:17 |
replaceafill | can you paste your buildout.cfg file at pastebin.com? | 22:18 |
dreich | http://pastebin.com/uEqgnzxt | 22:19 |
replaceafill | hhmm your buildout.cfg file works for me | 22:22 |
dreich | docutils doesn't seem to be connected to the error, actually. If I take that line out it still happens | 22:23 |
replaceafill | do: | 22:23 |
replaceafill | make clean | 22:23 |
replaceafill | make | 22:23 |
replaceafill | and paste the console output at pastebin.com please | 22:24 |
replaceafill | did you download chromedriver? | 22:24 |
dreich | I think so | 22:25 |
dreich | I mean, I did, but I might have done so wrong in a way that I don't know | 22:25 |
replaceafill | buildout shouldn't fail anyway because of that | 22:26 |
dreich | looks like it worked this time! | 22:26 |
replaceafill | good | 22:27 |
dreich | making run now. | 22:27 |
replaceafill | kk | 22:27 |
dreich | cool! | 22:27 |
replaceafill | see if you can access the broken quizzes | 22:27 |
dreich | I don't have that error, I can view the quizzes now | 22:27 |
replaceafill | great | 22:27 |
replaceafill | also | 22:27 |
replaceafill | make sure to: | 22:28 |
replaceafill | bzr pull | 22:28 |
replaceafill | from all the directories | 22:28 |
replaceafill | schooltool, schooltool.gradebook, etc | 22:28 |
replaceafill | you can do that later, np | 22:28 |
replaceafill | ok, do you have questions so far? | 22:28 |
dreich | I think I get it | 22:28 |
dreich | I mean, other than that I want to know what the error was :P | 22:29 |
replaceafill | you mean the broken quizzes one? | 22:29 |
dreich | yeah | 22:29 |
dreich | but it doesn't matter too much now | 22:29 |
replaceafill | you could check the rst.py module in quiz | 22:29 |
replaceafill | it uses Sphix + docutils | 22:30 |
replaceafill | to render math | 22:30 |
replaceafill | docutils made a change in version 0.8 | 22:30 |
replaceafill | that breaks that module | 22:30 |
replaceafill | so, at some point we need to update our rst.py module | 22:30 |
dreich | alright | 22:31 |
replaceafill | ok | 22:31 |
replaceafill | so i shared jelkner's google doc | 22:31 |
dreich | yep | 22:31 |
replaceafill | about the logic he wants for the feature | 22:31 |
replaceafill | i think it's pretty stratightforward (the doc) | 22:32 |
dreich | yeah, I agree | 22:32 |
replaceafill | check the documentation for the fractions module in python too | 22:32 |
replaceafill | also pretty straightforward | 22:32 |
replaceafill | so | 22:32 |
dreich | It seems like it'll take more of our effort to get back into the code than to actually write the feature/tests | 22:32 |
replaceafill | correct | 22:33 |
replaceafill | but once you know the code, you can keep adding new features :) | 22:33 |
replaceafill | so it's a good effort | 22:33 |
replaceafill | like the tons of features you'll add in pycon :D | 22:33 |
replaceafill | so, i was thinking, and i wrote a little in our google doc | 22:33 |
replaceafill | to talk about the data model of quiz | 22:34 |
replaceafill | quiz = schooltool.quiz | 22:34 |
replaceafill | it's pretty simple | 22:34 |
dreich | okay | 22:34 |
replaceafill | see Meeting 2 - Data Model | 22:34 |
replaceafill | in the google doc | 22:34 |
replaceafill | basically there's only 3 models | 22:35 |
replaceafill | for this feature you'll probably care about QuizItem more than the other two | 22:35 |
dreich | and we subclass QuizItem? | 22:35 |
replaceafill | not really | 22:35 |
replaceafill | here's my "idea" to handle the feature | 22:35 |
dreich | yeah? | 22:36 |
replaceafill | feel free to do it completely different | 22:36 |
replaceafill | hold on | 22:36 |
replaceafill | schooltool/quiz/quizitem.py | 22:36 |
replaceafill | def QuizItemTypeVocabulary(context): | 22:36 |
replaceafill | in that vocabulary you add a new item | 22:37 |
replaceafill | rational | 22:37 |
replaceafill | or something like that | 22:37 |
replaceafill | (key, i18n_message) | 22:37 |
replaceafill | right? | 22:37 |
replaceafill | so, that should give you a new option in the Add -> Question form | 22:37 |
dreich | yeah | 22:37 |
replaceafill | now check quiz.browser.quizitem.QuizItemAddView | 22:38 |
replaceafill | that's the class to handle the question add form | 22:38 |
replaceafill | so basically, the quizitem carries this type_ | 22:39 |
replaceafill | (rational, for your new case) | 22:39 |
dreich | yeah | 22:40 |
replaceafill | there's some logic too to know if a question is an open question | 22:40 |
replaceafill | like _open_question_token | 22:40 |
replaceafill | which has some relationship with the vocabulary | 22:40 |
replaceafill | and some is_open_question methods | 22:40 |
dreich | can we just ignore those specifics for rational though? | 22:41 |
replaceafill | basically these are for handling choices | 22:41 |
replaceafill | i'm talking about open, because rational will behave a lot like open | 22:41 |
dreich | right | 22:41 |
replaceafill | imho, rational should be "open + validation" | 22:41 |
replaceafill | i mean | 22:42 |
dreich | so we'll learn from those, but have seperate methods | 22:42 |
replaceafill | teacher creates a question | 22:42 |
replaceafill | he selects Rational | 22:42 |
replaceafill | what he should see is exactly what he sees for open | 22:42 |
replaceafill | body + solution | 22:42 |
replaceafill | when he tries to save the question, solution should be validated | 22:42 |
replaceafill | against the rules described in jelkner's doc | 22:43 |
dreich | right | 22:43 |
pgulley | replaceafill, dreich, sorry I'm late | 22:43 |
replaceafill | you don't even need to "save" the solution in a rational form | 22:43 |
replaceafill | hey pgulley | 22:44 |
dreich | hello! | 22:44 |
replaceafill | pgulley, i'm explaining a little my idea on how to handle your feature | 22:44 |
replaceafill | you can check the logs of the channel btw | 22:44 |
replaceafill | http://schooltool.pov.lt/irclogs/latest.log.html | 22:44 |
pgulley | Cool, I'm caught up, and I've got your doc | 22:45 |
replaceafill | pgulley, did your environment work? | 22:45 |
replaceafill | dreich, ok, so you don't need the rational solution stored | 22:46 |
replaceafill | you can do it on the fly every time you need it | 22:46 |
replaceafill | suppose the teacher wrote: 4 + 1/2 | 22:47 |
replaceafill | for the solution | 22:47 |
dreich | we just store "4 + 1/2"? | 22:47 |
replaceafill | yes | 22:48 |
replaceafill | at least, that's what i think | 22:48 |
dreich | okay | 22:48 |
replaceafill | we should do | 22:48 |
replaceafill | but again | 22:48 |
replaceafill | you validate it before saving | 22:48 |
replaceafill | so | 22:48 |
replaceafill | one of your first steps should be | 22:48 |
replaceafill | writing the validation | 22:48 |
replaceafill | because you can do that easily without UI | 22:48 |
replaceafill | right? | 22:49 |
dreich | and we use the same validation for both teachers and students, right? | 22:49 |
dreich | (and yeah) | 22:49 |
replaceafill | yes | 22:49 |
dreich | cool | 22:49 |
replaceafill | also | 22:49 |
replaceafill | you could try inserting the new type in the form | 22:50 |
replaceafill | in the add question form | 22:50 |
replaceafill | or at least | 22:50 |
replaceafill | follow the logic for open questions | 22:50 |
replaceafill | see for instance | 22:50 |
replaceafill | quiz.browser.quizitem.SolutionValidator | 22:50 |
replaceafill | if self.view.is_open_question() and not value: | 22:50 |
replaceafill | raise SolutionRequiredError(value) | 22:51 |
replaceafill | that what's triggered when the teacher tries to create an open question with no solution | 22:51 |
replaceafill | z3c.form at first is very unfriendly | 22:51 |
replaceafill | your validation routine could be called after this for instance | 22:51 |
replaceafill | and raise RationalParsingError(value) | 22:52 |
replaceafill | or something along those lines | 22:52 |
replaceafill | you can see the error above | 22:52 |
replaceafill | quiz.browser.quizitem.SolutionRequiredError | 22:52 |
replaceafill | it's just the message to show | 22:52 |
replaceafill | yours could have something like: | 22:53 |
replaceafill | __doc__ = _('I don't undrestand this!!!") | 22:53 |
replaceafill | :D | 22:53 |
replaceafill | but better ;) | 22:53 |
pgulley | Yep, I'm all set. | 22:53 |
replaceafill | pgulley, good | 22:53 |
dreich | alright | 22:53 |
dreich | I couldn't quite follow that in real-time because I had to find all the stuff in the code | 22:54 |
replaceafill | dreich, punt everything rational related in a new rational.py module | 22:54 |
dreich | but it makes sense, and I've got the logs! | 22:54 |
dreich | and ok | 22:54 |
replaceafill | dreich, i know | 22:54 |
replaceafill | but i can help you connecting everything | 22:54 |
replaceafill | so, you'll need to instruct the forms: "there's a new type of question" | 22:55 |
replaceafill | let's start with that | 22:55 |
replaceafill | ah | 22:55 |
replaceafill | also | 22:55 |
replaceafill | there's some javascript to handle the quiz item form | 22:55 |
replaceafill | quiz item = question btw | 22:56 |
replaceafill | check browser/templates/quiz_item_form_script.pt | 22:56 |
replaceafill | it may have no sense at the beginning | 22:56 |
*** dreich_ has joined #schooltool | 22:56 | |
replaceafill | but at least it would give you an idea of what's going on in that view | 22:56 |
replaceafill | (client side) | 22:56 |
dreich_ | hey, back, I moved around in the school and our wifi is bad | 22:56 |
replaceafill | and feel free to improve anything you think it can be imporoved | 22:57 |
replaceafill | dreich_, :) | 22:57 |
replaceafill | np | 22:57 |
replaceafill | i think once you're done with your validation routine and adding the new type of question to the add form, we can talk "evaluations" | 22:57 |
replaceafill | and how deployed quizzes handle that | 22:57 |
replaceafill | (the answers of the students) | 22:57 |
replaceafill | (the view to "take" the quiz, etc) | 22:58 |
*** dreich_ has quit IRC | 22:58 | |
replaceafill | so, does that sounds like a good target for next week (validation routine + new type of question added) | 22:58 |
*** dreich has quit IRC | 22:58 | |
pgulley | I'll speak for him- I think so. | 22:59 |
replaceafill | :) | 22:59 |
replaceafill | cool | 22:59 |
replaceafill | if you have any questions feel free to email, ok? | 23:00 |
pgulley | absolutely! | 23:00 |
*** dreich has joined #schooltool | 23:00 | |
dreich | hey! | 23:01 |
dreich | sorry, this keeps on going in and out | 23:01 |
replaceafill | wb dreich | 23:01 |
replaceafill | np | 23:01 |
dreich | I haven't seen much of anything for the past few minutes, but I'l read the log | 23:01 |
pgulley | driech- can we get the new question added, with the validation, by next week? | 23:01 |
replaceafill | sure | 23:01 |
pgulley | or that | 23:01 |
dreich | pgulley, probably not, but we can try | 23:01 |
replaceafill | np, do what you can | 23:01 |
pgulley | We can discuss logistics later, I don't see it as a problem. | 23:02 |
dreich | yup! | 23:02 |
pgulley | but that's normally how it works. | 23:02 |
replaceafill | again, once you have those 2, we'll move on | 23:02 |
replaceafill | sounds like a plan? | 23:02 |
dreich | Anyway, I really have to get going now. We'll talk again next week and/or by email! | 23:02 |
replaceafill | sure | 23:02 |
dreich | and yes it does | 23:02 |
replaceafill | thanks both of you | 23:02 |
dreich | thank you! | 23:03 |
replaceafill | see you next week | 23:03 |
dreich | bye! | 23:03 |
*** dreich has quit IRC | 23:03 | |
replaceafill | bye | 23:03 |
pgulley | aighto, bye. | 23:03 |
*** pgulley has quit IRC | 23:03 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!