IRC log of #schooltool for Monday, 2010-04-26

*** dlobo_ has joined #schooltool00:32
*** alga has quit IRC01:22
*** dlobo_ has quit IRC03:41
*** dlobo_ has joined #schooltool03:44
*** dlobo_ is now known as dlobo04:02
*** dlobo has quit IRC05:06
*** dlobo has joined #schooltool05:07
*** dlobo has quit IRC05:09
*** dlobo_ has joined #schooltool08:12
*** alga has joined #schooltool09:15
*** yvl has joined #schooltool09:52
*** dlobo_ is now known as dlobo09:57
*** dlobo has quit IRC11:00
*** Aiste has joined #schooltool12:49
*** alga has quit IRC13:46
*** menesis has quit IRC14:01
*** ignas has joined #schooltool14:08
*** menesis has joined #schooltool14:56
*** menesis has quit IRC15:01
*** menesis has joined #schooltool15:17
*** menesis has quit IRC15:17
*** replaceafill has joined #schooltool15:22
*** menesis has joined #schooltool15:36
*** alga has joined #schooltool15:47
*** jelkner has joined #schooltool16:19
th1ahi yvl, menesis, aelkner, replaceafill.16:30
yvlgood morning everybody16:30
replaceafillhello gentlemen16:30
*** Lumiere has quit IRC16:30
*** Lumiere has joined #schooltool16:30
th1ahi Lumiere.16:31
th1aI'm afraid last week was kind of a lost week for me.16:31
yvlsame for me :|16:31
th1aEveryone seemed too quiet...16:32
replaceafilland for me :(16:32
yvlI guess running up to release caught with everyone in some way :)16:32
th1aWell, let's regroup.16:33
th1ayvl & menesis:  Where do we stand on the rc?16:33
yvlI've reviewed and merged last fixes by Douglas and Alan16:33
replaceafillthanks yvl16:33
yvlexcept for some nitpicking (that I omitted this time), merge was straightforward16:34
yvlgood work guys16:34
yvlmenesis, you can release them when it's convenient16:35
yvlah, and menesis fix with packages also made my home instance (on Lucid) work16:35
th1aDo we have change notes?16:35
yvlnot yet16:36
menesisoh, last week was lost for me as well16:36
menesisbut I've got my laptop back from repairs16:36
menesisI will look at the recent changes and update release notes as well16:36
menesisand send to th1a16:36
menesisalso will go through all bugs to make sure they are assigned to correct milestones and in changelogs16:37
th1aDid you guys set up your travel to Brussels?16:37
menesisthen will do a release16:37
yvlCHANGE.txt seemed up-to-date at first glance16:37
yvlth1a, yes16:37
th1aThat's the one thing I got done.16:37
yvlI'll forward the plane tickets16:38
th1aAh, thanks.16:38
th1aI'll get the hotel done today.16:38
yvlthose are maintained by developers, so they can be <100% accurate16:38
menesisnot sure what versions to release, should I name schooltool 1.4.0 and increase other versions to the next major version?16:38
menesismaybe change versions of gradebook, etc to 1.4.0 to make them consistent?16:39
menesisor will this be a rc release?16:39
th1aI'd call it an rc.16:40
* yvl too16:40
yvland I have some doubts about bumping other plugins to 1.416:40
th1aBut 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
th1aotoh, making them all 1.4 makes some of them sound more mature than they are...16:41
yvland they will diverge on minor numbers eventually16:41
yvllike 1.4.12 schooltool, but 1.4.13 gradebook because of some fixes or something16:42
yvlcalling them "1.4" series kind of makes it easier to organize16:42
th1aLet'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
menesisok so I'll simply increase the numbers16:43
th1aThat's fine for now.16:43
yvlwe can chat a bit about this in UDS16:43
yvlor... in schooltool-developers mailing list ;)16:43
yvlok, just increase the numbers for now16:44
th1aAll right.16:46
th1ayvl:  Still stuck on catalogs?16:46
yvlnot stuck, rather spent little time working16:47
yvlthey're few hours from done16:47
yvlwhoo, ST buildbot is red16:48
yvlso, my nearest plan is to look into that16:49
yvlthen finish catalogs16:49
yvlthen look into timetable / calendar events16:49
yvlfrom "section or other stuff with timespan" perspective16:49
replaceafilli fixed two bugs, but i have a question on one of them16:51
replaceafillth1a, i used this format: Jordon, Michael & Jackson, Andrew -- Political influnce of basketball16:52
replaceafillwith a "&" to separate teachers16:52
replaceafillis that ok?16:52
replaceafilli mean, i don't know if everybody knows & == 'and'16:53
th1aI don't know if it is a good idea from an i18n perspective.16:53
th1aI'd use a comma.16:53
Lumierefrom a proper english standpoint16:54
Lumiereuse a semi-colon16:54
LumiereJordon, Michael; Jackson, Andrew; Obama, Barack16:54
th1aThat's more clear.16:54
replaceafillah ok, semicolon then16:54
yvlI'd even go as far as remove the reversed coma-separated name display from schooltool16:54
yvljust maybe not now :)16:54
replaceafillyvl, this part comes from Section.label16:55
replaceafilli made the change there, is that ok?16:55
yvl(semicolon sounds right, btw.)16:55
replaceafilli was thinking about doing it only in the template, but...16:55
yvlwell, if you change the section label, don't forget to fix broken tests in other plugins16:56
replaceafillyvl, ah! right!16:57
yvlthe reversed order actually comes from basicperson16:57
replaceafillyes, from Basicperson.title16:57
yvlto me keeping that in the long term doesn't make sense16:58
yvlespecially if we consider Eastern naming order16:58
th1aIt will have to be changed.16:58
replaceafillmy final question is related to non-ascii usernames16:58
replaceafillth1a, we said we would prevent that, correct?16:59
th1aWe should if they don't work.16:59
yvlI think we'll *have* to fix those pretty soon16:59
replaceafillyvl, is it ok to do it using an invariant in the interface?16:59
yvland backport to Lucid16:59
replaceafillor validators in the forms?16:59
Lumierebtw that label should be internationalized entirely17:00
replaceafillLumiere, you mean the section label?17:00
Lumiereno the Basicperson.title17:00
yvlLumiere, yes17:00
Lumierethe translator should specify the way a name shows up17:01
menesisthe bugs with non-ascii usernames in lyceum.journal should be fixed17:01
menesisthings like urllib.quote(base64.encodestring(self.meeting.unique_id.encode('utf-8')))) look strange and don't think are needed17:02
replaceafillyvl what do you think of my invariant vs validator question?17:03
yvloh, goody: LP stripped my looong comment
yvlreplaceafill, I'd rather allow non-ascii usernames17:04
yvland fix places where it breaks17:04
yvland it would be good to find all references to __name__, username and stuff17:05
yvland *test* if they are compliant with non-ascii usernames17:05
yvlalso - try to find less obvious places17:05
th1aSo there isn't anything about this that isn't fixable?17:05
yvlas far as I know, no17:06
replaceafilldo containers allow no-ascii strings for __name__?17:06
yvlit can be fixed, it just may/will uncover some places that break17:06
yvlfor now it breaks pretty much when entering username17:06
yvlreplaceafill, yes17:06
yvlZope stores unicode almost everywhere17:07
replaceafillit probably will break plugins right?17:07
* yvl shrugs17:07
yvland some parts of ST core maybe17:07
yvlI'd be cautious about traversal17:07
yvland various form keys17:07
yvland import/export17:07
yvlthere's only one easy way to find out what breaks :)17:08
yvlif you want a quick fix17:08
yvlprevent those as a validator for now17:09
menesisJournal breaks with umlauts
replaceafillth1a, quick fix or long fix?17:09
yvlbut this thing must not be put aside after that17:09
th1aBoth, but I'd like to tack the quick one into Lucid.17:09
yvlsounds good17:10
replaceafillah ok, i'll go with the validators then17:10
th1aCan you have that today?17:10
th1aOK, so let's add that and do the rc tomorrow.17:10
th1aok menesis?17:10
menesisyes, that was my plan17:11
replaceafillyvl, if i add the plugins to the eggs += ... in buildout.cfg, will that run all the tests in the plugins too?17:12
yvlumm, I think so17:13
*** alga has quit IRC17:13
replaceafillok, will try, thanks17:13
replaceafillyvl, i ask because i see the group viewlet broke lyceum :(17:13
replaceafilli mean the ftests17:13
yvlah, yes, it will run the tests17:14
th1areplaceafill:  Are you going to start planning progressing to the next year after you get this done?17:15
yvlreplaceafill, I will get that one17:15
yvl(the broken test)17:16
replaceafillyvl, ah ok17:16
replaceafillth1a, yes17:16
th1aOK.  I'll look for a proposal about that.17:17
aelknerso i lost a couple of days last week as well, but i was able to make progress on schooltool.philippines17:18
aelkneri got it build and run, keeping the level and gradebook logic17:18
aelknerand throwing away the person stuff and most of the app skin from the cambodia package17:19
aelkneri also familiarized myself with the xlwt package and created the view for downloading the xls report17:20
aelknerbut i need to ask the group a question about files17:20
aelknerdo i need to use a file resource in order to read a file in a view?17:21
aelkneri have a xls file that will serve as a template that i need to read, update, and deliver in the view?17:21
aelknerdo i need to have something like:17:22
aelkner  <resource name="zonki-regular.png" file="resources/zonki-regular.png"17:22
aelkner    layer="" />17:22
aelknerin my case:17:22
aelkner<resource name="report_card_template" file="resources/report_card_template.xls"17:23
replaceafilli thought we were going to build xls files on the fly17:23
yvlI assumed that also17:24
aelkneryour export does that, yes17:24
aelknerbut in the case of schooltool.philippines, they have their own17:24
aelknerthat we need to fill in17:24
aelknerth1a can explain this better17:24
yvlsomething like [...] (browse)  field like the importer has it17:24
th1aIn this case, they have an xls version of the government form.17:24
yvlthe xls is fed to the view17:24
yvlthe view parses the xls17:24
yvlbuilds and outputs another xls17:25
th1aSo it seems like the easiest way to fill it out.17:25
yvlit's like import and export views combined17:25
replaceafillyvl, they upload the xls "template" and we store it for later use?17:25
aelknerthey sent us the template n an email17:26
th1aIn this case we're just adding it to a package for them.17:26
aelknerso it can be hard-coded as source code, i.e., a resource file17:26
yvlwell, it's actually completely your choice :)17:26
yvlyou can:17:26
replaceafillaelkner, why dont you put it in the same directory as the view and use os.path to get to it17:26
ignasnot os.path17:27
* replaceafill looks for pkg_resources...17:27
ignasos.path does not play that well with eggs17:28
replaceafillpkg_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 files17:28
ignaspkg_resources.resource_filename('', )17:29
ignasthe second parameter is the filename17:29
ignasor "dir/filename" if it's not in the module directly17:29
ignasyou can also use resource_stream17:29
ignasif you need content17:29
aelknerignas: what do i do with the return value from that call?17:29
ignasthat will work with zipped eggs too17:29
aelknercall open()17:30
ignaswell - you can open it ;)17:30
ignasdepends though17:30
ignasif you need it's content17:30
ignasthen just call resource_stream instead17:30
replaceafillso, no more "os.path.abspath(os.path.dirname(__file__))" then17:30
ignasthat will give you the stream (sam thing you get with open)17:30
aelknerignas: what about replaceafill's point?17:31
ignasyeah __file__ should be avoided if possible17:31
ignasaelkner, which one?17:31
aelknernever mind, you just answered it17:31
ignasif you want them to upload a file into the system - store it in ZODB17:31
ignasif they send you the file by email - commit it into the code directory probably17:32
ignasassume code directories "read only" in deployed instances17:32
replaceafillth1a, i guess we're going to ask the pilot sites for xls and pdfs then, correct?17:33
replaceafillinstead of generating our own17:34
aelknerignas: so do i need to register the file in zcml or just call  pkg_resources.resource_filename('', )?17:34
replaceafillaelkner, just the call17:34
th1areplaceafill, Not necessarily.17:35
replaceafillonly if they have something available?17:35
th1aPretty much.17:35
th1aI mean, if they have an xls, filling that in seems like the easiest path.17:36
th1aIt is easier to fill in an xls than a pdf, right?17:36
aelknerignas: how does pkg_resources know which directory to look in to find the file?17:36
replaceafilli know how to fill an xls, i still dont know how to fill a pdf :)17:36
th1aI mean, if we're merging two pdf's I assume we have to absolutely position all our data.17:36
th1areplaceafill, ignas is the only one who has tried that, for his current project.17:37
replaceafillaelkner, src/schooltool/export/ftests/sample_data.txt will give you an example17:38
Lumiereth1a: merging 2 pdfs is not difficult... what is difficult17:38
Lumiereis doing a merge of 2 pdfs without using an external program17:39
Lumierethat's what ignas has17:39
aelknerreplaceafill: thanks!17:39
Lumiere(pdftk already has the ability to merge 2 pdfs)17:39
ignasLumiere, well - there is a branch on LP with an example17:39
ignasLumiere, that works in schooltool17:39
replaceafillaelkner, i guess 'schooltool.export.ftests' == 'schooltool/export/ or schooltool/export/ftests/'17:40
replaceafillah yes, because we're looking into a directory :)17:40
th1aBut I assume we'd still have to spend time placing each text element to fit in its box by trial and error.17:40
th1aWhereas if we have an xls we can just grab the cell.17:41
replaceafilland let the spreadsheet to do the formatting work17:41
aelknerreplaceafill: i noticed you have resource definitions in configure.zcml, are they needed for pkg_resouces?17:41
replaceafillaelkner, me?!?!? you mean ignas :)17:42
replaceafillaelkner, those are available so the user can download those files17:42
*** dlobo_ has joined #schooltool17:42
aelkneri thought i'd ask you since you did the export package17:42
replaceafillnope, ignas did :P17:42
aelkneroh, that's right -- sorry ignas17:43
ignasthey are not needed17:43
aelknerwhy are they there?17:43
ignasthey are needed to make the xls file downloadable17:43
ignasso that I could add a link to schooltool17:43
aelknergot it17:43
ignaswhich serves the XLS file to our users17:43
aelknerignas: i asked before how does pkg_resources know what directory to look in?17:44
ignasnot sure I understand your question17:44
yvlpkg_resources are supposed to manage used eggs, wherever they are in the system17:44
ignasit 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 not17:45
aelkneri need a line of code that reads the file17:45
aelknerright now i don't know what that wold be17:45
ignas<replaceafill> aelkner, src/schooltool/export/ftests/sample_data.txt will give you an example17:45
aelknerdata = pkg_resources.resource_stream('schooltool.export.ftests', 'test_data.xls')17:45
aelknerdata = pkg_resources.resource_stream('schooltool.export.ftests', 'test_data.xls').open().read()17:46
ignasthere is no open()17:46
ignasit's a stream already17:46
*** dlobo_ has quit IRC17:46
aelknerbut look at the code i just posted17:46
aelknerit has two args17:46
ignas2 args17:46
aelknerone is a file name17:46
aelknerone is a resource name17:47
ignasnot a resource name17:47
ignasbut a module name17:47
replaceafill(package, resource)17:47
aelknerah, so that's how it knows the directory17:47
aelknergot it, thanks17:47
ignasyou should put as much as makes sense in there17:47
replaceafill(package, resource [not as configure.zcml resource])17:47
ignas('schooltool', 'export/ftests/test_data.xls')17:48
ignaswould be bad for example17:48
ignasas you have multiple eggs that have schooltool17:48
aelknerok, i should be in good shape with that then17:49
ignas('schooltool.lyceum', 'journal/ftests/some_data.xls') would work, but adding .journal to the module would be nice17:49
aelkneri will specify the whole package as that seems cleaner17:49
yvlI'd prefer ('schooltool.lyceum.journal.ftests', 'some_data.xls')17:49
th1aaelkner:  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
aelknerth1a: i was hoping to get some of that going in the pipeline as soon as possible17:50
th1aDo we need to discuss it today?17:50
aelknercould you send me that email we discussed last time with the summary of info that was sent17:50
th1aI thought you found the key email from them?17:51
aelknerthere's only one thread, right?17:51
aelknerok, i'll look at it again17:51
aelkneras for setting up the screecast17:51
th1aYou need to set up the courses first.17:51
th1aJust focus on the high school level for now.17:52
replaceafillignas, btw my wsgi experiments worked great :)17:52
th1aI'll do the screencast.17:52
aelkneri figured you could just run it on your local machine17:52
aelknerso you said to focus on high school because that's all they gave us in the email, right?17:53
th1abut it won't take you as long to get an example going.17:54
th1aFewer grades.17:54
th1aRemember the spreadsheets have multiple worksheets.17:54
*** mgedmin has joined #schooltool17:56
th1aOK, grant announcements and press release going out TODAY, then I focus on the release.17:56
th1aAny last words?17:56
aelkneri was framed17:56
aelknercan i have a last cigarette17:56
* th1a drops the bag of gravel.17:57
th1aHave a great week gentlemen!17:57
aelkneryou, too17:57
replaceafillthanks guys17:57
yvlgreat week to you17:58
*** dlobo_ has joined #schooltool18:00
*** dlobo_ has quit IRC18:12
*** Aiste has quit IRC18:30
*** Aiste has joined #schooltool18:30
*** mgedmin has quit IRC18:45
*** Aiste has quit IRC18:48
*** replaceafill has quit IRC19:01
*** menesis has quit IRC19:26
*** replaceafill has joined #schooltool20:01
*** th1a has quit IRC20:03
*** dlobo_ has joined #schooltool20:21
*** ignas has quit IRC20:29
*** menesis has joined #schooltool21:53
*** replaceafill has quit IRC22:37
*** menesis has quit IRC22:42
*** dlobo_ has quit IRC22:56
*** jelkner has quit IRC23:17

Generated by 2.15.1 by Marius Gedminas - find it at!