*** dlobo has joined #schooltool | 00:24 | |
*** dlobo has quit IRC | 00:27 | |
*** menesis has quit IRC | 01:05 | |
*** menesis has joined #schooltool | 01:08 | |
*** mgedmin has quit IRC | 01:24 | |
*** menesis has quit IRC | 01:32 | |
*** krushik has quit IRC | 02:07 | |
*** jelkner has quit IRC | 02:36 | |
*** krushik has joined #schooltool | 03:05 | |
*** alga has quit IRC | 03:15 | |
*** replaceafill has joined #schooltool | 04:40 | |
*** pcardune has joined #schooltool | 05:05 | |
*** pcardune has quit IRC | 05:11 | |
*** dlobo has joined #schooltool | 05:52 | |
*** replaceafill has quit IRC | 06:48 | |
*** dlobo has quit IRC | 07:02 | |
*** replaceafill has joined #schooltool | 09:28 | |
*** yvl has joined #schooltool | 09:58 | |
replaceafill | yvl, ping | 10:06 |
---|---|---|
yvl | replaceafill, pong | 10:12 |
* yvl will be here in 10-20 mins | 10:12 | |
replaceafill | yvl, ping me when you get back ok? i have a question for you | 10:13 |
replaceafill | yvl, i'll be around | 10:13 |
yvl | ping replaceafill | 11:02 |
replaceafill | hey yvl | 11:03 |
yvl | hi :) | 11:03 |
replaceafill | the schooltool.email package i'm working on it's supposed to be used by the inteventions package | 11:03 |
replaceafill | the interventions package was using zope.sendmail | 11:03 |
yvl | AFAIK | 11:03 |
replaceafill | in the zope.sendmail package the send method receives (fromaddr, toadrr, message) | 11:04 |
replaceafill | i was wondering | 11:04 |
replaceafill | should we store these three parameters in our new Email object? | 11:05 |
replaceafill | and leave the message creation to the caller | 11:05 |
replaceafill | i mean, we could store (fromaddr, toaddr, body) | 11:05 |
replaceafill | in zope.sendmail message has the headers and the body of the email as a string | 11:06 |
* replaceafill doesn't know if he's being clear again :( | 11:06 | |
yvl | I'd leave headers and body separate in the email object | 11:07 |
yvl | and build the message parameter when sending | 11:07 |
replaceafill | yes me too :) | 11:07 |
yvl | it's more convenient for the views, etc. | 11:07 |
yvl | like [email.subject for email in email_container] | 11:07 |
yvl | than [extract_subject(email.message) for email in email_container] | 11:08 |
replaceafill | so, the caller should build the Email object before try sending it, right? | 11:08 |
yvl | umm, who's the caller again? | 11:09 |
replaceafill | like interventions is doing right now with python's standard MIMEText | 11:09 |
replaceafill | intevertions for instance | 11:09 |
replaceafill | the code that will use the utility | 11:09 |
yvl | you mean something like: util.send(Email(from='john', to='bob', subject='foobar', message=text)) | 11:10 |
replaceafill | yes | 11:10 |
yvl | sounds ok | 11:11 |
replaceafill | yvl, last question :) | 11:11 |
replaceafill | zope.sendmail sets a message-id | 11:12 |
replaceafill | as a header | 11:12 |
replaceafill | according to rfc 2822: | 11:13 |
replaceafill | message-id 0* 1 SHOULD be present - see | 11:13 |
replaceafill | 3.6.4 | 11:13 |
replaceafill | note the SHOULD :) | 11:13 |
replaceafill | SHOULD we use it? | 11:14 |
yvl | generally, I'd vote yes | 11:15 |
yvl | but it's additional work, and I can't think of an immediate benefit now | 11:16 |
replaceafill | cool, i'll leave it out for now then | 11:16 |
yvl | yeah, we can add this later ;) | 11:17 |
yvl | when we're sure why we need it ;) | 11:17 |
replaceafill | :D | 11:17 |
replaceafill | yvl, do you like using Annotations? | 11:19 |
replaceafill | i remember ignas being against it | 11:19 |
yvl | I'm a little bit pro-annotations :) | 11:26 |
yvl | what do you want to store? | 11:27 |
replaceafill | the server settings | 11:28 |
replaceafill | right now they're attributes in the container | 11:28 |
replaceafill | but looking at the sitepreferences implementation, the preferences are stored as annotations on the ST application | 11:28 |
yvl | because they are site preferences | 11:29 |
yvl | smpt server settings do not look like site preferences | 11:29 |
yvl | maybe it's better to leave them as attributes of EmailContainer | 11:31 |
yvl | or even create persistent Email object | 11:31 |
yvl | that has the settings as attributes | 11:31 |
yvl | and one more attribute: emails | 11:31 |
yvl | emails being the EmailContainer | 11:32 |
yvl | hmm, you can even name them 'queue' | 11:32 |
replaceafill | ah | 11:32 |
yvl | app['schooltool.email'] = Email() | 11:32 |
replaceafill | like instead of a container being only persistent | 11:33 |
yvl | app['schooltool.email'].server_addr | 11:33 |
yvl | app['schooltool.email'].queue | 11:33 |
yvl | yes | 11:33 |
yvl | well, Contained | 11:33 |
yvl | umm (Persistent, Contained) | 11:34 |
replaceafill | would it have advantages over using a container? | 11:34 |
yvl | thats the one :) | 11:34 |
replaceafill | yes :) | 11:34 |
yvl | well, you could add another container if you need to | 11:34 |
yvl | it just looks like two different things: email server settings and the emails themselves | 11:36 |
replaceafill | yes | 11:36 |
yvl | and I'd still like them to use one slot in the app - 'schooltool.email' | 11:36 |
yvl | (the last one was against implied argument of extending via adding app['schooltool.emails_stuck']) | 11:38 |
replaceafill | do you see a problem with the queue being a container under 'schooltool.email' and having the settings as attributes? | 11:39 |
replaceafill | i mean, besides being two different concepts | 11:39 |
yvl | nope :) | 11:40 |
replaceafill | cool, now for real, last question :D | 11:41 |
replaceafill | i'm storing errors as Email annotations | 11:41 |
replaceafill | storing the "string" and the "time" of the error | 11:41 |
replaceafill | i didnt want to put two additional attributes on the Email object | 11:43 |
replaceafill | i created an adapter IEmailError(email) | 11:44 |
replaceafill | which gives you the two pieces of data | 11:44 |
yvl | ouchy | 11:44 |
replaceafill | but it feels like an unnecessary step | 11:44 |
yvl | yes | 11:44 |
replaceafill | i'm not confortable with it :( | 11:44 |
replaceafill | what do you recommend? | 11:45 |
replaceafill | put the two attributes as not required on the Email class? | 11:45 |
yvl | yes, at least for now | 11:45 |
replaceafill | cool, i'll move them back :) | 11:46 |
yvl | something like 'status', 'time_created', 'time_sent' | 11:46 |
replaceafill | :O i havent thought of time_created | 11:46 |
yvl | umm, it's not necessary - I was just writing random examples | 11:47 |
replaceafill | but i'll add it | 11:47 |
replaceafill | ah | 11:47 |
yvl | but it looked like an useful thing to show in the interface | 11:48 |
replaceafill | yes | 11:48 |
replaceafill | so the user knows how long has been there | 11:48 |
replaceafill | i mean, the email object | 11:48 |
yvl | yep | 11:49 |
replaceafill | ok yvl, thanks for the time and advices :) | 11:50 |
yvl | always welcome :) | 11:55 |
*** alga has joined #SchoolTool | 12:14 | |
*** menesis has joined #schooltool | 13:11 | |
*** replaceafill has quit IRC | 14:13 | |
*** replaceafill has joined #schooltool | 14:28 | |
*** replaceafill has quit IRC | 14:42 | |
*** replaceafill has joined #schooltool | 14:42 | |
*** ignas has joined #schooltool | 14:54 | |
replaceafill | yvl, ping | 15:56 |
yvl | pong | 15:56 |
replaceafill | hey yvl, weird thing is happening to me: | 15:56 |
replaceafill | if i do "from email.mime.text import MIMEText" from the python interactive interpreter i get no error | 15:57 |
replaceafill | but if i do it inside a schooltool module i get "ImportError: No module named mime.text" | 15:57 |
replaceafill | do you know what could be the cause? | 15:58 |
yvl | your schooltool runs on python 2.4 for some reason | 16:01 |
replaceafill | :| | 16:01 |
replaceafill | BOOTSTRAP_PYTHON=python2.5 | 16:02 |
replaceafill | from Makefile | 16:02 |
yvl | cd ..../schooltool/python/bin | 16:03 |
yvl | ./python | 16:03 |
yvl | version is 2.4? | 16:03 |
yvl | where ..../schooltool is the directory Makefale is in | 16:04 |
replaceafill | you mean schooltool.stapp2008spring/python/bin? | 16:04 |
yvl | * Makefile | 16:04 |
replaceafill | 2.5.4 | 16:04 |
replaceafill | schooltool.stapp2008spring$ python/bin/python | 16:04 |
replaceafill | Python 2.5.4 | 16:04 |
replaceafill | :( | 16:04 |
yvl | and import works from the shell? | 16:04 |
replaceafill | yes | 16:04 |
replaceafill | >>> from email.mime.text import MIMEText | 16:05 |
replaceafill | >>> | 16:05 |
yvl | and if you call "make run", | 16:05 |
replaceafill | then i get the error | 16:06 |
yvl | less bin/start-schooltool-instance | 16:07 |
yvl | first line says... ? | 16:07 |
replaceafill | #!/home/elbixio/opt/sandboxes/schooltool_mail/schooltool.stapp2008spring/python/ | 16:08 |
replaceafill | bin/python | 16:08 |
replaceafill | it's using the instance's python | 16:08 |
replaceafill | could it be schooltool.stapp2008spring? | 16:09 |
replaceafill | should i be using something different to set up the instance? | 16:09 |
*** th1a has joined #schooltool | 16:10 | |
yvl | well, I'm using schooltool trunk directly | 16:11 |
replaceafill | :O | 16:11 |
yvl | but it shouldn't matter | 16:11 |
replaceafill | it had been working great until i tried importing "email.*" | 16:11 |
yvl | you can try make clean, make build | 16:13 |
yvl | I'd guess some links were not updated when stapp switched from 2.4 to 2.5 | 16:13 |
replaceafill | same thing!!! >:( | 16:14 |
replaceafill | wtf!! | 16:14 |
yvl | yes, that's really odd | 16:17 |
yvl | make clean kills the python dir, right? | 16:17 |
replaceafill | yes | 16:17 |
replaceafill | rm -rf python .... | 16:17 |
yvl | are you sure you did not do a typo in import? | 16:18 |
replaceafill | no, copy paste in the interactive prompt works | 16:18 |
yvl | ok then | 16:19 |
yvl | try import email somewhere in the code | 16:20 |
yvl | and raise Exception(str(email.__file__)) after that | 16:20 |
replaceafill | Exception: /home/elbixio/opt/sandboxes/schooltool_mail/schooltool/src/schooltool/email/email.py | 16:21 |
replaceafill | damn! could it be my module's name? | 16:21 |
yvl | yep | 16:22 |
replaceafill | duh! | 16:22 |
replaceafill | :D | 16:22 |
replaceafill | email inside email :P | 16:22 |
replaceafill | :'''''( | 16:22 |
replaceafill | what do you recommend: move everything to __init__.py or rename the module? | 16:24 |
yvl | rename module :) | 16:26 |
replaceafill | my_unique_email_module.py :D | 16:27 |
replaceafill | mail.py | 16:27 |
th1a | hi yvl, menesis, replaceafill, aelkner, Lumiere_. | 16:30 |
menesis | hi | 16:31 |
replaceafill | hi th1a | 16:31 |
yvl | hi th1a | 16:31 |
th1a | replaceafill: How's email coming? | 16:32 |
ignas | mailing.py | 16:32 |
ignas | not email inside email | 16:32 |
ignas | python has a standard library module "email" | 16:32 |
aelkner | hello | 16:32 |
replaceafill | th1a, almost done, i asked some questions to yvl and i'm finishing those changes | 16:33 |
th1a | Running into some namespace collisions? | 16:33 |
ignas | but relative "email" takes priority | 16:33 |
replaceafill | th1a, yes, with too many "email" words | 16:33 |
ignas | the usual, if you have a file sys.py and try "import sys" in __init__.py -> you get your file, instead of the system sys module | 16:33 |
ignas | happens with email most of the time though ;) | 16:34 |
replaceafill | ignas, :) | 16:34 |
ignas | had that problem a month ago too ;) | 16:34 |
* replaceafill moving everything to mailing.py | 16:35 | |
th1a | did aelkner make merge requests? | 16:36 |
aelkner | not yet | 16:36 |
aelkner | i was gong to ask | 16:37 |
aelkner | do i need to do something different, menesis? | 16:37 |
aelkner | you mentioned trunk being moved? | 16:37 |
replaceafill | yes, i wanted to ask that too :) | 16:37 |
replaceafill | should i merge my stuff with trunk or 1.0? | 16:38 |
menesis | aelkner: I moved schooltool.gradebook trunk to it's own project | 16:38 |
menesis | but you can't propose merge to a different project now | 16:38 |
menesis | so no, you don't do anything different yet | 16:38 |
menesis | do branch lp:schooltool.gradebook next time | 16:39 |
menesis | replaceafill: trunk | 16:39 |
replaceafill | menesis, thanks | 16:39 |
menesis | 1.0 is mine :p | 16:39 |
replaceafill | :) | 16:39 |
aelkner | ok, so i'll propose the merges now | 16:39 |
aelkner | menesis: i already have a proposal to merge my schooltool.gradebook branch | 16:41 |
aelkner | but can you do it again? | 16:41 |
th1a | You're talking about merge requests in LP? | 16:43 |
aelkner | yes | 16:44 |
menesis | aelkner: I know | 16:44 |
aelkner | menesis: i just made a fresh one for schooltool.lyceum.journal | 16:44 |
menesis | I wanted to merge your branches today, but did not manage to do so before the meeting | 16:44 |
aelkner | that's just as well | 16:45 |
menesis | will be doing that later | 16:45 |
aelkner | this way you get my latest changes | 16:45 |
th1a | Do we have any blockers at this point other than replaceafill's namespace collision? | 16:46 |
th1a | Is that a "no?" | 16:48 |
yvl | sounds like it | 16:49 |
th1a | OK. Excellent. | 16:49 |
th1a | What's the timeline then, menesis? | 16:50 |
menesis | th1a: I will merge aelkner gradebook and lyceum branches later today | 16:51 |
menesis | then update the translation templates and all three projects will be ready for translating | 16:52 |
th1a | OK, excellent. | 16:52 |
menesis | I have set up automatic translation import and export yesterday | 16:52 |
menesis | and it works | 16:52 |
th1a | Great! | 16:53 |
th1a | Exactly what does it do automatically again? | 16:53 |
menesis | the three projects are schooltool, https://launchpad.net/schooltool.gradebook and https://launchpad.net/schooltool.lyceum.journal | 16:54 |
* replaceafill sending spam through gmail :) | 16:54 | |
menesis | automatic means there is no manual work i have to request from launchpad admins | 16:54 |
th1a | OK. | 16:54 |
th1a | Not automatically syncing every change to bzr. | 16:54 |
menesis | previously that had to be done so that translations are imported from the branch | 16:55 |
menesis | now they get imported automatically after a few hours | 16:55 |
menesis | when strings change, i have to run make extract-translations and commit the new template | 16:55 |
menesis | that's all | 16:56 |
th1a | OK. | 16:56 |
menesis | for import | 16:56 |
th1a | That helps. | 16:56 |
menesis | and export does daily export to a different branch | 16:56 |
menesis | and I do the "bzr merge translations trunk" before a release | 16:56 |
th1a | Ah. | 16:57 |
th1a | Thanks menesis. | 16:59 |
menesis | all that took most of my time on schooltool last week | 16:59 |
th1a | yvl: Can you update us (on your health)? | 16:59 |
yvl | health up 99% :) | 16:59 |
yvl | but basically nothing to report from last week | 17:00 |
yvl | I'll clean up translation strings for self contacts and merge them | 17:00 |
yvl | so they'll make the string freeze | 17:01 |
yvl | that leaves other features kind of hanging | 17:01 |
yvl | we either fit them into 1.2.0 | 17:01 |
yvl | and update strings just before the release | 17:01 |
yvl | making this string freeze more like a "string candidates" | 17:02 |
yvl | or push them into 1.2.1 | 17:02 |
yvl | making 1.2.1 release days after 1.20 | 17:02 |
yvl | so that's more of a political choice | 17:02 |
th1a | Basically, I'd rather just release 1.2.0 with some untranslated strings. | 17:02 |
* yvl too | 17:03 | |
th1a | So that's what we'll do. | 17:03 |
yvl | we'll have to go with bigger features at the beginning of the cycle next time | 17:03 |
th1a | Yeah. | 17:04 |
yvl | and do various smaller bugfixes at the end | 17:04 |
menesis | features have to come with the point release. translations come late anyway | 17:04 |
th1a | Well, this time the bigger features at the beginning kind of dragged out. | 17:04 |
th1a | Bugfixes and small features aren't going to have a lot of strings. | 17:05 |
th1a | We'll be planning the rest of the year soon. | 17:06 |
replaceafill | th1a, when a email cannot be sent is stored in the queue with a status message, should this message be translatable? They're shown in the GUI, right now, i'm using the exception messages | 17:06 |
th1a | I'm working on it. | 17:07 |
th1a | replaceafill: If it is a message the user is reading, it should be translatable. | 17:07 |
replaceafill | yvl, it is possible to call i18n.translate without a request, right? | 17:08 |
replaceafill | yvl, never mind, got it | 17:09 |
replaceafill | th1a, what about the datetime's we're using as time_created and time_sent? | 17:10 |
replaceafill | should those be localized? | 17:10 |
th1a | It should be consistent with the user's preferences. | 17:11 |
replaceafill | :O | 17:11 |
th1a | Consistent with the rest of SchoolTool. | 17:11 |
replaceafill | understood | 17:12 |
th1a | replaceafill: So you're wrapping email up today. Will you have some time for CanDo later in the week? | 17:13 |
replaceafill | yes, i'm finishing this today | 17:14 |
replaceafill | th1a, we fixed jelkner's problem btw | 17:14 |
replaceafill | a hack to make his assignments to work | 17:14 |
th1a | Work despite the duplicate competencies? | 17:15 |
replaceafill | yes | 17:15 |
th1a | Good. | 17:15 |
yvl | replaceafill: I think you should use the schooltool.term.interfaces.IDateManager utility | 17:15 |
replaceafill | yvl, thanks, checking it out | 17:16 |
* th1a wonders if you could just hide the duplicated standards at the view level. | 17:18 | |
th1a | OK, aelkner, what are you working on this week? | 17:20 |
aelkner | ok, so you understand that i got the reports working with dummy data in order to | 17:21 |
*** dlobo has joined #schooltool | 17:21 | |
aelkner | get the design of the templates working with the view classes and all of teh strings defined for the freeze | 17:21 |
th1a | ok | 17:21 |
aelkner | i'll need a couple of more days to deliver the actual data | 17:21 |
aelkner | and that will take care of the four reports | 17:22 |
aelkner | also, i not only got the strings in for the create summary sheets feature | 17:22 |
aelkner | i also got the feature to work | 17:22 |
aelkner | and, of course, you noticed i made the string changes you requested | 17:23 |
th1a | Yes, thanks. | 17:23 |
aelkner | so this week, it's finishing the reports and dong journal stuff | 17:23 |
th1a | yvl: did I assign any string changes to you last Friday? | 17:23 |
th1a | I think they were all aelkner's. | 17:23 |
th1a | aelkner: OK. Thanks. | 17:24 |
yvl | no, th1a | 17:24 |
yvl | at least I failed to notice | 17:24 |
* th1a double-checks. | 17:24 | |
th1a | doesn't look like it. | 17:26 |
th1a | One last thing menesis: Make sure and shoot me an email with links to the templates that people should actually be translating going forward, so I don't point people to the wrong place. | 17:27 |
th1a | Also, I think soon after the release would be a good time to start limiting who can contribute translations. | 17:28 |
th1a | And with that, I think we should end on time so everyone can get back to work! | 17:28 |
th1a | Have a great week gentlemen! Thanks for your work getting everything ready for the string freeze. | 17:28 |
* th1a drops the bag of gravel. | 17:29 | |
replaceafill | th1a, i hate when people change my spanish translations >:( | 17:30 |
th1a | replaceafill: Yeah, we'll stop that. | 17:33 |
*** menesis has quit IRC | 17:36 | |
*** menesis has joined #schooltool | 17:36 | |
*** Lumiere_ is now known as Lumiere | 17:36 | |
menesis | th1a: will send | 17:36 |
Lumiere | hi all | 17:40 |
Lumiere | sorry I've been somewhat absent the last few weeks | 17:41 |
th1a | np | 17:44 |
th1a | We're not paying you. ;-) | 17:44 |
Lumiere | today is a holiday :) | 17:45 |
th1a | A perfect time to do some non-paid work! | 17:45 |
Lumiere | yea! | 17:46 |
th1a | OK, why don't you work on translating CanDo into Khmer this afternoon? | 17:50 |
Lumiere | uh | 17:54 |
Lumiere | fail? | 17:54 |
*** dlobo has quit IRC | 17:54 | |
th1a | Don't you read Cambodian anime in the original Khmer? | 17:55 |
th1a | Er... manga. | 17:55 |
th1a | You don't read anime, do you? | 17:55 |
Lumiere | ... I do actually but only in japanese | 17:57 |
th1a | See -- it is all just squiggly lines. | 17:58 |
th1a | Aren't all those languages the same? | 17:58 |
* th1a has to work on constructive volunteer managment. | 17:59 | |
Lumiere | lol | 17:59 |
*** ignas has quit IRC | 18:23 | |
*** alga has quit IRC | 19:16 | |
*** dlobo has joined #schooltool | 19:27 | |
*** dlobo has quit IRC | 19:37 | |
*** pcardune has joined #schooltool | 19:47 | |
*** dlobo has joined #schooltool | 19:53 | |
*** dlobo has quit IRC | 20:07 | |
*** alga has joined #SchoolTool | 20:52 | |
*** replaceafill has quit IRC | 21:15 | |
*** dlobo has joined #schooltool | 22:26 | |
*** pcardune_ has joined #schooltool | 22:32 | |
*** dlobo has quit IRC | 22:36 | |
*** pcardune has quit IRC | 22:49 | |
*** pcardune_ is now known as pcardune | 22:49 | |
*** menesis has quit IRC | 23:28 | |
*** replaceafill has joined #schooltool | 23:45 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!