IRC log of #schooltool for Thursday, 2004-10-07

**** BEGIN LOGGING AT Thu Oct 7 14:49:01 2004
-->You are now talking on #schooltool14:49
<--th1a has quit (Remote closed the connection)16:36
-->th1a ( has joined #schooltool16:38
<--th1a has quit (Remote closed the connection)17:09
-->th1a ( has joined #schooltool17:10
th1amgedmin:  I just sent out responses to your comments about the proposal.17:30
-->Voff__ ( has joined #schooltool17:57
*mgedmin just got back from lunch18:01
<--Voff__ ( has left #schooltool18:01
Aisteth1a: btw it is impossible to find any references to schooltool mailing list on the website18:11
Aisteat least on the top pages18:11
th1aOK.  I can make it clearer.18:12
AisteI was looking for it and had to use google :)18:12
-->alga ( has joined #SchoolTool18:16
th1aSometimes I get more wrapped up in organization than navigation.18:19
algaHi Tom18:23
algaI completely failed to understand what you meant re. "A timetable edit view" story, which you said was misnamed18:24
algaI imagined it was about walking up to a group and editing that group's timetable alone18:25
algathat is a web equivalent of a restive timetable view18:26
th1aDoes it make sense now?18:26
algaNot really18:26
algado you want a simple view for adding/removing a person to/from subject groups?18:27
th1aOk.  Let me see...18:27
th1aWell, think in terms of the use case, which perhaps I haven't made sufficiently clear.18:27
th1aI've got a new student in my school, and I want to set up a schedule for him or her.18:28
th1aI just want to see a list of the periods and which classes meet those periods.18:28
th1aPick which classes to add him or her to.18:28
th1aIn effect, I'm adding the student to several groups at once.18:28
algajust add, not remove?  ok18:29
th1aWell... An editing equivalent would be desirable, too.18:29
th1aWhich would have to remove the student from their previous group.18:29
mgedminth1a: do you imagine the user interface for this story?18:30
mgedminperhaps you could describe it to us?18:30
th1aJust a table with a row for each period and a drop down list of classes meeting in a period next to the name of the period.18:31
th1aThere's an endless amount of elaboration we may add later on, but I just want something minimal for now.18:32
mgedminit might get interesting, in the engineering sense of that word18:34
mgedminsuppose you have a "Math for group X" class18:34
th1aWhat are the issues?18:34
mgedminthat meet on Mondays during periods P1 and P518:34
mgedminnow in this new view you select "Math for group X" for period P118:34
mgedminthis implies that the same class will also occur during P518:35
th1aAh.  OK.18:35
mgedminbut the UI does not immediatelly reflect that18:35
th1aWell, maybe we need a new pageload after each change.18:35
th1aOr some Javascript.18:35
th1aBut let's keep it simple.18:36
mgedminthat's why we say it is tricky18:36
th1aI can deal with a new pageload for each add.18:36
mgedminin general, is there a set of classes that a student is supposed to take?18:36
mgedmine.g. always take Math 10118:37
mgedminbut you may choose between 3 sections of Math 101 that meet on different periods18:37
th1aThat's a whole different kettle of fish.18:37
th1aI don't want to get into that yet.18:37
th1aI understand that the complete version of this task takes weeks.18:38
mgedminI don't suppose you'd be happy with a list of checkboxes for subject groups18:38
mgedminand a "Preview" button that would show you the timetable18:38
mgedmincomposed from the groups that you've checked18:38
th1aSubject groups?18:39
th1aLike "Math?"18:39
mgedminI meant those groups that represent classes18:39
alga"Math for 5-years"18:39
mgedminor "Math for the 3rd section of 5th graders"18:39
mgedminif there are different groups of 5th graders that have Math at different times18:40
th1aI don't want the system to be making decisions about which section a student should be put in at this point.18:40
mgedminI do not know if I use the word "section" correctly18:41
mgedminlet me see if I get everything straight18:41
mgedminat this point you already have a whole-school timetable18:42
mgedminthat is, teachers already know things like "on Mondays during period 1 I teach Math 101 in room 456"18:42
mgedminand now you want to assign students to those classes18:42
th1aYes.  To specific classes.18:44
th1aNot "Jimmy needs Math 101."  But "Jimmy is in Mr. Hoffman's period 5 Math 101."18:45
algado you think this functionality would be used often?18:45
th1aThis version is a little bit of a placeholder, but it seems to me to be something I need to make SchoolTool look like it could actually be used.18:46
th1aOne of the first things a person would ask is "How do I edit a student's schedule."18:47
th1aNow, doing this for the whole school in an efficient manner will be a whole contract in iteself.18:47
mgedminaround here student's don't have individual timetables18:47
mgedminstudents are grouped into forms, and every form has its own timetable18:48
th1aRight!  We still mostly think in terms of industrial efficiency.18:48
th1aAlthough US schools are moving somewhat in your direction.18:49
mgedminalga: "form 5a" -- at least that's how my English teacher used to translate "klasÄ—"18:49
algaok ok, I know what the word means18:49
th1aI think "form" is more UK usage.18:49
th1aI mean, I don't really even know exactly what it means.18:49
mgedmindo you have an equivalent in the UK?18:49
mgedminerr, US18:49
th1aWell, I'm not sure...18:50
th1aSomeone would have to tell me!18:50
th1aI guess it sounds like our "teams."18:50
th1aHow many students in a form?18:51
mgedminabout 2018:51
th1aAh.  We have teams of 70 - 90 who share the same set of teachers.18:51
th1aI understand your confusion now.18:52
mgedminall 5th graders are split into several forms -- 5a, 5b, 5c ...18:52
mgedminand they all have the same set of classed by the same set of teachers18:52
th1aThere is a really great book which compares the structure of the US and German armies in WW2 which is helpful in understanding the differences in the way we organize social institutions.18:52
th1aEven though you're not German.18:53
mgedmingoing back to the system18:53
mgedminif a student is a member of a group18:53
mgedminthis adds a set of classes, all taught by the same teacher, to the student's schedule18:53
mgedminthe classes are all for the same subject (Mr. Hoffman's Math for 5th graders)18:54
th1aOh jeez.18:54
th1aSo *that's* how it works now?18:55
mgedminmore or less18:55
mgedminon a lower level there are just groups, timetables, and timetable composition18:55
th1aOK.  I suppose that clears up some of my confusion...18:55
mgedminon a higher level we have a school timetable view18:55
mgedminthat lets you conveniently edit a number of timetables for several groups at once18:56
mgedmincurrently if some 5th graders have Math by Mr. Hoffman on Mondays and Wednesdays, and other 5th graders have Math by Mr. Hoffman on Tuesdays and Fridays, that implies two different groups with two different timetables but with the same teacher18:57
th1aIt seemed like there was a conceptual gap in the process that I could never put my finger on.18:57
mgedminyou could have groups that have only 1 event in the timetable18:58
mgedminand then you have the greatest freedom to mix and match classes18:58
mgedminyou could have a 'Mr. Hoffman's Math on Monday P1' etc.18:58
th1aThat would be the case 99% of the time in US K-12 schools.18:58
th1aWell, secondary schoolos.18:58
mgedminI'm not sure if having that many classes would be convenient for the user, though18:58
th1aYour model works for primary in the US.18:59
th1aYeah, we'd have "forms" in primary.18:59
algawell, we tried to make the model as general as possible18:59
mgedminthe underlying primitives are pretty flexible19:00
th1aI know.  I'm sure we can work it out.19:00
th1aI'm just glad I've finally realized what has been confusing me about the scheduling process.19:00
mgedminyou do not have to follow this one-group-for-one-(teacher,subject,year,section)-tuple19:00
mgedminyou could just edit the pupil's individual timetables19:00
mgedminin every time slot you can have any activity that is described as a free-form string19:01
mgedminthe advantage of using timetable-composition is that you can generate both student's timetables and teacher's timetables from one set of data19:01
th1aGroups with one event on the timetable is the way to go.19:02
algaHm, the confusing thing is that all these internal groups are prominent in the UI19:03
algaMaybe we want to put all them into some special place?19:04
algaLike group 'Timetabling groups'19:04
algaWell, anyway, it is up to the sample data19:04
th1aWell, group organization is the other tough issue I'd like to make some headway on.19:05
th1aI do think we need to make a more treelike hierarchy of groups.19:06
th1aIt needs to be more navigable.19:06
algaWell, we had a tree in the wx client19:07
algawe can make a tree on the web, if needed19:07
algabut that's a separate story19:08
th1aYeah, but the underlying structure could be more of a coherent tree.19:08
algaOK, so the story could be 'Preparing a script for more coherent sample data'19:08
mgedminsince we haven't actually ever had the chance to administer schools, we would love to get any suggestions in this area19:08
th1aRight -- new story.19:09
algaTom, we have this generate-sampleschool script19:09
algaprobably you could take a dab on it yourself?19:09
algaIt just generates CSV files for people19:09
th1aWell... that's not quite my point.19:09
th1aThis is in reference to my "members of a group are limited to the members of the immediate parent group" idea.19:10
th1aSo the root group includes every application object in the system.19:10
mgedminthe root group usually only includes some other groups19:11
mgedminit is the root of the group tree19:11
th1aWell... I'm suggesting a change.19:11
mgedminoh, I started reading at the wrong place19:12
mgedminsorry ;)19:12
th1aNo problem.19:12
algahm, we could create a facet for a group that enforces this behaviour19:12
algaand maybe make a way of putting it on by default19:12
th1aYou're right that turning this off would be a good idea.19:13
th1aBeing able to.19:13
algathis way, root group and a couple of other groups would not have this constraint19:13
algabut you might make other groups, like19:13
th1aBut right now the structure is so free form and fluid that it imposes a big burden on the user to create a coherent structure.19:13
algaPupils/5 years/Group 319:13
algawhich would follow this pattern19:14
algaand Root would contain just Pupils, Teachers, Managers, Resources19:14
th1aWell... the administrator will need to be able to create other root level groups.19:15
th1aThat combine those things.19:15
algaok, that's the idea19:15
th1aSo objects will still exist in multiple points in the tree.19:15
algaExcept groups :-)19:16
algagroups form a tree, no loops19:16
algathough diamons are possible...19:16
algaa group cannot be a transitive member of itself19:17
algabut it can have several parent groups19:17
algaok, sorry for the digression19:17
algaSo, would it suffice if we made it a checkbox on the group admin page:  this group is a restricted group?19:18
th1aNo.  I'm thinking that this would be something that would be configured globally, probably in the config file.19:18
algaOK, if it is a CSV import file, we almost have it :-)19:19
algawhat if it is specified in the CSV import file, and the checkbox? :-)19:20
th1aWait, am I on crack or do we have a config file for the server?19:21
algawell, we do, but it only specifies things like ports, filenames, etc19:21
th1aOK.  So it wouldn't be appropriate to put it there.19:22
algawell, if we need a global config option, that's the place19:22
algabut I don't see how such an option would be useful19:22
th1aAnyhow... you're probably right.19:22
th1aAt least for the moment.  Make it a checkbox, with the restriction "on" by default.19:23
th1aExcept for the root group, etc.19:23
algaa checkbox on the admin page?  add page?19:25
algawhat about the sampleschool?  somebody has to reorder it to conform19:26
th1aOn the group's add page.  I guess the manager will have to be able to turn it on and off.19:26
th1aI'm getting the impression you want me to do it :-)  OK.19:26
algawill RESTive API be enough ;-) ?19:26
algano, I'm just probing what needs to be done19:27
th1aThat's not what I was thinking.  It will be less work to just enable it globally.19:27
th1aWhich would be ok with me.19:28
algaok, do you have and idea how should the sample data look?19:28
algaif you made those CSVs by hand, we copy the scheme in the script19:28
algaI no verb :)19:29
th1aWhat's the question?19:30
algaCan you produce an example of sample data so we could write a script that generates data like that?19:31
th1aI'd rather write a script myself.19:33
algaNow, the story in the proposal is wrong19:34
algawe were thinking of different things.19:34
th1aDo you want to take a crack at the changes or shall I?19:34
algathat's what I wanted to ask :-)19:35
th1aOK, so we've got "Setting super-groups" which seems ok.19:39
th1aAnd "Restricting group membership" which needs more detail.19:39
th1aAnd the recurring events requirement should pretty much dictate emulating the Mozilla interface.19:42
algaand the 'user timetable groups setup view'19:44
algainstead of 'single timetable edit view'19:45
th1aI think you should describe that one.19:47
-->thx1138 ( has joined #schooltool19:47
<--thx1138 ( has left #schooltool ("That's all folks")19:58
th1aI just sent back a draft.19:59
mgedminth1a: minor question20:08
mgedminin the "add new group" form20:08
mgedminwhere we display a list of super-groups for the new group20:08
mgedminshould the list include *all* groups, or just groups that are connected to the group tree?20:08
algath1a: I've just sent you the new story20:08
th1aalga: thanks20:08
th1amgedmin:  that's a good question.  20:09
mgedminuh oh20:10
th1aMentally, I'm just trying to force this whole thing into acting more like the ZMI.20:10
*mgedmin is suddenly afraid20:10
th1aSo in my imagination, you're creating a group when you've navigated to its parent.20:10
th1aRather than creating all the groups off the start page.20:10
mgedminmakes sense, I guess20:11
th1aI'm sorry I'm not that good at articulating these things without being prompted.20:11
th1aSo "add a sub-group" would become an option of all groups.20:12
th1aIncluding the root group.20:12
th1aAnd you wouldn't need a "select the parent group" choice.20:12
mgedminand then the super-groups list in the add form would automatically preselect the parent group?20:12
mgedminah, wouldn't need20:12
mgedminso you want to replace the story with a different one?20:12
mgedmininstead of adding a multiselection list in the "add group" form20:12
th1aThat's what I seem to be saying...20:12
mgedminadd "add" buttons in group views20:13
th1aYeah.  Why I didn't start with that, I don't know.20:13
mgedmincan someone of you (th1a, alga) update the proposal20:14
*mgedmin is off, coding20:14
th1aI will.20:14
alga(th1a, )20:14
th1aalga:  right back at ya.  there are a few time estimates that need to be set now.20:23
algais over IRC ok, or do you prefer modifications in the doc?20:25
th1aIRC is ok.20:27
th1aLet's get this done.20:27
algaline 69:  should not say 'and 9'20:29
algaSetting super-groups: still 0.5 day20:30
th1aOne reason I'm not an English teacher anymore  is that I hate checking over papers...20:30
algaRestricting group membership: should say it's an option at creation time and later20:30
th1aOh.  We aren't going to do it globally?20:31
algaI thought the final decision was that a checkbox is ok...20:31
th1aFor all folders, but with a checkbox for the manager?20:32
algaand on by default20:32
algabut not over REST20:32
th1aActually, once its off you'd have a hard time turning it back on.20:32
algabecause it will be a facet20:32
algathat was I didn't want to make it a global option20:33
algaunsatisfied constraints20:33
th1aWell, that's a good point.20:33
algaThat'll be 1 day20:33
th1aOne day if we do it by group?20:34
th1aWould it still be one day?20:34
th1aIf we changed it?20:34
algaIf we do it by group20:35
algaMy estimate is if we do it by group20:35
algaif global, I don't know20:35
th1aOK.  By group, then.20:35
algai think that's it20:36
algaOf course, we need to decide about "This is essentially a form to upload a csv or XML file.  We need to20:37
algadecide on and document the format for defining the timetable, however."20:37
algaI gather It's your job20:37
algawe can do whatever's most useful and friendly to the secretary20:38
th1aOK.  I'll work on that.  20:38
algais that it?20:39
th1aThink so...20:39
algaoh, yes.  Probably it makes sense to update the date in the header20:40
th1aOh.  I took the payment info out of this version.20:40
th1aPerhaps you'll want to add that back in before I send it to Mark :-)20:41
algahm, the rate is the same20:42
algafor 20 days20:43
algaso sum = days / 20 * rate20:43
th1aI've got 31 days now.20:45
algaexcept the proposal talks about 2 milestones, so you'll have to add that too20:47
algabut the sum there is incorrenct in the latest version, afaic20:48
th1aHow about if I send you what I've got now.20:48
th1aOn its way.20:49
th1aOK here's a slightly unrelated problem.20:53
th1aBrian's got the SchoolBell .deb in the channel to get into Debian, and now he's concerned about getting SchoolTool in there too before Sarge comes out.20:54
th1aI might add that I'm completely baffled by all this.20:54
th1aAnyhow, we need to make a tarball of SchoolTool.20:54
th1aWhich probably should just be SchoolBell before we changed the text and logo.20:55
th1aSo I guess we just need to tell Brian what to take out of Subversion.20:56
mgedminI'm not sure I understand the problem20:59
th1aI'm not sure that I do either. 20:59
th1aI'll forward his email.20:59
mgedminwhatever Brian did to SchoolBell that he took from the schoolbell branch in the repository21:00
mgedminhe could do to SchoolTool from the main trunk in the repository21:00
mgedminunless we want a specific snapshot21:00
th1aRight. Can he take it at the end of the day today?21:00
mgedminthat more-or-less corresponds to schoolbell m0.721:00
mgedminit depends on what he wants21:01
<--thisfred has quit ("Farewell, cruel channel...")21:01
mgedminwe have already started some work on m821:01
th1aOops I might have sent you the wrong thing.21:01
mgedminperhaps it would be better to package m7 without our new changes made this week21:01
th1aAnyhow, it looks like we just want a working version of SchoolTool to get the package into Sarge.21:01
algawell, we're not far from m7, so it is fine21:02
algaTom, "REST method that will create a new group21:15
algawhich is a sub-group of the current one"21:15
algawe think REST does not need to be modified21:15
th1aWell... OK.21:16
algawhat might be modified is wx client, but isn't it abandonned?21:17
algado you mind if I reformat your acceptance criteria into bulleted lists?21:18
th1aGo ahead.21:18
algaTom, re. deletion21:25
alga* Deletion should be a link from the start page for managers.21:25
alga* The interface should allow the user to search for an object and then21:25
alga  make clear that deletion is only for objects which were mistakenly21:25
alga  created and not people, groups or resources that are no longer active21:25
alga  in the school.21:25
algaWhy search?  Why not [delete] on the info page or checkboxes on the index?21:26
algathere would be a fat warning anyway21:26
th1aMy thinking was that I don't want people looking at it all the time, 21:26
th1aand there will eventually be a "deactivate" button or something on the info page.21:27
th1aWe really don't want people doing this.21:27
algabut searching is error-prone21:27
algaespecially if we are deleting dupes21:27
th1aWell... 21:28
th1aIt is not a good thing either way.21:28
algaIf you can walk up to the objects and figure out which one you want to keep, you're less likely to delete the good one21:29
th1aWe could display all the data on the object's information page on the confirmation.21:29
th1aI see your point, but I'd rather have a good confirmation page, I think.21:30
th1aI don't want that option sitting in front of people all the time.21:30
th1aIf someone gets in the habit of deleting people instead of deactivating them, it is a BIG DISASTER.21:31
th1aWhereas deleting one person is a mistake.21:31
th1aDeleting the wrong person, that is.21:32
algahm, what about specifying the path on an object you want to delete?21:38
algaa bit lowlevel, just like the deletion itself21:38
th1aI don't think that'd be less confusing.21:44
algathat's HARD21:44
algajust like you want deletion to be21:44
algathe user has to find out the path he wants to delete, copy and paste it21:44
algaand then to confirm that it is really what he wants to delete.21:45
th1aYeah, but it is hard in the wrong way, I think.21:45
algaTom, more problems21:50
algaComposing a personal calendar21:50
th1aYes...  Better to find them now.21:50
algado we want it editable?21:50
algaif I have a right to edit some groups calendar, should it be editable in the same combo view?21:51
th1aI would think in the combo view you only can edit your personal events.21:51
th1aIf you want to edit group events, go there.21:51
th1aThat seems good enough for now.21:52
algait simplifies life for us, anyway.21:52
th1aIt seems like the alternative would get complicated.21:52
algayou mean for the user?21:53
th1aAnd it might be error-prone for users without a lot of attention to the UI21:53
algaperhaps you're right21:53
algawe'll find out if it's really needed once we start using it ourselves :-)21:53
algaNext thing:21:53
alga* This should be controllable via the REST interface, too.21:53
th1aYou can scratch your own itch, if so ;-)21:54
algaBut we don't do any composition in REST (iCal) views21:54
th1aI guess that doesn't necessarily make any sense.21:54
th1aI kinda complsively write that so I don't forget.21:54
th1aCut it out.21:54
algaOTOH, it is a piece of information on a person that can be changed21:55
algaperhaps it's not nice making it changeable only through the web21:55
th1aThere is virtue in being strict about that.21:55
algaI'm confused21:55
th1aSo am I, obviously.21:56
th1aIt is hard to think of a use case for doing that via REST.21:56
algaset that property to all users with a script21:56
th1aBut generally speaking, we want you to be able to do everything via REST that you can do through the web.21:57
th1aOK, you talked me back into keeping it!21:57
th1aI'm hungry, and easily persuaded.21:57
algahee hee :-)21:57
th1aWhatever will let me go get lunch.21:57
algaok, on the REST level we'll do it as a new kind of relationship21:58
algaone more use for our so-solidli-built primitives21:58
algayou can go if you need to, I'll send you my version once I'm done22:01
th1aAh.  Now bskahan has me on Jabber.  We should have both your proposals finalized at the same time.22:02
algado you prefer jabber?22:04
algamy id is, but I seem to have forgotten the password :-)22:04
th1aNot really.  I'd rather do as much as we can "in public."22:05
algaICQ UIN 13932352222:05
th1aDon't have ICQ.22:05
th1aAIM, Jabber, IRC.22:05
mgedminspeaking about public -- are these IRC conversations logged anywhere?22:05
th1aAh... I haven't gotten my logbot running since I installed ubuntu. because I can't get Java going. 22:06
th1arabidbt: help22:07
rabidbtth1a: (help [<plugin>] <command>) -- This command gives a useful description of what <command> does. <plugin> is only necessary if the command is in more than one plugin.22:07
th1aI'm not sure if he's logging somewhere...22:07
algarabidbt: where are you logging to?22:08
th1aOK.  I'm going out for lunch.22:09
th1aThanks guys.  It's been productive, if somewhat painful.22:09
th1aProbably more painful for you.22:10
th1aTrying to figure out what I'm talking about.22:10
algaIt's 22:10 here22:11
algaso we're going home soon22:11
mgedminth1a: when you're back from lunch, can you review the "default groups" story?22:15
mgedminthere is now a button in the group's member list view22:15
mgedminwhen you click it, you get an "add group (a subgroup of This Group)" form22:15
mgedminwhen you submit it, a new group is created and added as a subgroup of the original group22:15
*mgedmin meant review the _implementation_ of the "default groups" story22:16
mgedminwell, me did not mean exactly that -- I'm not asking you to review the source code changes22:16
mgedminbut you know what I mean22:16
mgedmina manual acceptance test22:17
---Disconnected ().22:48
**** ENDING LOGGING AT Thu Oct 7 22:48:46 2004

Generated by 2.15.1 by Marius Gedminas - find it at!