IRC log of #schooltool for Tuesday, 2006-05-02

srichterth1a: what is this doctest thing about?00:22
th1aBasically, jelkner wants to create assignments in the form of doctests that he can put on the web.00:23
th1aWhen students write code that makes the tests pass, they've completed the assignment.00:23
th1aSo he needs a sandbox or a safe subset of Python for ttw work.00:24
srichterthough I think this is not necessarily good, if the tests are too low-level00:24
th1aI was suggesting you might be a good mentor if they can do this through Summer of Code.  It pays $500!00:24
th1asrichter:  Are you home now?00:24
srichterth1a: I am flying tomorrow00:26
srichtersure, I could metor someone00:26
th1aOK.  :-)00:26
srichterth1a: I have learned a lot about real-world app coding with Zope 3 here00:27
th1aWell, that's good.00:27
th1aI assume you won't be at the meeting then.00:27
*** didymo has joined #schooltool00:29
srichterright, I will be in the air at that time00:30
povbot/svn/commits: * jinty committed revision 6010:02:06
povbot/svn/commits: Update the schooltool-minimal test as well.02:06
*** pcardune has joined #schooltool03:52
*** jinty has quit IRC07:20
*** vidasp has joined #schooltool07:59
*** didymo has quit IRC08:09
*** Aiste has quit IRC09:59
*** Aiste has joined #schooltool11:21
*** srichter has quit IRC11:24
*** thisfred has joined #schooltool11:33
*** vidasp has quit IRC12:16
*** ignas has joined #schooltool12:55
*** mgedmin has joined #schooltool13:00
*** thisfred has quit IRC14:34
*** thisfred has joined #schooltool14:39
*** faassen has joined #schooltool15:12
*** vidasp has joined #schooltool15:25
th1ahi folks.16:30
th1aEveryone ready for the meeting?16:31
th1afaassen, ignas, mgedmin?16:32
th1a*tap* *tap*  Is this thing on?16:33
faassenhello. :)16:33
th1aHi faassen.  When do you leave for Linux Tag?16:33
faassenthursday morning.16:33
faassenbusy preparing for it, releasing the document library among other things.16:34
faassenthough currently moving demographics stuff around.16:34
faassenoh, why excellent? :)16:34
faassenwhich bit is? :)16:34
th1aI'm glad you're releasing Document Library.16:35
faassenoh, yeah.16:35
th1aIt is good to have more Zope 3 products in the wild.16:35
faassenmanaging all the dependencies is a pain.16:35
th1aThere are really quite few.16:35
faassenso I have been writing this long installation guide.16:35
th1aProducts, not dependencies.16:35
faassendon't have time to eggify everything. :)16:35
faassenoh, yeah, I know.16:36
th1aWe're out of sync.16:36
faassenthere are lots of dependencies and few products. :)16:36
faassenyeah. :)16:36
faassenyes, I ported document library over to Zope 3.2, it was still on Zope 3.116:36
faassenthat seemed to be fairly straightforward, though who knows what's lurking still.16:36
th1aYes, the backward compatibility is not very complete in these Zope 3 releases.16:36
th1aBut trying to be backward compatible is still a lot better than not caring at all.16:37
faassenactually it surprised me how easy it was.16:37
faassenand the trunk was pretty backwards compatible, only a few things broke in schooltool.16:37
faassenafter that large change last week.16:37
faassenbut of course we don't want to be spammed with 50 zillion deprecation warnings.16:37
faassenand getting rid of those took a while.16:37
faassenanyway, I'm now working on moving the demographics changes outside of schooltool.person16:38
faasseninto schooltool.demographics16:38
faassenso hopefully things become a bit more customizable.16:38
faassenthough I hardcode schooltool's ZCML so that it creates person objects from schooltool.demographics instead of schooltool.person16:38
* th1a notes that we've segued into faassen's update.16:38
faassenyeah, well. :)16:38
faassenI guess. :)16:38
th1aGo ahead ;-)16:39
faassenit's just you and me anyway. :)16:39
th1aignas is here.16:39
* ignas really ?16:39
th1aKeep going :-)16:39
faassenoh, hi ignas. :)16:39
faassenI hadn't seen your 'hi' before.16:39
faassenanyway, oh, um, right, so, deprecation stuff undeprecated.16:40
faasseneggs are in.16:40
faassenand I started checking in demographics code.16:40
faassenbut after some "discussion" here and some thought about new customizability requirements, I'm moving it out again, into schooltool.demographics16:40
th1aI'm not sure if requiring changes to ZCML are "hardcoding."16:40
faassenI'm rearranging the ZCML so that the New Person entry in the UI creates a new person subclass.16:40
faassenwell, once we got skins going..16:41
th1aIt will be even softer coding?16:41
faassenit should be possible to introduce another skin which registers its own New Person thing.16:41
ignasfaassen: what do you mean "new person subclass"16:41
faassenwell, we need different kind of person objects.16:41
faassenfor different schools. and yet again for schoolbell.16:41
faassenthey all share common functionality.16:41
faassenbut they have different data associated with them.16:41
faassenlike, different demographics requirements, no demographics at all.16:42
ignasfaassen: stephan might be annoyed, as he worked really hard to destroy the double class hierarchy that we had before16:42
faassenso I figure for each deployment we have a separate skin, and we hook in a different subclass.16:42
faassenwhich assembles the bits and pieces.16:42
faassenwhat double class hierarchy?16:42
ignasfaassen: unless i don't fully understand you16:42
faassenI'm not introducing two class hierarchies?16:42
faassenI'm just saying, you have a base Person.16:42
faassenand you have a USSchoolPerson16:42
ignasfaassen: we had - schoolbell.person and schooltool.person16:42
faassenand a SchoolbellPerson.16:42
faassenwhich are subclasses which add bits.16:43
faassenas attributes or annotations.16:43
faassenthey were not related?16:43
faassenI mean, if you're going to store different data on the objects.16:43
th1aignas:  It seems to me that the two cases are pretty different.16:43
ignasfaassen: and srichter worked very hard to well - make them back into a single schooltool.person by using annotations16:43
faassenit makes sense to have different classes.16:43
faassenphone, brb.16:43
Aisteth1a: hi16:43
th1aAiste: hi.16:43
ignasthey schooltool person was oinheriting from schoolbell person and adding  bits of schooltool functionality like timetables ...16:44
Aisteth1a: I remember seeing my name mentioned on here a few times last Friday16:44
Aistewant to talk about that now or after meeting?16:44
th1aCould we do it after?16:44
faassenignas: well, it'd be reversed in my idea, but you'd still have inheritance with functionality added (mostly through attributes with their own views, or annotations)16:45
faassenignas: one way or another, you'd need a difference, right?16:45
faassenignas: and shared functionality.16:45
Aisteth1a: no problem16:46
th1aGenerally speaking, we've been pretty consistent about using adapters for this kind of thing,16:46
faassenyou can't adapt data into being just like that.16:46
ignasand annotations and subscribers16:46
faassenwe're talking about objects which store different information.16:47
th1abut I'm OK with not doing that for demographics.16:47
faassensomehow you need to distinguish the two from each other.16:47
faassenI can see using annotations to add new data to objects, but that isn't the only thing that needs to change.16:48
faassenif you have a custom schooltool setup.16:48
faassenif you have a custom schooltool setup, you're also going to need a different indexing of the data.16:48
faassenand you're going to need a different presentation of tabular data you can browse through.16:48
th1aYes, that's the rub.16:49
ignasi see16:49
faassenI think that annotations are a bit too tempting sometimes.16:49
faassenyou don't get reusability and flexibility for free if you use them.16:49
mgedminso you register custom views/viewlets in addition to registering custom adapters16:49
faassenI mean, I can make an extension that adds a whole bunch of new annotations to an object.16:49
mgedminbut I see your point16:49
faassenI'd already get into trouble if I didn't want the DutchPersonInfo annotation but the GreekPersonInfo.16:49
mgedminactually I do not see your point16:50
faassenwell, I think it's actually simpler to use a different skin and just produce different person objects.16:50
mgedminso you're advocating Person, GreekPerson and DutchPerson as different classes?16:50
faassenI mean, I'm sure we *can* with enough engineering and brain power make a system that does it all with adapters and annotations and viewlets.16:51
faassenbut I don't see that as the simplest approach.16:51
mgedminwhat happens if you then want to introduce some other axis of change?  NxM custom classes?16:51
faassenno, you use attributes.16:51
faassenor annotations, for that matter.16:51
mgedminyes, exactly16:51
faassenI'm saying we produce a differnet person class for each schoolt ype we have.16:51
th1aWell, we're not going to write all those classes, but perhaps people in Greece and Holland will make their own.16:51
faassenand schoolblel.16:51
faassenbut we reuse common bits.16:51
mgedminthere's little practical difference between attributes and annotations16:51
faassenlike, PersonInfo is shared between Dutch and Belgium, okay, we share that.16:51
mgedminexcept one is faster and more straightforward while other is more flexible16:52
mgedminand less coupled16:52
faassenactually it's easier to have separate views on attributes too.16:52
faassenI think.16:52
faassenI mean, an annotation view is on the person object.16:52
faassenan attribute view can be on the attribute of the person object.16:52
faassenI think persons/faassen/nameinfo/edit.html can be prettier than..16:53
mgedminbut then you need a custom traverser to get that attribute?16:53
ignasfaassen: what i have envisioned was - using a separate module like "GreekCustomizations" that would attach required annotations/subscribers/adapters through zcml without inheriting from any of schooltool/bell classes16:53
faassenignas: well, that doesn't gain you much, does it?16:53
ignasfaassen: though it might be more difficult to implement than to envision ;)16:53
faassenignas: I just don't see what it practically gains you. you still need to override views, most likely.16:53
faassenignas: and we're not likely to have schools suddenly switch their database from Greek to US or something.16:54
th1aOne important thing to remember is that what we need at this point is a quick and dirty demographics implementation that works.16:54
faassenignas: annotations arguably makes evolution of content harder.16:54
faassenI'm arguing that this is simpler *and* better. :)16:54
ignasfaassen: what we will have is - modification of base classes independently from custom classes16:54
ignasand i am afraid that it is too easy to break inheriting classes16:55
faassenI think annotations sound more flexible and less invasive than we are. In practice we *do* have different databases, of Greek students and Dutch students.16:55
th1afaassen:  I agree that it is worth some experimenting at this point.16:55
faassenwe are -> they are16:55
ignasanyway, implement it your way, we'll refactor it later if needed16:55
ignashaving something working is more important now16:56
ignasif i understand correctly16:56
faassenI am positing the existence of a different skin per customization.16:56
faassen(probably reusing bits of existing skins)16:56
th1aignas:  Indeed.16:56
faassenanyway, the idea that inheritance is bad can be taken a bit too far. :)16:56
th1aOK... so I think we've exhausted that topic.16:57
th1aWithout anyone getting shot in the face.16:57
th1aShall we move on to POV's update?16:57
faassenyeah. :)16:58
ignaswell, last week we've been working on resources booking conflict resolution and displaying of resources/bookers on calendars properly16:58
ignaswhich involved removal of some unnescessary complexity from schooltool16:59
ignaslike - resource booking for independent activities, scheduling of groups/persons/resources without adding them to sections16:59
ignasnow we am working on scheduling conflict resolution views for persons/resources17:00
ignaswhich requires some serious optimization of the view17:00
ignasperson scheduling view17:00
ignasthat's kind of it17:01
th1aWhich is the "person scheduling view?"17:01
ignaswhen you go to view a person and click "Schedule" in the action menu17:02
th1aTo assign sections to an individual student?17:02
ignasas resource booking is functioning identically - it is a nice target for code reuse17:03
th1aOh.  OK.17:03
th1aThat form needed some help anyhow.17:04
ignasit is way too slow though at the moment17:04
ignasbecause of some deed by our former american coleagues :/17:04
th1aPerhaps if you'd have jumped on them as quickly as you jumped on martijn we would have avoided some problems.17:05
ignaswe were jumping, but we were leaving it up to them to fix things17:05
th1aWater under the bridge.17:06
faassenhey, I was only creating faster code. :)17:06
faassenI was jumped on for that, or at least for not backing it up. :)17:06
th1aOK, so, I've got a few agenda items here.17:06
th1aSo... building SchoolTool now.17:07
th1aCan I use the setuptools from dapper?17:07
th1aOr is that too old?17:07
faassenthis setuptools stuff is really a pain. I heard it's going to be merged in the Python core at some stage, but that doesn't help us of course.17:08
faassenapparently dapper's too old.17:08
faassenit's fairly easy to install your own recent setuptools into your Python's location, if you're okay with "polluting" your system.17:08
th1aI don't have much choice.17:09
faassenthere's info in README17:09
faassenthere's an ez_setup script there, and that takes care of installing everything needed.17:09
mgedmincd /tmp && wget && sudo python2.4 --prefix=/usr/local17:09
mgedminis what I used on the buildbot slave machine17:09
mgedminalthough downloading scripts from the interweb and running them as root is not something I like to do17:09
faassenno, I can imagine.17:10
mgedminespecially when the script in question downloads more software from the web and runs it17:10
mgedmin(without any cryptographic verification)17:10
faassencan't you run that stuff as user?17:10
faassenmaybe at some point worthwhile looking at virtual python or whatever it's called.17:10
th1aActually, it would make me REALLY HAPPY if we had instructions for building from a svn checkout in the README, in addition to the source tarball instructions.17:10
mgedminwe could maybe ask jinty to build us a setuptools deb package with the new version of setuptools?17:10
faassenapparently that makes it easy to do new python installs that aren't really.17:10
faassenth1a: I did add such instructions, though perhaps they're hard to find?17:11
faassenth1a: or do you mean in general, the whole 'make' dance?17:11
mgedminBTW that command that I pasted -- it ends by printing a confusing error message, but seems to work just fine after that17:11
ignasfaassen: you can't do a dry run (a bug apparently) so you must manualy chown all the directories to the user who will run the script, run the script and chown them back, and finding out where the script will write stuff is a bit difficult without dry-run17:11
th1afaassen:  You mean the "Egg dependencies and checkouts" section?17:12
faassenth1a: oh wait, my instructions are mostly when you want to check into eggs.17:12
faassenth1a: so that sin't really relevant.17:12
faassenth1a: anyway, the eggs just kick in when you do 'make'17:12
th1aSo if I have the right setuptools, I should just be able to do "make?"17:12
faassenbesides all the valid complains of mgedmin and ignas, the *nice* thing is that there's just a 1 liner added to make17:12
faassenthat pulls in the right eggs.17:13
faassenwhen you do make.17:13
th1aAh.  That's not so bad then.17:13
th1aOK.  I'll work on that.17:13
th1aMoving on...17:14
th1aAre there any outstanding issues from the Zope 3 changes?17:14
faassennot that I know of. I need to go fix up one deprecation warning in an egg.17:14
faassenthat should be easy, just haven't gotten around to doing so.17:14
faassenthe utility registration is using the new system.17:15
faassenand I went through the whole schooltool codebase changing imports to cope with moved packages.17:15
th1aCool.  Thanks for doing that faassen.17:15
faassenwell it was an easy way to actually feel productive. :)17:16
th1aOK then... lets talk a bit more about the SchoolBell release.17:16
th1aIn a sense, I see this release as preparing the way to turn SchoolBell over to a volunteer maintainer.17:17
th1aWhether or not such a person exists.17:17
ignasfor schoolbell17:17
faassenif there's no such active maintainer, how do you deal with people breaking stuff in schoolbell when developing schoolbell?17:18
ignaswill we ever want to run both schoolbell/schooltool as zope products17:18
ignasor should we just separate schoolbell as an application17:18
th1aI don't think mixing SchoolBell and SchoolTool on one Zope server will ever be very important.17:19
ignasso they can have different zcml files17:19
th1aBasically, someone who is using SchoolBell has to start advocating for it and maintaining it.17:20
th1aBut before that happens, we have to bring it back to a usable state.17:20
ignasusable state being - scripts and both working in the top level directory of the project ?17:21
ignasor just some setuptools magic that can package two distinct tarballs17:21
th1aI'm thinking two distinct tarballs.17:21
ignashow independent schoolbell should be ?17:22
th1aBasically, we need to get it to that point, and then find someone who will at least keep track of when we break SchoolBell and then work with us to keep it going.17:22
mgedminnightly buildbot for schoolbell17:22
ignasshould we strive for the perfect isolation - like schoolbell having no unnescesarry packages from schooltool17:22
th1aYes, I guess a bot could do the first step ;-)17:23
mgedminI think that should be a desirable goal that is not an absolute requirement17:23
th1amgedmin:  A agree.17:23
th1aAlso, it depends on how far away the component is from calendaring.17:23
ignastimetabling, attendance, courses, sections17:24
ignasas timetabling is very closely related (way too closely as there are dependencies both ways)17:24
ignasand courses with sections both are dependencies for timetabling17:24
ignaswe might need considerable time to fully and cleanly decouple everything17:24
ignascan't tell exact numbers yet though17:25
th1aMaybe we just can't pull this off.17:25
ignasi think it is doable17:26
th1aOr we just have to fake it in the UI.17:26
mgedminignas: what's your point?  schooltool doesn't need timetabling/attendance/sections/courses17:26
th1aSchoolBell should pretty much just show "persons," "groups," "resources."17:26
ignasignas: schoolbell doesn't need timetabling etc.17:26
mgedminyes, but we don't need to decouple timetables from sections17:26
ignasth1a: i will try to give you a clear estimate as soon as i can17:27
ignasmgedmin: yes i know, we need to decouple timetabling from calendaring though17:27
th1aOTOH, having demographics in SchoolBell wouldn't make much difference.17:27
mgedminthat's right17:27
ignasth1a: yes, probably17:27
faassenI'm busy moving that out. :017:27
th1aI think that's the tough part.17:27
faassenyou should be able to turn on whatever is in person only..17:27
th1atimetabling and calendaring.17:27
faassenwith a bit of different ZCML.17:27
th1aWe're about done then.17:28
th1aI think we've clarified some things.17:28
th1aEveryone happy? :-)17:28
faassensure. :)17:29
th1aOK then.17:29
th1aHave a good week.17:29
faassenth1a: thanks.17:29
* th1a bangs the virtual bag of gravel.17:30
faassenth1a: do you know whether Mark will be at LinuxTag? I mean, more than last week?17:30
th1ath1a:  Oh... was he there last week?17:31
th1aI think he was in New York over this weekend.17:31
faassenno, no.17:31
faassenI mean, do we know more than last week.17:31
th1aDoesn't LinuxTag mean LinuxDay?17:31
faassensorry to be ocnfusing. :)17:31
faassenyes, I meant LinuxTag in Germany.17:32
faassenit's more than one day. :)17:32
th1aNo, I have no additional knowledge.17:32
faassenhas been for years.17:32
faassenokay. :)17:32
faassenmgedmin: so, you had some ideas.17:32
mgedminfaassen: dependencies17:32
faassenmgedmin: right.17:32
mgedmina story, not ideas17:32
mgedminwe have a bunch of precreated groups and users in ST17:32
faassenmgedmin: okay, tell me the story.17:33
faassenmgedmin: right.17:33
mgedminthere was a requirement to make these undeletable17:33
mgedminour chosen implementation was to use the standard zope 3 dependencies framework17:33
mgedminlook at src/schooltool/group/, def addGroupContainerToApplication17:33
mgedminto make a group undeletable it uses the IDependable adapter and says that the application object depends on this group object17:34
mgedminthen zope prevents anyone from deleting the groups somehow17:34
mgedmin(I think with an event subscriber that raises exceptions)17:34
mgedminand our views also check for undeletability by using IDependable17:34
mgedminif you now need to delete and recreate an object in a generation script17:35
mgedminyou can use IDependable()17:35
mgedminto remove the dependency17:35
mgedmincreate a new object instead17:35
mgedminand make it undeletable again17:35
faassenoh, IDependable is used to get rid of the dependency?17:35
faassenther's some API on it?17:36
mgedminIDependable is used to do all sorts of things with the dependencies17:36
faassenI shall try that.17:36
mgedminit's an adapter like IAnnotations17:36
faassenanyway, I shall continue to think about demographics with and without annotations. :)17:36
mgedminthis framework is (or was) primarily used in Zope 3 to mark dependencies between local components and their registration objects17:36
faassenI just wanted to let you guys know that while I argue just as hard back at you guys as you argue to me.. :)17:36
faassenI'm actually listening too. :)17:36
faassenright, I knew that bit, about the local component and registration objects.17:37
faassenI think that's now obsolete, possibly, with the latest Zope 3 core refactoring.17:37
faassenthough possibly not, perhaps it just puts a nicer API over it all.17:37
mgedminI'm pretty sure the local component stuff has changed all over the place17:38
faassenmgedmin: thanks for pointing me to that code.17:38
faassenmgedmin: I shall check out IDependable.17:38
mgedminbut I think the dependency tracking package remained17:38
ignasfaassen: as long as you don't forget that most of the things i am saying are just FYI's and warnings we'll be all right ;)17:38
mgedminit's independent and quite generic17:38
faassenmgedmin: must have, otheriwse I wouldn't get this error.17:38
faassenmgedmin:  you adding a dependency to '' means you want to add a dependency to the Zope 3 root, right?18:18
mgedminfaassen: yes, IIRC the dependency framework didn't accept '/' because it wanted a path explicitly relative to the root folder or something like that18:18
faassenwell, either there's a bug in Zope 3's dependency framework or doing this should be illegal.18:19
faassenbecause what in effect happens is that /persons/ will become a dependency, with trailing slash.18:19
faassenaccording to dependencies()18:19
faassenand that's wrong, right?18:19
faassenand what's worse, using removeDependency() on paths in dependencies() results in an error.18:20
faassenas trailing slashes aren't allowed in paths and Zope complains.18:20
faassenand doesn't remove any dependency.18:20
faassenand the one thing you'd expect is this to work:18:20
faassenfor dependency in dependable.dependencies():18:20
faassen   dependable.removeDependency(dependency)18:20
faassensorry, removeDependent18:20
mgedmincan you do removeDependency('')?18:27
mgedminI might be wrong thinking that addDep..('') means the root folder18:28
mgedminit probably does mean the person container18:28
mgedminstill, if you can't use removeDependent with a string you got by listing all dependents, that smells like a bug18:29
faassenwell, I'd be surprised if it means the person container.18:41
faassenhm, perhaps it does..18:41
mgedminI wouldn't18:41
mgedminthere is some reason I didn't use '/' there18:41
mgedminI'm sure the system didn't allow me to do that18:42
faassenwell, it's never made relative.18:42
mgedminum... OTOH I already demonstrated today that my memory is not reliable18:42
mgedmindid I write that code or was it someone else?18:42
faassenI don't know.18:42
mgedminwhat does svn annotate say?18:42
faassenyou did.18:45
faassenbut I suspect it's coming from a branch so I don't know anymore.18:46
faassenthat's schooltool/app/main.py18:46
*** jinty has joined #schooltool18:49
*** gnosis has joined #schooltool18:52
*** ignas has quit IRC19:00
faassenargh, that whole is seriously borked.19:14
faassenat least for adding '', it causes dependencies taht cannot be removed anymore. :)19:15
faassenas far as I can see.19:15
faassenwhich is surprising..19:15
faassenI'm about to give up in disgust for today.19:27
faassenthe dependency framework is doing things that should be centralized in Zope 3.19:27
faassenpath manipulation.19:27
faassenbut instead it has its own relative path stuff.19:27
faassenand if you enter '' it gets hopelessly confused, trying to make things absolute and relative, and back again. :)19:28
faassenwhat a frustrating little problem.19:28
mgedminnobody would hurt you if you just accessed the storage attributes internal to the from an evolution script19:32
mgedminthe storage method is frozen with respect to the generation number...19:32
mgedminoops, but there are different parallel generation numbers19:32
mgedminschooltool's one (which can be considered to be known inside a ST generation script)19:32
mgedminand zope's19:32
mgedminOTOH we know which zope generations were used with which ST release19:33
mgedminso an ST generation number kind of implies the zope generation number...19:33
faassenI'm confused by all this, I thought I only needed to care aobut Schooltool's evolution scripts.19:33
mgedminwell, yes, I'm confused too19:33
faassenanyway, it's just a pain, this stupid dependency issue blocks the generation script from working. :)19:34
mgedminotoh... its best when generations are really independent, I think19:34
faassenbut yeah, I think I'll do some brute force.19:34
faassenand fiddle with internals.19:34
faassenbut basically schooltool itself shouldn't use the broken '' dependencies.19:34
faassenor needs to be fixed. and likely that also needs evolution then, if the stored data changed.19:34
faassenI think tomorrow I'll forget about all that and just re-lock them forever with '' :)19:35
faassensee you!19:36
*** faassen has quit IRC19:36
mgedminfaasen, if is broken, and you know in what way it is broken, you could at least file a bug report to the collector19:37
*** jinty has quit IRC19:40
*** jinty has joined #schooltool19:43
*** thisfred has quit IRC19:51
povbot/svn/commits: * gintas committed revision 6011:19:55
povbot/svn/commits: Optimizations in PersonTimetableSetupView.19:55
*** Aiste has quit IRC20:20
povbot/svn/commits: * gintas committed revision 6012:20:25
povbot/svn/commits: Renamed Timetable.itercontent() to activity().  Now it returns a list rather than an iterator, which gains us 50% speed in some cases.20:25
*** Aiste has joined #schooltool21:07
*** mgedmin has quit IRC22:14
*** jinty has quit IRC23:07
*** srichter has joined #schooltool23:49

Generated by 2.15.1 by Marius Gedminas - find it at!