IRC log of #schooltool for Monday, 2009-02-23

*** balor has joined #schooltool11:39
*** ignas has joined #schooltool12:16
*** alga has joined #SchoolTool12:37
*** jstraw has quit IRC15:03
*** th1a has joined #schooltool15:33
*** jstraw has joined #schooltool16:21
*** replaceafill has joined #schooltool16:21
*** jelkner has joined #schooltool16:22
th1ahi ignas, aelkner, jstraw, replaceafill, jelkner.16:30
aelknergood mrning16:31
replaceafillgood morning16:32
th1aignas: Can you start us off?16:34
th1aWe've got a lot to cover today.16:34
ignasok, I have been continuing my work on the merge16:34
ignasimplemented most of the custom demographics schema adding/editing functionality16:34
ignaswriting functional test for it16:35
ignasJustas went back to being sick16:35
th1aHopefully everyone is getting all their sickness out of the way now and will be healthy the next two months.16:35
th1aWhat's the eta for merging?16:35
ignashmm, i guess next week start16:36
jstrawhi all16:36
ignasstill got some functionality to do, and evolution script as well16:36
ignasneed to review work Chris did in the sprint16:36
ignasand refactor it16:36
ignasas Justas could not help me with it16:36
ignasbeing sick and all16:36
th1aWhat needs to be refactored?16:37
jstrawJustas is really not too lucky right now is he16:37
ignasth1a: he added a dependency in courses/sections on timetabling16:37
ignasth1a: i'd like to remove it, thus i'll have to move some tests to timetabling module16:38
ignasalso looked at the bugs that I got assigned16:38
ignaswill see if and how to fix them16:38
th1amulti-term sections is a must for 1.0.16:39
ignasI know16:39
ignasfirst on my list of bugs16:39
th1aSometimes the project manager isn't clear about priorities. ;-)16:40
th1aOK, anything else, ignas?16:40
th1aOh, question --16:41
th1aIs the bug at the end of this conversation known and or fixed in trunk?
th1aThis one?
ignasth1a: which screenshot is being talked about in there?16:43
th1aIn the book?16:43
ignasthe question asker did not mention any errors, just that after clicking a button, she did not get the screen she expects16:44
th1aOK, I'll ask for more specifics.16:45
th1aMoving on...16:45
th1ajstraw: Do we have instructions on installing CanDo anywhere?16:46
jstrawth1a: yea... I have pieces all over16:46
th1aHm... if you can email me the locations of the pieces I can try to assemble them.16:46
jstrawth1a: I can write up something in book form later16:46
jstraw(like later today or tomorrow)16:47
th1aOK.  We're getting increasing numbers of people interested in CanDo, so I need to be able to tell them something.16:47
th1aOK, aelkner?16:48
aelknerso, my brain power was finally restored to me in the middle of last week16:48
aelkneri started by finishing up the gradebook work i did at the sprint16:48
aelknergetting the functional tests to pass after having changed the activity add/edit views16:49
aelknerignas: did you have the chance to merge that branch to trunk as well as douglas'?16:49
ignasnothing is in trunk yet i think16:50
ignasi will probably merge gradebook to trunk16:50
ignasthat will probably work16:50
aelknerlet me know if there are any conflicts16:50
ignasthough the UI changes that chris made to schooltool and lyceum.journal and gradebook16:50
ignasmight cause some trouble16:50
*** mgedmin has joined #schooltool16:51
aelkneryeah, you have greater issues to resolve, i understand16:51
ignasaelkner: i mean - if I still can't merge schooltool16:51
ignasaelkner: because of missing evolution16:51
ignasand if i'll merge gradebook, some things might break16:51
ignasor at least will look ugly16:52
ignaswill see what I can do about it, though the fact that chris commited his section code into the same branch as his UI code16:53
ignascomplicates it :/16:53
aelknernext, i applied douglas' patch for external activities to the cmr-plus-schoolyears branch that he worked on16:53
aelknerand committed it to svn so that i could deploy it to jelkner's machine16:53
aelknerso he's up and running now with the new functionality16:54
th1aAh, nice.16:54
aelknerhe still hasn't had the chance to actualy test out the external activities themselves16:54
aelknerbut he will let me know when he does get the chance16:55
aelknerof course, i made sure that the functionality was there before i turned it over to him16:55
aelknerlastly, i turned my attention to the report card system that i'll be writing16:55
aelknerth1a: i got your response to my note last night16:56
th1aDid you get my email last night?16:56
aelknerman, that was helpful16:56
aelkneri had misunderstood (of forgot) a detail of our discussion at the sprint16:56
aelknerabout how the report sheets would be deployed16:56
aelknerknowing now that they go into the section activities16:57
aelknermade the whole system so much simpler than i had first drawn up16:57
th1aThat's the idea.16:57
aelknernow it seems that i only need to create the template creation from the Manage tab16:57
aelknerand deployment view from the term context (is that what you implied in your email?)16:58
th1aRight, the templates are global but the deployed sheets are associated with terms.16:59
th1aYou'll probably want to re-use the same report card template in different terms and years.16:59
aelknerignas and i had a couple of discussions about the data structure that i outlined16:59
jstrawaelkner: why did you merge things to the schoolyears branch?17:00
jstrawall of that was merged to trunk17:00
aelknerjstraw: i'll get the that after my report17:01
aelknerbasically, i need to create a GradebookRoot object that gets inserted at app['schooltool.gradebook']17:01
aelknermaybe SchooltoolGradebookRoot would be a better name17:02
aelknerignas suggested i use the 'write on first read' strategy to avoid needing an evolution script17:02
aelknerit's good to be able to avoid evolution at this juncture as ignas still needs to work out the greater issues with evolution and plug-ins17:03
ignasand avoid needing a "was this plugin installed" check17:04
ignasthough there is one that installs the default competencies i think17:04
aelkneryou're talking cando?17:05
aelknerthere isn't any default competencies in cando17:05
aelknerthey get added via xml import17:05
ignasi am talking gradebook17:05
aelknercompetencies is cando only17:05
ignasnot competencies17:06
aelknergood point17:06
aelkneryou're talking AppInit17:06
aelknerfor gradebook17:06
ignasnot app init17:06
ignasapp init only gets executed when application is started for the first time17:06
ignasthere is the startup script17:07
ignasthat gets run every time17:07
aelkneryes, but that's where the categories are presently created17:07
aelknerat AppInit17:07
ignasmy point is - not just there17:07
ignasso I think i am detecting if there are any categories, and if there aren't any (which means that someone enabled gradebook as a plugin not as a part of the default installation)17:07
ignasi create default categories17:07
aelkneryou did this?  when was that?17:08
aelknerand where?17:08
ignasbefore last release17:08
ignasin gradebook.py17:08
aelkneroh, i'll check that out17:08
aelkneri was about to suggest that i move the AppInit code to the 'write on first read' adapter17:09
aelknerbut you're suggesting that you already handled that17:09
ignasyeah, that one is handled already17:09
aelkneri see it at the end of gradebook.py17:10
ignasyeah that's the one17:10
aelknerso is that the app startup functionality that you were talking about17:10
aelknerso we already have that ability in schooltool17:10
aelknerso should i add the creation of app['schooltool.gradebook'] in that method17:11
aelknerrather than using write on first read17:11
ignasyou can do that too17:11
ignasit will work17:12
aelkneri was concerned with the need to use a critical section17:12
ignascritical section?17:12
aelknerto prevent the first two users from getting to the same code at the same time17:12
aelkneryou see, if both users cause the 'write on first read' to happen at the same time17:12
ignaszodb would raise a conflict error i think17:12
ignasi am sure17:13
aelknerthey could potentially both detect that the container is not there17:13
aelknerand both try to add it17:13
ignasand one of them17:13
ignaswill get a conflict error17:13
ignasbut for that17:13
aelknerthat would not be good17:13
ignaschances are way too small to be concerned17:13
aelknerbut since you added the app startup subscriber logic17:14
ignasand this error can only happen once for every installation17:14
ignasand if it happens clicking back and clicking link fixes it17:14
aelknerwe don't need to worry about it anyway17:14
ignasyeah, just wanted to point out that you don't have to worry about it17:14
aelknerbut yeah, even without it, the chances were small17:14
ignasbut yeah - you can add it to app startup17:14
aelkneri realize that17:14
ignasthat would be nice17:14
aelknerso for SchooltoolGradebookRoot17:14
ignasso all the code related to the initialization of the gradebook plugin would be in one place17:14
aelknerignas finally convinced me not to make it a container of different types of containers17:15
aelkneras i had done with InterventionRoot17:15
aelknerinstead i can use attributes like 'templates'17:16
aelknerlater 'activities' and 'evalutaions' (more on that later)17:16
aelknerso that the root has those attributes rather than 'containing' those containers17:17
aelkneris a small point, but one that will make evolution easier for ignas17:17
th1aSounds good.17:17
aelknerso, i guess it's not a small point17:18
aelknerfor now, the only attribute will be 'templates'17:18
aelkneri will keep the templates there17:18
aelknerand deploy to the section annotations that eventaully will get moved17:18
aelknerand the gradebook code will work as is17:18
aelkneragain, putting off the discussion of evolving the activities and evaluations...17:19
aelkneri want to ask a question about deploying the report sheets17:19
aelknerso, if I make report sheets implement IReportSheet17:20
aelknerclass IReportSheet(IWorksheet):17:20
aelkner    pass17:20
aelkneri can make sure not to allow the user to deploy the report sheets more than pnce17:20
aelknerbecause i can check for that interface17:21
aelknerso far, so good?17:21
th1aYou might want to deploy more than one reportsheet.17:21
th1aDifferent ones in one term.17:22
ignasfor the same section?17:22
th1aWell, it isn't the kind of thing we necessarily need to go out of our way to implement,17:23
th1abut it seems like it would be more work to NOT allow it.17:23
aelknerwell, there's another aspect17:23
aelknerwhat if the admin user creates 100 sections and deploys a report sheet to them17:24
aelkneroops, i forgot to create this one section17:24
aelkneror, let's say, these ten sections17:24
aelknernow i need to deploy the same report sheet to those17:24
aelkneris the user could just deploy to all again17:25
ignassame sheet17:25
ignaswhat about - you change the sheet?17:25
aelkneryeah, how about that one?17:25
ignasso you either - update all the sheets17:25
ignashave report sheets point to the real sheet17:25
th1aIt seems to me that the id of the reportsheet has to be significant anyhow -- that's what we'll be using to pull the grades into the reportcard, right?17:25
aelknerwell, that's what the IReportSheet could allow us to do17:26
th1aYou *really* don't want to be changing sheets around.17:26
aelknerwithout needing the id17:26
th1aIf you only had one?17:26
th1aI'm not sure that's a feature.17:26
ignasth1a: if you really don't want to be changing - lock it after clicking update, making it readonly17:27
ignasth1a: anyway - you do reports from templates17:27
ignasthus if you have 1 to 1 relationships between templates and deployed templates17:27
aelknerno reports run off the deployed17:27
ignasyou can refer to templates from deployed sheets17:27
aelknerah, good point17:27
ignasthus you can have UI that takes a sheet template, and tells you in how many terms you have it deployed17:28
ignasor how many sections17:28
aelkneri could relationships rather than a different interface17:28
ignasand allows you to generate a report17:28
ignasnot sure about relationships ,you will be creating new sheet objects when deploying from what I understand17:28
ignasif not - then maybe it would be better to have deployed sheets connected to terms not sections17:28
aelkneri will be adding a workheet to each section17:28
aelknerthat is a COPY of a template17:29
ignasand when assembling worksheet list in views17:29
ignasjust add the parent worksheet in there17:29
ignaswhich would avoid the copying17:29
ignasand also work with new sections added17:29
aelknercan't do that17:29
aelknerthe worksheets must be copies17:29
aelknerthe activities they contain are the activites for which evaluations are keyed17:30
aelkneryou can't grade jonny on a template activity17:30
aelknerthe next year, the evaluation for last year would appear17:30
ignaswell - maybe you could just have templates set up per term17:31
aelkneryou need different activity objects for each term17:31
ignasand not do deployment17:31
ignasor copy the sheet only once17:31
ignasfor each term17:31
aelknerthat seems like an overcomplication17:31
ignasto me templates17:32
ignascopied 200 times sounds like overcomplication17:32
ignasi'd just add template to the term directly17:32
ignasit's a task done once every term anyway17:32
ignasso even if you make someone do it 3-4 times a year17:32
ignasit's not too much time wasted17:32
ignasso you have report template set up on a term, and it get's added to every section for that term automatically17:33
aelknerexplain that part17:33
aelknergets added to each section automatically17:33
aelknerah,m you mean on section creation17:34
ignaswell - you said that you can't reuse the same activity in 2 terms17:34
ignaswhen displaying a list of worksheets17:34
aelkneri was talkng evaluations17:34
ignasinstead of doing for worksheet in worksheets you can do for worksheet in worksheets + report_worksheet17:35
aelkneryou have to have two different activities to get two different evaluations17:35
ignasI understand17:35
ignasyou mean same person in 2 different sections17:35
ignasmust have 2 different activities17:35
ignasbecause he will get graded for the same report card in 2 different sections17:35
ignasyeah - copy the worksheet for every section then17:36
aelknerbut getting back to the new ten sections problem17:37
ignasadd a subscriber17:37
aelknerperhaps copying the template to the term is the right idea17:37
aelknerand yeah, use a subscriber to handle the new ten sections17:37
ignasor at least adding some kind of relationship between a template and a view17:38
aelknerh no17:38
aelknerrelating views with objects violate control model view17:38
ignasviews with objects?17:38
ignastemplate is a view?17:39
ignastemplate and a term17:39
aelknerah :)17:39
ignaswas thinking about something else17:39
*** jelkner has quit IRC17:39
aelknerso i don't want to crowd the channel for this meeting with further technical discussion of these fine points17:39
aelknerwe coulod get into that following the meeting17:40
aelkneri want to raise on else point before my report is done17:40
aelknerth1a: i was wondering what you thought about the current annotaions17:41
aelknerand whether we should have them evolved to reside in app['schooltool.gradebook']17:41
aelknerbefore 1.0 is released17:41
aelkneri know that would make ignas happy17:41
aelknerbecuase he hates the way we are using annotations at the moment17:42
th1aJust a sec...17:42
ignasnot sure we need it for 1.017:42
ignasthough - cleaning up gradebook data structures would be nice17:42
ignasi am more concerned about the state of gradebook internals than annotaions17:42
aelknerwhich gradebook internals?17:43
ignasall of them ;)17:44
aelknercould you be more vague?17:45
aelkneri guess you could :)17:45
aelknerbut i can't act on a vague concern17:45
aelkneri would something specific to fix17:45
aelkneragain, let's get into that later17:46
aelknerbefore i finish my report...17:46
aelknerjstraw: the reason i applied douglas' patch to he school years branch17:46
aelkneris because that's where douglas made the diff17:47
aelknerall that's needed now is to merge that branch to trunk17:47
aelknerbu i would want your approval for that17:47
jstrawwhat does the diff do?17:47
aelknercause you have those pilot sites17:47
jstrawand what requirements does it have17:47
aelkneri adds a couple of registrations and a new class17:48
aelkneryou and i could go over the diff when i come down next weekend17:48
aelknerif you're around friday afternoon or sat17:48
aelknerjstraw: how about that?17:49
jstrawsaturday morning?17:49
jstrawfriday afternoon I work at mckinley17:49
aelknerth1a: my report is done17:49
th1aSorry, your brother is distracting me.17:51
aelknerhe does that17:51
th1aI have no opinion about annotations.17:51
th1aAt least, no informed opinion about annotations.17:52
th1aWe don't need to be cleaning up internals at this point.17:52
th1aI guess we're done then.17:53
replaceafilli just wanted to add that i started "experimenting" with grok.component on the package17:54
th1aOh, yes, replaceafill!17:54
th1aHow is that coming?17:54
replaceafilldirectives like adapter and utility are easy to get rid of them17:54
replaceafillbut the traversal adapters are tricky17:55
replaceafillso i started to dig into martian17:55
replaceafillmaybe it could be used for that17:55
replaceafilli'm focusing in the package as ignas recommended17:56
replaceafillcause it's simple enough to try17:56
replaceafilli guess that's it :)17:56
th1aWhy are traversal adapters tricky?  Do we make unusually heavy use of them?17:57
replaceafillno, i mean, grokcore.component is easy with zope standard zcml directives17:57
replaceafilllike adapter and utility for example17:57
replaceafillthe adapter traversal plugin is a custom directive17:58
ignasa second17:59
ignascustom directive17:59
ignasregisters perfectly normal adapter17:59
ignasthat can be created using code17:59
replaceafillyes, i have to find out how17:59
ignasreplaceafill: bzr annotate the code18:00
ignasfind the line that added custom zcml directive to something like persons18:00
ignassee the revision when18:00
ignasfind the code that was replaced18:00
ignasor just simply18:00
ignasfind the class18:00
ignasand see what it does and how to create one18:00
ignasbefore special zcml directives we had to do this18:01
replaceafilland the same can be done for navigation viewlets?18:01
ignasTimetableTraverserPlugin = AdapterTraverserPlugin("timetable", ITimetable)18:01
ignasand then do zcml to register the adapter18:01
ignaswhich was very unconvenient - we had to do it in 2 places18:01
ignasso i moved both places to 1 place - zcml18:02
ignasnow you can use grok and move them back ;) to python18:02
ignassame for navigation viewlet - i had to add a custom directive so translation would work18:02
ignasbut you can just use grok viewlets or whatever they are called18:02
ignasas if you will assign a title attribute to a viewlet in python18:02
replaceafillbut they still the title attribute right18:02
ignasit will get translated automatically18:02
ignasas long as you will do _('View')18:03
ignasthe only problem that might be a concern18:03
ignasis the baseclass for the viewlet18:03
ignasbecause templates are in schooltool.skin18:03
ignasso at the moment - just copy the template to schooltool.contacts if you need to18:04
replaceafillu use <configure package=""18:04
ignasas that well be the simplest solution18:04
replaceafillthanks ignas18:04
ignasglad to help18:04
replaceafillso i guess that's all from me18:05
th1aThanks everyone!18:05
* th1a drops the bag of gravel.18:05
ignashave a nice week everyone18:08
ignasdoing this at the moment to show demographics info in person views18:10
ignashope that's good enough18:11
*** jstraw has quit IRC18:43
*** jstraw has joined #schooltool18:43
*** jstraw has quit IRC18:46
*** jstraw has joined #schooltool18:46
th1aignas: Don't we have longer names?19:04
*** jstraw has quit IRC19:10
ignasth1a: the fields without values are not shown19:11
ignasok, got to go19:14
ignassee you19:14
*** ignas has quit IRC19:14
*** jelkner has joined #schooltool19:22
*** jelkner has quit IRC19:28
*** replaceafill has quit IRC20:22
*** alga has quit IRC20:39
*** jelkner has joined #schooltool20:42
*** replaceafill has joined #schooltool21:13
*** fsufitch has joined #schooltool21:19
*** rbra has joined #schooltool21:20
*** jcrowley has joined #schooltool21:22
*** povbot has joined #schooltool21:31
*** elarson has joined #schooltool21:41
*** elarson has quit IRC21:51
*** jcrowley has quit IRC22:09
*** mgedmin has quit IRC23:20

Generated by 2.15.1 by Marius Gedminas - find it at!