IRC log of #schooltool for Monday, 2007-01-29

*** jelkner has joined #schooltool00:03
*** Aiste has quit IRC00:50
*** jinty has quit IRC01:02
*** kjcole has joined #schooltool03:47
*** kjcole has quit IRC03:51
*** Fujitsu has quit IRC04:33
*** Fujitsu has joined #schooltool04:39
*** Fujitsu has quit IRC04:55
*** Fujitsu has joined #schooltool04:57
*** Bhaskar has joined #schooltool05:07
*** Bhaskar has quit IRC05:51
*** Bhaskar has joined #schooltool06:06
*** shubacka has joined #schooltool09:01
Bhaskarhow can we make schooltool easier installation for ordinary people, can anyone suggest me?09:03
FujitsuYour best bet is probably to wait until Schooltool is in a production-ready state, thus having a proper installation/packaging mechanism.09:07
*** Aiste has joined #schooltool10:41
*** lisppaste5 has quit IRC11:06
*** lisppaste5 has joined #schooltool11:10
*** thisfred has joined #schooltool11:56
*** ignas has joined #schooltool12:59
*** Bhaskar has quit IRC13:10
*** vidasp has joined #schooltool13:19
*** Fujitsu has quit IRC14:21
*** Fujitsu has joined #schooltool14:24
*** kitblake has left #schooltool14:44
*** jinty has joined #schooltool15:20
*** vidasp has quit IRC15:48
*** alga has joined #SchoolTool16:07
*** th1a_ is now known as th1a16:18
th1ahi ignas16:30
ignascongratulations ;)16:30
th1aNo jfroche?16:32
ignasnope, can't see him16:32
th1aHow'd the meeting go on Friday?16:32
ignasi don't really know16:33
th1aDid you talk to them on Skype?16:33
ignasall i know is that schooltool was not very prepared for a new person class at that moment16:33
*** jfroche has joined #schooltool16:33
th1aAha.  Hi jfroche.16:33
ignasand now it should work i think (i have commited/merged a lot of stuff on friday)16:33
jfrochehello there16:33
th1aI was just asking about how it went on Friday.16:34
jfrochesorry, have trouble with my hood16:34
jfrocheth1a: went ok16:34
ignasth1a: so lyceum branch has an example of schoolbell person subclass being used as the person16:34
jfrochedid you get info from them ?16:35
th1aAs opposed to using demographics?16:35
ignasth1a: yes16:35
ignasth1a: you can still use demographics person, just that you'll have to inherit from demographics person then ...16:35
ignasor you can use facilities defined in demographics to create a person of your own16:35
jfrocheignas: do i have to hardcode my class in the factory or i have to create a new factory ?16:36
ignasnew factory16:36
ignasand register it in overrides.zcml16:37
ignasso that it would overlay the old factory16:37
ignasno evolution though16:37
ignasso you sohuld start with a fresh database16:37
jfrochesaw it's on trunk now16:37
ignasselecting person class is something that should be done when starting schooltool for the first time16:37
ignasyes it's on trunk16:38
ignastrunk still uses demographics by default i think16:38
ignasbut functional tests for all modules are demographics free16:38
th1aignas: selecting in ZCML?16:38
ignasth1a: yes, if all you want is to select demograhpics person or simple person16:38
ignasif you want a custom person you'll have to write some python code16:39
th1aSo how'd it go overall jfroche?16:39
jfrocheth1a: inherit from Person is something that we missed on friday16:39
ignasthe only way they could try out their changes was in an unpluggable manner16:40
ignaschanging the real person, and modifying the real authentication utility16:41
jfrocheso we had a quick look at the existing z3 plug to ldap16:41
jfrocheand i showed Ian to install schooltool on a Apple computer (from scratch)16:41
jfrocheth1a: did you get news from him after the meeting ?16:42
th1aI don't think so, but I had a large pile of email, so I might have missed it.16:42
jfrocheth1a: i gave a draft of the 2007 plan to Nicolas but i don't have news16:43
jfrochedo you want the draft like that ?16:43
jfrocheand try to ask him to push him ?16:43
th1aI'd like to take a look at it, sure.16:43
ignasjfroche: send a copy to me as well16:44
th1aHow does the existing Z3 LDAP support look?16:46
jfrocheit seems good but i don't see clearly how to plug it into schooltool yet16:46
th1aDid you get the feeling they'll have the technical chops to pull this off?16:47
jfrochei can do it quickly by inheriting from Person and changing authentication there but i feel like this is not the right place to code authentication16:47
th1aRight, but getting it working "incorrectly" is a good proof of concept.16:48
ignasjfroche: why not just override the authentication utility ?16:49
jfrocheyep i think that's what we will do now that there is a nice way to inherit from Person16:49
*** mgedmin has joined #schooltool16:49
jfrocheignas: for the moment user password is in the Person16:50
ignasjfroche: just don't use it :)16:50
jfrochewhat should i do with things like setPassword ?16:50
ignasauthentication code can do whatever it wants :)16:50
ignasremove them from the standard person interface16:50
jfrochethen we don't need to inherit from Person anymore16:51
ignasmake the password setting view specialize on the set password interface instead of IPerson16:51
ignasjfroche: if you don't want to have all those custom traversers defined for IPerson16:51
ignasthen - yes16:51
ignasbut i'd rather not16:51
ignasof course you might just write a new class16:52
ignasand make it implement IPerson16:52
ignasor what's left of it16:52
ignasand copy+paste the zcml class declaration16:52
jfrochemerges will become nightmarres no ?16:53
ignasnot any more than usual16:53
ignasas long as you'll do it cleanly16:53
ignasfirst - refactor the person so that only things that are really essential are left in "IPerson"16:54
ignasthen add a module for ldap integration16:54
ignaswith it's own person16:54
ignasand test it live with a modified site.zcml, or in functional tests (with a separate layer)16:54
jfrocheignas: can i make it so that i just inherit from Person in a new ldap package, use this one and just don't write an empty method for setPasswords &co ?16:56
th1aUltimately, would something like this be able to be set in schooltool.conf -- can conditional ZCML work off declarations in the conf file?16:56
ignasjfroche: well, you can do that, but i won't let you merge it to trunk :)16:56
jfrocheignas: :)16:57
ignasth1a: hmm, difficult to do, but possible, the problem is that Person specific functionality lives not in plain zcml but in overrides16:57
ignasth1a: so a setting would have to dispatch between some zcml files16:58
ignasshould talk to jinty about that16:58
ignasas that affects deployment as well16:58
th1aJust to be clear here, it isn't jfroche's job to implement this, but I guess we do have some responsibility to provide them a clean path to implementing this.16:58
th1aOtherwise we'll just get something we can't use.16:58
th1a(by "this" I mean LDAP support)16:58
ignasth1a: either we work on making it easy to integrate, or we work on integrating it ourselves16:59
jfrocheth1a: i got a mail from Ian saying: "Actual schooltool LDAP authentication implementation will be done at the16:59
jfrochePyCon sprint, provided the promised code changes in schooltool itself16:59
jfrocheto ease replacing of that PersonFactory have been completed.16:59
ignasth1a: i am not sure which one is easier16:59
* jinty thinks16:59
ignasseems like pycon is going to be fun :)16:59
jfrocheth1a: no need for hotel, we won't sleep :)17:00
th1aI hope I haven't conned myself into paying them to have us do the work ;-)17:00
th1aIt might be helpufl to define the use case for the sys admin who wants to use LDAP.17:01
jfrocheth1a: if i understood it correctly, Jens won't be at Pycon17:01
jfrochebut he will be available online17:02
th1aSo according to what ignas said earlier, LDAP support or not will, at least for now, need to be set in the initial configuration of a SchoolTool instance.17:03
th1aWe're not even going to worry about changing on the fly (yet).17:03
th1aIn the future, whould we need more than some kind of auto-evolution script to make the changes dynamically?17:04
th1aI mean, it is not impossible forever?17:04
ignasth1a: it is possible,  but very expensive17:05
ignascan't tell for sure without real usecases17:05
th1aWell, the use case basically is, "I've been using SchoolTool for 2 years, and now my school has an LDAP server I need to connect to."17:06
th1aNow, one thing to take into account is that the id's in the LDAP server might need to be mapped to the existing SchoolTool id's.17:06
ignasth1a: have you seen any systems that can do that ?17:07
th1a(note that I'm not saying we need to be able to do all this smoothly now, but I'd like to have a path to get there)17:07
ignasi mean - shutdown, change configuration, start up17:07
ignasand ta-da - you have ldap integration17:07
th1aPerhaps I have overly high expectations.17:07
th1ajfroche: How does it work in Zope2?17:08
th1aYou replace the user folder, essentially, right?17:08
jfrocheth1a: changing data storage on Person infos from zodb to ldap isn't that smooth17:08
jfrocheth1a: yes but everything has to be in ldap and you have to do the mapping to some of the informations17:09
mgedminif you replaced the user folder in zope 2, I'd expect you to also lose all the information about all the users in that folder17:09
th1amgedmin: Yes, that makes sense.17:09
th1aOK, so lets only worry about the "starting with LDAP" case.17:10
th1aOne question is whether or not the LDAP module is part of the standard distribution of SchoolTool and you turn it on with a switch,17:11
th1aor if it is an add-on.17:11
jintyI think that in general a zcml include should not do irreversible things by just merely being included in zcml17:12
ignasjinty: well, person class switch is a nasty thing :/17:12
jintyzcml include should just make functionality available which can be configured in the config file17:12
ignasjinty: and i have yet to  think of a way to make it work better, without spending too much time on it17:13
jintyfor example, skins17:13
ignasit effectivelly changes the class that will be used when creating a person17:13
jintyI'm more just saying how I would like things to work, from a sysadmin point of view17:13
ignasand you can't switch all the old persons from one class to another ...17:13
jfrocheth1a: ldap support is a really good advantage (mainly for big schools/universities) but question is "do we have to set our priorities on giving a path for ldap support NOW ?"17:13
ignasjinty: turning on/off timetables, courses, sections etc through zcml would do nasty things too17:14
jintyyeah, I'd imagine the impelemtation is difficult17:14
th1ajfroche: Well, I didn't expect that this would turn things so upside-down.17:14
jintybut I think we need to put in place a policy for what add-ins should and shouldn't do17:14
ignasjfroche: a nice advantage is something that works, not just integrates :)17:15
ignasmy point being - ldap is like demograhpics17:15
ignasyou mus include it on first startup and then it works17:15
ignasthat won't take away too much resources from our side17:16
ignasand will work for people who need ldap integration17:16
jintyignas: perhaps we can have 2 classes of add ins, one which must be there at first startup, and one which can be turned-on/turned-off17:16
ignasjinty: hmm, i don't think we have any addons that can be safely turned off, especially with their complex relationships17:17
ignasnotes and commendations might be "switchable off"17:17
* jinty want's skins to be add-ins, and to be selectable through the UI17:18
th1aCan LDAP and non-LDAP persons co-exist on one instance.17:18
ignasth1a: I am afraid they can, but that is a side effect17:18
jfrocheit would be dangerous17:18
th1aIt is probably a feature in some cases.17:18
ignasth1a: you can have Person A as a demographics person, and persons B, C, D as LDAP persons17:18
ignasth1a: it is dangerous, unstable, and it can set your cat on fire17:19
ignasyou can't assume that LDAP person will have same attributes as a different kind of person17:19
ignasone of them has middle name, another one doesn't17:19
th1aIt is times like this I think all this stuff about component architecture and interfaces is a bunch of crap.17:20
ignashow do you perform a "Search" on Persons ?17:20
ignasth1a: you don't have to deal with the code ;) so i don't think there is much use for you out of the CA17:20
th1aIsn't the point of an interface that we define IPerson and then the LDAP person has to provide that?17:21
ignasyes and no17:21
ignasIPerson means - you have timetables, calendars can be in groups, courses etc.17:22
ignasbut PersonContainer still has to display a useful table of persons17:22
ignasnot a largest common denominator (a.k.a. IPerson)17:22
ignasbut something school specific17:22
ignaswhat is the point of a custom person if it looks all the same in the UI :)17:23
th1aI want an LDAP person to look the same as a ZODB person.17:23
ignasand how does ZODB person looks like ?17:24
ignaslike a schoolbell person, Demographics person, lyceum person, or Belgium Person>?17:24
th1aThere are two separate issues here.17:24
th1a1) authentication17:25
th1a2) other directory data.17:25
th1aI think we need to make sure to keep them separate.17:25
jfrocheth1a: Ian would like both of them17:25
th1aA Person that uses LDAP instead of ZODB for authentication should otherwise act exactly the same as other Persons.17:26
ignasWhen a new person is being authenticated (one that has no object in ZODB) authentication utility must create a new object. And yes a plain Demographics person can be used.17:26
th1aIf you want to add additional data about a person from LDAP, that's your general exensibility case.17:26
ignasbut i don't think anyone would do that17:26
th1aYou need to make a custom person that matches your LDAP schema.17:27
ignasmost probably you will want to17:27
ignasnot that you must17:27
ignasso yes, it is possible to use LDAP for authentication only17:27
ignasand in such case - you could turn off LDAP17:27
ignasand it would work17:27
ignason the other hand - if you want data to be synchronized with LDAP - you will need a new person class17:28
th1aI'd like to think you could add your LDAP data into a custom annotation rather than subclassing.17:28
ignasth1a: if you don't want to do anything with it, except for viewing it on a per person basis, then yes you could17:29
th1aOK, perhaps this is a basic question then...17:29
th1aWhat do we expect a generic PersonContainer table to be able to access?17:29
th1aAnswer:  not necessarily much.17:30
ignasAnswer - columns defined in PersonFactoryUtility17:30
th1aOr is that irrelevant?17:30
ignasas there is only 1 FactoryUtility active per application17:31
ignasthe Generic PersonContainer list is very universal17:31
ignasbut if you suddently want to switch among more than one PersonFactory - it becomes tricky17:31
ignasbut still workable out17:31
ignasok, not very workable out17:32
ignassame person listing code is used in a lot of places17:32
ignasAttendance, relationships, person lists17:32
th1aShouldn't the person listing code be limited to what's in IPerson?17:32
th1aThen it can handle any IPerson?17:32
ignasif we don't care about school needs, or about programming time (not showing relevant information or overriding a lot of views)17:33
th1aBut viewing a list of persons is perhaps not as common as it seems.17:34
jfrocheIPerson is used in a lot lot of places17:34
ignasattendance, group members, section members, selecting instructor17:34
th1aYes, Persons are obviously important to a school ;-)17:35
ignasall of these places deal with PersonClass (it's Student information System) :)17:35
th1aI'm saying you don't need to access all the particulars of each school's demographic schema just to make a list of students.17:36
ignasyes, you don't have to17:36
ignasi still don't understand the usecase17:37
ignashaving authentication and full ldap integration separately -- this one is doable17:37
ignasswitching between full ldap integration and no ldap integration -- this one is expensive17:38
th1aOK.  Forget switching.17:38
th1aI'd like to see two things:17:39
th1a* you can add LDAP authentication to any kind of Persons with minimal fuss.17:39
th1aActually, that's all I care about personally.17:40
jfrochebut Ian wants more17:40
th1aNow, what he wants to store isn't really demographics at all, right?  But assessment data.17:40
ignasth1a: doable, when do you want it ?17:41
th1aignas: I'm paying Ian's guys to do it this month.  That's the whole idea ;-)17:41
th1aBut clearing the path for them is a good idea.17:41
jfrochehe wants demographics data inside ldap too as far as i understood17:43
ignashow much clearing do we want ?17:43
ignasth1a: one can think of 90% of the whole as "clearing"17:43
th1aYes, I suppose most of the job is rearranging things rather deep in SchoolTool.17:44
ignasciting fowler - "refactor to make implementation of the feature easy, and then implement the feature"17:44
jfrochehe wants demographics info in ldap but also security related info such as groups17:44
ignasth1a: not very deep, but very precise ...17:44
th1aWell, the most sane way to approach this might be to just accept we're all going to have to do this together at PyCon.17:45
ignashmm :/17:46
ignasthe only problem i have with this is that it's not the direction i need ...17:46
ignasi mean having a custom person - i needed it anyway, so the question was - how soon to do it17:47
ignastranslations - i need them anyway17:47
ignasperson group information stored in ldap - ?17:47
th1aBeyond that, getting back to where we started, making LDAP do this stuff isn't nearly as hard as figuring out how to make this plug/unplug with SchoolTool.17:49
ignasi hope they are fast learners :)17:49
th1aI guess one additional piece of context is that I personally only really care about the basic authentication step.17:49
jfrocheth1a: i can play with authentication inside ldap with Jens remotly17:51
th1aTo me it would be ok if we ended up with some LDAP-SchoolTool modules that required some manual ZCML jockeying to get working.17:51
*** thisfred has quit IRC17:52
th1aThat had to be installed before anything else was done.17:52
th1aDoes that sound reasonable?17:53
th1aIn terms of keeping this task sane?17:53
ignasyes, sounds sane17:53
jfrocheyep that's good17:54
* ignas warns that he is going to be very egoistic when negotiations about the scope of the task will begin in pycon17:54
ignasbut egoistic17:54
th1aWe should definitely have the scope of the task very clearly defined by then.17:54
th1aBefore PyCon.17:55
*** aelkner has joined #schooltool17:56
jfrocheth1a: i can look at ldap authentication from now on with Jens or i wait for pycon ?17:56
th1aWell, keeping a conversation going about the design is important.17:57
th1aI don't necessarily want you writing a lot of code that only applies to this.17:59
ignascommit at least something :) so i could comment on how to plug it into schooltool conveniently17:59
ignasthe first implementation can be hardcoded in a branch17:59
th1aDo we need an LDAP branch?17:59
jfrocheyep i ll do it in a ldap branch17:59
jfrochei do it dirty, ignas make it look clean :)17:59
ignasnope :P18:00
ignasi will give you hints18:00
ignasand you will make it clean18:00
th1aOTOH, jfroche, if working on this is giving you a good start on getting deeper into SchoolTool, you can keep going for that reason.18:00
jfrocheignas: sure18:00
jfrocheth1a: yep it could help18:01
jfrocheand could help Jens also18:01
th1aIf the collaborative angle is giving you momentum, don't kill it.18:02
th1aOK.  We're way over.18:03
th1aAnything else pressing?18:03
ignasnot really, tomorow i am going to US embassy, and to Lyceum18:03
*** thisfred has joined #schooltool18:04
th1aHopefully my government will be nice to you.18:04
th1aHave a good week, folks.18:05
* th1a drops the bag of gravel.18:05
jfrocheth1a: and congratulations !!!!18:07
th1ajfroche: Thanks!18:07
*** wdickers has joined #schooltool18:09
*** shubacka has quit IRC18:18
wdickerstha1: you there?18:21
Lumierehi wdickers18:33
wdickershey, in the XML for Sif_Events, do you know what the StudentPersonal's RefId should be?18:34
Lumiere! me18:34
wdickersOr the name element's type and format?18:34
wdickersI copied the codes from the spec's telephone example, but it seems to be invalid18:34
*** wdickers has quit IRC18:41
*** ignas has quit IRC19:29
*** jfroche_ has joined #schooltool19:39
*** jfroche has quit IRC19:55
*** thisfred has quit IRC20:09
*** aelkner has quit IRC20:57
*** alga has quit IRC21:11
*** mgedmin has quit IRC21:15
*** alga has joined #SchoolTool21:23
*** jfroche__ has joined #schooltool21:25
*** jfroche_ has quit IRC21:41

Generated by 2.15.1 by Marius Gedminas - find it at!