IRC log of #schooltool for Wednesday, 2012-05-23

*** ignas has joined #schooltool00:38
*** jelkner has joined #schooltool01:06
jelknerreplaceafill, u here?01:07
jelknerth1a, u here?01:07
*** mattva01 has joined #schooltool01:07
*** mattva01 has joined #schooltool01:08
*** jelkner has quit IRC01:22
*** th1a has quit IRC01:23
*** wjohnsto has left #schooltool01:58
*** replaceafill has quit IRC02:00
*** mattva01 has quit IRC02:08
*** ignas has quit IRC02:14
*** th1a has joined #schooltool04:52
*** aks has joined #schooltool05:29
*** th1a has quit IRC06:01
*** aks has quit IRC06:04
*** aks has joined #schooltool06:05
*** aks has quit IRC06:55
*** aks has joined #schooltool07:08
*** aks has quit IRC07:08
*** aks has joined #schooltool07:08
*** yvl has quit IRC08:48
*** yvl has joined #schooltool08:50
*** aks has quit IRC09:46
*** aks has joined #schooltool10:16
*** aks has joined #schooltool10:16
*** Lumiere has joined #schooltool10:33
*** aks has quit IRC11:21
*** aks has joined #schooltool11:22
*** aks has joined #schooltool11:22
*** aks has quit IRC11:42
*** aks has joined #schooltool11:42
*** aks has joined #schooltool11:42
*** yvl has quit IRC12:53
*** ignas has joined #schooltool13:51
*** menesis has joined #schooltool13:56
*** aks has quit IRC14:17
*** yvl has joined #schooltool15:19
*** th1a has joined #schooltool16:04
*** replaceafill has joined #schooltool16:23
th1ahi menesis, yvl, aelkner_, replaceafill.16:30
yvlgood morning16:31
replaceafillgood morning/afternoon16:31
th1aOK, so we're going to do some kind of demo/walkthrough with Welsh next Wednesday.16:32
th1aStarting a half hour from now (then).16:32
th1aCan we meet a half hour early next Wed?16:33
yvlfine by me :)16:33
aelkner_no objections here16:33
th1aAlso, next Mon is a holiday here, but I'm ok with meeting.  aelkner_?16:34
aelkner_i was wondering whether you were planning on taking a three day weekend16:34
aelkner_i was just going to do whatever you decided16:35
th1aWe'll try to keep it short Monday, but it is looking like we'll need to do the big merge at the beginning of the week.16:36
th1aGet everything working in one branch/trunk.16:37
th1aNot that I expect any major problems with that.16:37
aelkner_true, well, let's say that i'll be available monday morning then16:37
aelkner_can we have our demo server running only trunk branches so that we can all control what it has16:38
yvlaelkner_ means only branches owned by schooltool-owners16:39
yvlthen again, if I run a branch in my home dir, there's not much aelkner_ can do about it anyway ;)16:40
yvl(unless replaceafill granted him mega admin rights :) )16:40
th1aaelkner_:  Demo server instances are pretty much anarchy.16:40
replaceafillyvl, i think we all have sudo on the vps, right?16:40
th1aJust worry about your own.16:40
* yvl hasn't checked16:40
th1aShould yvl and/or menesis do this merge Monday Lithuania time?16:41
* th1a is not actually expecting this to be a difficult process.16:41
yvlsure, I can do that16:42
th1aMake a note of that yvl.16:42
yvlbut I guess replaceafill has merged aelkner_'s work anyway16:42
yvlso I doubt there's much to merge ;)16:42
yvlas in - nothing to merge :)16:43
th1aYes, just making sure here.16:43
th1aaelkner_ is starting to make me paranoid.16:43
replaceafillwe all have sudo on the vps btw16:43
yvlin any case, if anyone wants me to merge something on Monday, please notify me of your branches16:44
aelkner_no wait, there's no need for anyone to notify about merging16:44
aelkner_we all ust do it now, and as th1a said, it should just work16:44
aelkner_i've been merging to trunk routinely for a while now16:45
th1aThis may be a non-issue.16:46
th1aLets discuss it for 15 more minutes just in case.16:46
th1aOK... menesis, anything to report?16:47
th1aHow's ignas?16:47
menesisIgnas is quickly coding the needed features16:47
ignasnot quickly really :) schooltool makes for some fun brain twisters though :)16:47
menesisI fixed buildbot failure yesterday (versions of new dependencies)16:47
menesisand that's it16:48
th1aThanks ignas & menesis.16:48
th1aGood to have you hacking on ST again, ignas.16:48
yvlwell, I added some options to Selenium test running16:51
yvlmenesis should be able to run it on buildbot now I guess16:51
yvlselenium tests, that is16:51
yvldevelopers can also run tests on virtual display16:52
yvlthey can set latest schooltool.devtools as develop, or wait for menesis to release that16:52
yvla fun feature is that you can specify screenshots dir now16:52
menesisI have pressed the 'make release' button on buildbot16:52
yvlso if headless tests fail, near to the failure, relevant screenshots are listed16:53
yvl(you can even click on them in your xterm window :) )16:53
yvlthank you menesis !16:53
menesisso you will get latest devtools on bin/buildout16:53
yvlyou will also need latest flourish trunk though16:54
yvlI think the testing part is not compatible with earlier schooltool.devtools version16:54
yvlI also twiddled with gradebook a bit, will commit later on16:55
yvlI didn't add score history to cando though16:55
* yvl done16:56
th1aI'd like to see CanDo history on Monday.16:56
th1aThanks yvl.16:56
aelkner_i added the hierarchy table to the document view16:57
aelkner_i also added an edit view that works like the layer's parents view, i.e., with available, current tables16:58
aelkner_as manager, visit
aelkner_layers have to be created by the user in the layers part of the app16:59
aelkner_you may want it to be easier for the user, so we should discuss how you would like that17:00
aelkner_i've been mulling over in my head how to do that, but haven't decided yet17:00
yvlif I may interject17:00
aelkner_sure, shoot17:00
yvljust to remind that I have downloaded the whole CTE, umm, document17:00
yvlso at some point I could try to make an import17:01
yvlor I could give you the code + data pickle (auto-loading)17:01
th1aWhat form is that in now yvl?17:02
yvljust thought to remind you, because it looks like everything's shaping up17:02
yvlpure python pickles17:02
aelkner_i'm not sure what you are referring to, downloading whole CTE, how did you do that?17:02
yvlmemory dump, to put in another way17:02
yvla script, aelkner_17:02
yvlthey have JSON API17:03
th1aWhich pickles are you talking about?17:03
th1aYes, yvl.17:04
yvlthe script basically built pythonic objects in memory17:04
yvland then dumped the memory to hdd17:04
th1aSo we should be able to turn that into a spreadsheet if we wanted to.17:04
yvlthat's the point :)17:05
aelkner_ah, this is a standalone python script that you wrote, right?17:05
yvllemme share that with you guys... just don't brake a leg in that code :)17:05
ignas*break :)17:05
yvlyou don't say.17:06
aelkner_brake is the thing17:06
yvlyes, sorry :D17:06
aelkner_i didn't even notice it until ignas pointed it out :)17:07
yvlor probably a typo, because I was sure I typed break17:07
yvlok, sorry for interruption17:07
aelkner_th1a, let's meet after the meeting to discuss the hierarchy ui, ok?17:09
aelkner_i don't need to take up meeting time for that17:09
th1aBut basically we should try to get that working before Wednesday.17:09
th1aThat is get the import working.17:09
aelkner_oh, ok, back to that17:09
aelkner_yvl, did you say you have the import script working?17:09
yvlI have the verso db17:10
yvlought to write it as XLS or something17:10
aelkner_and a script that you wrote that accesses it, right?17:10
aelkner_and that script is still a work in progress, or is it complete?17:12
aelkner_and what is the next task, to integrate the script into schooltool import xls code?17:13
yvlin a sense it's complete17:14
th1aWhat I'd like to see is a full test of the existing import code, so the next step would be exporting the data currently in a python data structure into a spreadsheet.17:14
yvlyes :)17:14
yvland that is a TODO :)17:14
th1aaelkner_ should be able to do that, unless you came up with a seriously obtuse data structure.17:14
yvlI hope so17:16
aelkner_anyway, my report is done17:17
th1aAnyhow, if you could push that script yvl, we can take a look at it.17:17
th1aThanks aelkner_.  We'll continue immediately after the meeting.17:17
replaceafillmanager or teacher00117:19
replaceafillReports -> Roster17:19
replaceafillwe still need a report description for the request dialog17:19
replaceafillyvl, i have a rml/reportlab question17:19
replaceafilldo you know of a way to make a <td> to wrap its content17:20
*** jelkner has joined #schooltool17:20
replaceafillso far i've used <td><para>...</para></td>17:20
replaceafillbecause i haven't found a way to do it17:20
replaceafilland paragraphs give you that17:20
th1aCan we have a check mark instead of the name of the section?17:21
th1aSince we really don't know that it will be meaningful.17:21
yvlhmm, sorry, don't recall how17:21
replaceafillth1a, ah ok17:21
yvlI think using para is the way to go17:21
replaceafillyvl, ah ok17:21
th1aAlso, put a period at the end of the list of instructors.17:21
th1aAre you at a good point to pause on the report styles, replaceafill?17:23
replaceafillth1a, hhmm yes, i think you said you don't want me to work on the existing ones, correct?17:23
replaceafillthey need fixing17:23
replaceafillor reviewing17:23
th1aYes, but we need to get you back on CanDo.17:24
th1aNow at least we can do new ones correctly.17:24
th1aThat was kind of the main priority.17:24
th1aNo point in doing new CanDo reports wrong.17:24
th1aYou have two big CanDo tasks -- awesome skills browser and IEPs.17:25
replaceafillcan i start with iep?17:25
replaceafilli think that's easier17:25
th1aawesome skills browser is going to require some thought.17:25
replaceafillbtw, yvl i do want you to review/merge my gradebook changes please17:27
th1aWell, I don't understand the IEP functionality at all, so you're kind of on your own (with dwelsh) on that one.17:27
replaceafillth1a, iirc, yvl was ok with using the old implementation17:28
replaceafilland i understand that one well17:28
yvlsure replaceafill, please ask a merge on LP if that's ok17:28
aelkner_replaceafill, isn't that a situation where there is another tree of skills?17:28
replaceafillyvl, will do17:28
replaceafillaelkner_, in the current implementation, you just mark the iep skills for the student17:28
yvlth1a, IEP is basically replacing all (or many) skills in the worksheet for an individual student17:29
replaceafilland you handle calculations differently based on that17:29
aelkner_it's just a flag added to the comp object?17:29
replaceafillthe comp (old term) data is stored in the person's annotations17:29
th1aI do understand it generally.  ;-)17:29
aelkner_the reason i ask, i'm guessing it impacts the data model, no?17:30
replaceafillhhmm i don't think so, why do you think that?17:30
th1aI try to stay out of it though because "IEP" is kind of a big topic, and if I'd start putting my IEP ideas in, I'd almost certainly screw up what dwelsh wants.17:30
aelkner_the user needs a way to mark certain comps as IEP, right?17:31
replaceafillaelkner_, yes17:31
aelkner_ok, so where is that mark reflected in the data?17:31
aelkner_in the new cando17:31
aelkner_where do you think it should be stored?17:31
replaceafillperson's annotations again?17:32
replaceafilliirc, you store enough info to track the skill17:33
replaceafillwhen you're calculating grades for that person, you check which ieps he has17:33
aelkner_yes, i can't see any reason to do that differently in the new cando, unless someone else does17:34
aelkner_oh, wait17:34
aelkner_when you say info to track the skill, what are talking about?17:34
aelkner_is it the external_id, i wonder17:35
replaceafilliirc, year, term, section, comp17:35
aelkner_we can discuss this later17:35
replaceafillyvl, can you expand your "replacing" idea above17:35
replaceafill"th1a, IEP is basically replacing all (or many) skills in the worksheet for an individual student"17:36
yvlit's not an idea17:36
yvlthat's just the way I understand it17:36
th1areplaceafill:  I only don't understand it enough to be helpful to someone who already does.17:36
replaceafillth1a, i think i can have something working quickly, and we could decide from there?17:37
aelkner_this sounds like a schooltool.virginia feature, doesn't it?17:37
th1aGet going on it replaceafill.17:38
aelkner_oh, you see IEP as a standard cando thing, ok17:38
replaceafillth1a, kk17:38
* replaceafill done17:38
replaceafillah btw17:38
replaceafilli have my meeting today at 1:30 :)17:38
replaceafillat the ministry17:38
th1aOh RIGHT!17:38
th1aGood luck!17:39
replaceafilli'll let you know how it goes :)17:39
aelkner_ah, yes, jelkner mentioned it, good luck!17:39
th1aHave a good week and weekend gentlemen!17:39
* th1a drops the bag of gravel.17:39
replaceafillthanks everybody17:39
th1aaelkner_:  Need a 2 minute break.17:40
aelkner_sure, replaceafill, do we want to continue?17:40
aelkner_i mean, you have your meeting coming, perhaps tomorrow?17:40
aelkner_it's up to you17:41
replaceafillwe can continue17:41
replaceafillin the current implementation, there's an adapter to mark students17:41
replaceafillif they have iep17:41
aelkner_so that's one annotation, right?17:41
* th1a is on the phone with dwelsh now.17:42
aelkner_that's just a yes/no flag17:42
replaceafilleverything is person's annotations in current iep17:42
aelkner_so there's a second annotation key for the connection between person and particular comp, right?17:42
replaceafillwell, it's the same adapter, but yes17:42
aelkner_which file is that in?17:43
aelkner_ok, so i'm wondering if we want to do it with relationships this time around?17:46
aelkner_the new data model is just full of them, and it is the advantage that object database gives us17:47
aelkner_namely, deleting an object doesn't break other objects that refer to it17:47
aelkner_isn't that a vulnerability of old cando?17:47
replaceafillwe could17:47
replaceafillinstead of a plain list17:47
aelkner_so if you create the relationship between ISkill and IBasicPerson, that will in turn create the annotation for you17:49
aelkner_also, the whole schoolyear part won't be needed anymore17:49
aelkner_because we are keeping the skills outside of years in the new cando17:49
replaceafillhhmm that i have to check17:50
aelkner_ok, let me know what you find17:52
aelkner_replaceafill, is there anything else you'd like to ask/say, or are we done for now?17:54
replaceafillno aelkner_ , we're done17:54
replaceafilli'll try to get there quickly to get your feedback again17:54
aelkner_ok, cool, looking forward to seeing your findings17:55
replaceafillthanks aelkner_17:55
aelkner_th1a, are 2 minutes up?17:57
th1aI'm off the phone with Welsh.17:58
th1aRegarding the levels in documents -- I think the levels should be designated and created as part of the add document form.17:59
aelkner_you see, have the new levels versus the existing levels to sort out18:01
aelkner_i mean, if a school wants to revise the document for the coming year18:01
aelkner_they will create a new document, but they won't need to create new levels necessarily18:01
aelkner_and even if the document revision needs a new level, they would only need to create that18:02
aelkner_and then have it be linked parent to child to the existing levels18:02
th1aLet's not worry about that case at this point.18:03
aelkner_so there needs to be a way to combine creating new levels with using existing18:03
* th1a 's perspective is getting into "lets get this done and move on" mode.18:03
aelkner_well, what you are suggesting is to get it to work for just one document18:04
aelkner_and if a second document is created, then a whole new set of levels are18:04
th1aI understand aelkner_.  We might fix this later.18:04
aelkner_that isn't out of the question for me, i'm ust checking18:04
aelkner_so the add form can be the place where the hierarchy is defined simply as a list of level titles18:05
aelkner_really a text are that llows newlines would work for that18:05
aelkner_the validation would be each non-blank line is a level18:06
aelkner_would it need to be any more involved than that?18:06
aelkner_text area is what i meant to type18:07
th1aWell, you need to have at least two.18:07
aelkner_you know, as i mentioned on monday, the ui can handle 0, 1 or more than 1 level18:07
th1aThat strikes me as less reliable than letting you add levels like in, say, the score system view.18:08
aelkner_how do you mean reliable, i'm not following18:09
aelkner_are you saying that it needs to work like the score system add view18:10
aelkner_because each level may have more than just the title attribute18:10
aelkner_so it needs to be a table like that view with add button?18:10
aelkner_to add a new row?18:10
th1aYou're just more likely to get garbage in a textbox.18:10
th1aI just prefer a form where there is one row per level.18:11
aelkner_so am i right about comparison to score system add view18:11
aelkner_add button next to last row, being empty row?18:11
th1aYes, but the only problem with that is that the the lowest two should exist by default.18:12
th1aSo it kind of screws up the top down workflow.18:12
aelkner_what should the default two be, and should there be a delete button as well?18:13
aelkner_ok, here's the thing18:13
aelkner_i understand that you want to support renaming skillsets and skills18:14
aelkner_virginia gives our first example of using that feature18:14
aelkner_but it's not a requirement for the user, is it?18:14
aelkner_i mean skillsets and skills are usable concepts for a default user, aren't they?18:14
th1aThere have to be at minimum the bottom two levels -- skillsets and skills.18:14
th1aI guess there needs to be a delete button.18:15
aelkner_we could have the form load as follows:18:15
aelkner_blank row with add button18:15
aelkner_Skillset row with delete button18:15
aelkner_Skill row with delete button18:15
aelkner_the user can sort it out from there18:16
aelkner_btw, Add and Remove?18:16
aelkner_remove is better user english than delete, more techy, right?18:17
aelkner_so, the user could remove both existing rows if they want to right?18:18
aelkner_and we wold allow the document to be added with no levels?18:18
aelkner_as i said, the ui already supports it18:18
aelkner_the default names of the add lnks and table legends is Skillset and Skill18:18
th1aNo, there have to be those two.18:19
aelkner_i had to code the views to handle no hierarchy anyway, otherwise they would be dangerous18:19
aelkner_ok, so regardless of the fact that we can handle no hierachy, we won't allow it in the add form18:19
aelkner_they have to define at least two levels18:20
aelkner_and they can just just use the defaults the the add form loads with18:20
aelkner_ok, i'm good for the add form change18:20
aelkner_do we want to keep the table edit pencil and view that i put there?18:21
aelkner_i mean in the document index.html view, after it is added18:21
aelkner_did you follow the pencil yet?18:22
th1aI don't see anything wrong with it at this point.18:23
aelkner_ok, i can make the add form have only Remove buttons next to rows above bottom two18:24
aelkner_and it cold use javascript for adding/removing rows rather than hitting the server each time18:24
aelkner_as it does in the score system add view18:24
th1aThat would be fine.18:25
aelkner_ok, i know what i need to do now, thanks18:25
th1aThanks aelkner_.18:27
th1aWe're going to need to stick a pin in this and work on making sure the imports are rock solid for Wednesday.18:27
th1aSo... be looking for a good point to pause.18:27
aelkner_ok, i understand how you're setting this up in that we can come back to address other issues later18:28
aelkner_like using existing levels or having nodes that have children at different levels, etc.18:28
*** ignas has quit IRC18:29
aelkner_but regarding imports, right now all we have is the raw skills/nodes/levels importer18:30
aelkner_no document importer18:30
th1aThat is not a concern at the moment.18:30
th1aActually, I'm most worried about assigning skillsets to sections/courses.18:30
aelkner_ah, that, we don't have that yes, true18:31
th1aSo we should probably at least write an importer for that before Wed.18:32
aelkner_i'm noticing that we don't have a relationship set up for that18:32
aelkner_it is currently implemented with old-style annotations18:33
th1aOtherwise we need the awesome skills browser to do it ttw.18:33
aelkner_i'm wondering why we have these two different inconsisten apporaches in the data model18:33
aelkner_i mean, the document, layers, nodes and skilllsets are all linked via relationship18:34
aelkner_and that good, talking advantage of the zope feature, no need to worry about delete triggers18:34
aelkner_currently, i'm seeing that uses old-style annotations which are not so safe18:34
aelkner_i guess this is a bad time to think about that, leading up to wednesday18:35
aelkner_we could get the import to work with current data model18:35
aelkner_then after the demo, we could fix the model, then the import18:35
aelkner_we should take care of the fix before installing at a client site if we can possibly do that18:37
aelkner_save us some hassle18:37
aelkner_so as for the course skillset importer, it could be a simple sheet, with year id as title18:38
aelkner_and wth one row per course, course id and skillset id list as two columns18:38
th1aI'd just make year a row.18:38
aelkner_one big sheet18:39
th1aIn CanDo now are these associated per course or section?18:39
aelkner_three columns year id, course id, skillsets list18:39
aelkner_by course18:39
th1askillset id's?18:39
aelkner_sorry, both18:39
th1aOK, so basically plan on having that done one way or another before next wed.18:39
aelkner_so, two sheets18:40
aelkner_CourseSkills and SectionSkills18:40
aelkner_CourseSkills has thre columns, year, course, skillset list18:40
aelkner_secction one has year, term, section id, skillset list18:40
th1areplaceafill:  Do both course and section skillsets work in the current gradebook?18:41
replaceafillth1a, skills are extracted from the course18:42
replaceafilli mean, from the section's courses18:42
th1aNot the section at this point, so for demo purposes we should only worry about course?18:43
replaceafilli think so18:43
aelkner_replaceafill, so you're not using ISectionSkills(section)18:43
replaceafillaelkner_, i am18:44
replaceafillbut that adapter extracts the skillsets from the courses18:44
aelkner_no, it uses the section skills key, annother annotation18:44
aelkner_i'm guessing you didn't write, am i right?18:44
replaceafillyvl did18:45
*** alga has left #schooltool18:45
aelkner_i'm seeing XXX at bottom that says maybe relationship :)18:45
replaceafillaelkner_, see the all_worksheets property18:45
replaceafill    @property18:46
replaceafill    def all_worksheets(self):18:46
replaceafill        sheets = []18:46
replaceafill        courses = self.courses18:46
replaceafillfor course in courses:18:46
replaceafill            skills = ICourseSkills(course)18:46
replaceafill            sheets.extend(skills.values())18:46
replaceafill        return sheets18:46
replaceafillsorry for the flooding...18:46
replaceafillthat's how you get the worksheets in the gradebook18:46
replaceafillthat's what i meant when i said the skills are extracted from the courses18:47
aelkner_yeah, i'm looking at the same code18:47
aelkner_annotations_current_worksheet_key is defined but never used18:48
aelkner_ah, but that's not relavant, sorry18:48
aelkner_i see your point about how section skills are just dynamically built from course skills18:49
aelkner_so, th1a, to answer your earlier question, we only need a course skill importer18:49
aelkner_replaceafill, this is weird, course skillsets are really sub-classes of GenericWorksheet18:51
aelkner_and the __name__ of the course skillset worksheet thing is used to access global skillsets container18:53
aelkner_so a course can have only one skillset18:53
* th1a has to step out for a bit.18:53
aelkner_replaceafill, does that sound right?18:53
th1aCatch you guys later.18:54
replaceafillsorry, i was on the phone18:54
aelkner_replaceafill, we don't need to sort this out now, you are heading to an important meeting18:54
replaceafillaelkner_, ah right, i think yvl designed it that way, so the gradebook code works on them18:55
aelkner_it's a risky implementation, but we can fix it after the demo18:56
aelkner_anyway, i'll let you go for now, good luck today!18:57
replaceafillthanks aelkner_ !18:58
replaceafilli'm done with my slides :)18:58
replaceafilllong time of not using impress :P18:58
aelkner_never used it, is that the slide show creator of choice?18:58
replaceafillit's the one in libreoffice18:58
aelkner_that would be a yes :)18:59
yvlhey guys19:06
yvlI uploaded cte-db.tar.gz @
yvlit's in my home dir19:06
yvlyou should have the permissions, so please fetch that19:07
yvlaelkner_, can you please confirm that I did not mess up access rights there?19:07
yvland that you can get it?19:07
replaceafilli see it and can copy it19:10
yvlgood luck to you today19:10
replaceafillthanks yvl19:11
replaceafilli'll need an explanation on Doodad though19:11
* yvl signs off19:12
yvlhappy coding guys :)19:12
*** yvl has quit IRC19:12
*** th1a has quit IRC19:58
*** th1a has joined #schooltool20:09
*** jelkner has quit IRC20:16
*** menesis has quit IRC20:31
eeingoogle moog = now work done21:02
eeinno work21:03
th1aMmmmm... moog.21:03
*** replaceafill has quit IRC22:07
*** menesis has joined #schooltool22:14

Generated by 2.15.1 by Marius Gedminas - find it at!