IRC log of #schooltool for Tuesday, 2004-10-05

**** BEGIN LOGGING AT Tue Oct 5 11:40:53 2004
-->You are now talking on #schooltool11:40
-->gintas ( has joined #schooltool12:26
-->gregweb ( has joined #schooltool12:26
<--gintas has quit (Read error: 60 (Operation timed out))13:01
mgedminSteveA: have you got a spare minute?13:03
SteveAI will have in a bit13:04
mgedminwe're refactoring roles and relationship types in schooltool to be ordinary objects rather than interfaces extending ISpecificURI13:06
mgedminand we stumbled upon a WHUI: role/relationship type hierarchy13:06
mgedminI'm now wondering whether that hierarchy is necessary13:07
mgedminsince the ISpecificURI design originally came from you13:07
mgedminI want to ask whether you have any use cases for specializing existing roles/relationship types13:08
SteveAflat *is* better than nested13:39
mgedminso, no use cases then13:43
SteveAI have not been using schooltool personally or on any projects13:51
SteveAso, I think you and tom know about most of the use-cases there are13:51
mgedminback when ISpecificURIs were designed no one had been using schooltool, and all use cases were fictional14:10
mgedminI was wondering whether you had any ideas about a feature like this being necessary for extensibility or whatnot14:11
mgedminI just want to rip out a feature that was never used and that would make the code simpler if removed14:11
SteveAit may come in handy when you want to customize a third-party add-on14:11
SteveAthat defines relationship types14:12
SteveAbut, moving to zope3 with zcml might provide good hooks too, in the overriding of zcml14:12
SteveAwho knows?14:12
SteveAbut, anyway, whui is whui14:12
mgedminadding hierarchy is not that difficulyt14:21
mgedminthe only question was whether to do that now, or postpone it until we actually need it14:21
mgedminI postponed it14:21
-->gintas ( has joined #schooltool14:27
-->thisfred ( has joined #schooltool15:06
<--Voff_ has quit (Remote closed the connection)15:06
-->Voff_ ( has joined #schooltool15:14
-->gregweb_ ( has joined #schooltool15:42
<--gregweb has quit (Read error: 110 (Connection timed out))15:51
<--Voff_ has quit ()15:52
-->th1a ( has joined #schooltool16:20
th1aGood morning folks.16:22
<--gintas has quit (Read error: 54 (Connection reset by peer))16:22
-->gintas ( has joined #schooltool16:23
-->pips ( has joined #schooltool16:29
---sabdfl is now known as bradb_16:39
mgedmingood afternoon ;)16:50
mgedminbe back in ~3 hours16:50
---Disconnected ().16:50
**** ENDING LOGGING AT Tue Oct 5 16:50:51 2004
**** BEGIN LOGGING AT Tue Oct 5 20:19:55 2004
-->You are now talking on #schooltool20:19
th1aalga & mgedmin:  I need some feedback on acceptance tests.20:22
th1aHere's what I put for default groups:20:22
th1aThe HTML forms for application object creation will include checklists of relevant groups.  All new objects will be transparently (via REST or browser) added to groups that correspond to their type (e.g., resources will be added to the resource group).  20:22
mgedmindo you mean a bunch of check boxes?20:27
mgedminor did you mean a drop-down list?20:27
th1aCheck boxes.20:27
mgedminhow do we know which groups are relevant?20:28
th1aSince there will pretty commonly be multiple groups.20:28
th1aWell... that's a good question.20:28
mgedminor do you mean that there will be checkboxes for all groups, and relevant groups will be those that the user checks?20:28
th1aIdeally when a person is added the user won't be presented a list of groups like "projectors" and "classrooms."20:29
mgedminactually we originally imagined a group tree with persons as group members20:30
mgedminwe did not think that creating groups for resources would be common20:30
mgedminnow we do have a special 'locations' group that contains all resources which are classroom, halls etc.20:31
mgedminit is used only to provide a drop-down list for locations in calendar events20:31
th1aYeah.  We probably need to have more specially defined groups.20:33
mgedminwe have facets20:34
mgedmine.g. we have a TeacherGroup facet20:34
mgedminwhen you put this facet on a group20:34
mgedminthen all persons added to this group become teachers20:35
mgedminthat is, get a teacher facet added to their data20:35
th1aIs that how locations work, too?20:35
mgedminwell, no20:35
th1aThat's just a group.20:35
mgedminit's a group with a special name20:35
mgedminactually, the teachers group is also a group with a special name20:36
mgedminwhen we authorize operations to users20:36
mgedminif we want to see whether a user has teacher privileges20:36
mgedminwe check if he is a member of /groups/teachers20:37
mgedminfacets are primarily for storing additional information20:37
*mgedmin is thinking20:38
mgedminI'm not sure if it would be a good idea to say "this person is a teacher iff there's a teacher facet added to the person"20:40
mgedminI think people can manage their own facets, so it would be a security problem20:41
th1aPerhaps when groups are created the user should define what types and groups can be members of the groups.20:41
algano they don't!20:42
algaat least they shouldn't20:42
<--bskahan has quit (Read error: 104 (Connection reset by peer))20:42
th1aWhy not?20:42
algaa student shouldn't be able to activate or deactivate his student info facet20:43
algaif he's a student, he must have this facet20:43
th1aOh, don't manage their own facets.20:43
mgedminI think alga was refering to my statement, not yours20:43
algaand the system should enforce that20:43
th1aI agree with alga.20:43
th1aYou can't manage your own facets.20:43
-->bskahan ( has joined #schooltool20:43
algaright, sorry for confusion20:43
mgedminyes, I was mistaken\20:45
algawell, conceptually facets are a system thing20:45
algaand those special facets on groups are the canonical way to add them to objects20:46
algath1a: we only have 3 kinds of objects currenly20:47
mgedminI've an idea20:47
algabut perhaps it is a good idea to limit membership to only objects having some special facet20:47
mgedminwe may have two trees: a tree of person groups, and a tree of resource groups20:48
algasay, we want a group that only teachers can be members of.20:48
mgedminI do not think that we ever want a single group to contain both persons and resources20:48
algaI agree20:48
th1aThat's probably the case, but it would be helpful to enforce limits on which groups could be added to a given group.20:50
th1aYou might have a group which you intend to only include teachers.20:50
bskahanand a way to associate a group of resources with a group of people20:50
th1aPreventing the user from accidentally adding a student to that group would be helpful.20:50
mgedminthere are different kinds of relationships20:51
mgedmincurrently you can write a plugin for schooltool, register a new relationship kind20:51
mgedminand then say that resource "Room 101" is a venue of "Group 3c"20:51
mgedminnow we have two kinds of relationships that come out of the box: membership and teaching (you can associate a group with a teacher for that group)20:52
mgedminI'd like to go back to the start of this discussion20:54
mgedmin<th1a> The HTML forms for application object creation will include checklists of relevant groups.  All new objects will be transparently (via REST or browser) added to groups that correspond to their type (e.g., resources will be added to the resource group).  20:54
mgedminWhy do we need a resource group?20:54
mgedminWe have a container (/resources) that is sort of like a group20:54
th1aIt is a little redundant.20:54
mgedminonly you cannot add arbitrary things to it20:54
th1aBut we need some default group for navigational purposes.20:54
mgedminand you cannot remove things from it without also removing them from the whole system20:55
mgedminwe will give access to /resources in the web interface20:55
mgedminI think the UI can be made to be very similair to the UI of a group20:55
th1aIf you have a better idea for default groups, I'm game.20:55
mgedminmy idea is to simply implement the story that we already have -- provide nice UI for /groups, /persons, and /resources20:56
mgedminthey are already very like groups, and they contain all objects of the appropriate kind20:56
th1aSo not worry about a default group but offer checkboxes of groups to add the object to when you create it.20:56
th1aOtherwise is the form of the acceptance test what you had in mind?20:58
mgedminmore or less, yes20:58
th1aWhat do you need more of?20:58
mgedminremoving the appropriate default group clause ;)20:59
mgedminand either removing the "relevant groups" part or defining what groups are relevant20:59
mgedminI suppose we could add a new story for adding group types, and once we have them only display certain groups in the add form20:59
mgedminor we could only show groups that are connected to the group tree21:00
th1aIt seems like a good excercise.  Clarified some issues.21:00
mgedmin(the "locations" group which contains resources is not connected to the tree)21:00
mgedminalso, I'm now wondering how many groups there can be21:00
th1aI think all the groups should be attached to the tree.  It is extremely confusing to not be able to browse to a group.21:01
mgedminif there can be hundreds of them, then maybe multi-selection list is better than hundreds of checkboxes21:01
mgedminfrom a purely UI perspective21:01
th1aI do think that defining the members which groups can be added to a group is a good idea.21:02
th1aThat cuts down the list of relevant groups very well.21:02
th1aAnd prevents mistakes.21:02
mgedminthat sounds like a new story21:02
mgedminand it is not very clear to me21:03
mgedmincurrently we often determine what a person is by looking at which groups he belongs to21:03
th1aIt is a little hard to word...21:03
mgedminthose extra facets (teacher facet, student facet) are a side efect of belonging to a certain group21:03
mgedminwhen you add a person to a group, he gets an extra information facet21:04
mgedminwhen you remove a person from a group, the extra info facet is deactivated21:04
th1aSo I would be able to create a group "discipline team" and designate that only members of the teacher group could be part of the discipline team.21:04
th1aOr I could make a group "remedial reading" that could only include members of my 3rd period class.21:05
mgedminI think the simplest way to do that now would be to write a plugin21:05
mgedminlisten on "member added" events and veto them when the member does not match some criteria21:05
mgedminat least that's what we thought events could be used for21:05
th1aI'll write the story.21:05
*mgedmin is talking about internal program events, not calendar events21:05
mgedminif we want to enable users to set such limitations on group membership21:06
th1aHave you thought more about the idea of moving the teacher role into a plugin?21:06
mgedmina bit, yes21:06
th1aI think it is important to do those group membership limitations.21:06
th1aMakes the UI easier in the long run.21:07
mgedminif we want to enable users to set such limitations on group membership, without writing extra code, then we need to think about some UI to describe the criteria21:07
th1aYou know which groups a person can be added to and vice versa.21:07
mgedminor perhaps you need to think about some UI ;-)21:07
th1aI think you'd just select which groups' members could be added from a list of all the groups.21:09
th1aDo you think moving the teacher role to a plugin is worth doing?21:20
mgedminyes, but I'm not sure it's worth doing right now21:23
mgedminbut maybe it is -- schoolbell does not need teachers21:23
mgedminI guess I'll dwell upon it a bit more21:23
th1aI would like to have a well documented example plugin soon regardless.21:24
-->pips ( has joined #schooltool21:42
---pips is now known as pips_away21:43
th1aPerhaps it makes more sense to just say that the membership of a group is limited to members of its immediate parent.21:55
th1aThat doesn't seem quite right...21:57
th1aWell, the interface is probably more complicated that I was giving it credit for.21:59
th1aMaybe it needs to be more of an interactive tree.21:59
th1aUg.  I'm confusing myself.22:00
algawell, see you tomorrow22:01
th1aOK.  I'll work this out.22:01
algaI'm finished with the schoolbell translation, btw22:01
th1aExcellent.  22:01
algajust add "domain schoolbell" to schooltool.conf22:01
th1aYou guys aren't planning on starting repeating events tomorrow, are you?22:01
algaI've already started reading/making sense of the iCalendar spec22:02
algaIt would be good to figure out what we want done and how it should look22:02
algawell, tomorrow22:03
<--alga has quit ("leaving")22:03
mgedminsee you22:04
---Disconnected ().22:04
**** ENDING LOGGING AT Tue Oct 5 22:04:45 2004

Generated by 2.15.1 by Marius Gedminas - find it at!