IRC log of #schooltool for Wednesday, 2010-05-19

*** menesis has joined #schooltool01:13
*** jelkner has quit IRC01:22
*** jelkner has joined #schooltool01:46
*** jelkner has quit IRC02:16
*** replaceafill has quit IRC02:57
*** ignas has joined #schooltool03:29
*** replaceafill has joined #schooltool03:49
*** ignas has quit IRC04:02
*** alga has quit IRC04:05
*** alga_ has quit IRC04:05
*** replaceafill has quit IRC04:18
*** alga has joined #schooltool09:12
*** alga_ has joined #schooltool09:16
*** Aiste has joined #schooltool10:00
*** yvl has joined #schooltool11:41
*** ignas has joined #schooltool12:12
*** alga_ has quit IRC12:12
*** alga has quit IRC12:12
*** aelkner has quit IRC13:13
*** aelkner has joined #schooltool13:13
*** alga_ has joined #schooltool13:16
*** alga has joined #schooltool13:16
*** mgedmin has joined #schooltool14:04
*** th1a has joined #schooltool15:30
*** replaceafill has joined #schooltool16:22
*** menesis has quit IRC16:26
*** Aiste has quit IRC16:26
th1ahi replaceafill.16:30
yvlmorning guys16:30
replaceafillgood morning/afternoon th1a yvl16:30
replaceafillth1a, after talking about "progress to the next year", i'd like to ask you about the gradebook please16:31
th1aWhy don't you start with your thinking now about progression.16:33
replaceafillmy first doubt is, should this be done on a "class" level or on a "student" level16:34
replaceafilli mean, going to a student and move him to the next year16:35
th1aThis is a bulk operation.16:35
yvlI'd say - per level16:35
replaceafillclass by class or all classes at the same tiem?16:35
yvli.e. bulk: all students in all classes at level 4 in last year16:35
th1aWell, let's leave out actual promotion of students to the next level at this point.16:36
th1aThat's a more nuanced question.16:36
replaceafillyvl, i was thinking16:36
th1a(I mean, we can discuss it in a few minutes)16:36
replaceafillsupposse you list all the students in the same level16:36
replaceafill4 grade for instance16:36
replaceafillyou can have 4a, 4b and 4c16:36
th1aOr perhaps we'll just discuss it now.  :-P16:37
replaceafillhere in el salvador, usually the student moves from 4a to 5a16:37
replaceafillbut sometimes he moves from 4a to 5b16:37
replaceafilland then, if we do it at the "level" level (!!!), how do we control that?16:38
yvlstudent belongs to a level indirectly in the Cambodia branch16:38
yvlbeing a member of a group that is linked to a level16:39
yvlmeans being in that level16:39
yvlso you can collect all groups at level 416:39
yvllist all their members16:39
th1aDon't get it into your head that there is a magical way of doing this.16:39
yvlthen there's another school year16:40
th1aIf people need to be moved between groups, then either people need to import new groups or manually move them.16:40
yvlwhich should have levels and groups(empty) set up at this point16:40
replaceafillyou assign them to the next year group?16:40
yvlthe groups live per schoolyear16:40
yvlso do levels16:40
yvlyou make a student member of both16:41
yvl2009 / group 4a and 2010 / group 5a16:41
yvlor 2009 / group 4a and 2010 / group 4a if he did not "graduate" the level16:41
yvlor "2009 / group 4a and 2010 / group 5b"16:41
yvlthat's the intended design in Cambodia branch16:42
yvl(not in generic ST, by the way)16:42
replaceafillyes, i was thinking "it's just a matter of moving a person from one group in a schoolyear to a group in another school year"16:42
replaceafillnot move16:43
yvlyes :)16:43
replaceafillmake member16:43
yvlthis way you retain historical information16:43
yvlof course this will cause performance issues pretty soon16:43
yvlbut that's another thing, I'll be dealing at ST core with this16:44
replaceafillwhy? too many objects created?16:44
yvlrelationships are slow16:44
yvlneed to make them faster :)16:44
yvlit's not that impossible ;)16:44
replaceafillevery time we assign someone to a group, we create a relationship object, correct?16:45
yvlmy timeline could look like this: timetables, relationships16:45
yvlor timetables, relationships, more timetables16:46
yvlso don't worry about performance now16:46
replaceafilli was thinking of other things that don't move with the school year, like demographics or contacts16:46
replaceafillthey have to stay the same, right?16:46
replaceafilli mean, in a global way16:46
yvlthere's little point of chaging your ethnicity per-schoolyear :)16:47
th1aYou're not worrying about things not in school years.16:47
th1aReally, the basic point here is that we don't want people to start with a completely blank new year.16:48
th1aWe want to give them the option of starting by copying the structure of the previous year.16:48
th1aThat's step 1.16:48
th1aStep 2 is promoting students.16:49
replaceafillyvl, there's no way to know that after level 4 comes level 5, right?16:49
yvlyou can guess that16:49
yvlif level '4' also exists in the new year16:49
yvlthe next level in the levels container is the, well, next one16:50
yvl(it's an ordered container)16:50
replaceafillits ordered16:50
th1aDon't delude yourself about how easy some of this can be.16:50
th1aIf you've got a school with 1200 kids who have to be completely reshuffled into new groups, and you're doing that within SchoolTool, it is going to take a long time.16:50
th1aIt is going to take a long time no matter what.16:51
replaceafilllong time == several steps?16:51
yvlwe just need to make the common case easy16:51
th1aThat is something that anyone would expect to take at least a day.16:51
th1aSometimes in SchoolTool you have to remind yourself that you're not writing an online shop or something.16:52
th1aSome tasks are really complicated and will take a long time.16:52
th1aIf the user wants to do something particularly complicated, that is.16:53
yvlby the way, you might want to start with registering a link under manage "set up the school for the next year"16:54
yvljust with a decent name16:54
replaceafillyvl, in cambodia, when you create a school year, you get only a term created automatically ,right?16:54
th1aBut the main thing is that if, say, 80% of the students stay in the same groups, we want them to be able to start with last year's groups so they only have to switch 20% rather than starting from 0.16:54
yvlreplaceafill - yes16:54
replaceafillno courses, levels or classes16:55
replaceafillwell, they dont see courses actually16:55
yvlcurrently courses, levels and classes are created automatically for demo purposes16:55
th1aDoes it make more sense to put a "Import from previous year" action within the new year?16:55
yvlit should be done somehow differently16:55
yvlI'd say, a view "Configure next school year"16:56
yvlwhich first makes you actually create the school year16:56
yvlthen makes you review copied levels16:56
yvlallows to import courses16:56
yvland transfer students16:56
replaceafillwizard style?16:57
yvlnot sure about school year activation16:57
replaceafilli mean, several steps16:57
yvl(and unactivation)16:57
yvlmore of a "checklist style"16:57
th1aMore a checklist.16:57
th1aOr just a list of things.16:57
yvl[ ] Create the new year16:57
yvl[ ] Set school timetables or something16:57
yvland so on16:57
th1a[ ] Use timetables from [2008] [2009]16:58
th1a[ ] Use courses from [2008] [2009]16:58
th1a[ ] Use groups from...16:59
th1a[ ] Populate groups from...16:59
th1aThat's how I'm seeing it.16:59
yvlok, my go:  ;)16:59
yvl[ ] define start/end of schoolyear 201017:00
yvl[ ] set schooldays for 201017:00
yvl[ ] Import courses mandated by ministry17:00
*** alga_ has quit IRC17:01
*** alga has quit IRC17:01
yvl[ ] Define classes (they will be automatically copied from last year at this point)17:01
yvl(and define classes should help you manage both levels and groups, if needed)17:01
yvl[ ] Transfer students to 201017:02
yvltitles could be better of course17:02
yvlbut you get the idea17:03
yvlI'd restrain importing from anywhere else than a previous year17:03
yvlmaybe it's worth even making this a checklist17:03
th1aIt is probably simpler.17:03
yvland only allow activation of the next year once all items are checked17:04
th1aRemember that activation will often lag initial creation by months.17:04
yvl(some of them just could be, you know, buttons pressed by school manager or somebody)17:04
th1aIf not years.17:04
yvl(I reviewed and approve)17:04
* replaceafill writing things down17:05
yvlwell, in Cambodia case, the time can be shortened by appropriate documentation :)17:05
yvldon't set up the next year until the current school year is ended17:06
yvlor something17:06
th1areplaceafill:  I actually want you to be primarily approaching this from the point of view of the general SchoolTool implementation.17:06
th1aCambodia should not require a significantly different version.17:06
yvlth1a, we will not be able to reuse this logic17:07
yvlat least directly17:07
replaceafillth1a, assuming core has levels and behave the same as cambodia?17:07
th1areplaceafill:  yes.17:07
th1aI'm not seeing what is unique about this case.17:07
yvlit's a special case17:08
yvlit's not general17:08
th1aWhich aspect?17:08
yvlok, I'm really bad at communicating through IRC17:08
yvlI'm actually agreeing with you :)17:08
yvljust saying that moving that to ST core would be quite hard17:09
th1aI don't understand why.17:09
yvlbut as we don't want to support any elaborate code for years17:09
yvlthere are assumptions17:09
replaceafillin my head it's the use of groups that's special17:09
yvlthat allow us to make user interface easy17:10
th1aThat's a small slice of it to me though.17:10
yvlok, let's put it this way17:11
yvlI get the your idea, th1a17:11
th1aYou mean because of the way group assignments are hardwired to section enrollments?17:11
yvland I like it17:11
yvl(yes, that's what I meant)17:11
replaceafillth1a, yes17:11
th1aBut shouldn't that take care of itself.17:11
th1aIf you can move the courses, groups, etc. over.17:11
yvlyou can't do the student transfer this way17:12
yvlin the same way17:12
yvlyou can't transfer students to a different level17:12
yvlwhen in Cambodia level is defined by a group that is linked to a level17:12
yvland in ST it will be done differently17:12
yvlmaybe at some point it will be done the same17:13
yvl(uh, and by hard I meant days / 1-2 weeks, not months)17:13
th1aI think that will be less of a problem than you do.17:13
yvlmaybe I'm just cautious about getting your hopes up17:14
th1aBut anyhow, I tried to start this conversation by NOT talking about promoting student levels.17:14
replaceafillmy bad17:15
th1aI'd rather get the straightforward parts working first.17:15
replaceafillis it possible to do it in cambodia first (with the assumptions) and the move it to core?17:16
yvlin my vocabulary - reimplement17:16
yvlbut that's just nitpicking17:16
yvland I should do less of that ;)17:16
replaceafillfancy :P17:16
yvlthe beauty of working with grant projects is that they have clear requirements17:17
th1aI still think the Cambodia specific aspect is *very* narrow.17:18
th1aBut that might be because you guys are focusing on the hard part and ignoring the easy parts.17:18
th1aThis is 80% easy.17:19
* yvl agrees17:19
yvlthe devil's in the details, at least for me...17:19
th1aAgain -- the hard details should be resolved by explict, manual user input.17:19
th1aThis is not a guessing game.17:19
yvlsorry, I meant implementation details17:20
th1aI'm just repeating myself for emphasis.  ;-)17:20
th1aStep 1 is just getting rid of "Hey, didn't I enter exactly the same crap last year."17:21
yvlso, should we discuss the "set up new schoolyear" in more detail?17:22
replaceafillif you have time :)17:23
yvl(I guess we agree that this should be a single link in Manage, pointing to a checklist)17:23
th1aI'm a little dubious, but for no specific reason, so go ahead.17:23
yvl(the checklist is keeping in mind simple interfaces for Cambodia, it should be a list of links in generic ST)17:24
yvlso, this list looks ok?17:26
yvl [ ] define start/end of schoolyear 201017:26
yvl [ ] set schooldays for 201017:26
yvl [ ] Import courses mandated by ministry17:26
yvl [ ] Define classes (they will be automatically copied from last year at this point)17:26
yvl [ ] Transfer students to 201017:26
yvl[Activate next year]17:26
yvl(just copied it from above)17:26
replaceafilli changed it to: [ ] define start/end of next school year17:26
yvl(and those are also links, by the way)17:27
yvlyes :)17:27
yvlhmm, now that I think about it17:27
yvlthere's not much to talk about this :)17:27
th1aI don't understand what happens if I check "define start/end of schooyear..."17:28
yvlschool year is created17:28
replaceafilli just have the question if [Activate next year] will do everything17:28
th1aBut what is the start/end?17:28
replaceafillfirst date last date17:28
replaceafillfirst day, last day17:28
th1aWhere do those come from?17:28
yvlentered manually17:29
replaceafilllike when you create a school year17:29
th1aWhere?  Next to the check box?17:29
replaceafillnew form17:29
yvlit brings you to "new schoolyear" form17:29
th1aThe contents of which are determined by what I've checked?17:29
yvlit's another way of saying "now please create the shcool year object"17:29
ignasemm, question if I may17:29
ignasis it "you check checbox and it happens"17:29
th1ahi ignas.17:29
ignasor "you click link + perform action" checkbox checks17:29
yvlok, it's not a checkbox17:30
ignasth1a, hi17:30
yvlit's.... a string done17:30
yvland a link17:30
yvlor a string TODO17:30
yvlor something along the lines17:30
ignasor an image17:30
ignasthat becomes a green checkmark17:30
replaceafillred X for incomplete?17:30
replaceafillor not done17:30
yvlit's really the UI sugar17:31
replaceafillok, sorry, go ahead17:31
yvlyou are free do do whatever way you want ;)17:31
yvldefine start/end brings to create school year form; once it's created it should bring to edit school year form17:31
ignasthe real sugar is the code to detect whether some action has been completed17:31
yvlalways - the next schoolyear after the active one17:31
yvlignas, yes17:32
yvland of course some links will be disabled for a while17:32
yvlyou can't transfer students without having a new schoolyear, for example17:33
yvlreplaceafill, can you quickly look through the list and check if you imagine the...17:33
yvlconditions under which the links are considered DONE?17:34
replaceafillset schooldays for next year -> is the term creation form without the term title, term start date and term end date, correct?17:34
replaceafillsince we're creating just one term for the year17:35
th1aI'm a little unsure about this direction.17:35
yvleither this one:
th1aI think we're trying to hide too much for the sake of Cambodia.17:36
yvlor remove the item at all17:36
*** ignas has quit IRC17:37
replaceafillImport courses mandated by ministry?17:37
replaceafillthese should bring the level where they're going, right?17:37
yvlthey sent us the spreadsheet17:38
yvlbut they could fill that in in a more decent manner17:38
replaceafillth1a, is this part of "i entered that crap last year"?17:38
replaceafilli guess yvl is refering to course changes by the ministry17:39
yvlth1a, from the coder's point of view, we're not hiding anything, all is already hidden17:40
yvlso we're just reintroducing stuff17:40
yvlit's a matter of which views you want to give access to and when17:40
replaceafillDefine classes (aka groups)17:40
th1aWhat's the argument against just having them create a new year and select which things they want to bring over?17:41
th1aI don't think that is particularly complicated.17:41
yvlit's not :)17:41
yvlthe question is how and when they should make adjustments17:42
yvlkeeping courses / levels on a spreadsheet and import only17:42
yvlmeans no course add/edit forms and such (they don't have level dropdownbox at the moment, for example)17:42
yvlcopying groups always makes sense in my opinion17:43
yvlso people should be able to delete them or add them in a new year17:43
*** menesis has joined #schooltool17:43
yvland since classes are special, that's a custom view anyway17:43
yvl(and I'm sure they'll want a simple interface there)17:44
yvlstudent transfer is another custom thing17:44
yvlas they're not transfered to a level17:44
yvlthey are transfered to a class17:44
th1aI'm feeling like trying to do this for Cambodia first is a very bad idea.17:44
th1aWhy don't we do it for SchoolTool first and then simplify THAT if necessary.17:45
replaceafillyvl, your new level branch uses groups the same way as cambodia does?17:46
yvlmy immediate (not necessarily right) answer would be that making it sensible in ST is more difficult than a quick solution in Cambodia17:46
yvlit doesn't use groups at all17:46
yvlI'm really undecided about the whole "using groups for classes" thing17:47
yvlhave some bad feelings about putting it to the generic case17:47
replaceafillagain, that's the part where i get confused when separating the cambodia case from the core case (classes [groups])17:47
yvlhmm, this discussion is taking a bit longer than I expected.17:49
yvlwell, to put my position in short:17:50
yvlI have no idea how to do a generic year transfer in ST17:50
yvlI have no idea how to provide a good UI / group filters so that groups would be usable as classes and not useable as classes in generic ST17:51
yvlI need to deal with timetalbes, then performance issues at ST17:51
yvlthus I'd like to experiment on Cambodia branch17:51
yvlthen unify where we can17:51
yvland where it makes sense17:51
yvlcustomizing groups as classes is an expected case, so I'd think there will be no support problems later on17:52
th1aI'm completely unconcerned about the groups as classes issue.17:53
th1aTo me, that's just a small additional element to add for Cambodia.17:53
yvlso, what should we do next?17:54
yvl"next school year set up"?  in Cambodia?  in generic ST?17:54
yvlis the checklist ok?17:54
th1aI'm feeling like that's marching us in the wrong direction.17:55
th1aThis can just be another import method.17:55
th1aImport from last year.17:55
yvl(by the way, is it ok if I run off soon?)17:56
th1aYou're excused, yvl.  ;-)  Thanks.17:56
yvlyes, that could be also done that way17:56
replaceafillthanks yvl17:56
th1aI guess I confused the issue by mostly hanging it on the bug as Javier described it.17:56
th1aI only considered that a placeholder, really.17:56
yvlfrom the coder's perspective there's not much of a difference on how you do that17:57
yvlit's more of a usability issue17:57
yvlI'd expect roughly similar amounts of code17:57
yvlif you import most of the things17:58
yvlfrom a previous year17:58
yvland give views/links to do that17:58
yvlor you import automatically and give views/links to edit that17:58
Lumiereimo automatically is never good17:58
yvlin Cambodia case, most of the code I'd expect to be in customization17:58
th1aI guess I'm more comfortable doing the bare "ok, you kind of have to understand the data model" implementation *first*.17:59
yvlwell, sometimes it is17:59
Lumiereyvl: automated is good, automatically is not :)17:59
yvlLumiere, if your school teaches levels 1-12 its better to copy automatically then modify17:59
yvlthan to re-enter17:59
Lumiereyvl: but you don't want it to happen automatically ;)17:59
Lumiereyou want to tell it to start the process18:00
Lumiere(it's something to just be careful about in describing it)18:00
yvlth1a, just one thing18:00
yvlin my opinion18:00
yvldoing the "you have to understand the data model first" and doing the plumbing18:00
yvlis roughly the same effort as doing a "guided " view18:01
th1aWell... the guided view would take much more planning time.18:02
yvlagain - I'm sure that it'll end up with roughly the same time18:03
yvlthere's just too little to plan about18:03
yvlit's a view with four links18:03
yvland four functions if you want them to be marked as done18:03
yvlapologies that I did not bring mockups today :|18:04
yvlit just looks very simple to me, for some reason :|18:05
th1aAnother thing to keep in mind is that generally the people doing this will have used SchoolTool for a year.18:05
yvlyour'e pulling this towards the common case18:06
yvlI see then18:06
yvlok, sorry but gotta go18:07
th1aThanks yvl.18:07
th1aOK replaceafill, what do you think?18:11
replaceafilli'm trying to find a way of not using groups as classes in the generic ST18:11
replaceafilli was thinking of copying enrollments or something18:12
replaceafillfrom your checklist what i get is that you basically want what we currently do with courses in generic ST18:13
replaceafillwhen you create a new school year18:13
th1areplaceafill:  I am not thinking about groups as classes at all right now.18:13
replaceafillall courses from the previous year are copied18:13
th1aI am completely unconcerned with that aspect.18:13
th1aAre all courses copied from the previous year now?18:13
replaceafill(i think so)18:14
replaceafilllet me check18:14
replaceafillclass InitCoursesForNewSchoolYear18:16
replaceafill        if active_schoolyear is not None:18:16
replaceafill            self.copyAllCourses(ICourseContainer(active_schoolyear),18:16
replaceafill                                ICourseContainer(self.object))18:16
replaceafillwhen you create a new school year, all the courses from the active school year are copied18:16
th1aThat should actually be optional, along with other objects.18:17
replaceafillth1a, in your checklist:18:20
replaceafill[ ] Use courses from [2008] [2009]18:20
replaceafillwould bring also the sections?18:20
replaceafillor should we put a different step for that18:21
* replaceafill now understands the "let's leave out actual promotion of students to the next level at this point." words...18:22
th1aSorry, got pulled away to make lunch.18:30
th1aSections are more complicated.18:31
th1aIt seems like you might want to:18:31
th1a1) create the same number of sections per course;18:32
th1a2) assign the same teachers to them;18:32
th1a3) assign them the same schedule.18:32
th1aOr some combination of 2 and 3.18:33
*** mgedmin has quit IRC18:46
replaceafillwow, timetables seem complex...19:26
replaceafillth1a, can you check the UI bullet in the google doc i just sent you?19:40
th1aThat's looking goodish.19:45
th1aOne dependency relationship is that you can't schedule sections if you haven't imported timetable schemas.19:45
replaceafillyes, i'm not sure how schedules are done yet19:46
replaceafilli mean, timetable schema to section relationships19:46
*** menesis has quit IRC19:50
replaceafilldamn! sections span across terms, which term are the sections spanning to?20:02
th1aYeah, you have a dependency tree.20:03
th1aSee easy!  Just like I said.  ;-)20:04
replaceafilli see Courses, Timetable schemas and Groups (with memberships) easy20:04
replaceafillthe promoting part (levels, enrollment) is the one where i'm lost20:04
th1aWell, as we think it through the hard parts may just be too hard.20:05
th1a(in the general case)20:06
th1aTerms are hard to "import" because the start/end dates will necessarily be different.20:06
th1aSo... right.  If we can't do that, we can't really do sections.20:06
th1aI wasn't really thinking that we'd do sections, tbh.20:07
replaceafillbut as i see it, without sections, you dont have enrollment, and you dont have promotion :(20:07
replaceafillmaybe this import stuff should be a separate task than promoting students20:08
th1aIsn't that how I started the conversation this morning?  ;-)20:08
replaceafilli saw that like 9 hours later ;)20:08
th1aAfter talking through it, perhaps there are just a couple really simple, obvious things to add to core.20:09
replaceafillso th1a, should i go for part 1 in the general case with courses, timetable schemas and groups (with memberships)20:09
th1aExplicitly moving courses, group definitions, a couple other things over.20:09
replaceafillwe should deactivate the automatic course creation, right?20:09
th1aThen really most of this is specific to Cambodia insofar as you can then assume 1 term, etc.20:09
th1aThat's probably what yvl has been thinking about all along.20:10
th1areplaceafill:  Yes, I'd say so.20:10
replaceafillwhat about default groups20:10
th1aAlthough if it is just a couple things, we might even just add these as options in the add year form.20:10
th1aSo they don't have to find it later.20:10
th1aWe could have specific check boxes to bring across each built in group membership.20:11
th1aOr perhaps just give the option of moving all group memberships.20:12
replaceafillcurrently, when you create a schoolyear, the 5 default groups are automatically created and members are automatically copied20:19
replaceafillexcept students20:19
replaceafillif id in ["managers", "teachers", "clerks", "administrators"]:20:19
replaceafill                self.copyMembers(group, new_group)20:19
th1aSee, I didn't even remember that.20:24
th1aThat's why it is good to make it explicit.20:24
replaceafillsee the google doc UI v220:24
th1aI think we're getting it.20:26
replaceafilli'll work on that form then20:28
*** aelkner has quit IRC20:37
*** menesis has joined #schooltool21:15
*** ignas has joined #schooltool22:39
replaceafillmsttcorefonts is in multiverse in lucid :O22:41
th1aHrm.  Is that because it has been replaced by other ttfonts?22:47
* th1a suspects.22:47
replaceafilli thought it's because it's not free22:47
th1aOh... well, was it always in multiverse?22:48
th1aI forget.22:48
replaceafilli remember installing it from universe in jelkner's box22:48
replaceafillbut it was karmic22:48
replaceafill"The fonts in the directory are all released under open source licenses;"!!!22:50
*** ignas has quit IRC23:04
*** ignas has joined #schooltool23:07
Lumierereplaceafill: it was always multiverse23:13
*** aelkner has joined #schooltool23:37

Generated by 2.15.1 by Marius Gedminas - find it at!