IRC log of #schooltool for Monday, 2010-10-18

*** alga has quit IRC03:14
*** alga has joined #schooltool09:28
*** menesis has joined #schooltool09:43
*** menesis has quit IRC09:53
*** menesis has joined #schooltool09:54
*** yvl has joined #schooltool10:40
*** alga has quit IRC11:26
*** menesis has quit IRC12:11
*** alga has joined #schooltool12:35
*** Aiste has joined #schooltool14:31
*** Aiste has quit IRC14:51
*** Aiste has joined #schooltool15:12
*** Aiste has joined #schooltool15:12
*** menesis has joined #schooltool15:25
*** Aiste has quit IRC16:05
*** replaceafill has joined #schooltool16:17
*** th1a has joined #schooltool16:32
th1ahi yvl, menesis, replaceafill, aelkner.16:32
yvlmorning guys16:32
replaceafillgood morning/afternoon16:32
aelknermorning everyone16:33
th1aSo I have a meeting Friday at Critical Links about their appliance, so if there is anything you want me to ask or tell them, let me know.16:34
th1aI also managed to update the selenium scripts to run with the current SchoolTool, which was a painful process I've been avoiding for much too long.16:36
th1aFor whatever reason long selenium scripts tend to randomly fail, and generally I seem to be stretching Selenium IDE to its limits.16:37
th1aIt is finicky.16:38
th1aBut anyhow, that's my headache.16:38
th1aBut that should finally get me moving more quickly on docs.16:38
th1areplaceafill, how are you coming?16:39
replaceafilli finished the total average values for cambodia16:39
replaceafillMonthly Average Score of the Semester16:39
replaceafillwhich is the average of all monthly averages!16:40
replaceafillSemester Exam Average Score16:40
replaceafillsame (average of all semester exam averages)16:40
replaceafillAverage of the Semester and Annual Average Score16:40
replaceafillthey're kind of expensive reports, since they look for all the grades for a student to get the results16:41
replaceafillalso, i sent an email to cambodia, asking them about how to lay out these values in a report16:42
replaceafillor a report card16:42
replaceafillhave had no answer yet16:42
th1aOh, I missed that...16:42
replaceafillth1a, i was thinking, maybe i asked too many things in one single email?16:42
replaceafilloh, i cc'ed u16:43
th1aI see it now.16:43
replaceafillfunny, i've started to suffer with selenium ide too16:43
replaceafillso, i looked at the sample generation service of schooltool16:43
th1aIt  is not industrial strength.16:44
replaceafillyvl, for some reason i always thought it was broken someway...16:44
yvlsad thing, that it is16:44
replaceafill(i mean, the sample data generation)16:44
yvlit was and it got fixed at some point, IIRC16:44
replaceafillah, cool!16:45
replaceafillit works great for.... "generating sample data" ;)16:45
replaceafillyvl, so your comment on my merge request is to prevent a 'plugin...' in the request other than the inteded use of the view?16:45
replaceafilli mean the view expects things like: plugin.term, plugin.teachers, etc16:46
yvlit's a nitpick16:47
replaceafillgot it16:47
yvlyour code will break, if a variabl "plugin" gets into the request16:47
yvlwith a traceback16:47
th1aIt is worth giving sample data generation some love.  An email letting everyone know what it actually does when your done would be good too.16:47
th1aIt would be good to focus on the things you can't import from a spreadsheet practically.16:48
replaceafillyvl, also, that view uses getutilitiesfor16:48
yvlas somebody (menesis?) mentioned last week - available in dev mode only16:48
replaceafillbut getutilitiesfor doesnt return a specific order, correct?16:49
replaceafilli mean, when i was playing with the tests, if i set names like "play" and "work" everything work as expected16:49
replaceafilleven with "play" and ""16:49
replaceafillbut if i change to "play" and "work.hour"16:49
replaceafillthe order was different16:49
yvlyeah, but plugins have dependencies, right?16:50
yvlof course, you can always sort them by name, for the sake of the tests16:50
replaceafillyvl, being more annoying, did you see my email to the dev-list?16:51
replaceafillabout pyflakes16:51
replaceafillspecifically about the error in FieldValidator16:51
yvlyes I did16:51
replaceafillwell, importing error16:51
replaceafilli didnt understand the advantage of that class vs z3c.form's validator16:52
replaceafilli mean, it's no big issue16:52
yvlI've no idea why it's there16:52
replaceafilli just wanted to know :)16:52
replaceafillth1a, to finish my report, i also played with the ubuntu font16:53
yvlin my mind, the whole person thing is subject to refactoring16:53
replaceafilli changed the styles to use it as the first value in the font-family16:53
replaceafilllike you did with the book16:53
replaceafillth1a, it looks smaller, right?16:53
yvlumm, please don't forget that Ubuntu font doesn't cover all glyphs at the moment :)16:54
th1aHm... I don't know if I'd say that.16:54
replaceafillah, yvl true16:54
yvlit definitely looks more tightly packed ;)16:54
th1aIf it doesn't have the right glyphs does it just fall back to san serif?16:54
replaceafillth1a, i'm going to set up a testing instance in our VM so you can see it, ok?16:54
th1aI mean, we aren't worse off in that respect than we were before?16:55
replaceafilli guess, it falls back if you dont have it16:55
th1aAnyhow, we can shift to it for testing and see.16:55
replaceafilli tested spanish letters and it seems to have them16:55
th1aI'm using a plugin in Chrome that makes everything use it.16:55
th1aSo I've got an all Ubuntu font workspace now.16:56
* yvl too16:56
th1aSo... replaceafill, are you running out of Cambodia tasks?16:56
replaceafillkind of16:56
replaceafilli have the averages now16:56
replaceafillbut dont know to display them16:56
replaceafillbut i will send an email showing the calculatiosn anyway16:57
th1aaelkner is starting on similar tasks for the schools in Africa.16:57
replaceafilllike i did with the montly averages16:57
th1aCan you view them in a report sheet?16:57
replaceafillno, these are still regular sheets16:58
aelknersome averages don't need to be computed from within the gradebook16:58
replaceafilli can work on that while i wait16:58
aelknerbut can be computed in the report card only16:58
replaceafillaelkner, right16:58
th1aYou can view them in a worksheet though?16:58
replaceafillth1a, i set up a new view in the person just to display them16:59
replaceafillth1a, that's it from me16:59
th1aSo I'd say the next thing is a followup to that email with screenshots of this stuff to make it a little more concrete.16:59
replaceafillth1a, got it16:59
replaceafillwill do17:00
*** menesis has quit IRC17:00
*** menesis has joined #schooltool17:00
th1aSpending a little time tidying up sample data is good -- just make sure everyone knows what you've done so other people can use it.17:00
th1aDo you have some El Salvador tasks?17:00
replaceafillah ok, understood17:00
th1aOK, you can do that too.17:00
replaceafilland the year is about to finish next month17:00
replaceafillwill work on that17:01
th1aAnd I'll follow up with Cambodia after a few days to give them another push.17:01
th1aOK, aelkner has some specific questions for yvl, so let's get yvl and menesis out of the way first.17:01
th1aThanks replaceafill.17:01
yvlwell, I'm currently working on timetable wizard17:02
yvlhuge thanks to Jeff for comments, by the way17:02
yvlbasically it is becomming a two-step wizzard17:03
yvl(*) Specify periods for days of the week17:03
yvl( ) Use rotating day cycle17:03
yvlPeriod time schedule:17:03
yvl(*) Single schedule, same every day17:03
yvl( ) Differs by weekday17:03
yvl( ) Differs by cycle day (rotating cycle only)17:03
yvland then there's a screen to fill in the data17:04
yvl(I'll probably even join both screens, and add [UPDATE] button below the radio boxes)17:04
yvlweirdly enough, that seems to cover almost all timetable schema variations17:05
th1aHmm... yes, that sounds good.17:05
yvlthings not covered (weird cases in my opinion)17:05
aelkneri noticed that after creating a timetable there is no way to know what times start17:05
aelknergo on17:06
yvlperiods are specified for weekdays, but time slots follow, say, 2 day cycle17:06
yvlperiods follow 5 day cycle, time slots follow 3 day cycle17:06
th1aI see...17:07
yvlperiods follow five day cycle, but are rotated by calendar days instead of school days17:07
yvlkeep in mind those all are possible by data model, we're just talking about sane UI17:07
th1aAre those things we could do now?17:08
yvlI pretty sure that no, but I will check17:09
th1aI don't think so.17:09
yvlby the way, example of (3), three day rotating cycle:17:10
yvlSun  ------17:10
yvlMon  Day 117:10
yvlTue  Day 217:10
yvlWed  Day 317:10
yvlThu  -----17:10
yvlFri  Day 217:10
yvlSat  -----17:10
yvlnotice that Firday is Day 2, instead of Day 117:10
th1aYes, I don't know why anyone would want that.17:10
* yvl too :)17:10
th1aSo yeah, I'd consider those wacky edge cases.17:10
yvlbut I'd rather check ;)17:10
th1aOTOH, there are more wacky edge case schedules out there than you can possibly imagine.17:11
th1aSo what you have above sounds pretty good,17:11
aelkneryvl, are you changing any of the views so that the user can see what time periods start?17:11
yvlyes, aelkner17:11
th1aand then the ultimate fix would just be something that said "OK, if you really want to, you can have the secretary spend an afternoon laying out the timetable manually for every day of the semester."17:12
th1a(the time for the ultimate fix is not now, ofc)17:12
yvland we can always "add custom timetable"17:12
yvlyou could do all of the stuff there, it's just more difficult to understand what you're doing ;)17:13
yvlagain, not now :)17:13
th1aOtherwise are you on schedule?17:13
yvlI would think so17:13
yvlby the way, one feature is kind of accidentally happening17:14
yvlIt was a pain to fit in homeroom periods as a separate step or something17:14
yvlso periods gained a "type" dropdown17:14
th1aThat could be useful.17:15
yvladding options "Lunch" and "Free period" made sense to me17:15
yvlok then, that's it for my report17:15
th1aThanks yvl.17:16
th1aI'm now remembering saying last week that we should probably get out the Lucid update this week.17:16
th1aWhat list should I look at to decide what to backport?17:17
menesisI was ill and in bed since Tuesday, so got nothing done last week17:17
th1aI hope you're feeling better.17:18
menesiswas fixing buildbot, not really finished17:18
menesisyes I am okay now, rested17:18
menesisdoing lucid update is my next task17:19
menesisI will apply all bugfixes that are compatible17:19
th1aI'm thinking that we should probably hold back on the security description changes.17:20
th1aThat could be confusing.17:20
menesisthe access control change from checkboxes to radio buttons is an example of incompatible change17:21
menesisthe text changed17:21
menesisand a new attribute was added to zcml directives17:21
th1aWe're on the same page then.17:22
th1aLet me know if you have any questions.17:22
menesisas for the list -- I am simply looking at revision log and merge/replay them17:22
menesissome bugs are targeted at 1.4 series, for example see
menesisbut not all. and not all fixes have bugs17:23
th1aAre you updating Karmic now?17:23
menesisI haven't touched Karmic or Lucid in a while17:24
menesisI make packages for Lucid and then Copy them in the PPA17:24
th1aI removed Karmic from the instructions in the book.17:25
th1aI figure we at least don't want to encourage people to use it.17:25
menesisno one is going to install Karmic now17:25
menesisbut if someone has not updated, then it's little work to make a copy :)17:26
th1aThat's what I figured.17:26
th1aOK. Thanks menesis.17:27
th1aaelkner: let's talk rotating text in ReportLab.17:28
aelkneryvl, did you see my email to the developer's list?17:28
yvldid not look into it yet17:28
menesisI have looked into it17:28
yvlcool :)17:28
menesisit is possible to rotate *canvas* for the following drawing operations17:29
menesisthe rml tag does the same as canvas.rotate17:30
th1aSo put text on a little canvas in the cell and rotate it?17:30
menesisbut blockTable parses its xml content17:30
menesisso I guess you can rotate all table17:31
menesisbut not individual cells17:31
menesisdon't know how best to do that17:32
menesisbut is possible17:32
aelknerone of the links i put in the email thread referred to subclassing Flowable17:32
aelknerand rotating the canvas within the draw method17:32
th1aCould you just rotate the text and absolutely position it "above" the cell?17:32
th1a(i.e., a different layer)17:32
menesisit is possible to draw text anywhere on the page17:33
menesisbut I imagine it would be hard to get coordinates17:33
aelknerblockTable row and col widths have to be calculated by the writer of the page template anyway17:34
aelknerso calculating other coordinates for drawing text wouldn't be much different17:34
aelknercould we consider drawing the rotated headings onto the blockTable17:35
aelknerfrom outside of the table?17:35
aelkneras you said, you can draw text anywhere17:35
th1aI think that's the proper workaround.17:35
aelknerso one could draw OVER a table in theory17:35
menesisI hope it is possible to write a paragraph style17:36
replaceafillisn't possible to insert drawStrings in the table header cells?17:36
replaceafilland rotate those?17:36
aelknermenesis was saying that blockTable rml parses that out17:36
menesisnot sure but 'rotate' is an unknown tag inside blockTable17:38
aelkneri noticed17:38
aelknerbtw, drawString looks like it only works within a pageGraphics tag, am i right?17:39
aelknerisn't it true that pageGraphics content gets rendered on ALL pages17:40
aelknerlike our footer, for instance17:40
menesislooks like it is accepted inside pageDrawing only17:41
aelknermenesis, am i right in interpreting pageGraphics to be like the form that every page has17:41
aelknerand the story gets drawn on the form?17:41
menesisdon't know about pageGraphics17:42
aelknerwho wrote the schooltool rml page macro?17:42
menesisdrawString can be in *pageDrawing*17:43
yvlyou know, the closest I can think of now17:43
yvlis writing a new flowable (like the one you saw on the net) and inject a new RML directive17:44
yvlwe'll need to change the vertical size of the flowable according to the length of the string17:45
aelkneryvl, if you can do that, we could use rotated text in blcokTables?17:45
aelknerthat would be great17:45
th1aCould you just explicitly set the vertical size?17:45
yvlkeep in mind, I've never tried to extend z3c.rml17:45
yvlyou can17:46
yvlI think :)17:46
th1aThat would do for now, I think.17:47
aelknerwhat's our plan then?17:47
th1ayvl is not going to touch this for at least two weeks.17:47
menesisa table cell can contain any flowable - we use para. but there's no flowable that draws a rotated string, that has to be written17:47
menesisbut I have no idea how to do that with rml template17:48
yvlI think there is a flowable that can contain drawing directives17:48
yvland it has it's own size17:48
yvllooking for it ATM :)17:48
yvlsorry, can't find it17:50
th1aThis is something that we need, but I don't want it to block getting some draft reports together.17:50
th1aaelkner:  Do you want to try just absolutely positioning first?17:51
aelknerUsing pageGraphics?17:51
th1aI don't know if that's easier just using plain ReportLab.17:51
yvla place!17:52
yvl(I think)17:52
yvlRML tag17:53
yvlbut probably not it :|17:53
yvlgot too excited17:53
aelknerFlowables (like paragraphs, spacers, and tables) can appear in a story (or in the <place> tag).17:53
yvlit does the other thing17:53
yvlthat :)17:53
yvlaelkner, you know what17:55
yvlcheck out the plugInFlowable test17:55
yvland try to inject this one:
yvlwith "wrap" method of course17:57
aelknerthe last thing you just pointed to involves sub-classing Flowable17:57
aelknerbut we can't so that without extending z3c.rml, right?17:58
yvlyeah, see z3c/rml/tests/flowable.py17:58
aelknerthat's a small file17:59
yvlyou'll be adding the plugin, but who cares ;)))17:59
yvland it does almost what you need17:59
yvlit just creates a lot of space instead of rotating17:59
aelkneri don't understand what you mean by 'adding the plugin'17:59
yvl<plugInFlowable module="schooltool.gradebook.browser.report_something_something" function="RotatedText"> Rotate this </pluginFlowable>18:00
yvlthis is what you should put into the cell18:01
yvland in report_something_something.py18:01
yvllet me paste...18:01
aelkneri need a five minute break, can we pick this up after the meeting?18:01
* th1a drops the bag of gravel.18:02
yvlsomething like this, aelkner
yvlit's probably buggy, but should be a good starting point :)18:03
yvlok, and the class should be called RotatedText there, but you get the point18:04
aelkneryvl, i understand the idea of sub-classing Flowable and changing the draw method18:10
aelknerbut how do I wire that into my template?18:11
yvl<plugInFlowable module="schooltool.gradebook.browser.report_something_something" function="RotatedText"> Rotate this </pluginFlowable>18:11
yvlmodule shows z3c.rml the location of your sub-classed flowable18:11
aelkneri'm supposed to be writing rml which z3c.rml converts to reportlab flowables class instances18:11
yvlfunction specifies your class18:11
aelkneroh, where do i register that?18:12
yvlno need18:12
yvljust use it18:12
yvlit's a flowable like others - like para18:12
yvljust instead of paragraph it will execute the code I pasted18:13
aelknerso, inside a <td> i put the <plugInFlowable module=...> part?18:13
yvlit should do something along the lines: "from schooltool.gradebook.browser.report_something_something import RotatedText"18:14
yvland do the rest of the magic with it18:14
aelknerso again, you're saying that if i put my python sub-class of Flowable inside the a python module in my project18:15
aelknerit will get picked up by the  <plugInFlowable module=...> tag18:16
aelkneri'll have to give that a try then18:17
th1aOK.  Sounds good.18:17
th1aThanks yvl & menesis.18:17
th1aHave a great week, gentlemen!18:18
aelkneryeah, thanks, and great week everyone18:18
replaceafillthanks everybody18:18
yvlhappy coding!18:19
yvl(and happy managing to some ;))) )18:19
aelknerth1a, which do you want me to do first, the pdf or the analysis of David's auto-enrollment needs?18:22
th1aauto enrollment?18:22
aelknerthe email he sent about the various grade levels and how they want to be auto-enrolled in various ways18:22
aelknerdid you see that one?18:23
th1aIn different sections?18:23
aelknerin different ways18:23
th1aWhat kinds of ways are you referring to?18:23
aelknerfor instance, one set of grade levels should all be enrolled by the group18:23
aelknerother grade levels have the need for sub-sets of the group to be enrolled differently18:24
aelknerlike christians versus muslims18:24
aelkneranyway, which task do you want me to do first?18:25
th1aI wouldn't phrase it that way exactly.  ;-)18:25
aelknerdidn't mean to be political18:25
aelknerhe just referred to how some members of a group will need to be divided out into different classes than the rest18:26
aelknerin some cases like religious classes18:26
th1aIn this case the rotation is for Mpelembe's report card?18:26
aelknerno, for David's18:26
aelknerthe one that uses the new report sheets i auto-generated18:27
aelknerfor the CA Tests18:27
th1aFinish that.18:27
aelknerthe pdf?18:27
th1aHow many steps are left in that job?18:27
aelkner1) get the rotated text to work18:28
th1aDefinitely finish that then.18:28
aelkner2) get the view class to look at the report sheets for the data18:28
aelknerso i'll start with the first one then18:29
th1aOh... you didn't mean 1 step left.18:30
*** menesis has quit IRC19:23
*** menesis has joined #schooltool20:03
*** alga_ has joined #schooltool21:01
*** alga has quit IRC21:04
*** replaceafill has quit IRC22:57
*** alga_ has quit IRC23:22

Generated by 2.15.1 by Marius Gedminas - find it at!