th1a | OK. Got it. | 00:01 |
---|---|---|
th1a | Never has finding a nude woman on my computer been so difficult. | 00:02 |
*** GaryPoster has quit IRC | 00:47 | |
*** bskahan has joined #schooltool | 00:50 | |
bskahan | th1a: do you have the xcf of the schooltool logo? | 01:40 |
*** Aiste has quit IRC | 01:44 | |
*** Aiste has joined #schooltool | 01:47 | |
*** Aiste has quit IRC | 01:50 | |
*** Aiste has joined #schooltool | 01:50 | |
*** Aiste has quit IRC | 01:56 | |
*** Aiste has joined #schooltool | 01:58 | |
*** Aiste has quit IRC | 02:03 | |
*** Aiste has joined #schooltool | 02:04 | |
*** Aiste has quit IRC | 02:09 | |
*** Aiste has joined #schooltool | 02:12 | |
*** Aiste has quit IRC | 02:15 | |
*** Aiste has joined #schooltool | 02:17 | |
*** Aiste has quit IRC | 02:20 | |
*** Aiste has joined #schooltool | 02:21 | |
th1a | Somewhere. | 02:27 |
bskahan | can you commit it to schooltool svn in /images or something similar? | 02:29 |
th1a | Do you want me to do this right now? | 02:30 |
*** bska|mobile has joined #schooltool | 02:33 | |
bska|mobile | th1a: no, just when you have time | 02:33 |
th1a | OK. Will do. | 02:34 |
bska|mobile | thanks | 02:35 |
*** bskahan has quit IRC | 02:40 | |
*** hazmat has quit IRC | 02:45 | |
*** auxesis has quit IRC | 02:56 | |
*** GaryPoster has joined #schooltool | 03:00 | |
*** jagordon has quit IRC | 03:15 | |
*** hazmat has joined #schooltool | 03:19 | |
*** bskahan has joined #schooltool | 03:38 | |
*** bska|mobile has quit IRC | 03:44 | |
*** bskahan has quit IRC | 03:52 | |
*** Aiste has quit IRC | 04:12 | |
*** Aiste has joined #schooltool | 04:13 | |
*** GaryPoster has quit IRC | 04:25 | |
*** hazmat has quit IRC | 04:40 | |
*** alga has quit IRC | 04:49 | |
*** auxesis has joined #schooltool | 05:11 | |
*** hazmat has joined #schooltool | 05:15 | |
*** hazmat has quit IRC | 05:28 | |
*** tvon has quit IRC | 07:07 | |
*** tvon has joined #schooltool | 07:07 | |
*** tvon|x31 has joined #schooltool | 07:07 | |
*** tvon|x31 has quit IRC | 07:07 | |
*** tvon has quit IRC | 07:14 | |
*** tvon has joined #schooltool | 07:14 | |
*** tvon has quit IRC | 07:15 | |
*** tvon has joined #schooltool | 07:17 | |
*** morgs has joined #schooltool | 10:37 | |
morgs | th1a: Steve Alexander suggested I ask you about RDF tools for Python. I want to export RDF from a Zope application. I've heard of Redland but don't know where to start. I'm currently in AU and have no time zone overlap, so I would appreciate any suggestions via email to morgan@mcode.co.za | 10:44 |
morgs | th1a: I'll be back in South Africa next week and can ask you further on IRC, but any initial direction would be good. I will need to parse RDF in the future, so I want to avoid any hackerish shortcuts now, but I'm not sure which tools are best. | 10:45 |
morgs | Thanks in advance...! | 10:45 |
*** Aiste has quit IRC | 10:47 | |
*** morgs has left #schooltool | 10:50 | |
*** tvon|desk has quit IRC | 10:57 | |
*** tvon has quit IRC | 10:58 | |
*** tvon has joined #schooltool | 11:14 | |
*** tvon|desk has joined #schooltool | 11:14 | |
*** alga has joined #SchoolTool | 12:21 | |
*** alga has quit IRC | 12:21 | |
*** th1a has quit IRC | 12:36 | |
*** ignas has joined #schooltool | 12:39 | |
*** tvon has quit IRC | 13:04 | |
*** tvon|desk has quit IRC | 13:07 | |
*** tvon|desk has joined #schooltool | 13:11 | |
*** tvon has joined #schooltool | 13:11 | |
*** Aiste has joined #schooltool | 13:44 | |
*** jhauser has joined #schooltool | 14:19 | |
*** tvon has quit IRC | 14:32 | |
*** jagordon has joined #schooltool | 15:09 | |
*** alga has joined #SchoolTool | 15:18 | |
*** GaryPoster has joined #schooltool | 15:22 | |
*** GaryPoster has quit IRC | 15:24 | |
*** mgedmin has joined #schooltool | 15:38 | |
*** bskahan has joined #schooltool | 15:40 | |
*** th1a has joined #schooltool | 16:11 | |
*** tvon has joined #schooltool | 16:14 | |
*** th1a has quit IRC | 16:30 | |
*** th1a has joined #schooltool | 16:31 | |
*** GaryPoster has joined #schooltool | 16:32 | |
jhauser | any questions to relationship accepted? | 16:51 |
mgedmin | I'm not sure I understand your question | 16:52 |
jhauser | :-) there wasn't one | 16:52 |
jhauser | ok is it a design goal that relationship is always done by object reference? | 16:53 |
jhauser | i use it in a five project and changed the target in link to a uid | 16:53 |
mgedmin | no | 16:54 |
mgedmin | you can implement relationships in any way you want by providing an adapter to IRelationshipLinks | 16:54 |
jhauser | would it have some value to call an adapter before the actual binding happens | 16:54 |
jhauser | ah uh | 16:55 |
jhauser | ok then I didn't look far enough | 16:55 |
jhauser | thanks | 16:55 |
mgedmin | np | 16:56 |
jhauser | hm but relate compores with object identity | 16:58 |
jhauser | perhaps I'm plain stupid, but I do not understand how an other adapter there would change the object identity test in relate | 17:03 |
mgedmin | what exactly do you want to achieve? | 17:03 |
mgedmin | the relationships framework expects you to work with python objects | 17:03 |
jhauser | relate two objects by there uid | 17:03 |
mgedmin | but you don't necessarily have to store object references in the zodb | 17:04 |
jhauser | both know the uids of the related objects | 17:04 |
mgedmin | you could store e.g. paths and traversal in your implementation of the storage adapter | 17:04 |
mgedmin | do you have a way of getting the object itself from its uid? | 17:04 |
jhauser | but then need to get the object on return | 17:04 |
mgedmin | does that inconvenience you in some way? | 17:05 |
jhauser | yes, but the object is got by an publisher | 17:05 |
jhauser | and the publisher is app dependand | 17:05 |
jhauser | for this I only want to compare uids | 17:05 |
jhauser | then after the relation lookup the app decides which publisher should be used | 17:06 |
jhauser | this can be different for the same object | 17:06 |
jhauser | but I think the problem expands to all factory based objects | 17:07 |
jhauser | clearer? | 17:07 |
mgedmin | you are saying that the same conceptual object can be actually represented as different object instances in your app | 17:08 |
mgedmin | did I understand it correctly? | 17:08 |
jhauser | in principle yes | 17:08 |
jhauser | the publisher can decide to wrap it differently | 17:09 |
mgedmin | it can be fixed | 17:09 |
jhauser | for example i have a versioning publisher and a normal publisher | 17:10 |
mgedmin | the relate function checks whether a relationship already exists | 17:10 |
mgedmin | by looping through all relationship links and comparing objects by identity | 17:10 |
mgedmin | but unrelate function also checks whether a relationship exists | 17:10 |
mgedmin | (and raises an exception if it doesn't) | 17:10 |
mgedmin | unrelate does it differently, though -- it calls the 'find' method of IRelationshipLinks | 17:10 |
mgedmin | and you can implement that one so that it only looks at your uids | 17:11 |
mgedmin | in principle, relate and unrelate perform the same check | 17:11 |
jhauser | right what I know have is | 17:11 |
jhauser | def relate(rel_type, (a, role_of_a), (b, role_of_b), extra_info=None): | 17:11 |
mgedmin | and relate can be changed to do it in the same way unrelate does it | 17:11 |
jhauser | """Establish a relationship between objects `a` and `b`.""" | 17:11 |
jhauser | for link in IRelationshipLinks(a): | 17:11 |
jhauser | if (link.target == b.UID and link.role == role_of_b | 17:11 |
jhauser | and link.rel_type == rel_type): | 17:11 |
mgedmin | that would solve your problem I think | 17:11 |
jhauser | yes it is working nice, but looks to me a little hardcoded | 17:12 |
mgedmin | I suggest replacing the original code | 17:12 |
mgedmin | for link in IRelationshipLinks(a): | 17:12 |
mgedmin | if (link.target is b and link.role == role_of_b | 17:12 |
mgedmin | and link.rel_type == rel_type): | 17:12 |
mgedmin | raise DuplicateRelationship | 17:12 |
mgedmin | with | 17:12 |
mgedmin | links_of_a = IRelationshipLinks(a) | 17:13 |
mgedmin | links_of_b = IRelationshipLinks(b) | 17:13 |
mgedmin | try: | 17:13 |
mgedmin | link_a_to_b = links_of_a.find(role_of_a, b, role_of_b, rel_type) | 17:13 |
mgedmin | except ValueError: | 17:13 |
mgedmin | pass # great, no duplication | 17:13 |
mgedmin | else: | 17:13 |
mgedmin | raise DuplicateRelationship | 17:13 |
jhauser | ah ok | 17:14 |
jhauser | but wouldn't an adapter IRelationshipTarget not also solve the problem? | 17:14 |
mgedmin | what is IRelationshipTarget? | 17:15 |
jhauser | instead of link.target == b.UID call link.target == IRelationshipTarget(b) | 17:16 |
jhauser | the same on the add methods | 17:17 |
jhauser | and the find methods | 17:18 |
mgedmin | what is 'b'? | 17:19 |
mgedmin | the object that you pass to relate/unrelate? | 17:20 |
jhauser | this could also be expanded to include the role in the adapter lookup | 17:20 |
jhauser | yes | 17:20 |
mgedmin | what's the point of that? | 17:20 |
mgedmin | can't you adapt things to IRelationshipTarget before passing them to relate/unrelate? | 17:20 |
jhauser | or so sure | 17:20 |
mgedmin | ah, but then maybe the thing returned by IRelTgt isn't adaptable to IRelLinks | 17:20 |
jhauser | but I at the place I actually do the relationship I do not want to do too much | 17:21 |
mgedmin | yes | 17:23 |
jhauser | I only wanted to discuss this to see, if my case is a special one or I don't understand the thing | 17:24 |
jhauser | but I think everthing factory based would be costly to handle in the relationship machinerie | 17:25 |
jhauser | I'm very grateful to have found this package, it's very condensed | 17:27 |
jhauser | oh perhaps one other question | 17:27 |
jhauser | are you somewhere indexing the relations? | 17:28 |
jhauser | I think of a way to put some info of this into a zcatalog, but can not really come to terms what would be the best way | 17:28 |
bskahan | mgedmin: is there something you had to do to get schoolbell's browser.tests to pick up the zcml declarations? | 17:32 |
bskahan | my *AddView tests are failing with "Attr Error, can't FooAddView has no schema" | 17:33 |
bskahan | s/can't// | 17:33 |
bskahan | nm | 17:34 |
bskahan | I found it, I think | 17:34 |
mgedmin | no, we're not indexing anything | 17:39 |
mgedmin | bskahan, unit tests know nothing about what's in zcml | 17:40 |
mgedmin | you have to rewrite zcml declarations in python in unit test setup code | 17:40 |
mgedmin | which is sometimes a pain :-( | 17:40 |
*** jagordon has left #schooltool | 17:40 | |
bskahan | yeah | 17:43 |
bskahan | I got it now | 17:43 |
bskahan | wasted way too much time on that | 17:43 |
jhauser | thanks mgedmin | 17:49 |
*** tvon has quit IRC | 18:29 | |
*** tvon has joined #schooltool | 18:39 | |
tvon | mgedmin: where is that lil time tracker app you wrote? | 18:50 |
mgedmin | tvon, http://mg.pov.lt/gtimelog/ | 18:54 |
tvon | mgedmin: thanks | 18:54 |
*** bskahan has quit IRC | 19:26 | |
*** bskahan has joined #schooltool | 19:35 | |
*** mgedmin has quit IRC | 19:37 | |
*** bskahan has quit IRC | 19:50 | |
*** tvon has quit IRC | 20:03 | |
th1a | when I checkout the schooltool branch and do 'make' I get 'invalid command 'schoolbell' (no module name distutils.command.schoolbell) | 20:12 |
*** tvon has joined #schooltool | 20:13 | |
*** alga_ has joined #SchoolTool | 20:26 | |
*** alga has quit IRC | 20:27 | |
*** alga_ is now known as alga | 20:32 | |
*** ignas has quit IRC | 20:37 | |
*** bskahan has joined #schooltool | 21:23 | |
bskahan | th1a: what editor do you use for Python on a Mac? | 21:24 |
th1a | BBEdit. | 21:24 |
th1a | It doesn't have any Python specific features. | 21:25 |
bskahan | thanks | 21:30 |
bskahan | what's likely to cause a ForbiddenAttribute error? | 21:54 |
bskahan | nm | 21:54 |
bskahan | missed it in ZCML | 21:54 |
alga | yep | 22:17 |
alga | ForbiddenAttribute always means a missing class declaration | 22:24 |
th1a | so... should I be able to checkout the new schooltool branch and have it work? | 22:25 |
th1a | bskahan? | 22:26 |
alga | yes, with a reasonably narrow definition of 'work' | 22:30 |
alga | the root view spews 'A system error has occured.' | 22:30 |
th1a | Do I need to do something special to make it? | 22:30 |
alga | make as in build? no, the same as for schoolbell | 22:31 |
alga | ah yes | 22:31 |
alga | the setup.py is broken | 22:31 |
alga | you have to cd Zope3 and then make | 22:31 |
th1a | OK. | 22:31 |
alga | not my fault :-) | 22:31 |
alga | jinty was not on IRC when I noticed this | 22:32 |
* alga ducks and runs | 22:32 | |
* bskahan continues to hide | 22:45 | |
bskahan | the front page its broken, but if you go to /groups or /persons it works fine | 22:45 |
bskahan | th1a: http://people.etria.com/~bskahan/course.png and http://people.etria.com/~bskahan/section.png | 22:48 |
bskahan | they're not pretty yet | 22:49 |
th1a | Is that going to be top > schooltool > sections > section-1 eventually? | 22:49 |
bskahan | I'm not sure | 22:50 |
bskahan | it can't be as it is | 22:50 |
bskahan | I'm just not sure what it can/will be | 22:50 |
th1a | Don't worry about it for now. | 22:51 |
bskahan | since it should be top > schooltool > courses > algebraI > section-1 | 22:51 |
th1a | It is probably a bad idea, now that I think about it. | 22:51 |
bskahan | the groups link needs to go | 22:51 |
bskahan | since its not part of the schooltool interface | 22:51 |
th1a | I think that's better. | 22:52 |
bskahan | how to do that I'm not sure though | 22:53 |
bskahan | but I haven't looked yet | 22:53 |
bskahan | need to learn about pagelets | 22:53 |
th1a | We don't really have to get our panties in a bunch about this yet. Once we start doing multiple years, it'll need to be right. | 22:54 |
th1a | Although, we technically have two years to get that right. | 22:54 |
bskahan | the pagelets comment was a bit [OT] | 22:55 |
bskahan | I want a calendar pagelet for the section view | 22:55 |
th1a | bskahan: you need to learn about pagelets. | 22:55 |
bskahan | heh | 22:55 |
th1a | :-) | 22:55 |
th1a | At some point. | 22:55 |
bskahan | I'd like the section view page to show the upcoming weeks events and/or the small month calendar square | 22:56 |
th1a | Sections probably shouldn't have "members." | 22:56 |
bskahan | but to do that I'm pretty sure I'd want a pagelet | 22:56 |
bskahan | sections have members inherited from Groups, but the link to add/remove members will go away | 22:57 |
bskahan | same with resources | 22:57 |
th1a | Actually... don't we want to be able to assign resources to a section? | 22:58 |
th1a | Can we add resources to a group? | 22:58 |
bskahan | actually, at least a room | 22:58 |
bskahan | yes | 22:58 |
bskahan | I'll still take away the person members | 22:58 |
th1a | You'd frequently want to assign other physical resources, too. | 22:59 |
th1a | Yeah, members doesn't make sense. | 22:59 |
bskahan | they're actually the same, the only difference is a filter in the UI | 22:59 |
bskahan | but I'll take away the person filter | 22:59 |
bskahan | 'take away' being 'hide real good' | 23:00 |
*** hazmat has joined #schooltool | 23:03 | |
bskahan | the CSS reload bug is back? | 23:18 |
*** hazmat has quit IRC | 23:34 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!