*** dlobo_ has joined #schooltool | 00:32 | |
*** alga has quit IRC | 01:22 | |
*** dlobo_ has quit IRC | 03:41 | |
*** dlobo_ has joined #schooltool | 03:44 | |
*** dlobo_ is now known as dlobo | 04:02 | |
*** dlobo has quit IRC | 05:06 | |
*** dlobo has joined #schooltool | 05:07 | |
*** dlobo has quit IRC | 05:09 | |
*** dlobo_ has joined #schooltool | 08:12 | |
*** alga has joined #schooltool | 09:15 | |
*** yvl has joined #schooltool | 09:52 | |
*** dlobo_ is now known as dlobo | 09:57 | |
*** dlobo has quit IRC | 11:00 | |
*** Aiste has joined #schooltool | 12:49 | |
*** alga has quit IRC | 13:46 | |
*** menesis has quit IRC | 14:01 | |
*** ignas has joined #schooltool | 14:08 | |
*** menesis has joined #schooltool | 14:56 | |
*** menesis has quit IRC | 15:01 | |
*** menesis has joined #schooltool | 15:17 | |
*** menesis has quit IRC | 15:17 | |
*** replaceafill has joined #schooltool | 15:22 | |
*** menesis has joined #schooltool | 15:36 | |
*** alga has joined #schooltool | 15:47 | |
*** jelkner has joined #schooltool | 16:19 | |
th1a | hi yvl, menesis, aelkner, replaceafill. | 16:30 |
---|---|---|
yvl | good morning everybody | 16:30 |
replaceafill | hello gentlemen | 16:30 |
*** Lumiere has quit IRC | 16:30 | |
*** Lumiere has joined #schooltool | 16:30 | |
Lumiere | 'morning | 16:30 |
aelkner | morning | 16:30 |
menesis | hello | 16:30 |
th1a | hi Lumiere. | 16:31 |
th1a | I'm afraid last week was kind of a lost week for me. | 16:31 |
yvl | same for me :| | 16:31 |
th1a | Everyone seemed too quiet... | 16:32 |
replaceafill | and for me :( | 16:32 |
yvl | I guess running up to release caught with everyone in some way :) | 16:32 |
th1a | Well, let's regroup. | 16:33 |
th1a | yvl & menesis: Where do we stand on the rc? | 16:33 |
yvl | I've reviewed and merged last fixes by Douglas and Alan | 16:33 |
replaceafill | thanks yvl | 16:33 |
yvl | except for some nitpicking (that I omitted this time), merge was straightforward | 16:34 |
yvl | good work guys | 16:34 |
yvl | menesis, you can release them when it's convenient | 16:35 |
yvl | ah, and menesis fix with packages also made my home instance (on Lucid) work | 16:35 |
th1a | Do we have change notes? | 16:35 |
yvl | not yet | 16:36 |
menesis | oh, last week was lost for me as well | 16:36 |
menesis | but I've got my laptop back from repairs | 16:36 |
menesis | today | 16:36 |
menesis | I will look at the recent changes and update release notes as well | 16:36 |
menesis | and send to th1a | 16:36 |
menesis | also will go through all bugs to make sure they are assigned to correct milestones and in changelogs | 16:37 |
th1a | Did you guys set up your travel to Brussels? | 16:37 |
menesis | then will do a release | 16:37 |
yvl | CHANGE.txt seemed up-to-date at first glance | 16:37 |
yvl | th1a, yes | 16:37 |
th1a | That's the one thing I got done. | 16:37 |
yvl | I'll forward the plane tickets | 16:38 |
yvl | http://bazaar.launchpad.net/~schooltool-owners/schooltool/trunk/annotate/head%3A/CHANGES.txt | 16:38 |
yvl | http://bazaar.launchpad.net/~schooltool-owners/schooltool.intervention/trunk/annotate/head%3A/CHANGES.txt | 16:38 |
yvl | http://bazaar.launchpad.net/~schooltool-owners/schooltool.gradebook/trunk/annotate/head%3A/CHANGES.txt | 16:38 |
th1a | Ah, thanks. | 16:38 |
th1a | I'll get the hotel done today. | 16:38 |
yvl | those are maintained by developers, so they can be <100% accurate | 16:38 |
menesis | not sure what versions to release, should I name schooltool 1.4.0 and increase other versions to the next major version? | 16:38 |
menesis | maybe change versions of gradebook, etc to 1.4.0 to make them consistent? | 16:39 |
menesis | or will this be a rc release? | 16:39 |
th1a | I'd call it an rc. | 16:40 |
* yvl too | 16:40 | |
yvl | and I have some doubts about bumping other plugins to 1.4 | 16:40 |
th1a | But I guess it is easier to keep track if we increment the version numbers with each Ubuntu update and keep them in sync. | 16:40 |
th1a | otoh, making them all 1.4 makes some of them sound more mature than they are... | 16:41 |
yvl | and they will diverge on minor numbers eventually | 16:41 |
yvl | like 1.4.12 schooltool, but 1.4.13 gradebook because of some fixes or something | 16:42 |
yvl | still | 16:42 |
yvl | calling them "1.4" series kind of makes it easier to organize | 16:42 |
th1a | Let's just make the Ubuntu releases major releases, because I just need to be able to look at Launchpad and be able to target the next bugfix or the next major release. | 16:42 |
menesis | ok so I'll simply increase the numbers | 16:43 |
th1a | That's fine for now. | 16:43 |
yvl | we can chat a bit about this in UDS | 16:43 |
yvl | or... in schooltool-developers mailing list ;) | 16:43 |
yvl | ok, just increase the numbers for now | 16:44 |
th1a | All right. | 16:46 |
th1a | yvl: Still stuck on catalogs? | 16:46 |
yvl | yes | 16:46 |
yvl | not stuck, rather spent little time working | 16:47 |
yvl | they're few hours from done | 16:47 |
th1a | OK. | 16:48 |
yvl | whoo, ST buildbot is red | 16:48 |
Lumiere | lol | 16:48 |
yvl | so, my nearest plan is to look into that | 16:49 |
yvl | then finish catalogs | 16:49 |
yvl | then look into timetable / calendar events | 16:49 |
yvl | from "section or other stuff with timespan" perspective | 16:49 |
th1a | OK. | 16:50 |
th1a | Thanks. | 16:51 |
th1a | replaceafill? | 16:51 |
replaceafill | i fixed two bugs, but i have a question on one of them | 16:51 |
replaceafill | https://bugs.launchpad.net/schooltool/+bug/558911 | 16:52 |
replaceafill | th1a, i used this format: Jordon, Michael & Jackson, Andrew -- Political influnce of basketball | 16:52 |
replaceafill | with a "&" to separate teachers | 16:52 |
replaceafill | is that ok? | 16:52 |
replaceafill | i mean, i don't know if everybody knows & == 'and' | 16:53 |
th1a | I don't know if it is a good idea from an i18n perspective. | 16:53 |
th1a | I'd use a comma. | 16:53 |
Lumiere | from a proper english standpoint | 16:54 |
Lumiere | use a semi-colon | 16:54 |
th1a | Yes. | 16:54 |
Lumiere | Jordon, Michael; Jackson, Andrew; Obama, Barack | 16:54 |
th1a | That's more clear. | 16:54 |
replaceafill | ah ok, semicolon then | 16:54 |
yvl | I'd even go as far as remove the reversed coma-separated name display from schooltool | 16:54 |
yvl | just maybe not now :) | 16:54 |
replaceafill | yvl, this part comes from Section.label | 16:55 |
replaceafill | i made the change there, is that ok? | 16:55 |
yvl | (semicolon sounds right, btw.) | 16:55 |
replaceafill | i was thinking about doing it only in the template, but... | 16:55 |
yvl | well, if you change the section label, don't forget to fix broken tests in other plugins | 16:56 |
replaceafill | yvl, ah! right! | 16:57 |
yvl | the reversed order actually comes from basicperson | 16:57 |
replaceafill | yes, from Basicperson.title | 16:57 |
yvl | to me keeping that in the long term doesn't make sense | 16:58 |
yvl | especially if we consider Eastern naming order | 16:58 |
th1a | It will have to be changed. | 16:58 |
replaceafill | my final question is related to non-ascii usernames | 16:58 |
replaceafill | th1a, we said we would prevent that, correct? | 16:59 |
th1a | We should if they don't work. | 16:59 |
yvl | I think we'll *have* to fix those pretty soon | 16:59 |
replaceafill | yvl, is it ok to do it using an invariant in the interface? | 16:59 |
yvl | and backport to Lucid | 16:59 |
replaceafill | or validators in the forms? | 16:59 |
Lumiere | btw that label should be internationalized entirely | 17:00 |
replaceafill | Lumiere, you mean the section label? | 17:00 |
Lumiere | no the Basicperson.title | 17:00 |
yvl | Lumiere, yes | 17:00 |
replaceafill | ah | 17:00 |
Lumiere | the translator should specify the way a name shows up | 17:01 |
menesis | the bugs with non-ascii usernames in lyceum.journal should be fixed | 17:01 |
menesis | things like urllib.quote(base64.encodestring(self.meeting.unique_id.encode('utf-8')))) look strange and don't think are needed | 17:02 |
replaceafill | yvl what do you think of my invariant vs validator question? | 17:03 |
yvl | oh, goody: LP stripped my looong comment https://bugs.launchpad.net/schooltool/+bug/545746 | 17:03 |
yvl | replaceafill, I'd rather allow non-ascii usernames | 17:04 |
yvl | and fix places where it breaks | 17:04 |
replaceafill | ah | 17:04 |
yvl | and it would be good to find all references to __name__, username and stuff | 17:05 |
yvl | and *test* if they are compliant with non-ascii usernames | 17:05 |
yvl | also - try to find less obvious places | 17:05 |
th1a | So there isn't anything about this that isn't fixable? | 17:05 |
yvl | as far as I know, no | 17:06 |
replaceafill | do containers allow no-ascii strings for __name__? | 17:06 |
yvl | it can be fixed, it just may/will uncover some places that break | 17:06 |
yvl | for now it breaks pretty much when entering username | 17:06 |
yvl | replaceafill, yes | 17:06 |
yvl | Zope stores unicode almost everywhere | 17:07 |
replaceafill | it probably will break plugins right? | 17:07 |
* yvl shrugs | 17:07 | |
yvl | probably | 17:07 |
yvl | and some parts of ST core maybe | 17:07 |
yvl | I'd be cautious about traversal | 17:07 |
yvl | and various form keys | 17:07 |
yvl | and import/export | 17:07 |
replaceafill | :| | 17:07 |
yvl | there's only one easy way to find out what breaks :) | 17:08 |
th1a | hm. | 17:08 |
yvl | if you want a quick fix | 17:08 |
yvl | prevent those as a validator for now | 17:09 |
menesis | Journal breaks with umlauts https://bugs.launchpad.net/schooltool.lyceum.journal/+bug/495872 | 17:09 |
replaceafill | th1a, quick fix or long fix? | 17:09 |
yvl | but this thing must not be put aside after that | 17:09 |
th1a | Both, but I'd like to tack the quick one into Lucid. | 17:09 |
yvl | sounds good | 17:10 |
replaceafill | ah ok, i'll go with the validators then | 17:10 |
th1a | Can you have that today? | 17:10 |
replaceafill | yes | 17:10 |
th1a | OK, so let's add that and do the rc tomorrow. | 17:10 |
replaceafill | great | 17:10 |
th1a | ok menesis? | 17:10 |
menesis | yes, that was my plan | 17:11 |
replaceafill | yvl, if i add the plugins to the eggs += ... in buildout.cfg, will that run all the tests in the plugins too? | 17:12 |
th1a | Good. | 17:12 |
yvl | umm, I think so | 17:13 |
*** alga has quit IRC | 17:13 | |
replaceafill | ok, will try, thanks | 17:13 |
replaceafill | yvl, i ask because i see the group viewlet broke lyceum :( | 17:13 |
replaceafill | i mean the ftests | 17:13 |
yvl | ah, yes, it will run the tests | 17:14 |
th1a | replaceafill: Are you going to start planning progressing to the next year after you get this done? | 17:15 |
yvl | replaceafill, I will get that one | 17:15 |
yvl | (the broken test) | 17:16 |
replaceafill | yvl, ah ok | 17:16 |
replaceafill | th1a, yes | 17:16 |
th1a | OK. I'll look for a proposal about that. | 17:17 |
th1a | Thanks. | 17:17 |
th1a | aelkner? | 17:17 |
aelkner | so i lost a couple of days last week as well, but i was able to make progress on schooltool.philippines | 17:18 |
aelkner | i got it build and run, keeping the level and gradebook logic | 17:18 |
aelkner | and throwing away the person stuff and most of the app skin from the cambodia package | 17:19 |
aelkner | i also familiarized myself with the xlwt package and created the view for downloading the xls report | 17:20 |
aelkner | but i need to ask the group a question about files | 17:20 |
aelkner | do i need to use a file resource in order to read a file in a view? | 17:21 |
aelkner | i have a xls file that will serve as a template that i need to read, update, and deliver in the view? | 17:21 |
aelkner | do i need to have something like: | 17:22 |
aelkner | <resource name="zonki-regular.png" file="resources/zonki-regular.png" | 17:22 |
aelkner | layer="schooltool.skin.ISchoolToolLayer" /> | 17:22 |
aelkner | in my case: | 17:22 |
aelkner | <resource name="report_card_template" file="resources/report_card_template.xls" | 17:23 |
aelkner | etc. | 17:23 |
replaceafill | i thought we were going to build xls files on the fly | 17:23 |
yvl | I assumed that also | 17:24 |
aelkner | your export does that, yes | 17:24 |
aelkner | but in the case of schooltool.philippines, they have their own | 17:24 |
aelkner | that we need to fill in | 17:24 |
aelkner | th1a can explain this better | 17:24 |
yvl | something like [...] (browse) field like the importer has it | 17:24 |
th1a | In this case, they have an xls version of the government form. | 17:24 |
yvl | the xls is fed to the view | 17:24 |
yvl | the view parses the xls | 17:24 |
yvl | builds and outputs another xls | 17:25 |
th1a | So it seems like the easiest way to fill it out. | 17:25 |
yvl | it's like import and export views combined | 17:25 |
replaceafill | yvl, they upload the xls "template" and we store it for later use? | 17:25 |
aelkner | they sent us the template n an email | 17:26 |
th1a | In this case we're just adding it to a package for them. | 17:26 |
aelkner | so it can be hard-coded as source code, i.e., a resource file | 17:26 |
yvl | well, it's actually completely your choice :) | 17:26 |
yvl | you can: | 17:26 |
replaceafill | aelkner, why dont you put it in the same directory as the view and use os.path to get to it | 17:26 |
ignas | not os.path | 17:27 |
ignas | pkg_resources | 17:27 |
replaceafill | :| | 17:27 |
* replaceafill looks for pkg_resources... | 17:27 | |
ignas | os.path does not play that well with eggs | 17:28 |
replaceafill | pkg_resources is a module used to find and manage Python package/version dependencies and access bundled files and resources, including those inside of zipped .egg files | 17:28 |
replaceafill | :O | 17:29 |
ignas | pkg_resources.resource_filename('schooltool.foo.bar', ) | 17:29 |
ignas | the second parameter is the filename | 17:29 |
ignas | or "dir/filename" if it's not in the module directly | 17:29 |
replaceafill | nice! | 17:29 |
ignas | you can also use resource_stream | 17:29 |
ignas | if you need content | 17:29 |
aelkner | ignas: what do i do with the return value from that call? | 17:29 |
ignas | that will work with zipped eggs too | 17:29 |
aelkner | call open() | 17:30 |
ignas | well - you can open it ;) | 17:30 |
ignas | depends though | 17:30 |
ignas | if you need it's content | 17:30 |
ignas | then just call resource_stream instead | 17:30 |
replaceafill | so, no more "os.path.abspath(os.path.dirname(__file__))" then | 17:30 |
ignas | that will give you the stream (sam thing you get with open) | 17:30 |
aelkner | ignas: what about replaceafill's point? | 17:31 |
ignas | yeah __file__ should be avoided if possible | 17:31 |
ignas | aelkner, which one? | 17:31 |
aelkner | never mind, you just answered it | 17:31 |
ignas | if you want them to upload a file into the system - store it in ZODB | 17:31 |
ignas | if they send you the file by email - commit it into the code directory probably | 17:32 |
ignas | assume code directories "read only" in deployed instances | 17:32 |
replaceafill | ah! | 17:32 |
replaceafill | true | 17:32 |
replaceafill | th1a, i guess we're going to ask the pilot sites for xls and pdfs then, correct? | 17:33 |
replaceafill | instead of generating our own | 17:34 |
aelkner | ignas: so do i need to register the file in zcml or just call pkg_resources.resource_filename('schooltool.foo.bar', )? | 17:34 |
replaceafill | aelkner, just the call | 17:34 |
th1a | replaceafill, Not necessarily. | 17:35 |
replaceafill | only if they have something available? | 17:35 |
th1a | Pretty much. | 17:35 |
th1a | I mean, if they have an xls, filling that in seems like the easiest path. | 17:36 |
th1a | It is easier to fill in an xls than a pdf, right? | 17:36 |
aelkner | ignas: how does pkg_resources know which directory to look in to find the file? | 17:36 |
replaceafill | i know how to fill an xls, i still dont know how to fill a pdf :) | 17:36 |
th1a | I mean, if we're merging two pdf's I assume we have to absolutely position all our data. | 17:36 |
th1a | replaceafill, ignas is the only one who has tried that, for his current project. | 17:37 |
replaceafill | aelkner, src/schooltool/export/ftests/sample_data.txt will give you an example | 17:38 |
Lumiere | th1a: merging 2 pdfs is not difficult... what is difficult | 17:38 |
Lumiere | is doing a merge of 2 pdfs without using an external program | 17:39 |
Lumiere | that's what ignas has | 17:39 |
aelkner | replaceafill: thanks! | 17:39 |
Lumiere | (pdftk already has the ability to merge 2 pdfs) | 17:39 |
ignas | Lumiere, well - there is a branch on LP with an example | 17:39 |
ignas | Lumiere, that works in schooltool | 17:39 |
replaceafill | aelkner, i guess 'schooltool.export.ftests' == 'schooltool/export/ftests.py or schooltool/export/ftests/' | 17:40 |
ignas | 'schooltool/export/ftests/' | 17:40 |
replaceafill | ah yes, because we're looking into a directory :) | 17:40 |
th1a | But I assume we'd still have to spend time placing each text element to fit in its box by trial and error. | 17:40 |
th1a | Whereas if we have an xls we can just grab the cell. | 17:41 |
replaceafill | and let the spreadsheet to do the formatting work | 17:41 |
aelkner | replaceafill: i noticed you have resource definitions in configure.zcml, are they needed for pkg_resouces? | 17:41 |
replaceafill | aelkner, me?!?!? you mean ignas :) | 17:42 |
replaceafill | aelkner, those are available so the user can download those files | 17:42 |
*** dlobo_ has joined #schooltool | 17:42 | |
aelkner | i thought i'd ask you since you did the export package | 17:42 |
replaceafill | nope, ignas did :P | 17:42 |
aelkner | oh, that's right -- sorry ignas | 17:43 |
ignas | nope | 17:43 |
ignas | they are not needed | 17:43 |
aelkner | why are they there? | 17:43 |
ignas | they are needed to make the xls file downloadable | 17:43 |
ignas | so that I could add a link to schooltool | 17:43 |
aelkner | got it | 17:43 |
ignas | which serves the XLS file to our users | 17:43 |
aelkner | ignas: i asked before how does pkg_resources know what directory to look in? | 17:44 |
ignas | not sure I understand your question | 17:44 |
yvl | pkg_resources are supposed to manage used eggs, wherever they are in the system | 17:44 |
ignas | it transforms the 'schooltool.export.ftests' into the actual path depending on where your eggs are and then picks the way to append the path to the module depending on whether it is a zipped egg or not | 17:45 |
aelkner | i need a line of code that reads the file | 17:45 |
aelkner | right now i don't know what that wold be | 17:45 |
ignas | <replaceafill> aelkner, src/schooltool/export/ftests/sample_data.txt will give you an example | 17:45 |
aelkner | data = pkg_resources.resource_stream('schooltool.export.ftests', 'test_data.xls') | 17:45 |
aelkner | data = pkg_resources.resource_stream('schooltool.export.ftests', 'test_data.xls').open().read() | 17:46 |
aelkner | ??? | 17:46 |
ignas | there is no open() | 17:46 |
ignas | it's a stream already | 17:46 |
*** dlobo_ has quit IRC | 17:46 | |
aelkner | but look at the code i just posted | 17:46 |
aelkner | it has two args | 17:46 |
ignas | yes | 17:46 |
ignas | 2 args | 17:46 |
aelkner | one is a file name | 17:46 |
aelkner | one is a resource name | 17:47 |
ignas | yes | 17:47 |
ignas | no | 17:47 |
ignas | not a resource name | 17:47 |
ignas | but a module name | 17:47 |
replaceafill | (package, resource) | 17:47 |
aelkner | ah, so that's how it knows the directory | 17:47 |
ignas | yes | 17:47 |
yvl | yes | 17:47 |
aelkner | got it, thanks | 17:47 |
ignas | you should put as much as makes sense in there | 17:47 |
replaceafill | (package, resource [not as configure.zcml resource]) | 17:47 |
ignas | ('schooltool', 'export/ftests/test_data.xls') | 17:48 |
ignas | would be bad for example | 17:48 |
ignas | as you have multiple eggs that have schooltool | 17:48 |
aelkner | ok, i should be in good shape with that then | 17:49 |
replaceafill | :) | 17:49 |
ignas | ('schooltool.lyceum', 'journal/ftests/some_data.xls') would work, but adding .journal to the module would be nice | 17:49 |
aelkner | i will specify the whole package as that seems cleaner | 17:49 |
yvl | I'd prefer ('schooltool.lyceum.journal.ftests', 'some_data.xls') | 17:49 |
th1a | aelkner: OK, keep me up to date on your progress with that, and we'll talk out the next step when you get there. | 17:49 |
aelkner | th1a: i was hoping to get some of that going in the pipeline as soon as possible | 17:50 |
th1a | Do we need to discuss it today? | 17:50 |
aelkner | could you send me that email we discussed last time with the summary of info that was sent | 17:50 |
th1a | Hm? | 17:50 |
th1a | I thought you found the key email from them? | 17:51 |
aelkner | there's only one thread, right? | 17:51 |
th1a | Yes. | 17:51 |
aelkner | ok, i'll look at it again | 17:51 |
aelkner | as for setting up the screecast | 17:51 |
th1a | You need to set up the courses first. | 17:51 |
th1a | Just focus on the high school level for now. | 17:52 |
replaceafill | ignas, btw my wsgi experiments worked great :) | 17:52 |
th1a | I'll do the screencast. | 17:52 |
aelkner | i figured you could just run it on your local machine | 17:52 |
th1a | Yes. | 17:52 |
aelkner | good | 17:52 |
aelkner | so you said to focus on high school because that's all they gave us in the email, right? | 17:53 |
th1a | No... | 17:53 |
th1a | but it won't take you as long to get an example going. | 17:54 |
th1a | Fewer grades. | 17:54 |
th1a | Remember the spreadsheets have multiple worksheets. | 17:54 |
aelkner | ok | 17:55 |
*** mgedmin has joined #schooltool | 17:56 | |
th1a | OK, grant announcements and press release going out TODAY, then I focus on the release. | 17:56 |
th1a | Any last words? | 17:56 |
aelkner | i was framed | 17:56 |
aelkner | can i have a last cigarette | 17:56 |
replaceafill | :D | 17:56 |
* th1a drops the bag of gravel. | 17:57 | |
th1a | Have a great week gentlemen! | 17:57 |
aelkner | you, too | 17:57 |
replaceafill | thanks guys | 17:57 |
yvl | great week to you | 17:58 |
*** dlobo_ has joined #schooltool | 18:00 | |
*** dlobo_ has quit IRC | 18:12 | |
*** Aiste has quit IRC | 18:30 | |
*** Aiste has joined #schooltool | 18:30 | |
*** mgedmin has quit IRC | 18:45 | |
*** Aiste has quit IRC | 18:48 | |
*** replaceafill has quit IRC | 19:01 | |
*** menesis has quit IRC | 19:26 | |
*** replaceafill has joined #schooltool | 20:01 | |
*** th1a has quit IRC | 20:03 | |
*** dlobo_ has joined #schooltool | 20:21 | |
*** ignas has quit IRC | 20:29 | |
*** menesis has joined #schooltool | 21:53 | |
*** replaceafill has quit IRC | 22:37 | |
*** menesis has quit IRC | 22:42 | |
*** dlobo_ has quit IRC | 22:56 | |
*** jelkner has quit IRC | 23:17 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!