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

*** balor has quit IRC00:27
*** alga has quit IRC03:01
*** aelkner_ has joined #schooltool05:08
*** aelkner has quit IRC05:10
*** aelkner_ has quit IRC05:23
*** aelkner has joined #schooltool05:24
*** Aiste has quit IRC05:59
*** balor has joined #schooltool08:24
*** yvl has joined #schooltool10:14
*** yvl has quit IRC12:32
*** jstraw has joined #schooltool15:16
*** th1a has joined #schooltool15:31
*** alga has joined #SchoolTool15:42
*** ignas has joined #schooltool15:50
*** jelkner has joined #schooltool15:51
jelknerno meeting this morning?16:09
ignaswhy do you think so?16:10
th1ajelkner: The meeting is at 9:30 every week.16:10
th1aAs it has always been.16:10
jelknerand i am completely discombobulated (as I have always been)16:12
jelknerth1a: good morning, anyway16:13
jstrawignas: jeff doesn't know what time it is16:14
th1agood morning jelkner.16:14
jelknerignas: or which end it up16:24
th1ahello ignas, aelkner, jstraw.16:31
th1aOK, ignas, how are the plans for the sprint looking?16:32
aelknerth1a: up late much last night celebrating?16:32
th1aThat was a weird Super Bowl run.16:33
jelknerth1a: jstraw has an important agenda item for today16:33
jelknerdid he tell you?16:33
jelknerwe need to discuss deployment of the 8 cando instances16:33
th1aOK.  We'll get to it after ignas.16:33
ignasth1a: i have the backend for indexing mostly set up (it replaces old person indexes successfully, so it's good for something)16:34
ignasalso some code for demograpchics backend16:34
ignasand some small notes about views i will need implemented16:34
ignasi will get all that on "paper" before the sprint16:34
ignasdon't know if Justas has finished the booking though, he is at home as he's feeling a bit sick16:35
ignasalso - i will have to update a bunch of stuff16:35
ignassrichter has released Zope3.416:35
ignasand changed the KGS url16:35
ignasso the old one is not working anymore16:35
th1aOh, yeah.16:36
ignasthus most of the checkouts are broken at this very moment16:36
th1aI guess that is a pain.16:36
ignaswe don't want to have that in the sprint, do we? ;)16:36
aelknerignas: i was going to report16:37
th1aUm... no.  In fact, perhaps you should send out an email telling people what they should have ready to go for the sprint.16:37
aelknera problem deploying to SLA this weekend16:37
aelknerso i guess i can see why16:37
th1aAh... that would do it.16:37
ignasis the new url16:37
ignas the old one16:37
th1aSo this is the worst possible time for CanDo as well?16:37
ignasso in buildout.cfg replace the old one with the new one16:37
ignasand it should work16:38
th1aSo basically we're going to need to start Friday morning with a grand explanation of the roadmap for the sprint?16:39
th1aIn lieu of making you write an essay, ignas?16:39
ignasi guess so16:40
ignasmore with a list of tasks16:40
ignasthan a grand explanation ;)16:40
th1aWell, what are the high level goals -- I don't think most people outside of Lithuania know.16:40
jstrawI have no agenda item today... every time I go to work on it I get knocked away from it by something external16:41
jstrawand I can't talk right now16:41
th1ajstraw: Keep us posted.16:42
ignaschange default fields for persons, add new fields for persons, add customizable fields for persons, add contacts16:42
ignasmake all of that work fast enough to be useful through indexing16:42
ignasthat's the "grand plan" ;)16:43
ignasother tasks are orthogonal to the great plan, and can be thought of as separate "lesser plans"16:43
th1aThis is based on the schema I sent out a while ago?16:43
th1aI mean, the actual new fields?16:43
* ignas goes to look for the email16:44
ignasthough - what specific fields we will have is not really affecting the work we will be doing16:45
th1aLet's just say I should show up with a final list?16:45
th1aaelkner: Do you have any specific questions about the sprint right now?16:47
aelkneri haven't been thinking about it yet, so no16:47
aelkneri figured i'd get up to speed a couple of days before16:47
aelkneran ask any question then16:48
th1aAnything else ignas?16:48
ignasnot really16:50
th1aaelkner: What's up?16:50
aelknerso i got the sla package to work with schoolyears16:51
aelkneri tried to deploy to sla this weekend, but i ran into the url problem ignas just mentioned16:51
aelknerso they are still usign the older version16:51
aelkneri could use the new url tonight16:51
aelknerso that's what i'll do there16:52
aelkneri also "chewed" on you report card document16:52
aelkneri figured i'd work on that this week16:52
th1aIt is really similar to what we did at SLA, right?16:52
aelkneri have to admit, i'm a bit confused about what you want there16:53
th1aWell, I'm saying  work backwards from the SLA report cards we did.16:53
th1aIt is essentially just creating a formal way to do that.16:53
aelknerok, so i get that we faciilitate creating a single worksheet16:54
aelknerfor every section and prepopulating it with activities like we did manually at SLA16:55
aelkneri'm just not sure about the concepts of term, grading period16:55
aelknerthat you mentioned in the document16:55
th1aWell, terms are terms.16:56
th1aThat is...16:56
th1aTerms correspond to the length of time courses meet.16:56
th1aLike semesters or years.16:56
th1aBut there are often interim grades, like quarterly grades.16:57
th1aSo the manager can either set up one reportsheet for all the constituent interim grades and the final term  grade,16:57
th1aor do separate sheets for each interim report.16:58
th1aWhich works better will probably be more clear once we've got the report card setup done.16:58
ignasterm defines the lifetime of the section, grading period defines the grading periods (you can have some kind of aggregate grade more than once every term)16:58
ignaspoint is - in a term, section does not change16:59
ignaswhile when the term ends - the sections might disappear completely16:59
th1aMake sense?17:00
aelknerin doing my sla schoolyears work i went over the term package17:00
aelkneri saw this concept of sub-terms for grading periods17:00
aelkneri wasn't sure what to make of it17:00
ignassub-terms ?17:01
aelknerlook at the tests for schooltool.term17:01
aelkneryou create a term and call it "year"17:02
ignashmm, maybe there still is the old README.txt by srichter17:02
aelknernot a README.txt17:02
th1aI wonder if they run?17:02
ignasaelkner: can you point me at the specific place17:03
aelkneri'm looking17:03
ignasimho - grading periods should be managed by the gradebook code17:04
aelknerpardon me, it was in README.txt17:04
ignasi'll delete it17:04
aelknerare ytou saying stephan wrote that?17:04
ignasyeah, stephan and th1a17:04
ignasfrankly - i'll review it, salvage useful parts and then delete it17:05
ignasit even mentions FHS17:05
ignasand i don't think it ever "ran"17:05
aelknerno wonder it doesn't get run17:05
ignasit was more of a design Sci-Fi17:05
aelknerso i'll get my head out of that paradigm17:05
aelknerso terms are the atomic unit in which a given section lives17:06
aelknerand grading periods are just an arbitrary designation17:06
ignasand gradebook can assign "grading periods" to a pair of "term + section" or just to a "term" in some way it wants17:06
ignasbut that's completely for the gradebook to do, maybe in schooltool.grading_periods, or schooltool.gradebook.periods for easier reuse between gradebooks17:07
aelknerbut grading periods as a concept would only live in schooltool.gradebook, right?17:07
aelknerah, i see17:07
th1aMy point is they only have to exist as columns in a reportsheet.17:07
th1aAt this point they don't really formally exist in SchoolTool.17:08
ignasyeah, it is doable without any new data structures I guess17:08
th1aThey probably will eventually, but it isn't necessary.17:08
aelknerthat simplifies things17:08
aelkneri still need a new data structure17:08
th1aThis is the difference between th1a in 2009 and th1a in2005.17:08
ignaslike naming worksheets "GP1", "GP2" and "GP3" and assign them to the section17:09
aelknerwith baby/without baby17:09
th1aOh, that too.17:09
jstrawno... th1a.2009 has learned enough about how software development works17:09
aelknerbut you still want grading periods to be represented by their own worksheets, right?17:10
jstrawto know that not everything needs to be overengineered17:10
th1aI'm saying at this point grading periods don't necessarily need their own worksheet, because in many cases it would just be a 1 column worksheet.17:10
ignasaelkner: I don't know that really, as I don't really "grok" how US grading works17:10
th1aSo they could be columns in a single worksheet.17:11
aelknerlike the "report card" worksheet17:11
th1aThe standard way of doing grading at higher grades is just a letter A-F.  Maybe a plus or minus too.17:11
th1aBut there are a zillion variations.17:11
ignasi guess just writing up a sample report and thinking of the wsheets/activities as a way to enter the data into the report might help me understand it17:11
th1aThe default worksheet for a high school semester would have these column headers: 1st 2nd Final.17:12
th1aAnd an A-F score system.17:12
th1aBut you might have an arbitrarily more complicated system.17:13
aelknernow when you talk about a semester, you mean a term in schooltool, right?17:13
th1aYes, semesters are terms, because some sections end at the end of a semester.17:14
aelknersince this use of terms is still theoretical (cando and sla don't have more than one tem yet)17:14
aelkneri still need time to get into the swign of thinking about terms that way17:14
th1aIt doesn't make much difference in this case.17:15
aelkneri can see that17:15
aelkneri just need to allow them the overhanging control of a given term17:16
aelknerto be able to enter grading period data and final grades data17:16
aelknerinto this one wrksheet17:16
aelknerthat we automatically create for them,17:17
aelknerat their behest17:17
th1aWe don't really care what goes into one or more reportsheets the manager creates.17:17
aelknerwe need to allow the user to choose17:18
th1aThey can call it whatever they want and use any score system.17:18
th1aIt can be "Received Flu Vaccine" (y/n).17:19
aelknercan we leverage the existing objects, Worksheet, and Activity to do this?17:19
th1aThat's kind of the idea.17:19
aelkneri have this picture in my head17:19
th1aThe main thing is you need a worksheet that teachers can't delete or modify.17:19
aelknerof teh administrator creating a "dummy" section17:20
aelknerand putting the worksheet/activities there17:20
aelknerthen asking the system to propagate that to all other sections in the term17:20
aelkneri say "dummy" section17:21
aelknerbecause worksheet/activity creation all relies on the existence of a section17:21
th1aYou probably need a special container.17:21
aelknera special container of sections that are isolated from the "real" sections?17:22
jstrawI don't see why this couldn't be a part of the section's gradebook17:23
aelknerjstraw: have you read tom's document?17:23
jstrawI was never sent it17:23
aelknerit was posted to schooltool mailing list17:23
jstraw*looks again*17:23
aelknerso definitely we can assume that the admistrator is working with a "dummy" section17:24
th1aNo... the administrator goes to a special container to create the reportsheets.17:24
aelknerworksheets go in sections17:24
aelknerso we'll need a dummy one at least17:24
aelknereverything in schooltool.gradebook is registered against ISection17:25
aelknerso let's depart from understanding that17:25
ignasaelkner: well - you can change that, can't you?17:25
th1aI'm thinking that creating a dummy section will create all kinds of weirdness and exceptions.17:26
aelknerperhaps if i created a marker interface17:26
aelkneradn marked sections with that interfaces17:26
aelknerthen changed schooltool.gradebook to work of the marker interface rther then ISection17:27
ignasdo you really want to define reportcards using existing data sstructures17:27
ignasinstead of adding a simple "defintion object"17:27
ignasand using that to create the actual worksheets + activities for other sections17:27
th1aAh.  Yes, that might make more sense.17:28
aelknerfor instance17:28
aelknerwe have an index.html view of a worksheet17:28
aelknerthat delivers the gradebook17:28
aelknerit assumes that the worksheet is for a "section"17:29
aelknerotherwise, what students would it grade?17:29
aelknerperhaps, we could have a new object17:29
aelknercalled ReportSheet17:29
aelknerthat doesn't get graded, so it doesn't need a section attached to it17:30
aelknerbut still can hold activities17:30
th1aIt just defines the columns.17:30
aelknerso the UI would look like the "manage" view of the worksheet17:30
* ignas thought you were doing that already17:30
aelkneri haven't started anything yet, so it's kind of hard to have "done" anything17:31
ignasi mean - 2 separate things - list of students and list of activities17:31
ignasi mean - 3 separate things - list of students and list of activities and an object that combines both for grading + presentation17:31
aelknerthe gradebook object is a proxy17:32
aelknerit combines the worksheet and the section's members17:32
th1apresentation to the teacher or generating the final report?17:32
aelknerthe worksheet belongs to the section17:32
aelknerit is an annotation of it17:32
aelknerbut Reportsheets dpn't need to be17:32
th1aIf the ReportSheet is just the definition of the activities.17:33
th1aThe teachers can be filling out more or less regular worksheets.17:33
th1aIf we add a "read-only" flag.17:34
aelknercan we agree that:17:34
th1aThat is read-only the activity definitions, not the scores.17:34
aelkner1) ReportSheets go in a separate place, a new folder as th1a suggested before17:35
aelkner2) they contain Activities17:35
aelkner3) at any time, the administrator can request that a given ReportSheet get17:35
aelkner   propagated to all the sections17:35
aelknerthat action would cause real Worksheets to get created in the sections17:36
ignasno difference really, as long as you have full functional tests that th1a agrees with ;)17:36
ignasand they are passing with the code17:36
th1aThat sounds sensible.17:37
aelkneri like the sound of this17:37
ignasdefining the UI before code would be kind of nice, as not to do insane UI decisions just for the sake of saving a couple of lines ;)17:37
aelkneri think ican get started this week from what i understand now17:37
th1aJust so we're on the same page -- the next step then is that the manager maps ReportSheet columns to columns in the printed report card.17:37
aelknerok, so let's discuss that17:38
th1aSo we have to have consistent id's, or something across the reportsheet and all the reporting worksheets.17:38
aelknerwould we be able to reuse an attribute in an activity for that purpose?17:38
aelkneror would i need a new object called ReportActivity17:39
aelknerto go with ReportSheet?17:39
th1aHm?  I'm thinking just saying "Q1" in report sheet "Grades" should be the first column in the  term report card grid.17:39
th1aOr whatever.17:40
th1aYour report card is going to be a grid.17:40
th1aFor each kid, the row will be a section.17:40
th1aThe columns will be activities from ReportSheets.17:40
th1aThe manager will just have to define which ones they are.17:41
aelknerah, so some of the activities in a given ReportSheet will not make it into the report card pdf report?17:41
th1aOne would imagine they all will, but not necessarily.17:42
aelkneri'm trying to think how we can leverage the objects we already have to do this17:43
th1aI'm not sure what you mean.17:44
* th1a drops the bag of gravel...17:44
aelknerright in the middle of our discussion, how rude17:45
th1akeep going...17:45
aelknerjust kidding17:45
aelkneranyway, we have this Requirement object17:45
aelknerit's the ordered container that we like having and use for worksheets17:46
th1aPerhaps we can use object references instead of ids?17:46
aelknerReportSheets can be derived from that as well17:46
aelkneryeah, i definitely didn't like he id concept17:46
aelknerwe just removed them from the forms, remember?17:47
aelknerthey only case he user to get confused17:47
th1aWell, you might get collisions, too.17:47
aelknerif we had ReportSheets contain Activity objects17:48
aelkneror better yet17:48
aelknerReportSheets contain ReportActivity objects17:48
aelknerReportActivity objects are activities with one more attribute17:49
aelkner'use in report card' y/n17:49
aelknerthen we could have an add/edit view that looks just like the add/edit activity view17:49
th1aHm... I don't know.17:50
aelknerbut with just the one additional attribute17:50
th1aYes, but laying out the report card is the hard part.17:50
th1aThat's not the part to skimp on.17:50
aelknerok, so maybe trying to leverage IActtivity is not the answer17:51
aelknerperhaps ReportActivities are new objects17:51
aelknerthat are similar to activities17:52
aelknerin that they have a score system17:52
aelknerbut otherwise, they have other attributes that make them quite different17:52
aelknerthings that would allow for layout issues17:52
th1aI don't think the ReportActivity has to know anything about how it is being used in a report.17:53
th1aThat's a view issue.17:53
aelknerbut the admin person needs a way to tell the view how to work17:53
th1aAre we talking about the report card the parent will see or the worksheet the teacher will fill out?17:54
aelknerthe first one17:54
th1aLaying out the report card will be a pretty separate process.17:54
aelknerneed a five minute break, be right back17:55
th1aThe important part is that when the manager says "1st quarter grade" is the first column in the report card, the system has to be able to iterate through each section of the term and each student and retreive the "1st quarter grade."17:55
th1aThat is assuming that "1st quarter grade" was in the ReportSheet and on each teacher's report worksheet.17:56
* jelkner leaves for class17:57
*** jelkner has quit IRC17:57
jstrawI guess my question on all of this is... is there any reason for this ReportSheet to have anything but a set of dates and a grading scale?17:58
jstrawThe dates correspond to the days where reports close17:59
jstrawand the grading scale takes numbers to whatever the schools scale is17:59
jstrawthen you attach it to a gradebook and it reads due dates off all the existing activities17:59
jstrawand poof you have a populated report sheet17:59
th1ajstraw: There are lots of different kinds of grading systems.17:59
jstrawth1a: so you let the teacher write the scale18:00
jstrawwith override from the admin18:00
jstrawI just don't see why we need to duplicate any data at all18:00
jstrawwe just need something that screws with existing gradebook data18:00
th1aWe don't really want that much magic at this point.18:01
th1aBecause everyone will want different magic.18:01
th1aAlso, particularly in, say, an elementary school, you want lots of stuff that doesn't correspond to regular gradebook grades at all.18:02
th1a"Works well with others."18:02
jstrawth1a: well, lets balance magic with focus and work duplication18:03
jstrawAPS for sure uses *totally* different report cards between ES and HS18:04
jstrawI've seen both18:04
jstrawin fact, at HS the grade is a single number 0-10018:04
jstrawexported from the teachers gradebook at grade close18:05
jstrawin ES... teachers have to fill out a web form for every student18:05
th1aWe'll let you import grades from other worksheets -- it just isn't going to be the default.18:05
jstrawth1a: if we're going to play import games18:05
jstrawwhy not just tack it onto a gradebook to start18:05
jstrawand have them create a ReportSheet for each period18:06
jstraw(even if it is 1 for the entire term)18:06
th1aI want to leave it flexible.18:07
aelknerth1a: i'm back18:11
aelknerso am i right in assuming that we need two sets of objects18:11
aelknerthe first being a set of activities stored in a ReportSheet for propagation to sections18:12
aelknerthe second being for report card layout18:12
aelknerwhere activities are selected/deselected for appearance in the report?18:13
th1aReport card layout is an entirely separate issue.18:13
jstrawlayout is a global18:13
th1aAs long as we can retrieve the scores.18:14
th1aFor the purpose of our own sanity, let's not try to figure out report card layout now.18:14
* jstraw agrees with th1a18:14
aelknerit sounded like you waned the user to be able to design the layout18:14
jstrawand I feel compelled to bring up aelkner's favorite topic as a reminder when we get there18:14
jstrawa reports system18:14
jstrawaelkner: not the user18:15
jstrawthe school administration should have some control over the header18:15
aelknerthat's the user i'm referring to18:15
jstrawbut that's not for now either18:15
th1ayvl wrote a custom header already (although I haven't seen it).18:15
aelknerit's a png file, that's all18:16
th1aWe can go over it with him this weekend.18:16
aelknerbut the main issue is when you talk of 'flexibility"18:16
aelknerwhat that means is the user chooses18:16
aelknerthat requires a persistent object that contains the user's choices18:16
aelknerthat is then  applied at the time of report creatoion18:17
* th1a is trying not to get into that.18:17
th1aI'm just saying, in case it isn't obvious, that we need to be able to retrieve the data from the report worksheets reliably.18:17
aelknerof course we need that18:17
aelknerthat goes without saying18:18
aelknerif we forgo the user custom layout question for now18:18
aelknerwe are left with ReportSheets that contain Acivitiy objects18:18
aelknerand an automated propagation to sections at the user's request18:19
aelknerand a report card pdf18:19
aelknerthat jsut knows how to layout the report18:19
aelknerand uses the ReportSheet object to see which activities are involved18:20
aelknerwhich in turn allows the report to find the grades in the sections18:20
aelknerso, the user never should choose ids as we have come to realize18:21
aelknerbut the ids are something that we could keep consistent18:21
aelknerbetween the ReportSheet activities18:21
aelknerand the gradebook activities that  get propagated18:22
jstrawReport Cards do not show Activities18:22
aelknerif the propagation action creates a new worksheet in each section18:22
jstrawProgress Reports do18:22
th1aUnless we want to use some other kind of object references.18:22
jstrawA Report Card would show all of a students grades for the sections they are in for that term/grading period18:22
th1ajstraw: Don't confuse aelkner.18:22
jstrawth1a: not trying to18:23
aelkneran activity found in a ReportSheet can in now way know the object reference18:23
th1aThe report card shows whatever the manager says it shows.18:23
aelknerof an activity found in a section18:23
jstrawth1a: and that will be?18:23
aelknerjstraw: please don't interrupt18:23
aelkneri mean, the things you're asking are for another thread18:24
th1ajstraw: The more automagical parts you want will be added later.18:24
aelkneri'm still trying to work out the technical side18:24
aelknerwhich objects are created and how they would be used18:24
aelknerso th1a18:24
jstrawth1a: ok, I just want to make sure that our image of a report card is what SLA and Jeff are going to need18:24
aelkneri think th1a sees the image of teh report card as being a view18:26
aelknerthat could be different depending on how the school wants it to look18:26
aelknerbut that the data needs to come from the same place regardless of the view18:27
aelknerdoes that make sense?18:27
aelknerth1a: ?18:28
th1aI think so.18:28
aelkneri mean we can worry about presentation later as long as we have the data model right18:29
aelknerso what i was saying was this:18:29
aelknerthe admin user creates a ReportSheet that hangs off of the term object18:30
aelknerjust as the worksheets hang off of the section object18:30
aelknerthe admin user puts activities in there18:30
aelknerthe propagation request causes a worksheet to be created in all sections18:31
aelknerpopulated by those activies18:31
aelknerusing the same ids that were created automatically (Names chooser)18:31
aelknerwhen creating the report sheet activities18:31
aelknerthat way we can line them up at any time in the future18:32
aelkneror even request that an activity is suppressed?18:32
aelknerduring report card pdf cration?18:32
aelknerbut that's the part that i was getting to when i said we would need another object18:33
aelknerif the admin user wants to control what data is presented18:33
aelknerwe would need to have an object persisted with those choices18:33
th1aNote that the report card will probably pull from other sources as well, like the attendance journal.18:33
th1aBut yes, the report card description is an object itself.18:34
aelkneri could then, in theory, break the work up into creating the ReportSheets and the propagation action18:35
aelknerand we discuss the report control at the sprint18:36
th1aThis seems pretty easily broken into chunks.18:36
aelkneri like the sound of that18:36
aelknerignas: are you still there?18:36
aelknerwhat do you think of the idea of having the ReportSheets go in a folder that is an annotation of the term18:36
aelknerjust as the workheets are annotations of the section18:37
ignaswell - you know what I think of annotations in general18:37
aelknerthat would be consistent18:37
aelknernot really18:37
ignasannotations are bad18:37
aelknerthat's a statement of judgement, hardly technical in nature18:37
ignasannotations are a major source of trouble when doing some evolution steps18:38
ignasbecause as you are putting objects into terms for example18:38
ignasif i will be updating terms i might have to "know" about what's in it's annotations18:38
aelkneryou jsut copy them18:38
ignaswhich has caused a lot of troubles with Person -> BasicPerson migration18:38
aelkneryou should "know" what's in them18:39
aelknerthey shouldn't be changed, so what's to know?18:39
ignasyeah, so if i am implementing a term i should know about gradebook?18:39
ignasif any object in annotations is refering to the object being annotated directly18:39
ignaslike calendar and a lot of other things in annotations did18:39
ignasi must update the reference18:39
ignasalso - copying annotations sometimes triggers subscribers (also a problem)18:40
ignaslike "oh you have deleted the calendar of a person" "and added it to another person"18:40
aelkneri didn't think of that one18:40
aelknerbut think of this18:40
ignasbut - as long as you are sure I can replace Terms with Glorks - you can do that ;)18:41
aelknereven if one doesn't use annotations18:41
aelkneryou still still have the dependcy18:41
ignasint ids are a safer way to "bind" objects to each other in my opinion18:41
ignasat least it was easier for me to manage18:41
aelkneryou can't just go moving a term and not take into account the dependency that schooltool.gradebook has18:41
ignasthough - it's up to you really, I just prefer not keeping objects on other objects, as that also makes us very dependent on ZODB18:42
aelknerno matter how that dependency is implemented18:42
ignasi can postpone it18:42
ignasfor another evolution script in schooltool.gradebook18:42
aelknerhow could we not be dependent on the ZODB?18:42
aelknereverything we do is tied to it18:42
ignaswell - we can have it "YOU CAN'T HAVE STUFF NOT IN ZODB OR EVERYTHING WILL FALL"18:42
ignasor "with some work you can have persons stored in sql database and it will work fine:18:43
ignasand i'd rather pick the later one ;)18:43
aelknerthat would have to be handled with proxies anyway18:43
ignasyeah, proxies are not persistent18:44
aelknerand i have no idea how you envision that18:44
ignasi just like separating data that belongs to different modules into different places in zodv18:44
aelknerso to be fair, it's a 'i prefer' issue rather than 'i't bad'18:44
ignasso app["schooltool.terms"] has terms, and that's it, and app["schooltoo.gradebook"] has gradebooks, it makes it easier for me to understand the data model18:45
ignasas really - if I can't recall18:45
ignaswhat kinds of things are stored on a person18:45
ignasin person annotations18:45
ignashow can I expect anyone else to do it?18:45
aelknerwe keep evaluations ther18:45
aelknerwhat you're saying is you hate the way schooltool.gradebook works18:46
aelknerand what's more you don't like any of stephan's coding methods18:46
aelkneruse of annotations18:46
ignasyes, i find it very difficult to understand without reading a lot of code18:46
aelkneruse of README.txt for tests18:46
aelkneri think that's a larger issue, but mind is open18:46
ignaswhile with for example sections I can say18:46
ignas"sections are in app['schooltool.sections']"18:47
ignassection.__name__ is the int id of the term section belongs to18:47
ignasand that's it18:47
aelknersee, i find that part confusing, but i will live with it18:48
ignasok, in ZODB18:48
ignascan you tell me where is a grade stored18:48
ignaswhen you write "F"18:48
ignasto someone on some activity in some section18:48
ignastell me18:48
aelknerall is stored in the annotations of the person18:48
ignaswhat's then18:49
aelknergrade 'F' of activity 'Quiz 1' for section 'Math'18:49
ignasyeah, but where18:49
ignasapp['persons']['john'].__annotations__['schooltool.gradebook'] ?18:49
ignasand what's then?18:50
aelknerthere is found a tuple18:50
ignasi mean what objects, what keys18:50
ignasi mean - i don't know, so could you write the full "code" to get the information18:50
ignaswithout adapters18:50
aelkneriKeyReference(section), IKeyReference(activity) --> score18:50
aelkneri don;'t understand you question18:51
ignasprint app['persons']['john'].__annotations__['schooltool.gradebook'][id of section, id of activity]18:51
aelknerof course there's code to get the scores18:51
ignaswould print me "F"18:51
ignasaelkner: i know, but you do know that you can't and should not use adapters in evolution scripts18:52
ignasexcept in such cases like IKeyReference18:52
aelknerso who's using adapters?18:52
ignas"of course there's code to get the scores"18:53
ignasand it seems that it's not "F" in there18:53
ignasit's an Evaluation object18:53
aelknerand the problem is?18:54
ignasand Evaluation object is referring to Person who wrote the grade18:54
ignasor not?18:54
aelkneryes, it is18:54
ignasi mean - what is evaluation?18:54
aelknerthe teacher18:54
ignasthe problem is that if I will want to replace BasicPerson with NewPerson18:54
ignasfor example18:54
ignasi will have to update all the evaluation objects (that I have no clue about as I am working on a person module)18:55
ignasmaking people know and care about the code that they did not write, and are not modifying is a bad idea ine general, which is why i want data as separated as sanely possible18:56
aelkneryou need to know about schooltool.gradebook when working on schooltool18:56
aelknerthere's no way around that18:56
ignassomeone working on gradebook should not care about schooltool.calendar18:56
ignasthere is a way around that18:56
ignassomeone working on schooltool.person should not know all the possible plugins out there18:56
aelknerschooltool.gradebook is not a plugin in reality18:57
ignasbecause if there is 1 gradebook, then there will be 3 gradebooks, and If I will have to know about all of them and how they work18:57
th1aOnce upon a time stevea had a master plan for all this...18:57
ignasi will not be able to work on it18:57
ignaswhich is why I want to limit ways in which parts of the system are reffering to each other to:18:57
ignasids of objects18:57
ignasas that makes it more manageable18:58
ignasas I know that if I will keep the same IntId - everything connected to the person18:58
aelknerrelationships ARE annotations18:58
ignaswill keep on working as it used to18:58
ignasyes, but I know about relationships18:58
ignasand it is sane to want people working on schooltool18:58
ignasto understand relationships18:58
ignasit's not so sane to want them to know attendance, gradebook, notes, calendars, journal, cando etc.18:59
ignasif all they want to do is change groups to have 2 different types18:59
aelkneri don't see how you can imagine making a sweeping change to a core aspect of schooltool19:00
aelknerand not realize its impact on plugins19:00
aelkneryou recall you changed schooltool to use schoolyears19:00
aelknerand that didn't impact cando/sla?19:00
aelkneror course it did19:00
ignasyeah, but aspect being core does not make changes "core'19:00
ignasi have changed the *way* the system works19:00
ignasnot just modified a couple of properties of the system to suite me19:01
aelkneryeah, it was a major change to be sure19:01
aelknernot one entered into lightly19:01
aelkneranyway, what you're talking about is philosophical, and i'm sure i could be convinced to agree19:02
aelknerbut the practical fact is that we have annotations everywhere19:02
aelknerwe would need an overhaul of the data model to fix that19:03
ignasyeah, another fact is - that I am slowly moving everything from annotations to other places19:03
ignaswhich is easier to do19:03
ignasif no new stuff is being added ;)19:03
aelknerthat brings us back to your original response to my suggestion about annotating the term19:05
ignasi'd rather you do it the way that i have suggested multiple times, otoh - you will be maintaining it, so if you are finding it difficult to understand "objects for something kept in a top level container" just do it the way you understand and can manage19:06
aelknernot annotating the term would mean having two types of solutions to the same problem19:06
aelknerthe existing one with annotation on sections19:06
aelknerand the new one with a new container for ReportSheets by term19:07
ignasyou see - from the usage point19:07
ignasthe API is identical19:07
ignasthe only difference is - the adapter that gets the data19:07
jstraw you two have fun19:07
jstrawI'll be back in a while19:07
*** jstraw has quit IRC19:08
ignaswhich is why I find it difficult to understand why does it matter so much to you where to put it19:08
aelknerit doesn't matter to the API19:08
aelknerbut code design and complexity does matter to the developer19:08
ignasi mean - where it will be, matters to me because of all the evolution scripts, but to you it only changes the code for 1 adapter19:08
ignasthe complexity is concentrated in 1 adapter19:08
ignasand that's it, 10 lines of code, maybe 1519:08
aelknerit's not a question of lines of code but of the brain cycles required to keep two different data models19:09
aelknerin one's head at the same time19:09
ignaswhy keep them?19:09
ignasyou write it, you forget it19:09
ignasthat's the point of adapters19:10
aelkneri don't forget what i write19:10
ignasand abstractions in general19:10
ignasbut yeah - for you it's more convenient thinking "grades are in persons"19:10
ignasand for me it's more convenient thinking "gradebook data is in app['schooltool.gradebook']"19:10
aelknerjust so you understand, i have no problem with your design here19:11
ignasbecause else i get - grades in persons + report sheets in terms + activities in app + worksheets in sections19:11
aelkneri just have to deal with the way the code/data model already is19:11
ignasyeah, i know19:11
aelkneri like the idea of usign the containers19:11
aelkneri did so with sla.demographics with no problem19:11
aelknerbut that was my code, not legacy19:12
ignaswell - my approach is19:12
aelknerunfortunately, schooltool.gradebook is now old enough to be "legacy"19:12
ignasfix legacy code when you can, and when you can't - at least do not increase the problems it has created ;)19:12
ignasbut yeah, i can understand the19:13
ignas"let's have it one way in one place"19:13
ignasso yeah, if it is more convenient for you to fix such things in one go19:13
ignasjust do that19:13
* ignas does not really get the time to fix *anything* in one go19:13
aelknerthanks, you understand my point noe19:13
ignaswhich is why I do it while "passing by"19:13
ignasi mean - i was against some faassen's changes to the code19:14
aelknerwe will need to right evolution scripts to move evaluations out of the preson object19:14
ignasbecause he was "adding one more system of doing stuff"19:14
aelknerfassen's changes?  which changes?19:15
ignaswhen he did demographics person19:15
aelknerso yeah, you get my point about not proliferating complexity19:15
aelknerbut i get yours on the use of containres19:15
ignaswhat i found interesting is19:16
ignasgrades in persons19:16
ignasin lyceum.journal19:16
ignasi have it "grades in sections"19:16
ignaswith "evaluated person" as an attribute19:16
ignasinstead of "evaluated section" as an attribute19:17
ignasboth work19:17
aelknerand you have a separate container, right?19:17
ignasyeah, journal objects are in app['schooltool.lyceum.journal'][section_int_id]19:18
aelknerso say, at some time in the future, i'm able to tackle the issue of moving all gradebook data to a new folder19:18
ignasthis has the benefit of keeping "list of activities" and "list of grades" in one place19:18
ignaswhile if i had persons -> grades and sections -> timetable events (activities)19:19
ignasi'd need 2 containers19:19
ignasfor each of these19:19
th1aHow long would it take to make that move?19:19
aelknerthis would require overhauling schoolool.gradebook code (not difficult, and certainly a good opportunity to clean up)19:19
aelknerthere would be the need to evolve the data19:20
ignasth1a: I am not sure it would be worth the effort at the moment, it probably should coincide with some major update of gradebook features/ clean up of the code19:20
aelknerthat's what i'm saying19:20
aelknerand cando gets involved in the evolution issues as well19:20
aelkneras evaulations are kept in the person object19:21
aelknerwith the activity id being a cando competency id19:21
aelknerso yes, it would be a major project19:21
aelknerinvolving juggling multiple plugins19:21
aelknerand evolution scripts19:21
aelknerbest done in a focused manor19:22
aelknerwhile doing no oher project work19:22
aelkneri don't agree with the idea of "fix as you go" in the case19:22
aelknerthis case19:22
aelknerit needs to be a big bite of an even bugger apple19:22
aelkneror the ripping off of a very large and painful band-aid to use another analogy19:23
aelknerall that being said19:24
aelkneri could still entertain the idea of using a new container for the ReportSheets19:24
aelknerwhich would give me a chance to get comfortable with the idea of moving existing data19:25
aelkneri'll think about the container solution19:25
aelknerignas, th1a: enough of your time spent on this for now19:26
th1aLet us know what you decide to do.19:29
aelknerwill do19:30
*** jstraw has joined #schooltool20:57
*** alga has quit IRC21:01
*** ignas has quit IRC21:12
*** ignas has joined #schooltool21:38
*** ignas has quit IRC21:45
*** jelkner has joined #schooltool21:45
*** jfroche has quit IRC21:53
*** lisppaste5 has quit IRC21:58
*** lisppaste5 has joined #schooltool22:04
*** jelkner has quit IRC22:04
*** ignas has joined #schooltool22:15
ignasth1a, ayt?22:15
th1aI am here, ignas.22:30
*** alga has joined #SchoolTool22:30
ignasjust so you know it early - Justas is very sick, and it might happen so that he does not come with me to US22:30
ignashe's going to see a doctor tomorrow morning22:30
th1aWell, I hope he feels better either way.22:30
ignasyeah, me too, it seems it's something real nasty :/22:31
th1aWhat kind of nasty?22:32
ignas"Acute tonsillitis" i think22:32
ignasat least that's what wikipedia suggests22:32
th1aOh, that's the Wikipedia diagnosis?22:33
ignasthat's the wikipedia translation22:33
th1aWhat is it in Lithuanian?22:35
th1aHuh.  That means something different in English.  Heart pain.22:36
ignaswell - it's called angina in 10 other languages too ;)22:37
ignasok 5 other languages, including french and russian22:38
th1aI'm sure medical etymology is a fascinating subject.22:39
ignasas long as you are not diagnosed in english and cured in french ;)22:39
ignasyep, it's this one22:41
ignasnice resource by the way22:41
* ignas bookmarks it22:41
th1aignas: I'm having my periodic confrontation with Rosetta.22:58
* jstraw wants to stab jelkner22:58
jstrawhe really needs to join the like... 20th century22:58
jstrawand get on IRC/IM more22:58
ignasare irc logs admisable in court?22:58
th1aIs he sending you messages by pneumatic tube again?22:58
jstrawignas: not really22:59
jstrawth1a: no... he's totally non-realtime contactable22:59
jstrawI can email him22:59
jstrawbut he has no cell phone22:59
jstrawand doesn't get on any sort of chat client regularly22:59
th1aignas: Do you think I should be making release series the "preferred" series to translate?22:59
* jstraw thinks so22:59
th1aAs opposed to development, which still has, like, SchoolBell templates?23:00
* ignas thinks he should sort out the translations mess23:00
ignasmaybe during the sprint23:00
* jstraw wants to sick chris and filip on making cando translatable at some point23:00
th1aMaybe I should ask for some advice on how to actually do it then, because I can't figure it out.23:01
th1aOK, I asked a question on Launchpad.23:03
*** jstraw has left #schooltool23:52

Generated by 2.15.1 by Marius Gedminas - find it at!