IRC log of #schooltool for Wednesday, 2011-10-12

replaceafillwell, it seems like it will be fun to print self-closing elements...00:46
*** replaceafill has quit IRC02:09
*** aks_ has joined #schooltool06:18
*** aks_ has joined #schooltool06:18
*** aks_ is now known as aks06:18
*** yvl has joined #schooltool10:18
*** aks has quit IRC14:23
*** menesis has joined #schooltool15:28
*** replaceafill has joined #schooltool16:20
th1ahi replaceafill, aelkner, yvl, menesis.16:30
yvlhey guys16:31
replaceafillgood morning/afternoon16:31
th1aI just forwarded an email from CL.16:32
th1aGetting them thinking about updating to 2.0.16:32
th1areplaceafill:  What do we need to do for Cambodia now?16:33
replaceafillfix the font issue and timetable issue16:33
replaceafilli already know how to do both16:33
replaceafillwill do today16:33
th1aDo we have some problem building the server?16:34
* th1a is trying to remember.16:34
replaceafillyes, it doesnt work with the new schooltool egg16:34
aelknerth1a, are you assuming cambodia is gong to avoid the flourish issue?16:35
replaceafilli just have to pin down the egg version16:35
th1aThey can go through a year with what we built for them.16:35
aelknerso no flourish for them16:36
th1aNot immediately.16:36
th1aOK, let's try to nail that down today.16:37
replaceafillwill do16:37
th1aAnything else, replaceafill?16:37
replaceafillmy report:16:37
replaceafilland some questions16:38
replaceafilli fixed the password issues reported by menesis16:38
replaceafilland added selenium tests for them16:38
replaceafilli found and reported and issue with schooltool.devtools16:39
yvlfixed, released16:39
replaceafillwhich i think menesis already solved16:39
menesisyvl did16:39
replaceafillah :)16:40
replaceafillcan you check that ^16:40
replaceafilllook at the login bar16:40
replaceafilli put the language selector there16:40
replaceafillthat was another bug:
th1aLooks good.  Where is the list of available languages set?16:41
replaceafillin instance/schooltool.conf16:41
replaceafilli also fixed:
replaceafillmale/female not translated16:42
replaceafilland about:
replaceafilli checked:16:42
replaceafill* worksheet/addActivity.html16:42
replaceafill* activities/addWorksheet.html16:42
replaceafill* activities/index.html16:42
replaceafill* worksheet/weights.html16:42
replaceafill* worksheet/addLinkedColumn.html16:42
replaceafill* worksheet/addLinkedActivity.html16:42
replaceafill* worksheet/edit.html16:42
replaceafill(sorry for the flood)16:42
replaceafilland the only i18n issue I found was the Summary worksheet title16:42
replaceafillyou can see it here:
replaceafilli was thinking that maybe for creating the summary worksheet, we could do: title = translate(_('Summary'), context=self.request)16:43
replaceafillsince the title of worksheets is plain unicode16:44
replaceafillthat would set the title in the locale the user is using in that moment16:44
aelknerbut it woldn't change when they change the language16:45
th1aIt seems like a reasonable compromise.16:45
replaceafillyvl i sent a [tl;dr] email about self-closing elements and selenium16:46
replaceafillnot a biggie though16:46
yvlfixed, released16:46
yvlsorry about that16:46
replaceafillthanks yvl :)16:46
yvlbastards give HTML output from a XHTML doc16:46
* replaceafill goes to see how yvl fixed it16:47
replaceafillok th1a i think that's it from me16:47
yvlswitched parser from XML to HTML :D16:47
th1aThanks replaceafill.16:47
aelkneri said i was going to work on matt to copy the live Data.fs to the test courseinfo instance16:48
aelknerbut i havene't done that yet, will get after that today16:48
aelkneri did look at the niepa package to take an inventory of the things that we did there16:49
aelknerand i wanted to ask about the whole custom skin situation16:49
aelkneryvl, now that we have a flourish layer, what would we do with the pilots as far as skin goes?16:50
aelkneralso, what will we do about things like cando which have their own skin16:50
th1aIt seems to me that the first question is what do we need a custom skin for at this point.16:50
aelknerok, i can list some things now16:51
th1a(with Niepa)16:51
aelknerfirst of all, the whole idea with the pilot skins was to override the Manage views16:51
aelknerdumb them down if you will to help navigate the user to easier to use person views, for instance16:52
th1aAre those views easier to use than the flourish ones?16:52
aelknerso there is a set of custom navigationViewlet managers, custom person views by group, etc.16:52
aelknerfrom Manage, there are three links (also in cambodia) for Students, Teachers and Adminstrators16:53
th1aDon't we pretty much have that in flourish now?16:54
aelknerin flourish, the School tab has a groups table, so that kind of replaces that16:54
th1aNext issue?16:55
aelknerthe AppStartup does things like create demo fields if they are not there16:55
aelknerso i suppose we still need the app type to be a custom one16:55
aelknerdoes that mean the skin needs to be custom just for that?16:55
aelkneralso, a special exam template is created on app startup and deployed on term add16:56
aelknerthe term add handler does not get registered with a browser layer16:58
th1aSomeone other than me has to handle those.16:58
aelkneryes, that's for yvl really16:58
aelkneralso, there is a special report_card.pdf view for ITerm that overrides the default by using the custom layer17:00
th1aThat can just be registered now using the new report system.17:00
aelknerfinallly, app preferences are subclassed and use a different annotations key17:00
aelknerso getAppPreferences returns the niepa version17:01
th1ayvl:  ayt?17:01
aelknerthe issue with custom app preferences (which have custom school attributes) is they are not customizable17:02
yvl* back17:02
aelknerwhich david had issue with17:02
yvlwas away for 2 mins17:02
aelknerthe answer to that is have demos for app17:02
aelknerwhich we don't support yet17:02
aelknerit's on our list in the mind map, but not yet defined (demos for all objects)17:03
th1aI just don't see why we need a *skin* at this point.17:04
yvlwell, think of it this way17:04
yvlST kind-of-works in two modes17:04
yvlold version and new version17:04
yvlthere are also some datamodel changes17:05
yvlCanDo and Niepa and others were written for old version17:05
yvlif we want them to work with the new version, we need to update their code17:05
yvlfor example, CanDo takes old ST skin, and skins over it17:06
yvlif we want it to work with our new UI, we need it to skin over new UI17:06
yvlsame for Niepa17:06
yvlI didn't look at what it does precisely yet17:06
yvlas I was, you know, sick17:06
th1aIs there some reason we'd need a skin if we aren't overriding any views?17:07
aelknerdatamodel issues?17:08
th1aOK, aelkner, we don't need a skin.17:08
aelknerapp startup17:08
th1aWe need a package.17:08
yvldatamodel is one thing, presentation (skin) is another17:08
yvleven current branch can work semi-decently in two separate presentations, old one and flourish17:09
yvlwith same datamodel17:09
yvlif Niepa datamodel is custom17:09
yvlit remains custom17:09
yvlthe same way it was customized before17:09
yvlmaybe some new features appeard that make customization unnecessary17:10
th1aWell, less so, we just need to migrate some of the customizations to the new standard data model.17:10
yvlthen Niepa should be upgraded to use those datamodel features17:10
yvland evolution script(s) should be written17:10
yvlright, th1a17:10
yvlthis change is unrelated to skins17:10
aelknerwe don't need to worry about evolution becuase david is only customer and can start from fresh Data.fs he said17:10
th1aWriting migration scripts may be easier.17:11
aelknereasier than what?17:11
th1aTech support to Nigeria.17:12
th1aWhat would you rather do, write Python or explain something to David via email.17:12
aelknerwell, i already asked david about throwing out the Data.fs and he agreed17:12
aelknerif we remove cando, the data breaks17:13
aelknerso better to start from fresh data.fs17:13
aelknerremember, we don't have plug-outs, only plugins17:14
th1aWe could hack something together ourselves, but I won't press the issue.17:14
th1aSo basically we have to register a custom report and add the custom school level data.17:15
aelknerno levels yet, but custom report sheet template and deployment17:16
aelknerand custom report card and census report17:16
th1aAnd some setup on app startup (demographics, etc).17:16
aelknercando will be someting we can plug in later, but with the flourish version of cando we won't have17:17
aelknera custom sin for that to worry about17:18
th1aOK, so let's just try to get the niepa thing out of the way asap please.17:18
aelknerbut with niepa, we will want to have a custom skin derived from flourish layer?17:18
yvlaelkner, is there a need for it?17:19
yvlwhat will you be trying to accomplish with that?17:19
aelkneryvl, that is what i'm going to need you to help me to determine17:19
aelknerwhat are you asking precisely just now, are you asking why flourish?17:20
yvlI've no idea what you are trying to have in the end17:20
yvlif you want plain flourished ST + 1 custom report17:21
yvlthen there's no need for a skin17:21
aelknerthink pilot issues, subtract those that relate to bad UI17:21
yvlif you want to change behaviour of views, i.e. override them, you'll need a skin17:21
aelkneroverriding app startup, report_Card.pdf for ITerm17:21
yvlwell, then I can with confidence say - it depends ;)17:21
* th1a is back...17:21
aelknerthat's very nuanced answer, yvl :)17:22
yvlgimme a full detailed spec, I can give you an answer17:22
th1aThere are perhaps a couple views which I don't think require a skin.17:22
yvlsorry, but I fail to see a problem :|17:22
th1aNobody has said anything this entire conversation which suggests a skin would be required.17:23
aelkneroverriding report_card.pdf and app startup have been mentioned mutliple times17:23
yvlapp startup17:24
aelknerdon't they point to the need for a custom skin?17:24
yvlis not a view17:24
yvlplease look at ZCML17:24
yvland notice that adapters17:24
yvlare not related, and not mention17:24
yvlneither browser requests, nor school tool layer17:24
aelknerah, app startup is just a subscriber that will get in line, right yvl?17:25
yvlyes, please look at the code before asking17:25
aelknersorry, forget that issue17:25
th1aI think you should just start assuming you won't need a skin.17:26
* yvl is still semi-sick, hence a bit bitchy ;)17:26
yvljust kill the skin17:26
yvlif you can't make it work properly without a skin17:26
yvlmake a skin17:26
*** menesis has quit IRC17:26
aelknerth1a, instead of overriding report_card.pdf, we could keep that and add a custom report17:26
aelknerjust as you suggested before, using the report card registration feature we have17:27
th1aOK.  Are we done aelkner?  ;-)17:28
aelknerok, i will assume no need for custom skin and remove it entirely17:29
aelknerget rid of whole niepa.person package17:29
aelknersince it only has the custom person views not needed now that we have flourish17:29
*** menesis has joined #schooltool17:29
aelknerwhat about instance_type?17:30
aelknershould that just be flourish?17:30
th1aAny reason why not?17:30
menesisit can be flourish or schooltool, the same17:32
th1aI think we should just assume this will work in the simplest possible way.17:32
aelknerok, i'll start with removing the skin entirely and try to get it to start up and run17:33
aelkneri already had changed the skin to derive from flourish layer, but that caused the whole thing to break17:33
aelknerif i don't need the skin at all, it may be easier17:33
aelkneri'll look into that and report my findings17:34
aelknerthat's it for me17:34
replaceafillyvl could you please merge your webdriver fix to trunk?17:34
yvlwhoops, replaceafill17:34
replaceafilli know ;)17:34
replaceafillpersonal branch :D17:34
yvlnope, diverged17:35
yvldidn't look before pushing :)17:35
yvlnow done17:35
replaceafillwill test the <input> issue17:36
yvlthanks, replaceafill17:36
yvlI just looked at niepa code17:36
yvlit has some custom configure.zcml17:36
yvlthat define the instance, include cando stuff, have customized persons for some reasons17:37
yvlmost of it is obsolete if we use new UI I think17:37
yvlI have just one question17:38
yvlwith removal of CanDo, it will be... well, ST17:38
yvljust with some pre-configured data17:38
aelknerit needs to be flourish17:38
yvland custom app preferences17:38
aelknerand some added views for reports17:39
aelknerbut they can have different urls instead of overriding existing17:39
th1aWe may never have really needed a skin, I think I just told him to copy the Cambodia approach.17:39
aelknerthat's right17:39
yvlwith new ST UI, the changes will be...17:40
yvlapp preferences, because we don't support custom ones17:40
yvland a report17:40
yvland that's it, right?17:40
aelknertwo reports, and you forgot to mention the app startup again in your minni-summary17:41
aelknerwhich creates demos and report sheet template17:41
aelknerand the term add subscriber which, again needs no skin17:42
yvlso... if we, say, created a fresh database17:42
yvlwith correct demographics and worksheets set up17:43
aelknergood assumption17:43
yvlwe wouldn't need the "app startup" part?17:43
yvljust, you know, copy the DB?17:43
aelkneri don't know about that17:43
yvlor if we wrote an importer for demographics and school level worksheets17:44
aelkneri wold think david would want the pythin code we have to run each time he sets up a new instance17:44
aelknerthat's another idea17:44
yvlwell, ok, anyway17:44
th1aThere are lots of ways to do it.17:44
th1aYou could just write a selenium script.17:45
aelknerif the app startup and term add subscribers work by getting in line, then they should be fine, right?17:45
th1aOK... can we move on?17:46
aelkneri'm done for today's meeting17:46
th1aI think we've convinced aelkner that just because we used nails last time and he's holding a hammer, he doesn't have to use it.17:47
aelkneryeah, i feel better now about the situation, that's for sure17:47
replaceafillyvl the selenium change works like a charm17:47
replaceafillyvl feature request17:47
replaceafillif i may17:47
replaceafillcan we stop the tests after first failure17:48
replaceafillif i have three different browsers17:48
replaceafilland one part of test fails17:48
replaceafillthe others browsers keep going17:48
yvlyou didn't like the -D option?17:48
yvloh, that17:48
yvloh, that...17:48
replaceafillah! didn't try -D17:48
yvlwell, try -D17:49
replaceafillah ok17:49
yvlit will halt with pdb17:49
replaceafilli can "continue" + ctrl+c17:49
replaceafillafter that, right17:49
yvlI think it will abort everything after c17:49
replaceafillso it will stop17:49
replaceafillwill try17:50
yvland it gets you to debug live17:50
yvlbut it's unpolished17:50
yvlso for some exceptions you'll end up in seemingly random code17:50
yvlsometimes at the test example17:50
yvlsometimes deep in selenium17:50
* th1a would like to wrap this up.17:52
yvlgot better, started working today17:52
th1aI targeted your bugs for milestones.17:52
yvlfixed some selenium stuff17:52
yvlfixed a bug Jeff encountered with tt deletion17:53
yvlfixed, but not committed one evolution bug17:53
yvlnow trying to figure out the other one17:53
yvlthere's some wtf with timezones17:53
yvlEurope/Vilnius is WST+1:24???17:53
yvlso there's something off17:53
yvl"over". ;)17:54
th1aOK, thanks yvl.17:54
th1aKeep squashing bugs.17:54
yvl(big personal thanks to menesis for the awesome test cases)17:55
menesisno news from me today17:55
menesismerged branches17:55
menesisupdated some things launchpad17:56
menesisjust released another devtools17:56
menesisremade bootstrap to work with default python17:56
menesisusing zc.buildout 1.5 and virtualenv17:56
menesisnot pushed anywhere17:56
menesisbut when I will, you may need to `make clean`17:57
menesisif buildout doesn't work because of version conflict or whatever17:57
yvlkeep us posted17:57
* th1a accidentally called "menesis -vv" instead of just "menesis"17:57
* menesis -q17:58
th1aThanks menesis ;-)17:58
menesiswill be fishing out xls bugfixes from flourish17:58
yvlbtw, the grey thing in Schwa's ST homepage is still ugly IMHO17:59
menesislater today17:59
th1ayvl:  Yeah... I'm not sure how I'm going to get that process unstuck.17:59
th1aThe homepage looks worse than the app right now, I'd say.17:59
* yvl agrees18:00
yvlwell, happens.18:00
th1aI think a third color would help quite a bit.18:01
th1aOK, have a good week and weekend guys.  Keep updating LP.18:01
* th1a drops the bag of gravel.18:01
replaceafillthanks everybody18:01
yvlthanks guys18:02
yvlbtw, replaceafill18:02
yvlyou don't need to call printHTML everywhere18:02
yvljust: print manager.query.css(...)18:02
replaceafillyes, i saw the str18:02
replaceafilland unicode18:02
replaceafillgood trick ;)18:02
yvlone more thing18:03
yvlhtml_unit does not support $= and others in css selectors18:03
yvlstupid thing.18:03
yvlbut css selectors are fun :)18:03
* replaceafill starts crying...18:03
yvlwell, stupid stand-alone selenium server18:04
replaceafillso, we need to use xpath everywhere18:04
* replaceafill keeps crying...18:04
yvlmaybe not18:04
yvlwe can keep using css selectors18:04
replaceafillif we all will be using chrome, maybe we can...18:05
yvlif you do need substring matches...18:05
yvlmaybe I should just "auto-translate" to xpath for html unit :D18:05
yvlor maybe not18:05
replaceafillit's not really about the features, css3 vs xpath, to me it's about the easiness to write the selector18:05
replaceafilli know xpath is really powerful and stuff18:05
replaceafillbut you get some long strings writing the selector :)18:06
yvlwell, some of the cases are quite simple18:06
yvllike... //input[@class="stuff"]18:06
yvlit's not that shorter as css selector18:06
yvlbut I agree to your sentiment18:07
replaceafilldiv.refine div.content:nth-child(2) li a18:07
yvlthough nth-child is a bit naughty18:07
replaceafillthe div.refine vs //div[contains(@class, "refine")...18:08
replaceafillok, i'll go back to xpath then18:08
replaceafillthanks for the tip18:08
yvlyou can mix them up18:08
yvlcss selectors are natural to write/read for web devs18:09
yvland I doubt you'll need many $=, ^=, *= selectors18:09
yvlanother thing using css selectors18:10
yvlit forces us to keep css well structured18:10
yvland this is a very good thing18:10
replaceafillah, good point18:11
replaceafilli think that if we don't use html_unit for dev testing, we should use them18:11
yvlhtml_unit supports css selectors18:11
yvljust seems to fail on $=18:11
yvland friends18:11
yvlok, so if you come up with more feature requests... I'll be listening ;)18:12
replaceafillthanks yvl!18:12
yvlyou can also play around with writing helpers like...18:12
*** Lumiere has joined #schooltool18:12
replaceafillthis one:18:12
yvlinputs = manager.query_all.xpath('//input')18:12
replaceafill    >>>'form.widgets.last').type('2011-12-31',18:12
replaceafill    ...                                              manager.keys.ENTER)18:12
replaceafill    >>>'form.widgets.title').type('2011')18:12
replaceafillthat's still a hack in my test18:13
replaceafilli have to type the title at the end18:13
replaceafillor the calendar gets in the middle18:13
replaceafilleven if i use ENTER at the end18:13
yvlok, got it18:13
yvlkeep the hack for now18:13
yvlwe'll need decent wait_for's later18:14
replaceafillkeep going on the helpers please18:14
yvlin theory, you should wait until the calendar thing is hidden18:14
yvlas for helpers, you can18:14
yvlprint '\n'.join([name for name, selected in zip(inputs.get_attribute('name'), inputs.is_selected()) if selected] )18:15
yvlit's a monster, but readable18:15
yvlthe output, that is18:15
yvlprobably should wrap that in some decent API18:16
yvlsomething like this works nice on access rights18:16
yvlprints offs and ons :)18:16
replaceafillthat's the is_selected part18:17
yvlsince inputs is a list18:17
yvlyou can zip multiple operations on elements in it18:17
replaceafillman! i need to learn python ;)18:17
yvlthey'll keep the correct order18:17
yvlwell, good luck18:18
yvland happy coding!18:18
replaceafillthanks yvl18:18
replaceafillget well18:18
yvlgood luck with Niepa, aelkner18:18
yvlsorry for being a b*tch today18:18
th1areplaceafill:  Do you know about this?
replaceafillth1a no, just saw it today in the zope-dev list18:50
* replaceafill is glad that he can remove some hacks from cambodia because they've been fixed in core packages :)20:04
*** menesis has quit IRC20:09
* replaceafill goes to get lunch20:27
th1areplaceafill:  Is there anything in particular I should note about our i18n as a feature?22:11
replaceafillth1a you mean the language selector?22:11
th1aI mean in general.22:11
th1aLike... is there anything particularly interesting we do correctly?22:12
replaceafillyou can set the app in several languages?22:12
replaceafilli mean, at the same time22:12
replaceafilldont know how interesting that is though22:12
th1aWhat about weird character sets, left/right, that kind of thing.22:13
replaceafillah, that we dont support22:13
th1aWe do weird character sets.22:13
replaceafilli mean, left/right22:13
th1aI'm thinking of having a panel in the feature slider on this.22:14
th1aSo if there is actually anything in particular that we do that any old PHP app doesn't, it would be good to mention.22:14
replaceafillour tools to extract/compile strings?22:15
replaceafillwe use gettext, etc?22:16
replaceafillfunny how i put so much emphasis on i18n and i can't come up with some highlights about it :(22:18
th1aI guess I just don't know if everyone can do Khmer and Nepali.22:26
replaceafillwe'd need to test flourish in those languages22:27
th1aHow about this: "SchoolTool was designed from the ground up for internationalization, from English to Khmer to Lithuanian to Nepali."22:28
replaceafillhhmm gives the impression that we only support those languages....22:29
replaceafilli put khmer in the language selector22:30
replaceafilldoesnt look that bad22:30
replaceafilllook at the cancel button :D22:30
th1a"New translations can be contributed via our project site at"22:31
replaceafillanyone can contribute, you dont need special tools to translate...22:31
th1aAh, good.22:31
replaceafillor programming skills...22:32
th1aSchoolTool was designed from the ground up for internationalization, from Spanish to Khmer to Lithuanian to Nepali.  Anyone can contribute new tranlsations, you don't need special tools.22:32
th1aOh, we need to resolve the 's issue.22:35
th1aShould I assign that to you?22:35
replaceafillhhm ok22:35
replaceafillbut how are we going to solve it?22:35
th1aI'm sure nobody wants it.22:35
replaceafillchanging the english strings?22:35
th1aIt would be nice to keep it in English if that is possible.22:36
th1aIt is all you, replaceafill.22:54
* replaceafill is looking for tips on how to i18n possessives :)22:55
replaceafilli discovered lisa.org22:55
replaceafillbut it's dead :(22:55
replaceafilland i can't see that one ^22:55
th1aCan't see it?22:56
replaceafilli just see the first 4 pages22:56
replaceafilland the rest blank22:56
th1aWell, I don't think we're missing a trick.22:57
th1aOther languages don't use 's.22:57
th1aOr the equivalent.22:57
replaceafilli just think zope.i18n is missing something babel has i18n:comment22:57
replaceafillthat's big help for translators22:57
replaceafillthe last one22:58
replaceafillwe could use a comment like "possesive form" or something22:58
replaceafillour messages only have string, domain and default22:59
th1aBut normally there isn't going to be just a suffix that transforms the name to the possessive form anyhow.22:59
th1aAnyhow, we don't need to resolve it now, I just don't want it to slip through entirely.23:01
* th1a goes to make dinner.23:01
th1alater replaceafill.23:01
replaceafillbye th1a23:01
*** th1a has quit IRC23:01
*** replaceafill has quit IRC23:46

Generated by 2.15.1 by Marius Gedminas - find it at!