*** th1a has quit IRC | 00:15 | |
*** smalekgh has joined #schooltool | 00:16 | |
smalekgh | hi peoples! Question: How does one go about checking permissions in a page template? Like, for a tal expression? | 00:18 |
---|---|---|
ignas | add the check in a view | 00:20 |
smalekgh | er, how does one go about checking permissions in a view? | 00:20 |
ignas | canAccess and canWrite | 00:20 |
ignas | schooltool has <tal:if condition="section/can_access:label"> | 00:21 |
ignas | construct for tal | 00:21 |
smalekgh | I mean, query the permissions, as in... Get the actual value of the permissions... | 00:21 |
ignas | which is good enough sometimes | 00:21 |
ignas | you get either an exception or True/False for that check | 00:22 |
ignas | look at the source code that uses it | 00:22 |
ignas | get value? | 00:22 |
ignas | of permission? | 00:22 |
smalekgh | schooltool.view | 00:22 |
smalekgh | or schooltool.edit | 00:22 |
smalekgh | etc. | 00:22 |
ignas | you want to know which permission is required to "do" something with the object | 00:22 |
smalekgh | I want to know the KIND of permissions so I know wether or not to display a certain set of inputs for a page template | 00:23 |
ignas | why? | 00:23 |
ignas | so you check - if this person canWrite this attribute on that object - show this link | 00:23 |
ignas | KINDS of permissions work the other way | 00:24 |
ignas | you can do it this way too: | 00:24 |
smalekgh | Okay, now you might have just buried yourself >_< What exactly is it that canWrite does? | 00:24 |
ignas | check if i have "schooltool.edit" permission for this object | 00:24 |
smalekgh | *in my questions* | 00:24 |
ignas | canWrite will do this: | 00:25 |
ignas | Hey zope - i have "Object" and i want to know if i can write it's "whatever" attribute | 00:25 |
smalekgh | And that is determined BY the permissions? | 00:25 |
ignas | zope looks at the object, the attribute and says "this attribute is governed by IFoo interface" | 00:25 |
ignas | and for this writing to IFoo is allowed to those who have "schooltool.view" on this object | 00:26 |
ignas | now zope asks the security policy | 00:26 |
ignas | hey has this Principal (person who's logged in) "schooltool.view" permission on this object? | 00:26 |
ignas | if so - canWrite returns True | 00:27 |
smalekgh | oye | 00:27 |
ignas | else - canWrite returns False | 00:27 |
ignas | you can also schortcut | 00:27 |
ignas | and perform the "has this Principal schooltool.view on this object" yourself | 00:27 |
ignas | if you care about the permission not "capability" | 00:28 |
ignas | clear enough? or you need some more antrophomorphized secrity policy acting? | 00:28 |
smalekgh | ... lol thanks | 00:28 |
smalekgh | The whole 'speak to me like I'm a 3 year old' thing actually worked >_< | 00:29 |
smalekgh | by the by, inside of configure.zcml, within zope:class blocks, how does one go about setting particular permissions for particular attributes? | 00:33 |
ignas | no idea, most of the time i keep looking at old <class> declarations until they start making sense | 00:35 |
ignas | you can do this by setting permissions for attributes | 00:35 |
ignas | or interfaces | 00:35 |
ignas | set_schema and interface are for interfaces | 00:35 |
ignas | one says - to write this interface | 00:35 |
ignas | other one - to read this interface | 00:35 |
ignas | you need this permission | 00:35 |
smalekgh | oye, thanks | 00:35 |
ignas | as for attributes | 00:35 |
ignas | there is attributes="attrs" for i think reading | 00:36 |
ignas | and something else for writing | 00:36 |
smalekgh | I'll try and find an example somewhere... thanks by the by | 00:36 |
ignas | set_attributes is for writing | 00:39 |
ignas | but i'd advise going with interfaces | 00:39 |
smalekgh | Thanks, but there are particulars within an interface that I want schooltool.view to have access to and others that only schooltool.edit oughtta have access to... (If this is bad design, uhh, >_<) | 00:41 |
ignas | split the interface | 00:42 |
ignas | in schooltool we have some IReadFoo, IWriteFoo, IFoo hierarchies | 00:43 |
smalekgh | oh | 00:44 |
ignas | class IWritePerson(zope.interface.Interface) | 00:44 |
ignas | IPerson(IReadPerson, IWritePerson, IAttributeAnnotatable) | 00:44 |
ignas | for example | 00:44 |
smalekgh | oh | 00:44 |
ignas | though IAttributeAnnotatable should be moved to some <class> declaration + <implements>, as it's not a mandatory part of the person | 00:45 |
smalekgh | Well, I'm kind of one to first want to finish what I'm doing the way it currently is, then split the interfaces... Uhh, after defining permissions for interfaces or set_schema, does attributes or set_attributes, respectively, override the specific attributes from interfaces or set_schema | 00:52 |
smalekgh | ? | 00:52 |
ignas | i am not sure what happens if you pass it conflicting declarations | 00:54 |
* smalekgh treads carefully* | 00:54 | |
ignas | as in 'schooltool.write' for this Interface, 'schooltool.view' for these 2 attributes IN that interface | 00:54 |
smalekgh | yes | 00:54 |
ignas | ask in #zope3-dev, maybe someone will tell you ... | 00:57 |
*** ignas has quit IRC | 00:59 | |
*** fsufitch has quit IRC | 01:08 | |
*** smalekgh has left #schooltool | 01:13 | |
*** pcardune has quit IRC | 01:54 | |
*** smalekgh has joined #schooltool | 03:32 | |
smalekgh | hiiii... here goes another question (*wewt*): I heard earlier about canRead and canWrite and can_access and some things along those lines, what are they, like, syntax-wise? | 03:39 |
*** aelkner has joined #schooltool | 03:52 | |
smalekgh | hiya | 04:11 |
aelkner | smalekgh: what's you name? I'm not used to these handles. | 04:27 |
smalekgh | Masood Malekghassemi | 04:27 |
aelkner | Hey Massod. | 04:27 |
aelkner | Masood | 04:28 |
smalekgh | <_< | 04:28 |
smalekgh | Just like in real life I hear 'massod' | 04:28 |
aelkner | What cha working on? | 04:28 |
smalekgh | page template for editing a schedule... Trying to figure out how to access the current user's permissions within a page template, or at least within a view class *is sifting through webpages* | 04:29 |
smalekgh | The zope guide says that in page templates, one could access the current user via tal:someexpression="user/blahblahblah", but apparently I can't seem to do the equivalent "python: user.blahblahblah" <_< | 04:31 |
aelkner | Which zope guide are you referring to? | 04:32 |
smalekgh | http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Security.stx | 04:32 |
smalekgh | t3h zope booketh | 04:32 |
aelkner | That's npot zope 3 docs, it's zope 2. | 04:33 |
smalekgh | ... crap... | 04:34 |
smalekgh | I think I've learned much about the wrong system and now I'll have ideas floating in my head that'll screw me over when I'm trying to learn the right way >_< | 04:34 |
aelkner | Try starting here: http://wiki.zope.org/zope3/FrontPage | 04:35 |
smalekgh | oh, hallalujah | 04:35 |
smalekgh | o woe to the mind which can understand nothing >_< Uh, how does one go about retrieving the current principal's id? (zope.???.???.getPrincipal()?) | 04:47 |
*** gpaci has quit IRC | 04:48 | |
*** james_ has joined #schooltool | 04:49 | |
*** Fujitsu has quit IRC | 04:58 | |
*** Fujitsu has joined #schooltool | 04:59 | |
*** mlinnell has joined #schooltool | 05:03 | |
*** pcardune has joined #schooltool | 05:17 | |
smalekgh | hi paul | 05:32 |
*** fsufitch has joined #schooltool | 05:35 | |
smalekgh | to anyone that saw me typing up on how to retrieve the principal, uhhhh, ignore it. All of it. <_< | 05:37 |
smalekgh | I mean, asking about it | 05:37 |
smalekgh | ignore me asking about it <_< | 05:37 |
*** fsufitch has quit IRC | 05:57 | |
aelkner | pcardune: what is the svn repository that we will be working on tomorrow for the rest project? | 05:59 |
*** mlinnell has quit IRC | 06:12 | |
smalekgh | A question of style: When you have some aspects of a single object that you want editable by a permission, say schooltool.view, and you have other aspects that you want only editable by schooltool.edit, is it better to have a single page that has it all or to split up the editing work amongst different pages (a page to edit a schedule by schooltool.view that's more limited than a page to edit a schedule via schooltool.edit)? | 06:12 |
smalekgh | pcardune: ping | 06:39 |
*** wjohnsto has quit IRC | 06:49 | |
*** aelkner has quit IRC | 07:30 | |
*** smalekgh has left #schooltool | 07:34 | |
*** james_ is now known as gpaci | 07:34 | |
*** E-nnovative1 has joined #schooltool | 07:41 | |
*** pcardune has quit IRC | 08:14 | |
*** th1a has joined #schooltool | 08:56 | |
*** E-nnovative1 has quit IRC | 09:52 | |
*** E-nnovative1 has joined #schooltool | 09:53 | |
*** th1a has quit IRC | 09:53 | |
*** jfroche has joined #schooltool | 10:45 | |
*** jinty has joined #schooltool | 11:20 | |
*** E-nnovative1 has quit IRC | 11:27 | |
*** E-nnovative1 has joined #schooltool | 11:28 | |
*** E-nnovative1 has quit IRC | 12:04 | |
*** E-nnovative1 has joined #schooltool | 12:05 | |
*** jfroche_ has joined #schooltool | 12:19 | |
*** jfroche has quit IRC | 12:21 | |
*** E-nnovative1 has quit IRC | 13:19 | |
*** E-nnovative1 has joined #schooltool | 13:20 | |
*** E-nnovative1 has quit IRC | 13:54 | |
*** jinty has left #schooltool | 14:24 | |
*** jinty has quit IRC | 14:24 | |
*** jinty has joined #schooltool | 14:24 | |
*** didymo has quit IRC | 14:29 | |
*** ignas has joined #schooltool | 16:05 | |
*** th1a has joined #schooltool | 16:14 | |
jinty | ignas: have you seen the mail about z3c.optionstorage? | 16:21 |
ignas | yes | 16:21 |
jinty | ok, anyway, it's all done and there should be a z3c.optionstorage egg | 16:21 |
jinty | (if I managed to do everything correctly | 16:22 |
jinty | ) | 16:22 |
ignas | hmm, | 16:22 |
ignas | i'll try and switch the dependency | 16:22 |
ignas | in lyceum branch at least | 16:22 |
jinty | I think there'l be at least one generation necessary | 16:22 |
ignas | ? | 16:22 |
jinty | but I'm definitely no expert in ZODB related issues | 16:22 |
jinty | there was at least one key that I changed where I had the feeling it might break data compatibility | 16:23 |
* jinty looks for the patch | 16:24 | |
ignas | hmm | 16:24 |
ignas | a problem i guess, as the evolution script should go in z3c.optionstorage package | 16:25 |
*** aelkner has joined #schooltool | 16:25 | |
ignas | i'll try to make it work | 16:25 |
jinty | http://mail.zope.org/pipermail/checkins/2007-June/010763.html | 16:25 |
jinty | on evolution script issues, I defer to you totally | 16:25 |
ignas | by the way - do we really want to change the key? | 16:28 |
ignas | i mean - really? | 16:28 |
ignas | i know it will look better ;) | 16:28 |
ignas | but still | 16:28 |
th1a | Which key? | 16:29 |
ignas | OptionStorageKey | 16:29 |
ignas | jinty: i'd change it back to "optionstorage" and let the one who thinks it's worth renaming write the evolution script | 16:30 |
* th1a shuffles some papers around. | 16:31 | |
ignas | hi | 16:31 |
th1a | Coming to you live from the Georgian Terrace Hotel in Atlanta, GA. | 16:32 |
th1a | Hi ignas, jinty, jfroche_, Lumiere. | 16:32 |
aelkner | I'm here, too. I've been reading the rest code lately, both client and serber. | 16:33 |
th1a | Hi aelkner. | 16:33 |
aelkner | server | 16:33 |
th1a | Hoping pcardune shows up, although it is early on the west coast. | 16:33 |
aelkner | I ran the tests and they only fail in small ways. | 16:33 |
th1a | aelkner: Which tests? | 16:34 |
aelkner | The restclient tests. | 16:34 |
th1a | Oh. | 16:34 |
aelkner | ftests | 16:34 |
th1a | So lets get updates... | 16:35 |
th1a | jinty? | 16:35 |
* jinty is busy showing his house to a potential tenant | 16:36 | |
th1a | jinty: np. | 16:36 |
th1a | jfroche_: ayt? | 16:36 |
th1a | (jfroche said he might be late) | 16:36 |
th1a | Lumiere: ayt? | 16:37 |
th1a | Hm... | 16:37 |
th1a | OK. ignas? | 16:37 |
ignas | ok | 16:38 |
ignas | fixed the code to handle two sections for the same teacher <-> student pair | 16:38 |
ignas | something like half of the group having 1 additional lesson | 16:38 |
ignas | so this usecase would work properly in the journal | 16:38 |
ignas | and began working on attendance views | 16:39 |
ignas | group attendance view specifically | 16:39 |
ignas | and that's it | 16:39 |
th1a | What is "group attendance view?" | 16:40 |
ignas | well - teachers who are responsible for attendance | 16:41 |
ignas | are advisors of a group most of the time | 16:41 |
ignas | only some teachers want to track the attendance for their section separately | 16:41 |
ignas | so lyceum needs a view in which a teacher would be able to see the attendance for the whole group of students he's responsible | 16:41 |
ignas | for | 16:41 |
th1a | Ah. That is good. | 16:42 |
ignas | and mark some absences as explained | 16:42 |
ignas | on lesson or on day basis | 16:42 |
th1a | Cool. | 16:43 |
th1a | I was drinking until 1:00 AM with the lead developer of DrupalEd, among others. | 16:44 |
aelkner | ignas: a question about ftests: | 16:44 |
aelkner | is there a way of running test s o that they give the output | 16:44 |
aelkner | of the tests without doing the comparison. | 16:44 |
aelkner | A sort of automated trace? | 16:45 |
ignas | not sure | 16:46 |
ignas | i don't think so | 16:46 |
ignas | you might want to ask in #zope3-dev about it | 16:46 |
aelkner | I will. I was always wondering about that. | 16:46 |
* jinty is ready to give his update ;) | 16:47 | |
aelkner | Sometimes, one would like to see what's coming out and maybe even oput some trace debugging in. | 16:47 |
th1a | Couldn't you just use pdb? | 16:47 |
* jinty normally just modifies the test a litte | 16:47 | |
ignas | aelkner: in such cases i use: | 16:47 |
ignas | import sys | 16:47 |
ignas | print >> sys.stderr, "My debug output" | 16:47 |
ignas | so all the output goes to stderr, and does not cause tests to fail | 16:48 |
aelkner | I don't prefer pdb because you have to step though everything which can be really tedious. | 16:48 |
aelkner | trace debugging can give you all the output with one line of code. | 16:48 |
th1a | ignas's suggestion is much better, I suspect. | 16:48 |
* jinty knows of at least one testing framework that will fail tests that write anything on stderr | 16:48 | |
jinty | and that testing framework will one day run schooltool's tests | 16:49 |
th1a | jinty: What are you referring to? | 16:50 |
jinty | the ubuntu/debian automated package testing framework | 16:50 |
th1a | OK. | 16:50 |
ignas | jinty: that one should fail tests | 16:50 |
ignas | stderr is like pdb | 16:50 |
ignas | you put it in code | 16:50 |
ignas | run the code, then remove it | 16:50 |
th1a | right. | 16:50 |
*** gpaci has quit IRC | 16:51 | |
jinty | yeah, just letting ya know | 16:51 |
ignas | any testrunner will fail if you will leave pdb.set_trace() in there ;) | 16:51 |
* jinty hopes so | 16:51 | |
jinty | though I've seen many a pdb committed to repositories | 16:51 |
jinty | ... | 16:51 |
th1a | Sure. | 16:52 |
th1a | jinty: Go ahead with your update. | 16:52 |
jinty | well, I've finally registered for europython :) | 16:52 |
jinty | but still have to organize a hotel | 16:52 |
jinty | or hostel more likely | 16:52 |
jinty | otherwise, I've been working a little on sorting out optionstorage | 16:53 |
th1a | Hm... I need to confirm that my reservation went through. I'm afraid it might not have. | 16:53 |
jinty | and am still waiting for pcardune's promised action on his javascript egg | 16:53 |
jinty | (though I havn't actually checked if he's done anything about that | 16:54 |
jinty | ignas: re the key | 16:54 |
jinty | I'm not sure what to do then | 16:54 |
jinty | because before, there was no release -> no need to keep backwards compatibility | 16:55 |
jinty | now there is a release, but with the new key (yes, I should have spoke to you first) | 16:55 |
jinty | so now there is some promise of compatibility, but with the new key | 16:55 |
ignas | hmm, a good programmer would write an evolution script that handles both types of databases (ones with old key and ones with the new key), a bad one would change the key back, and hope no one has managed to download the new egg yet | 16:57 |
ignas | i'll look at it | 16:58 |
* jinty realizes he should have thought of this before... | 16:58 | |
th1a | I would try the latter, but we already know what kind of programmer I am. | 16:59 |
* jinty guesses he just proved on which side of the line he is... | 16:59 | |
aelkner | a rest question: | 17:00 |
aelkner | to test rest manually, is there a way to do a rest GET to see the output? | 17:00 |
aelkner | from the browser? | 17:00 |
jinty | ignas: ok, would it be easier to write the evolution script just for schooltool? as said before, the optionstorage package was never formally released | 17:01 |
jinty | aelkner, wget? | 17:01 |
aelkner | that's from the command line, right? | 17:02 |
jinty | or just your normal browser should do it | 17:02 |
ignas | jinty: yes, but that leaves everyone who has used optionstorage before to face the consequences AND schooltool if accidentally deployed with a different optionstorage egg will still try to evolve which would be bad thing | 17:02 |
ignas | jinty: so - i can't use schooltool specific stuff in optionstorage generation scripts, and will have to think of a way to do it in a generic case | 17:02 |
ignas | which means - find all the objects that have annotations, and fix them (i have no idea how to get all the annotatable objects though) | 17:03 |
ignas | aelkner: simple get - works with browser | 17:04 |
ignas | aelkner: i used curl to do POST/PUT/GET testing | 17:04 |
ignas | with --verbose it gives quite a lot of data you might need | 17:04 |
aelkner | wget http://localhost:7080/persons returned forbidden due to lack of credentials. | 17:06 |
aelkner | Besides it wanted to invoke the index.htmls view. | 17:06 |
ignas | aelkner: what is the REST port? | 17:06 |
ignas | aelkner: and you want to pass username and password in some way as well | 17:07 |
aelkner | In the tests it's 7001. Maybe that's the problem. | 17:07 |
ignas | aelkner: look at schooltool.conf | 17:07 |
aelkner | right. | 17:07 |
jinty | Iignas: i think zope.app.generations.utility.findObjectsMatching | 17:07 |
*** pcardune has joined #schooltool | 17:07 | |
ignas | jinty: cool, there are utilities for generation scripts :D | 17:08 |
th1a | hi pcardune. | 17:08 |
th1a | Good morning. | 17:08 |
pcardune | hi th1a | 17:08 |
pcardune | what time is it UC? | 17:08 |
pcardune | UTC* | 17:08 |
th1a | 1409? | 17:09 |
pcardune | my alarm didn't go off :/ did I miss anything? | 17:09 |
th1a | Hm... nothing earth shattering. | 17:10 |
th1a | Want to give us an update on what you've been doing? | 17:10 |
pcardune | Well, I did manage to reorganize stagent to have a makefile and a test runner | 17:11 |
pcardune | and to be called schooltool.sifagent | 17:11 |
th1a | Thank you for that. | 17:11 |
pcardune | with a namespace package | 17:12 |
pcardune | I also fixed a few errors related to hard coded file paths... | 17:12 |
pcardune | one question I had is: for interns working on REST views, they are going to need commit access to schooltool repository | 17:14 |
th1a | Hm... | 17:14 |
th1a | Hm... | 17:14 |
pcardune | I mean, it is not necessary | 17:14 |
pcardune | thanks to component architecture | 17:15 |
th1a | I'm just wondering if it could be routed through you and eldar somehow. | 17:15 |
ignas | but yes, having a branch of schooltool for them to play around might be useful | 17:15 |
pcardune | but I think it makes a lot more sense to keep REST code with the package which is related to | 17:15 |
th1a | Hm... didn't mean a big problem. | 17:15 |
ignas | pcardune: moving views to schooltool could be done after they are written and tested as well | 17:16 |
pcardune | ignas: this is true | 17:16 |
aelkner | rest views for packages like person are alreay a part of the package itself. | 17:17 |
th1a | We should probably get contributor agreements from them anyhow. | 17:17 |
th1a | co-signed by their parents. | 17:17 |
aelkner | see schooltool.person.rest | 17:17 |
jfroche_ | good afternoon all | 17:17 |
th1a | hi jfroche_. | 17:17 |
pcardune | aelkner: right, that is what I was wondering about | 17:17 |
jfroche_ | again sorry for being late | 17:17 |
th1a | jfroche_: No problem. | 17:18 |
aelkner | I theory, we could create a cando package that contains all of the rest views for all packages and move them in later, solving the commit access problem. | 17:19 |
th1a | It is not a big problem either way. | 17:19 |
th1a | jfroche_: Update? | 17:20 |
jfroche_ | yup met with Nicolas, spoke about gradebook & translation | 17:20 |
*** fsufitch has joined #schooltool | 17:20 | |
jfroche_ | showed him how to introduce his actual notes & how to help french translation | 17:21 |
jfroche_ | friday was the last day of deliberation at jacqmain | 17:21 |
jfroche_ | i phone the school this morning but didnt get them | 17:21 |
jfroche_ | except that still pdf & translations for the "production instance" | 17:22 |
jfroche_ | oh and i got your mail about the washington sprint, i tried to move the holiday with my gf but at last it won't be possible | 17:23 |
th1a | OK. | 17:23 |
th1a | Don't worry about it. | 17:23 |
th1a | I'm not sure what you meant about "pdf & translations" | 17:23 |
jfroche_ | oh the pdf report with reportlab | 17:23 |
jfroche_ | will commit this week to show | 17:24 |
jfroche_ | translation is just get rid of the untranslated that would disturb the teacher/administrative in jacqmain | 17:24 |
th1a | OK. | 17:24 |
th1a | Thanks. | 17:25 |
th1a | So... I should head over to the conference. | 17:25 |
th1a | But perhaps pcardune, aelkner and ignas could discuss how to approach bringing REST back to life? | 17:26 |
pcardune | yes | 17:26 |
aelkner | ok. | 17:26 |
pcardune | and to start coding it today | 17:26 |
th1a | What's the strategy, particularly in regard to also explaining it to interns. | 17:26 |
aelkner | pcardune: i staerted yesterday running the ftests for restclient. | 17:26 |
th1a | ignas: Can you do that now, or should we pick another time? | 17:26 |
aelkner | I seem sto run fine with slight errors. | 17:27 |
ignas | what ZIS calls are we missing in schooltool REST interface? | 17:27 |
th1a | Oh... good question. | 17:27 |
th1a | Well, there is add/change/delete | 17:27 |
aelkner | right. | 17:27 |
aelkner | That should be enough to start. | 17:27 |
*** dwelsh has joined #schooltool | 17:28 | |
ignas | so you need - some new REST views for the queue | 17:28 |
dwelsh | Lumiere: you back? | 17:28 |
ignas | and chesty <-> restclient integration | 17:28 |
jfroche_ | dummy question who and for what (among you i mean) rest is used ? | 17:28 |
th1a | And there is a whole query syntax, which we could implement on the agent if we wanted to. | 17:28 |
*** jelkner has joined #schooltool | 17:28 | |
ignas | that should be quite enough for a while ... | 17:28 |
ignas | as soon as you will have these done | 17:29 |
ignas | you should add a REST add/edit view for demographics person | 17:29 |
th1a | jfroche_: Basically, we're reviving REST as the mechanism for the SIF agent interacting with SchoolTool. | 17:29 |
ignas | because it's the only person that you actually care about at the moment | 17:29 |
* th1a is getting in the shower. | 17:30 | |
* pcardune is thinking about his grumbling stomach | 17:31 | |
jfroche_ | so the SIF agent is the client for the rest views. where/why is this sif agent being developped ? | 17:31 |
aelkner | I'm wondering, too, why we don't just change chesty to talk REST. | 17:31 |
ignas | aelkner: chesty is the client for SIF | 17:32 |
aelkner | It's just a matter of Gets and PUTs to the right port. | 17:32 |
ignas | having 2 clients in 1 place is not very sane | 17:32 |
ignas | you need 2 clients | 17:32 |
ignas | and some core | 17:32 |
aelkner | schooltool.sifagent calls into stagent(chesty) | 17:33 |
aelkner | or maybe i have that wrong. | 17:34 |
aelkner | I havent' looked at pcadune's work yet. | 17:34 |
ignas | schooltool.sifagent is a set of REST views and subscribers | 17:34 |
pcardune | its not my work, it is wills | 17:34 |
pcardune | I just did some reorganizing | 17:34 |
ignas | at least should be | 17:34 |
aelkner | what svn repository is that? | 17:34 |
pcardune | aelkner: bzr repository. search launchpad for stagent | 17:35 |
pcardune | ignas: no, schooltool.sifagent is what translates REST into ZIS | 17:35 |
ignas | pcardune: emm, err | 17:35 |
ignas | but ZIS requests will be sent by sifagent | 17:36 |
ignas | that is independent from schooltool | 17:36 |
aelkner | I know will is working on stagent, but you referred to schooltool.sifagent, a new package created by you, n'est pas? | 17:37 |
ignas | my vision was: ZIS server <-> chesty <-> stagent <-> schooltool.sifagent views <-> schooltool | 17:37 |
pcardune | aelkner: no, just a renaming of stagent | 17:37 |
aelkner | oh | 17:37 |
ignas | ZIS server <-> chesty <-> stagent <-> schooltool restclient <-> schooltool.sifagent views <-> schooltool | 17:37 |
ignas | [chesty <-> stagent <-> schooltool restclient] sitting in one package | 17:38 |
ignas | [schooltool.sifagent views] in another one | 17:38 |
ignas | sifagent views only having a queue of things that happened on schooltool | 17:38 |
fsufitch | pcardune: could you or somebody else reexplain to me the annotation stuff and how barcodes should be implemented, because i got really confused yesterday.... | 17:38 |
fsufitch | (sorry to break into the discussion so roughly) | 17:39 |
ignas | modifications of schooltool database being performed by using schooltool resctlient primitives for person/group etc. modification | 17:39 |
pcardune | fsufitch: not at the moment... we are discussing REST stuff now | 17:39 |
aelkner | right. restclient is in good shape. | 17:39 |
fsufitch | ok | 17:39 |
ignas | so stagent takes items from the queue, sends info to ZIS server | 17:39 |
ignas | then takes info from ZIS server | 17:39 |
aelkner | and cllas into restclient. | 17:39 |
pcardune | ignas: chest <-> stagent is really just stagent. stagent extends chesty | 17:39 |
ignas | and uses restclient to do stuff with schooltool | 17:40 |
pcardune | yes | 17:41 |
ignas | this should leave stagent dependent on schooltool.restclient only | 17:41 |
*** fsufitch has quit IRC | 17:41 | |
ignas | and schooltool if schooltool needed ZIS support only has to include sifagent in it's zcml | 17:42 |
aelkner | really we should refer to them as stagent(chesty) to poit out the class derivation. | 17:42 |
aelkner | ignas: that sounds really clean. | 17:43 |
ignas | it is | 17:43 |
ignas | the only downside is the additional layer that has to be maintained | 17:43 |
ignas | which is restclient and REST views | 17:43 |
*** fsufitch has joined #schooltool | 17:44 | |
aelkner | But they are already in place and 98% functional | 17:44 |
ignas | aelkner: i'd go for 78% ;) | 17:45 |
aelkner | well, I'm referring to the restclient tests which looked pretty good. | 17:45 |
ignas | and i am reffering to the ammount of schooltool functionality that can be accessed through REST | 17:45 |
aelkner | yes, there's code to be written. | 17:46 |
* th1a is out of the shower. | 17:46 | |
aelkner | but the model is there. | 17:46 |
th1a | stagent is just a bridge from one web service (SIF) to another (REST). | 17:48 |
* th1a is heading out. | 17:51 | |
* pcardune wont be able to think much more on this until he gets some food in his stomach | 17:52 | |
aelkner | a question about wget: when I do wget http://localhost:7001/persons --user=manager --password=schooltool, I get 200 OK, length 607 and localhost:7001/persons' saved, but I don't get the 607 bytes of data. Does anyone know what the comand line arg is to get the data? | 17:52 |
aelkner | I tries -r (recursive) to no avail | 17:52 |
aelkner | tried | 17:52 |
aelkner | Never mind. I see it downloaded to a directory called localhot:7001 | 17:56 |
aelkner | Pretty cool. | 17:56 |
fsufitch | dwelsh, would you like to check my printable forms so i can commit them to trunk? | 17:57 |
ignas | aelkner: use curl, it works better for REST | 17:57 |
ignas | fsufitch: as for now - you don't need annotations yet i think | 17:59 |
ignas | at least IMHO | 17:59 |
fsufitch | then i'm just confused. | 17:59 |
fsufitch | i would be able to do something if i knew how to use PIL with zope | 17:59 |
ignas | fsufitch: look at attendance sparkline views | 18:00 |
fsufitch | or how to make a zcml page for barcode.gif | 18:00 |
fsufitch | where are those? | 18:00 |
ignas | src/schooltool/attendance/browser/sparkline.py | 18:01 |
fsufitch | and what do they actually _do_, so i know what i'm looking at | 18:01 |
ignas | and src/schooltool/attendance/sparkline.py | 18:01 |
fsufitch | ok... | 18:01 |
aelkner | ignas: now that I know to start the rest server and use the right port, it works in the browser just fine. | 18:01 |
fsufitch | but what's their actual function? | 18:02 |
ignas | to generate a sparkline image | 18:02 |
ignas | and show it as a .png | 18:02 |
ignas | AttendanceSparkline -> renders it with PIL | 18:02 |
fsufitch | what's a "sparkline" image? | 18:02 |
ignas | fsufitch: what's the difference? ;) some image made from lines and pixels | 18:03 |
ignas | you can google for them | 18:03 |
fsufitch | lol | 18:03 |
fsufitch | ok | 18:03 |
ignas | AttendanceSparklineView - displays the image | 18:03 |
fsufitch | whoa, that's pretty amazing | 18:08 |
*** th1a has quit IRC | 18:09 | |
fsufitch | how does __call__() actually get called? | 18:10 |
fsufitch | does it get called when there's no template specified for a page? | 18:11 |
fsufitch | ignas, ping | 18:14 |
ignas | can't recall precisely | 18:14 |
pcardune | fsufitch: yes | 18:14 |
ignas | i think it has to do with the registration of the view | 18:14 |
fsufitch | i see | 18:14 |
fsufitch | but to emulate that, i would have to actually write a class HaveBarCode | 18:17 |
fsufitch | that would have the renderAsGifString method etc | 18:17 |
fsufitch | also, for the __name__ and __parent__ attributes of IHaveBarCode, are they automatically filled, or do i have to fetch the data from somewhere? | 18:19 |
fsufitch | pcardune, ping | 18:19 |
aelkner | so pcardune: where did you put your schooltool.sifagent package, a bzr repository? | 18:19 |
*** eldar has joined #schooltool | 18:19 | |
pcardune | I would call the class BarCodeView | 18:19 |
pcardune | the class would not implement IHaveBarCode | 18:20 |
fsufitch | i c | 18:20 |
pcardune | aelkner: yes, like I said, search launchpad for stagent | 18:21 |
pcardune | fsufitch: __name__ and __parent__ are automatically filled | 18:21 |
aelkner | stagent is will's as I said. What, did you change his code? | 18:21 |
pcardune | __name__ is the name of an object as it appears in the url | 18:22 |
pcardune | and __parent__ it its container | 18:22 |
fsufitch | i see | 18:22 |
fsufitch | thx | 18:22 |
pcardune | aelkner: yes | 18:22 |
fsufitch | makes it much easier :) | 18:22 |
aelkner | ok | 18:22 |
fsufitch | also, from the BarCodeView, to access __name__ and __parent__, would i use context.__name__ or something? | 18:23 |
ignas | yes | 18:25 |
pcardune | I second that :) | 18:25 |
fsufitch | yay i'm actually understanding stuff! | 18:25 |
*** th1a has joined #schooltool | 18:27 | |
fsufitch | another technical python question | 18:31 |
fsufitch | if i'm in the directory browser/ and want to access a class in the parent directory to it | 18:32 |
fsufitch | and the class is in a file named code128_barcode.py | 18:32 |
fsufitch | would i do: | 18:32 |
pcardune | fsufitch: you have to specify the whole path | 18:32 |
fsufitch | from ..code128_barcode import Code128 | 18:32 |
fsufitch | oh | 18:32 |
pcardune | relative paths won't be around until python 3000? | 18:32 |
pcardune | or maybe you can do that in python2.5? I'm not sure | 18:33 |
pcardune | better to be explicit anyways | 18:33 |
fsufitch | so i would do cando.barcode.code128_barcode.Code128 | 18:33 |
fsufitch | import that stuff i mean | 18:33 |
aelkner | pcardune: I do bzr branch https://launchpad.net/stagent, and it gets stuck in Fetch phase 1/4. Am I doing something wrong? | 18:33 |
ignas | aelkner: not code.launchpad.net ? | 18:34 |
pcardune | aelkner: that does not look like the url to a branch | 18:34 |
ignas | fsufitch: from cando.barcode.code128_barcode import Code128 is the way i'd do | 18:34 |
fsufitch | ok | 18:35 |
aelkner | pcardune: true. I see that there are 5 branches that wdickers made. Which one are you working on? | 18:35 |
aelkner | trunk? | 18:35 |
pcardune | aelkner: the one with the most revisions | 18:36 |
* ignas prefers the full path as he has tools to perform imports automatically | 18:36 | |
pcardune | http://bazaar.launchpad.net/~stagent-developers/stagent/stagent-dev/ | 18:36 |
pcardune | ignas: what is this tool you speak of? | 18:37 |
eldar | ignas, in the new IterableBatch, what do we use instead of <div metal:use-macro="view/@@batch_macros/batch-navigation"/> ? | 18:37 |
fsufitch | pcardune, where would i put the barcode-configure.zcml? | 18:37 |
fsufitch | so that i can actually use it? | 18:37 |
ignas | pcardune: "py-imports.el" (emacs magic) | 18:38 |
pcardune | schooltool-skel/etc/package-includes | 18:38 |
pcardune | or may its package_includes | 18:38 |
ignas | eldar: look at some view that uses IterableBatch | 18:38 |
ignas | and nag jfroche to write the README.txt he promissed | 18:38 |
jfroche_ | oh right forgot about that one | 18:39 |
pcardune | ignas: google doesn't know about py-imports.el | 18:39 |
eldar | >.< | 18:39 |
jfroche_ | ignas: added to my todo list :) | 18:39 |
ignas | eldar: src/schooltool/app/browser/templates/event_booking.pt | 18:40 |
eldar | thank you | 18:40 |
ignas | <tal:block replace="structure batch/render" /> | 18:40 |
fsufitch | pcardune, also, now that i think my display for the image works, how can i do the annotation so that i can do resource/barcode.gif and it shows? | 18:40 |
pcardune | fsufitch: you don't need an annotation | 18:41 |
pcardune | you just need to register a page with the name barcode.gif | 18:41 |
ignas | fsufitch: look at attendance/browser/configure.zcml | 18:41 |
fsufitch | well, i did register it | 18:41 |
ignas | find the lines that register the sparkline view | 18:41 |
fsufitch | but it's registered for IHaveBarCode | 18:41 |
fsufitch | not for IResource | 18:41 |
fsufitch | do i need to do two registers, one for each resource and person? | 18:42 |
ignas | fsufitch: have you added <class "resource"> <implements "IHaveBarcode"> ? | 18:42 |
fsufitch | oh, no | 18:42 |
pcardune | fsufitch: that is the zcml version of putting zope.interface.implements(ISomeInterface) in a class definition | 18:42 |
aelkner | pcardune: I did bzr branch https://code.launchpad.net/~stagent-developers/stagent/stagent-dev, and it's still stuck. Shouldn't that work? | 18:43 |
fsufitch | i see | 18:43 |
ignas | just that you do it in *your* package, without modifying the original implementation | 18:43 |
ignas | fsufitch is getting turbo charged on Zope3 information ;) | 18:43 |
fsufitch | yep :) | 18:44 |
fsufitch | and i'm actually _understanding_ it | 18:44 |
pcardune | aelkner: yes... so I don't know what to tell you :/ | 18:44 |
pcardune | aelkner: I could pack it up and email it to you if you want | 18:45 |
aelkner | pcardune: could you please try the same command and see it it works for you? | 18:45 |
pcardune | aelkner: wait, that isn't the url I gave you | 18:45 |
pcardune | http://bazaar.launchpad.net/~stagent-developers/stagent/stagent-dev/ | 18:45 |
pcardune | http instead of https and bazaar instead of code | 18:46 |
aelkner | crap. It still is getting stuck in fetch phase 1/4. Could you please do the same command to see if it fails for you? | 18:48 |
pcardune | aelkner: I did and it works | 18:48 |
ignas | yep works | 18:49 |
ignas | slowly, but works | 18:49 |
aelkner | Perhaps it's because I'm not a member of stagent-developers? | 18:49 |
ignas | the ticker is ticking and the ammount of = is increasing | 18:49 |
ignas | nope, it's http | 18:49 |
ignas | you don | 18:49 |
ignas | bzr does not log in | 18:49 |
eldar | it could be your routing/nat issues | 18:49 |
aelkner | did you get past fetch phase 1? | 18:49 |
ignas | is the /|\|/ graphics spinning? | 18:49 |
ignas | yep just got past it | 18:50 |
aelkner | yes, it spins | 18:50 |
ignas | and what about "=" signs, and your network traffic monitor? | 18:50 |
aelkner | = signs are adding slowly. | 18:51 |
ignas | so why are you saying it's stuck? | 18:51 |
pcardune | lol | 18:51 |
aelkner | good point. | 18:51 |
fsufitch | pcardune, what's with the arguments to the <configure> tag in other configure.zcml files? | 18:52 |
fsufitch | looks like this: | 18:52 |
fsufitch | <configure xmlns="http://namespaces.zope.org/zope" | 18:52 |
fsufitch | xmlns:wfmc="http://namespaces.zope.org/wfmc" | 18:52 |
fsufitch | xmlns:security="http://schooltool.org/securitypolicy" | 18:52 |
fsufitch | i18n_domain="schooltool"> | 18:52 |
eldar | namespaces | 18:52 |
* pcardune plays sound track to jeopardy for aelkner | 18:52 | |
eldar | they define the different namespaces you are going to use in your document | 18:52 |
*** gpaci has joined #schooltool | 18:52 | |
eldar | the zope namespace is the basic set of namespaces | 18:52 |
fsufitch | i see | 18:52 |
aelkner | i jumped to the conclusion it was stuck because it's taking FOREVER | 18:52 |
eldar | fsufitch, wait, this was covered in paul's class as far as i know | 18:52 |
fsufitch | do i actually need them for what i'm doing? | 18:53 |
fsufitch | i think it was, but i sort of forgot >_> | 18:53 |
aelkner | Yay, it finally finished. | 18:53 |
pcardune | fsufitch: you need them if you are using any of the zcml tags they make available | 18:53 |
fsufitch | well i only need <class> and <implements> stuff | 18:54 |
pcardune | aelkner: I wrote a blog entry on python decorators if you are interested to know about them | 18:54 |
ignas | so you don't need wfmc and you don't need security | 18:54 |
ignas | only "zope" | 18:54 |
aelkner | i'll take a look. | 18:54 |
ignas | fsufitch: you should read about XML namespaces on the internet though | 18:54 |
pcardune | aelkner: http://beta.carduner.net/wordpress/?p=11 | 18:55 |
eldar | aelkner, the journal trunk should be fixed now | 18:55 |
pcardune | eldar: yay! | 18:56 |
pcardune | eldar: how close are we to making the buildbot function? | 18:56 |
eldar | pcardune, hmm what do you mean? | 18:56 |
ignas | pcardune: you should add @apply used as decorator there, and a decorator with an optional parameter ;) | 18:56 |
eldar | the buildbot works as far as i know | 18:56 |
eldar | they just didn't add the automatic mailing functionality yet | 18:57 |
aelkner | eldar: what journal trunk? I know of my journal branch, aelkner-threaded-jounal. Do you mean that? | 18:57 |
pcardune | ignas: I do have @apply at the bottom | 18:57 |
eldar | aelkner, the trunk's journal, that batching thing, i fixed it | 18:58 |
ignas | oh | 18:58 |
eldar | aelkner, you can merge the changes into your branch now | 18:58 |
eldar | pcardune, do you know what linda's branch was called? | 18:58 |
pcardune | linda's branch for what? | 18:59 |
pcardune | short answer: no | 18:59 |
ignas | pcardune: http://mg.pov.lt/profilehooks.py (profile is an example of a decorator that can have a parameter, but works without any as well) | 18:59 |
pcardune | eldar: but does builtbot pass? | 18:59 |
fsufitch | pcardune, where would i find the resource class so i can put in zcml? | 18:59 |
fsufitch | or eldar, whichever one can answer quicker ;) | 18:59 |
ignas | fsufitch: schooltool.resource.resource.BaseResource | 19:00 |
fsufitch | whoa | 19:00 |
fsufitch | so it should look like: | 19:01 |
fsufitch | <class class="schooltool.resource.resource.BaseResource"> | 19:01 |
fsufitch | <implements interface="cando.barcode.interfaces.IHaveBarCode"/> | 19:01 |
fsufitch | </class> | 19:01 |
ignas | yes | 19:01 |
fsufitch | or have i committed some sort of crime in there? | 19:01 |
fsufitch | ok good | 19:01 |
pcardune | fsufitch: ignas is the fastest programmer in the west - or rather the east - or maybe just everywhere | 19:02 |
eldar | pcardune, do you remember the buildbot url? | 19:02 |
*** th1a has quit IRC | 19:02 | |
pcardune | svn.schooltool.org -> click on buildbot :) | 19:02 |
fsufitch | kik | 19:03 |
eldar | danke | 19:03 |
fsufitch | *lol | 19:03 |
ignas | no one has fixed the testbrowser ftesting.zcml inclusion in cando? | 19:04 |
pcardune | ignas: not yet? | 19:04 |
fsufitch | and Person is in schooltool.person.person.Person? | 19:05 |
eldar | ignas, where do i fix it? i never heard of this one | 19:06 |
ignas | pcardune: is there a way to add <implements> to an interface? | 19:06 |
ignas | eldar: find cando ftesting.zcml, remove testbrowser line from it | 19:06 |
eldar | ignas, thanks | 19:07 |
pcardune | ignas: as in , one interface implements another? | 19:07 |
ignas | pcardune: yes, because adding IHaveBarcode to IPerson would be cleaner | 19:07 |
pcardune | why? | 19:07 |
pcardune | oh I see | 19:08 |
pcardune | I don't know if that is possible | 19:08 |
pcardune | at least not easily | 19:08 |
fsufitch | ok then... i've got everything set to actually test it | 19:08 |
ignas | fsufitch: schooltool.demographics.person.Person | 19:08 |
fsufitch | so all i have to do is to do some url work? | 19:08 |
fsufitch | whoa, then what person did i grab from person.person.Person? | 19:08 |
pcardune | fsufitch: ah, you have discovered the finer points of schooltool development ;) | 19:09 |
ignas | schooltool simple Person | 19:09 |
ignas | the one without all the demographics cruft | 19:09 |
fsufitch | i see | 19:09 |
ignas | that is only needed by you, sneaky spying Americans | 19:09 |
ignas | ;) | 19:09 |
fsufitch | lol | 19:10 |
eldar | pcardune, any reason why all includes for cando in src/cando/journal/browser/ftesting.zcml are commented out? | 19:10 |
fsufitch | so now all i need to do is browse around to a person/barcode.gif? | 19:10 |
ignas | yes | 19:10 |
fsufitch | yay! | 19:10 |
fsufitch | this wasnt as hard as i thought it would be >_> | 19:10 |
eldar | pcardune, oh nevermind, you were moving the same file around, and uncommenting different things | 19:11 |
fsufitch | hmm, it says Page not found | 19:12 |
ignas | pcardune: py-imports is my own emacs hack, that uses TAGS, and a lookup table (for those special Zope3 imports) to construct the import string when you need it | 19:12 |
ignas | so you won't find it on google | 19:12 |
fsufitch | when i try to access it using http://maddog.yhspatriot.net:8125/persons/fsufitch/barcode.gif | 19:12 |
aelkner | eldar: I did svn merge -r 807:809 https://aelkner@svn.schooltool.org/cando/trunk/src/cando (I assumed since 807 was the latest revision for my branch and 809 was for the trunk) | 19:13 |
ignas | fsufitch: how does your page declaration look like? | 19:13 |
fsufitch | let me fetch it | 19:13 |
aelkner | funny thing it shows in svn status that jounal.py and journal.pt have stauts M | 19:13 |
aelkner | but the files haven't changes somehow. | 19:13 |
fsufitch | <page | 19:13 |
fsufitch | name="barcode.gif" | 19:13 |
fsufitch | for="cando.barcode.interfaces.IHaveBarCode" | 19:13 |
fsufitch | class="browser.BarCodeView" | 19:13 |
fsufitch | permission="schooltool.view" | 19:13 |
fsufitch | /> | 19:13 |
eldar | oh, since you probably made your own edits to them, you're going to have to manually resolve the differences | 19:14 |
ignas | class=".browser.BatCodeView" | 19:14 |
fsufitch | i'll try compiling again | 19:14 |
aelkner | ok | 19:14 |
eldar | to help you, the main thing i changed was the Batch initialization in journal.py | 19:14 |
ignas | i wonder how it even started | 19:14 |
eldar | remove some stuff | 19:14 |
eldar | and edited the macros includes in journal.pt | 19:14 |
fsufitch | why .browser? | 19:14 |
ignas | relative import | 19:15 |
fsufitch | oh, yeah | 19:15 |
fsufitch | still not found | 19:16 |
ignas | i'd try registering it for IPerson directly, then if that works, look at what is wrong with your <class> declaration | 19:17 |
fsufitch | ok... | 19:17 |
fsufitch | and where is IPerson? | 19:18 |
ignas | what editor are you using? | 19:18 |
ignas | emacs or vim ? | 19:18 |
fsufitch | vim | 19:18 |
ignas | have you tried using vim "tags" ? | 19:19 |
ignas | if not - you should read about them | 19:19 |
aelkner | eldar: it turns out that 809 was not the revision that you made the change, it was 810. Using that revision number did the trick. | 19:19 |
ignas | works wonders when you want to find class defintions | 19:19 |
fsufitch | i'll read about them | 19:19 |
fsufitch | but i'd rather after i finish this problem :) | 19:19 |
aelkner | trac has an annoying tendency to not update the latest revision number. | 19:19 |
ignas | schooltool.person.interfaces.IPerson | 19:20 |
aelkner | it says 809, but when you click on it, it shows your 810 change. | 19:20 |
fsufitch | ok, ty | 19:20 |
fsufitch | still not found :( | 19:21 |
aelkner | eldar: do you see what I mean? | 19:22 |
fsufitch | ignas, so what do i do? | 19:23 |
ignas | fsufitch: as you had a syntax error in your configure.zcml | 19:24 |
eldar | aelkner, ah yes, did it help? | 19:24 |
ignas | my psychic powers say | 19:24 |
ignas | that it was not included | 19:24 |
ignas | because else you would get an error | 19:24 |
fsufitch | syntax error o_O | 19:24 |
ignas | "browser.Foo" | 19:24 |
ignas | should have told you Class not found! | 19:24 |
ignas | find the site.zcml that is used when starting the app | 19:24 |
ignas | ask pcardune about that | 19:24 |
ignas | and add your module in there | 19:25 |
fsufitch | ok... | 19:25 |
aelkner | eldar: yes, it did. | 19:25 |
fsufitch | pcardune, so ignas says to ask you about my problem :) | 19:27 |
pcardune | fsufitch: what is your problem? | 19:27 |
ignas | his configure.zcml is not in the site.zcml | 19:28 |
fsufitch | my barcode.gif is not found, and ignas says that there might be a syntax problem somewhere, as there's no error | 19:28 |
ignas | thus his views are not used | 19:28 |
fsufitch | yeah, that | 19:28 |
fsufitch | >_> | 19:28 |
ignas | the syntax error just helped me diagnose the problem | 19:28 |
ignas | it's not related to the view not being found | 19:28 |
fsufitch | oh | 19:29 |
fsufitch | maybe i did something bad with my barcode-configure.zcml | 19:29 |
pcardune | that might be it | 19:29 |
pcardune | what does your barcode-configure look like? | 19:29 |
ignas | pcardune: schooltool is ingoring slugs iirc, or slugs are not moved into places | 19:30 |
fsufitch | <include package="cando.barcode" /> | 19:30 |
ignas | eggification ... | 19:30 |
*** jelkner has quit IRC | 19:30 | |
ignas | or are you using an ancient version? | 19:30 |
pcardune | ignas: but that slug was dropped into place manually | 19:30 |
pcardune | fsufitch: and where did you put that slug? | 19:30 |
pcardune | eldar: what was the final story with site.zcml for cando? | 19:31 |
ignas | pcardune: so, site.zcml is not doing the <include * > thingie | 19:31 |
eldar | site.zcml does not exist | 19:31 |
eldar | for cando | 19:31 |
eldar | we drop a slug manually into package-includes | 19:31 |
eldar | of cando-configure.zcml | 19:31 |
fsufitch | i forgot where i put it | 19:31 |
eldar | cando's configure.zcml does all the handling | 19:31 |
eldar | of including cando packages | 19:31 |
eldar | so if you want barcode to be included | 19:31 |
eldar | go to cando/Schooltool/src/cando/configure.zcml | 19:32 |
eldar | and add barcode there | 19:32 |
fsufitch | i c | 19:32 |
fsufitch | ok | 19:32 |
eldar | and remove your slug from package includes | 19:32 |
fsufitch | ok | 19:32 |
pcardune | we will want to change this at some point | 19:32 |
fsufitch | where are the package includes? | 19:33 |
eldar | if you don't know that, don't worry about it, most likely you didn't drop a slug there to begin with | 19:33 |
pcardune | fsufitch: cando/SchoolTool/schooltool-skel/package-includes | 19:33 |
fsufitch | thx | 19:33 |
ignas | pcardune: as i am maintaining different schooltool configurations having 2 static site.zcmls makes most sense for me | 19:33 |
ignas | pcardune: this allows to have only modules i want when starting schooltool | 19:34 |
eldar | putting stuff in cando's configure.zcml works fine for now | 19:34 |
ignas | pcardune: though in case of cando - i'd put all these includes in cando/configure.zcml | 19:34 |
ignas | and then add "plugins/" directory in schooltool-skel | 19:34 |
eldar | ignas, yeah, it's exactly what we do | 19:34 |
eldar | plugins 0.O? | 19:34 |
ignas | and put cando-configure.zcml in there | 19:34 |
pcardune | yes, the plugins/ directory is what I was thinking about | 19:34 |
ignas | but "CanDo" will be the plugin | 19:35 |
ignas | not cando sub modules | 19:35 |
eldar | makes sense | 19:35 |
fsufitch | pcardune, it's not in cando/SchoolTool/schooltool-skel/package-includes | 19:35 |
fsufitch | there is no package-includes there | 19:35 |
pcardune | oh... interesting | 19:35 |
eldar | schooltool-skel/*etc* | 19:36 |
pcardune | and not a package_includes either? | 19:36 |
eldar | package-includes | 19:36 |
fsufitch | no | 19:36 |
pcardune | oh | 19:36 |
fsufitch | oooh, etc | 19:36 |
fsufitch | ok | 19:36 |
fsufitch | yay i'm getting a syntax error! | 19:36 |
eldar | the only thing you should see there is cando-configure.zcml | 19:36 |
fsufitch | yeah | 19:36 |
fsufitch | i noticed :) | 19:36 |
pcardune | eldar: does our makefile drop that in? | 19:37 |
eldar | yeah | 19:37 |
pcardune | ok | 19:37 |
eldar | on the first make, it drops it in | 19:37 |
fsufitch | uh, it doesn't let me do <include package="cando.barcode" /> in cando/configure.zcml | 19:37 |
fsufitch | ConfigurationError: ('Invalid value for', 'package', 'ImportError: Module cando has no global barcode') | 19:38 |
eldar | is your barcode directory inside cando ? | 19:38 |
fsufitch | yes | 19:38 |
eldar | does it have a __init__.py in it? | 19:38 |
fsufitch | oh | 19:38 |
fsufitch | no | 19:38 |
fsufitch | should __init__.py be empty? | 19:39 |
eldar | doesn't matter | 19:39 |
fsufitch | ok | 19:39 |
fsufitch | brb | 19:39 |
eldar | touch "#package" >> __Init__.py | 19:39 |
eldar | oops | 19:39 |
eldar | just | 19:39 |
eldar | touch __init__.py | 19:39 |
eldar | yay! only functional tests are failing now | 19:40 |
fsufitch | back | 19:41 |
fsufitch | still not found :( | 19:43 |
ignas | is there __init__.py in your browser package? | 19:43 |
fsufitch | yes | 19:44 |
ignas | and could you add a blatant syntax error to configure.zcml in your barcode package | 19:44 |
fsufitch | it's not giving errors anymore | 19:44 |
ignas | <foo> | 19:44 |
fsufitch | ok | 19:44 |
ignas | and try if it's failing to start | 19:44 |
fsufitch | it starts | 19:45 |
fsufitch | with <foo> and everythign | 19:45 |
ignas | so it's not being included | 19:45 |
fsufitch | but then why was it yelling about no __init__.py being there? | 19:45 |
eldar | alright, i'll be back in a few hours | 19:46 |
fsufitch | ko | 19:46 |
*** eldar is now known as eldar-out | 19:46 | |
fsufitch | *ok | 19:46 |
ignas | no idea, can't tell you without seeing the code | 19:47 |
ignas | look at some cando package that works | 19:47 |
ignas | and try to find out how is your package different | 19:47 |
fsufitch | ok | 19:47 |
fsufitch | they're all the same!! | 19:48 |
fsufitch | <include package="cando.curriculum" /> | 19:48 |
fsufitch | <include package="cando.barcode" /> | 19:48 |
fsufitch | <include package="cando.journal" /> | 19:48 |
fsufitch | etc... | 19:48 |
ignas | and in cando/curriculum/configure.zcml if you add a syntax error? | 19:48 |
fsufitch | let me see | 19:49 |
fsufitch | it doesnt complain | 19:49 |
fsufitch | it still starts | 19:50 |
fsufitch | maybe <foo> isn't a syntax error? | 19:50 |
ignas | maybe, try <foo | 19:50 |
ignas | is it even a cando server that gets started? | 19:51 |
fsufitch | it still starts | 19:51 |
fsufitch | uh | 19:51 |
fsufitch | it's a schooltool that gets started | 19:51 |
fsufitch | that should start cando right? | 19:51 |
ignas | with cando.journal? | 19:51 |
ignas | and cando.curriculum? | 19:51 |
fsufitch | yes | 19:51 |
fsufitch | i know it starts cando.virginia, because i worked with the competency gradebooks... | 19:51 |
ignas | at least for me <foo gets a syntax error .. | 19:52 |
ignas | seems that you are editing code in one place, and running it in another, or something like that | 19:53 |
ignas | try going from the bottom (or is it top) | 19:53 |
ignas | find the schooltool.conf that is used | 19:53 |
fsufitch | wait a minute | 19:53 |
ignas | in it - find the site.zcml that is used | 19:53 |
ignas | and add a syntax error in there, if that works, go lower | 19:53 |
ignas | and etc. | 19:54 |
fsufitch | so cando/src/cando/ isnt linked to cando/Schooltool/src/cando/? | 19:54 |
ignas | no idea | 19:55 |
fsufitch | the site.zcml doesnt seem to include any cando anything | 19:56 |
ignas | what do you type to start cando? | 19:57 |
ignas | make run? | 19:57 |
fsufitch | yes | 19:58 |
ignas | hmm | 19:58 |
ignas | no idea, i guess you'll have to talk to pcardune or eldatr | 19:58 |
ignas | eldar | 19:58 |
ignas | as i have no cando checkout | 19:58 |
pcardune | fsufitch: what branch are you working on? | 19:59 |
pcardune | fsufitch: and are you working on maddog? | 19:59 |
fsufitch | yes, on maddog | 19:59 |
fsufitch | and i think i'm still on printable-forms | 19:59 |
fsufitch | although i didn't commit | 19:59 |
pcardune | ok, I'll go in and have a look | 19:59 |
pcardune | these people in dallas just don't get it - they have the wrong phone number | 20:02 |
pcardune | fsufitch: can you shut off your schooltool instance? | 20:03 |
fsufitch | ok | 20:04 |
pcardune | fsufitch: ah, I see that none of the cando code is being included | 20:07 |
fsufitch | yeah | 20:08 |
fsufitch | was that the bug that was being mentioned on launchpad? | 20:08 |
pcardune | ok, there you go | 20:08 |
pcardune | its fixed | 20:08 |
pcardune | I just reran make | 20:08 |
pcardune | yes | 20:08 |
pcardune | it is | 20:08 |
fsufitch | if i rerun make will it kill my code? | 20:09 |
pcardune | no | 20:09 |
pcardune | I get xml errors now in barcode/configure.zcml | 20:09 |
fsufitch | yeah, it's because i had a <foo> in there | 20:10 |
fsufitch | to check for if it was included :) | 20:11 |
ignas | by the way - when testing for zcml inclusion random sets of letters are not syntax errors | 20:11 |
* ignas found it the hard way | 20:11 | |
fsufitch | when including > and < signs in there they should be | 20:11 |
ignas | unclosed tags, or non-existent tags - work way better ;) | 20:11 |
fsufitch | ok | 20:12 |
fsufitch | oh, i also had the xml version set to 1,0 | 20:14 |
fsufitch | that will do it too :) | 20:14 |
*** scottmaccal has joined #schooltool | 20:18 | |
fsufitch | still not found!! :( | 20:18 |
fsufitch | but it DID complain about some errors i had in my code | 20:18 |
fsufitch | it doesnt seem like the barcode/browser/configure.zcml is being accessed | 20:19 |
fsufitch | nope, it's not complaining about the <foo> | 20:20 |
ignas | do you have <include package=".browser" /> in your configure.zcml | 20:21 |
fsufitch | no, i dont think so | 20:21 |
ignas | in your barcode/configure.zcml | 20:21 |
pcardune | some people don't know how to right commit messages: | 20:22 |
pcardune | ITcd src/scheduling/! WORKScd src/scheduling/! MOFGAFGAGHAOHTGBNKARAOUBHTAObATBGAtbhagbahda814659176341#2139tjgafhba@^#oasfgahfgcd src/scheduling/! Wow, that looks a lot like an SSH key... Oh, it only works 75 some percent though... | 20:22 |
pcardune | ?? | 20:22 |
fsufitch | ConfigurationError: ('Invalid value for', 'package', 'ImportError: Module cando.barcode has no global browser') | 20:22 |
fsufitch | do i have to have an __init__.py in browser/ too? | 20:22 |
ignas | yes | 20:23 |
fsufitch | yay, it's not saying not found anymore | 20:25 |
fsufitch | it just has a problem with me referencing context.__name__ and context.__parent__ | 20:26 |
fsufitch | context not found o_O | 20:26 |
fsufitch | isn't it supposed to be defined by default? | 20:26 |
ignas | self? | 20:26 |
fsufitch | self? | 20:26 |
fsufitch | but this is the code in BarCodeView | 20:26 |
fsufitch | not in IHaveBarCode | 20:27 |
ignas | self.context.__name__ | 20:27 |
fsufitch | ooooh | 20:27 |
fsufitch | ok | 20:27 |
fsufitch | grrr, this is one thing of python that i dislike | 20:27 |
ignas | yes, it's way better to have to name all the members of the class _foo or m_foo to be able to tell them apart from function parameters and locals | 20:28 |
ignas | not. | 20:28 |
fsufitch | ForbiddenAttribute: ('__add__', <schooltool.person.person.PersonContainer object at 0x9d4a4ec>) | 20:28 |
fsufitch | wtf | 20:28 |
fsufitch | __add__? | 20:28 |
ignas | you have person_container + foo | 20:28 |
fsufitch | i never tried to access that | 20:28 |
ignas | somewhere | 20:28 |
fsufitch | oh | 20:28 |
fsufitch | but... | 20:29 |
fsufitch | OH! | 20:29 |
ignas | yes? | 20:29 |
ignas | __parent__.__name__ ? | 20:29 |
fsufitch | that too | 20:29 |
fsufitch | but i was trying to add object+string+object | 20:29 |
ignas | friends don't let friends add strings to containers | 20:29 |
pcardune | nothing like a light bulb turning on to brighten your day.... | 20:29 |
pcardune | ignas: lol | 20:29 |
scottmaccal | greetings, I would like to help with the Mac OS X port. could someone point me the right direction as far as source code? | 20:30 |
pcardune | scottmaccal: well, you can get check out all the code via subversion | 20:30 |
ignas | scottmaccal: http://www.schooltool.org/documentation/setting-up-a-development-server/ | 20:30 |
ignas | try doing this | 20:31 |
ignas | if it fails - fix it | 20:31 |
scottmaccal | ok | 20:31 |
scottmaccal | thank you | 20:31 |
ignas | we have no idea what issues might crop up on Max OS X, so we can't really guide you | 20:31 |
ignas | but most parts of the ubuntu setup guide should work for you | 20:32 |
scottmaccal | ok. I will give it a shot. | 20:32 |
fsufitch | ignas, how do i get a string from a StringIO? | 20:33 |
fsufitch | in the example you gave me it was stringio.getValue() | 20:33 |
fsufitch | but it doesnt work for me | 20:33 |
ignas | fsufitch: how does it fail? | 20:33 |
fsufitch | AttributeError: StringIO instance has no attribute 'getValue' | 20:34 |
ignas | are you importing StringIO | 20:34 |
fsufitch | yes | 20:34 |
ignas | or from StringIO import StringIO | 20:34 |
ignas | oh | 20:35 |
ignas | duh | 20:35 |
fsufitch | import StringIO | 20:35 |
ignas | getvalue)_ | 20:35 |
ignas | getvalue() | 20:35 |
ignas | not getValue() | 20:35 |
fsufitch | lowercase v? | 20:35 |
ignas | python standard lib | 20:35 |
ignas | yes | 20:35 |
fsufitch | ok | 20:35 |
ignas | has like 3-4 naming conventions used all over | 20:35 |
fsufitch | lol | 20:35 |
fsufitch | IT WORKS!!! | 20:35 |
fsufitch | zomg!! | 20:35 |
fsufitch | w00t | 20:36 |
pcardune | fsufitch: do you have a url I can look at? | 20:36 |
fsufitch | http://maddog.yhspatriot.net:8125/persons/fsufitch/barcode.gif | 20:36 |
pcardune | very nice | 20:37 |
fsufitch | i accomplished something! | 20:37 |
fsufitch | >_> | 20:37 |
fsufitch | anyway, now i have stuff to do | 20:37 |
pcardune | cando stuff to do? | 20:37 |
fsufitch | like babysitting my little bro >_> | 20:37 |
fsufitch | i'll be back later | 20:38 |
fsufitch | no, not cando, sadly :( | 20:38 |
pcardune | fsufitch: you should teach him python | 20:38 |
fsufitch | he's 2 years old | 20:38 |
pcardune | never too early to start :) | 20:38 |
ignas | oooh, can you generate jail style photos from the ones uploaded to schooltool too? | 20:38 |
fsufitch | heh | 20:38 |
pcardune | ha ha ha | 20:38 |
ignas | as you are barcoding the inmates already ;) | 20:38 |
fsufitch | jail style photos? | 20:38 |
pcardune | that would be great | 20:38 |
pcardune | it should be a plugin | 20:38 |
fsufitch | i could do that | 20:38 |
pcardune | schooltool.jail | 20:38 |
fsufitch | >_< | 20:38 |
fsufitch | jailtool >_> | 20:39 |
ignas | Prisoner Information System | 20:39 |
ignas | a PIS | 20:39 |
pcardune | or PISST - Prisonder Information System (SchoolTool) | 20:40 |
fsufitch | lol | 20:40 |
fsufitch | ok, i'll be back later | 20:40 |
*** fsufitch is now known as fsufitch_nothere | 20:40 | |
*** scottmaccal has left #schooltool | 20:50 | |
ignas | yippie, got attencance view working, now i'll have to add some way to mark absences as explained | 20:54 |
ignas | ok, g2g | 20:54 |
ignas | and anyway - it's a holiday in Lithuania ;) | 20:55 |
*** ignas has quit IRC | 20:55 | |
*** gpaci has quit IRC | 21:00 | |
*** gpaci has joined #schooltool | 21:33 | |
*** fsufitch_nothere has quit IRC | 21:38 | |
aelkner | pcardune: I'm getting a forbidden attribute error in my threaded journal entry view on context/title. | 22:10 |
aelkner | the view is registered with permission zope.View. | 22:10 |
pcardune | hmmm | 22:11 |
aelkner | perhaps my view class is missing something? | 22:11 |
aelkner | like an __init__ method? | 22:11 |
aelkner | could you look at JournalEntryThreadedView in jounal.py please? | 22:12 |
*** mgedmin has joined #schooltool | 22:18 | |
pcardune | aelkner: can you give me a link per chance? | 22:19 |
pcardune | aelkner: sorry for the late response, long distance call with my grandmother... | 22:19 |
lisppaste5 | aelkner pasted "forbidden attribute error" at http://paste.lisp.org/display/43409 | 22:19 |
aelkner | i'm running it on my local machine, but maybe the traceback would give you a hint. | 22:20 |
aelkner | if the traceback doesn't look familiar, I could set it up on maddog. | 22:21 |
pcardune | and the zcml class registration, what does that look like? | 22:21 |
pcardune | that traceback does look familiar | 22:21 |
aelkner | for journal entry or view? | 22:21 |
pcardune | for journal entry | 22:21 |
aelkner | <class class=".journal.JournalEntry"> | 22:21 |
aelkner | <require permission="schooltool.view" | 22:22 |
aelkner | interface=".interfaces.IJournalEntry" /> | 22:22 |
aelkner | <require permission="schooltool.edit" | 22:22 |
aelkner | set_schema=".interfaces.IJournalEntry" /> | 22:22 |
aelkner | </class> | 22:22 |
pcardune | and it the title attribute defined in IJournalEntry? | 22:22 |
pcardune | s/it/is | 22:22 |
aelkner | yes, I only changed the implementation to be a BTree. | 22:22 |
aelkner | no changes to the interface. | 22:23 |
aelkner | ooh, could it be that I need to change the interface to derive from IContainer now? | 22:24 |
pcardune | and it is accessing the title in the pt file or in the view class? | 22:24 |
aelkner | like journal does? | 22:24 |
pcardune | aelkner: well, that is a good idea | 22:24 |
aelkner | in the pt file. | 22:24 |
aelkner | maybe that's it. | 22:24 |
aelkner | i'll try. | 22:24 |
pcardune | ok | 22:25 |
aelkner | yippie, that worked! | 22:26 |
pcardune | nothing like the thought of a grown man exclaiming "yippie" | 22:27 |
pcardune | he he | 22:27 |
aelkner | i'm not as grown as my age would indicate :) | 22:27 |
pcardune | I realize that... lol | 22:28 |
aelkner | pcardune: now that I have successfully added a journal entry to the journal, I go to it and there's noe New Entry menu item for it. So I tried to change the menuitem registration to expand the for with IJournalEntry. | 22:34 |
aelkner | <menuItem | 22:34 |
aelkner | menu="schooltool_actions" | 22:34 |
aelkner | title="New Entry" | 22:34 |
aelkner | for="cando.journal.interfaces.IJournal | 22:34 |
aelkner | cando.journal.interfaces.IJournalEntry" | 22:34 |
aelkner | action="+/addJournalEntry.html" | 22:34 |
aelkner | permission="schooltool.edit" | 22:34 |
aelkner | /> | 22:34 |
aelkner | It fails to start the server, complaining: | 22:35 |
aelkner | ConfigurationError: ('Invalid value for', 'for', "ImportError: Couldn't import cando.journal.interfaces.IJournal cando.journal.interfaces, No module named IJournal cando.journal.interfaces") | 22:35 |
aelkner | Am I going about this the wrong way? | 22:35 |
pcardune | yes | 22:35 |
pcardune | i don't think you can register a menu for two different interfaces | 22:35 |
aelkner | Could I just clone and change? | 22:36 |
pcardune | yes, i think that would me admissible | 22:36 |
pcardune | otherwise you would create a third interface called IHaveJournalEntries, and make IJournal and IJournalEntry both inherit from that | 22:37 |
pcardune | then register the menu on IHaveJournalEntries | 22:37 |
pcardune | which you might have to do later for other reasons, but I'm not sure yet what those other reasons might be, you'll just have to wait an see | 22:37 |
aelkner | ok, i'll start with the clone idea and keep the other in mind for later (or now if cloning doesn't work) | 22:38 |
*** mlinnell has joined #schooltool | 22:45 | |
aelkner | Funny how http://localhost:7080/journals/schooltool-managers-blog/+/addJournalEntry.html brings up the page | 22:52 |
aelkner | but http://localhost:7080/journals/schooltool-managers-blog/first-try/+/addJournalEntry.html says there's no such url | 22:52 |
aelkner | looking at the addform registration, it looks like it doesn't care who it's adding to, just what it's adding (i.e., the factory) | 22:53 |
aelkner | pcardune: shouldn't i be able to use the addform for my journal entries (now that they are containers)? | 22:54 |
pcardune | yes | 22:55 |
pcardune | it is probably looking for the + part of that url | 22:55 |
pcardune | which is an add view | 22:55 |
pcardune | and you should register that with the containerViews directive | 22:55 |
aelkner | oh, a clone of the onw for IJounal with the other ionterface. I'll try. | 22:56 |
*** eldar-out is now known as eldar | 23:16 | |
*** fsufitch has joined #schooltool | 23:17 | |
eldar | pcardune, so what's with the pytz thing, i read the email you sent to jinty and what he wrote back | 23:18 |
pcardune | fsufitch: does your little brother know python yet? | 23:18 |
eldar | we are supposed to install pytz on the slave bot? | 23:18 |
pcardune | eldar: I think it is in Jason's court now | 23:18 |
fsufitch | pcardune, a bit... | 23:19 |
pcardune | either that or uninstall it | 23:19 |
fsufitch | pcardune, he can almost pronounce python | 23:19 |
pcardune | he he | 23:19 |
pcardune | everybody's got to start somewhere... | 23:19 |
pcardune | eldar: what are you working on now? | 23:20 |
eldar | pcardune, i just got back, so nothing, you have something for me :) ? | 23:20 |
pcardune | I thought I might bounce some ideas off of you about student-evidence | 23:21 |
eldar | alright, shoot | 23:21 |
pcardune | well, evidence could come in a lot of different forms | 23:21 |
pcardune | it could be a url, a document, a picture | 23:21 |
pcardune | etc. | 23:21 |
pcardune | these are all pieces of information | 23:22 |
pcardune | curriculum is of the same form | 23:22 |
pcardune | could be a url, a document | 23:22 |
pcardune | or even a set of documents | 23:22 |
eldar | yep | 23:22 |
pcardune | student evidence will be related specifically to journal entries as well | 23:23 |
pcardune | so a journal entry could act as the object that we place all the "Evidence" onto | 23:23 |
pcardune | does that sound good? | 23:23 |
eldar | so how is this "relation" between journal entries and evidence going to work? | 23:24 |
eldar | are we doing just a simple url inclusion, or actually a semantic link inside the system | 23:24 |
pcardune | link inside the system | 23:25 |
eldar | hmmm okay | 23:25 |
eldar | so IEvidence is gonna be pretty flexible | 23:25 |
pcardune | i'm thinking we don't need IEvidence | 23:26 |
eldar | just use IInformation? | 23:26 |
pcardune | evidence will just be a fancy word for information attached to a journal entry | 23:26 |
*** th1a has joined #schooltool | 23:27 | |
pcardune | how does that sound? | 23:27 |
eldar | sounds good, that way we won't have to reimplement a whole lot of new features | 23:27 |
pcardune | yes | 23:27 |
pcardune | ok, cool, i'm going to create a branch for this stuff | 23:29 |
eldar | alrighty | 23:29 |
eldar | i'll need to start working on that journal notification soon | 23:30 |
pcardune | we've got to coordinate with aelkner... or too manyy of us are going too be worrking on the ssame packaage | 23:30 |
eldar | true true | 23:31 |
aelkner | yeh, I'm making lots of changes to the journal package,. | 23:31 |
eldar | aelkner, you are working on file attachments for journal entries, right? | 23:31 |
aelkner | no, I turned journal entries into containers and added a thread view. | 23:32 |
pcardune | no, hes doing journal threading | 23:32 |
aelkner | threaded | 23:32 |
eldar | oooooh wait | 23:32 |
eldar | journal entries, are like journals now? | 23:32 |
eldar | hmmm.... | 23:32 |
pcardune | *like*, but not exactly the same | 23:33 |
aelkner | in that they contain other journal entries... | 23:33 |
pcardune | a journal is the top level container | 23:33 |
eldar | gotta think about how that's going to work with the "submit for review" thingy | 23:33 |
eldar | pcardune, yeah i understand the technicalities, i'm just generalizing | 23:33 |
pcardune | aelkner: we might have to add another step in the process | 23:34 |
aelkner | being? | 23:34 |
pcardune | eldar: I think submit for review should only work on top level journal entries | 23:34 |
pcardune | sub journal entries are more for commentary and discussion | 23:34 |
aelkner | entries whose parent are journals | 23:34 |
eldar | pcardune, ah ok, well that simplifies it | 23:34 |
pcardune | aelkner: where your piece comes in to play is recognizing that a journal entry has the parent being a journal | 23:36 |
pcardune | aelkner: We might need three interfaces: IJournal, IJournalEntry (for top-level only), and IJournalEntryComment? | 23:36 |
aelkner | A change to IJournalEntry to have a parentIsJournal methos? | 23:37 |
aelkner | method | 23:37 |
pcardune | IJournal contains IJournalEntry *only*, and IJournalEntry contains IJournalEntryComment *only* and IJournalEntryComment contains more IJournalEntryComment objects | 23:37 |
pcardune | aelkner: no, that isn't pretty | 23:37 |
pcardune | that is how you would do it in zope2 or something yuck ;) | 23:37 |
aelkner | i'm glad you didn't make that decision :) | 23:38 |
pcardune | because then we can make registrations on a specific interfaces | 23:38 |
pcardune | there are menu items which we would only want to appear on top level journal entries | 23:38 |
pcardune | (like mark for review) | 23:38 |
eldar | yeah | 23:39 |
eldar | i am fine with IJouranlEntry and IJouranEntryComment or sub or whatever the naming would be | 23:42 |
aelkner | well, I suppose I could change what I've done to use IJournalEntryComment... | 23:44 |
aelkner | But that's going to take a while. | 23:44 |
pcardune | do you think 30 business cards is enough? | 23:44 |
pcardune | aelkner: don't worry about it yet | 23:44 |
pcardune | we can make those modifications | 23:44 |
aelkner | pcardune: BTW, you never posted a price for my bounty. | 23:44 |
*** didymo has joined #schooltool | 23:44 | |
eldar | 30 business cards for what? just carrying around with you? or going to a specific event? | 23:45 |
pcardune | both | 23:45 |
pcardune | arlington + europython | 23:45 |
eldar | 30 should be fine for just casual carrying around, in your wallet, but if you're going to a big event might wanna make a 100 | 23:45 |
pcardune | aelkner: hmmm, i'm not sure I even thought about it yet | 23:46 |
pcardune | aelkner: I'll give you a figure soon | 23:46 |
aelkner | i noticed :) | 23:46 |
pcardune | 100?! | 23:46 |
pcardune | I don't think I can fit 30 in my wallet lol | 23:46 |
eldar | oh no, don't carry 100 in your wallet >.< | 23:46 |
aelkner | 100 would be in your suitcase | 23:46 |
eldar | put them in your bag or something | 23:46 |
eldar | yeah | 23:46 |
pcardune | lol | 23:47 |
eldar | 15 a day should be fine, so carry 15 in your wallet | 23:47 |
aelkner | i don't think you'll have much use for them at arlington. | 23:47 |
aelkner | we all know you by now :) | 23:47 |
pcardune | that doesn't mean you won't want my business card to give to someone else ;) | 23:47 |
eldar | i'll take yours :{ | 23:48 |
eldar | :P* | 23:48 |
aelkner | good point. | 23:48 |
pcardune | and when I become famous, it will be proof that you know me... | 23:48 |
pcardune | lol | 23:48 |
eldar | hey, gotta keep my horizons wide | 23:48 |
aelkner | pcadune: for the bounty, I'd be ok with you faking it up to something after i'm done, based on how many hours you noticed ,me working on it. | 23:49 |
pcardune | aelkner: because you think that would be less, or more? | 23:49 |
pcardune | ;) | 23:49 |
eldar | aelkner, the bounty is supposed to be based on how many hours he would spend on it | 23:49 |
aelkner | another good point. | 23:50 |
aelkner | pcardune: just try and guess what that would be when you have a chance, ok? | 23:50 |
pcardune | yeah | 23:50 |
*** mgedmin has quit IRC | 23:53 | |
eldar | pcardune, i still don't know which branch is linda's, she asked me to merge the changes from trunk into it | 23:56 |
eldar | pcardune, do you have any idea? | 23:56 |
pcardune | no idea | 23:56 |
pcardune | you'll have to ask her | 23:56 |
pcardune | eldar: I got a batch error | 23:57 |
pcardune | eldar: looks like competency functional tests need some updating | 23:58 |
pcardune | i'll work on that now | 23:58 |
eldar | aah ok, i didn't get to update the batching on competencies, i don't think, just the import | 23:59 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!