IRC log of #schooltool for Monday, 2012-10-08

*** menesis has joined #schooltool01:45
*** menesis has quit IRC02:37
*** aelkner has quit IRC08:48
*** aelkner has joined #schooltool08:54
*** menesis has joined #schooltool09:39
*** yvl has joined #schooltool10:19
*** mgedmin has joined #schooltool10:26
mgedminmenesis, does schooltool still have buildbot slaves on muskatas?10:27
mgedminif so, some maintenance may be needed to recreate all virtualenvs10:27
mgedminbecause they tend to break after a distro python2.6 package upgrade10:27
mgedminwith errors like ImportError: cannot import name urandom10:27
mgedminanyway, if you get those errors, now you know why10:36
*** mgedmin has left #schooltool10:36
menesisI have fixed that already10:51
*** aks has joined #schooltool13:05
*** aks has quit IRC14:32
*** replaceafill has joined #schooltool16:21
*** th1a has joined #schooltool16:26
th1ahi yvl, menesis, aelkner, replaceafill.16:31
yvlgood morning :)16:31
replaceafillgood morning/afternoon16:31
th1ahm... menesis is who we really need today...16:33
th1ayvl:  Know where he is?16:35
* th1a sighs.16:35
yvlseems like he worked from home16:35
th1aYou're not his keeper.  ;-)16:36
th1aaelkner, would you like to start?16:36
aelknerok, i fixed the gradebook average when minimum is set bug16:37
aelknerthere are tests to prove it works now16:37
aelkneralso, i figured out how to fix the pesky broken gradebook  tests die to evolve116:38
aelknerdue to16:38
aelkneryvl, did you see what i did there?16:38
aelknerdidn't my note to the developer's list get through?16:38
replaceafillit did16:39
aelkneranyway, here's the revision:
aelknerthere's no reason to add the scoresystems utilities to the container when we're not also creating it at the same time16:39
yvlaelkner, sorry, got lost in all the mail from LP16:39
aelknerthe thing was that tests fire AppInit before database init16:40
aelknerstart-server does it the other way around16:40
aelkneranyway, the tests pass now, and i think the evolve1 change is safe16:41
yvlwhy the utilities were there in the first place?16:41
th1aThere was a bit of an email flood.  ;-)16:41
yvlin the tests16:41
yvlevolve 1 is supposed to find the registered scoresystem utilities, if there are any, and *move* them to the container16:42
yvlfresh databases should not have those utilities16:42
yvlwhy there were utilities found in tests?16:42
yvlis it a faulty (outdated) setup?16:42
yvlor is there a more serious problem?16:43
yvlfeel free to keep it as a workaround, but I'd like those questions answered before merging that fix to trunk16:43
yvland I'm not convinced it's a right fix, sorry :/16:44
th1aWell, perhaps yvl can answer them soonish.16:44
yvlwe can of course sweep it under the rug, merge to trunk, and assume everything is fine for now16:45
aelkneras i said, AppInit got fired before database init16:45
yvlthat is intentional16:45
aelknerAppIiit adds three scoresystems if it finds and empty container16:45
yvlthat is also intentional16:46
aelknerthen evolve1 runs, and it adds the same scoresstems again!16:46
yvlonly if it finds utilities!16:46
yvlshould they be there?16:46
yvlanyway, it's just a faulty test set up probably16:48
yvlnot a very big deal16:48
aelknerlook at test_evolve1 is you want the answer16:48
aelknerit adds the utiltiies16:48
aelknerthe faulty part is that AppInit runs and adds the scoresystems container first16:49
*** menesis has quit IRC16:51
aelkneryvl, look, i fixed the broken tests, i didn't even break them in the first place16:51
yvland I said that is a hack not a fix16:51
aelknerif you have a better fix, by all means, i'm all for it16:51
yvlwhat is so difficult to understand?16:51
yvlI thought th1a mentioned that I will have to fix those eventually16:51
yvland I said that the fix is just hiding the problem, not fixing it16:52
yvland I'm reluctant to merge that fix because it should expose broken databases16:52
th1aIt is just a little pissing contest.16:52
th1aI'm not taking sides.16:53
th1aCan we move on?16:53
aelkneri'm not in any contest, i made my report, that is all16:53
th1aOK, so aelkner and I are going to do a little review of imports the next few days, right aelkner?16:54
* th1a moves post-its around.16:55
th1aOK, lets go over that later today.16:55
th1aWhen do you get up?16:56
aelknerwell, i'm up now16:56
aelknerbut we could meet in the afternoon16:56
aelknername the time16:56
th1aThanks aelkner.16:57
replaceafilli finished the projects gradebook update16:58
replaceafillyou can see it at
replaceafilladding skills is a little bit hacky16:59
replaceafillsince you can't really search for a skillset/skill in the beginning16:59
replaceafilli also finished the update equivalent skills functionality16:59
replaceafillso if you add a skill that's also in the section skills gradebook16:59
replaceafillthe project updates that17:00
th1aHacky in the sense that we should at least get rid of the checkboxes that lie?17:00
replaceafillas we said last week, it's the same filter we use in /nodes17:00
replaceafillso we have that problem there too17:00
replaceafilli don't know how to "detect" the right level :(17:01
replaceafill(to stop showing)17:01
replaceafillis it like "show only layers with nodes"?17:01
* th1a doesn't know if searching for everything isn't almost easier than removing the boxes.17:01
th1aaelkner could do that right now actually.17:01
th1aMake these searches find skillsets and skills.17:01
replaceafillduring the weekend i checked this one:
replaceafillso i thought i could also merge the style change to Done links i have in a branch17:03
replaceafilli'll do that today17:03
th1aOh, God yes.17:03
th1aThat's definitely one of those "You haven't merged WHAT?" bugs.17:03
replaceafillth1a, i realized the task involves moving some Done links out of view page templates17:04
replaceafillnow that we have the page content viewlet manager approach17:04
th1aDoes this include adding them above and below lists?17:04
replaceafilli think we should always stick to it17:04
replaceafilland leave content_templates out when possible17:05
replaceafillth1a, correct17:05
replaceafillwhen using viewlets that's really easy17:05
th1aOK, yes, clean that stuff up.17:05
replaceafillwe also have the after="*" functionality with viewlets17:05
replaceafillso we can put the Done at the bottom17:06
replaceafillkk, i'll work on that today17:06
replaceafilland then i'll move back to completion reports17:06
replaceafillnow that we have the section skills fix17:06
replaceafilldwelsh is also requesting help on updating the social skills server17:06
replaceafilli'll fwd you some emails he just sent17:07
* replaceafill done17:07
th1aYes... don't let Welsh bypass me completely.  ;-)17:08
th1aThanks replaceafill.17:08
yvlI spent the day looking over the assigned bugs17:08
yvland how to fix them :)17:09
yvlI have two things that are not clear17:09
yvlone is
yvlit's a good question what's the best way to solve it17:09
*** menesis has joined #schooltool17:10
yvlanother is unfinished business with school logo17:10
th1aProbably an "Assign to all linked sections" option.17:10
th1aDefinitely move the title above the logo on the login page.17:10
th1aThat's driving me crazy.17:10
yvlthe problem with that is that css is not that friendly there :)17:11
yvlso it's not 2 minute change17:11
yvlbut I will move that17:11
yvlI realized just now it's a 10 minute change17:12
yvlas far as timetable assignment goes, you'd like a button "apply and assign to linked sections" ?17:13
yvlthat simply puts copies in linked sections with start/end dates matching the sections' terms17:13
th1aProbably more like "Apply schedule to all terms for this section."17:13
yvlyou can assign start/end dates17:14
yvland they can be outside of a section17:14
th1aApply schedule to all terms (linked sections).17:14
yvlif the user enters a start/end date17:15
yvlthat spans two terms17:15
yvlsince he can do that17:15
yvland then clicks next17:15
yvland hits a button to apply the change to all four linked terms that year17:15
yvlwhat should happen?17:15
th1aI guess if you're using start and end dates you don't need the buttons.17:16
yvlMaybe a separate page to "add for all linked sections" then?17:16
yvlas in "add timetable" link17:16
th1aYou'd need the initial form to cue the user to the span of linked sections.17:17
th1aI thought you were saying that if you have the date span you could just infer that if it spanned multiple terms it would have to be applied that way.17:17
yvlthat too17:17
yvlbut now I think that it would be best17:17
yvlif we just had a separate form:17:18
yvlone for assigning the timetable17:18
yvlanother for assigning timetable for all linked sections17:18
yvlthe latter would not allow you to pick dates,17:18
yvlbut would apply to all linked sections using their start/end dates17:19
yvlI think that would work17:19
aelknerthat would be easier for the user, too17:20
aelknernot having to put dates in that one already put in previously is a friendly ting to do17:20
th1aI just don't like the user having to figure out which link is the right one for him.17:21
th1aIf both could be on the same page, that might be best.17:21
yvlthen we can use the magic of third-nav17:21
th1aThat would be ok.17:21
th1aI'd make whole terms the default.17:21
yvlthanks guys17:22
yvlso another question is a bit more techy17:22
yvlI didn't resize the school logo on upload17:23
yvlI think we need different resolutions anyway17:23
yvl(high res for reports)17:23
yvlbut serving the big one to users will kill the server17:23
yvlwell, at least for some people ;)17:24
yvlso I17:24
yvlso I'd like to do thumbnails,17:24
yvlin a somewhat similar way google plus does17:24
th1aAh, yes.  We do need to make sure they'll look nice printed.17:24
yvlso I thought about views that automatically resize the photo17:25
yvllike manager/photo/w20017:25
yvl(width 200, height auto)17:25
yvl(height 400, width auto)17:26
yvlbut the question remains, when to cache?17:26
yvli.e. when to save to HDD17:27
yvl(for faster access)17:27
aelkneris that a jquery question?17:27
yvlit's a... well architecture question17:27
aelkneror is it a http header that controls browser activity?17:27
yvlsay, we upload a photo17:28
yvland we want to store some thumbnails in HDD17:28
yvlwhere would you like to specify which thumbnails to store?17:28
yvlshould they be specified in ?17:29
th1aThe high res ones only need to be requested by reports, so they can be a little more expensive than just a web request.17:29
yvlbut when doing low res, we have to specify the resolution(s) *somewhere*17:30
yvl1) interfaces.py17:30
yvl2) in zcml17:30
yvl3) in tal17:31
yvl4) on-demand - always store whatever resolution somebody requested17:31
aelkner4 sounds practical17:32
yvlbut it17:32
yvlit's also dangerous17:32
yvlif somebody runs a script to look at person's photo with 100000 different resolutions...17:32
yvlbye bye free space on HDD17:32
aelknerattack vulnerability17:32
aelknerthere cold be an algrith that protects against that17:33
aelkneri mean, the file names can show the resolution17:33
aelknerthe method that thumbnails can check the hdd17:33
yvlwe also could specify "max cache size" in MB17:33
yvlor "max amount of thumbnails"17:34
aelkneri think, the savings in speed comes when the image is already there17:34
aelknerso simply doing an expensive check for too many files of the given type17:34
th1aThe logo and person images are different.17:34
aelknerwould not be haprmful17:34
th1aThe best person image has to be good enough for a passable id card image.17:35
th1aThe best report card letterhead logo image needs to be pretty sharp with potentially small lines.17:35
th1aBut all we really need is the regular web resolution and the good one.17:36
th1aWe don't need to keep high quality person images, and we don't need a bunch of logo images.17:36
yvlif you want a good image on the web17:36
yvlit's best to scale down from a very high resolution than nearly-matching resolution17:37
yvlscaling from 140 to 144 pixels is... not the best way to go17:37
yvlbut in general I do agree with th1a17:38
yvlok, that helped!17:38
th1aYes, we don't need to switch to a generalized rescale on demand system.17:40
yvlI will do a semi-generalized resacle on-demand17:41
yvlsimply because it's easier17:41
th1aOK.  We don't need anything comlicated.  ;-)17:41
yvlok, /me done17:42
th1aThanks yvl.17:42
menesissorry for missing the Friday meeting17:43
menesison Friday and today17:43
menesisI am making the releases17:43
menesishappy to see many last-minute bugfixes17:44
menesishope that you have all of your bugfixes merged?17:44
th1areplaceafill unfortunately reminded me that we hadn't merged and finished one of the most important.17:44
th1aThe universal Done button improvements.17:45
th1aI'd say that's important enough to wait for.17:45
replaceafilli'll have that "Done" today17:45
th1aI think that's thebig one.17:46
menesiswill gradebook depend on changes in core?17:46
menesisfor the Done button?17:46
replaceafilli think the gradebook has some Done links17:47
* replaceafill goes to check17:47
th1aIt is pretty universal.17:48
replaceafillmenesis, i'd say yes, it will depend on a change to the core css17:48
replaceafill(i mean the gradebook will) :)17:48
menesisokay, will see17:49
menesisif only css then little problem17:49
menesisI am halway dealing with translations and updating changelogs17:50
th1aI will need the release notes to make an announcement.17:50
menesiswill wait for those Done changes before I hit the "release" button17:50
menesisbuildbot is green again, thanks aelkner for gradebook evolve1 fix17:52
th1aLet's not get into that.17:52
aelknerit's ok, th1a, i agree that the test setup needs to improve17:52
aelkneri just thought it was a priority to get tests to pass17:52
th1aBut perhaps we can leave that green until yvl does the real fix.17:52
th1aOK.  I actually started writing CanDo docs last week.  Starting is the hardest part.17:53
th1a* invoices!17:54
th1aRelease notes, menesis.17:55
th1aSee you Wednesday, gentlemen.17:55
menesisyvl, make it so that evolution scripts do not run in test layer setup?17:55
replaceafillth1a, will send mine tonight17:55
menesisthank you for all your fixes again17:55
yvlwell, install generations are run on fresh databases in real life17:56
yvlso I'd rather have them on ftests also17:56
menesisinstall... true.17:56
menesisin unpredictable order17:56
yvlwhere's the gravel?17:58
* th1a drops the bag of gravel.17:58
replaceafillthanks everybody17:58
* yvl may have mild OCD17:59
aelknerthank guys, cya wed17:59
yvlthanks guys17:59
*** yvl has quit IRC18:04
replaceafillis it pypi down? i can't bootstrap a fresh branch :(18:27
*** veloutin has quit IRC18:29
*** veloutin has joined #schooltool18:29
th1aaelkner, replaceafill:  I forwarded a question from Lee.19:09
replaceafillth1a, iirc, the skills don't have an order attribute or something and we save them as they're spit by their api19:11
th1aWhat do we use as labels?19:12
replaceafillconsecutive numbers19:12
replaceafill001, 00219:12
th1aAren't they in order?19:12
th1aOr don't we sort by label?19:12
replaceafilli'm not sure if Lee is talking skills gradebook here19:13
th1aHow are they sorted there?  By label?19:13
th1aThere is a "sort skills by label first" bug I filed.19:13
* replaceafill is checking19:13
replaceafillthey're not sorted19:18
replaceafillin the gradebook at least19:18
th1aWell, that's a bug.19:19
th1aI can have aelkner do those today.19:19
replaceafillon a first glance i can't see anything "sorting" the skills in the gradebook19:19
replaceafillggrr damn time out!19:29
replaceafillhow do i know what server is timing out!?!?!19:29
*** aks has joined #schooltool19:36
*** aks has joined #schooltool19:36
replaceafillmenesis, you around?20:01
*** aks has quit IRC20:02
menesisreplaceafill, I am20:15
replaceafillmenesis, i'm having trouble downloading zc.buildout :(20:15
replaceafillwhen running bootstrap20:15
replaceafill is timing out for me20:16
replaceafillusing virtualenv20:16
replaceafillbut i can access the page in my browser20:16
replaceafillany clue?20:16
*** aks has joined #schooltool20:16
*** aks has joined #schooltool20:16
replaceafilli thought maybe using the --download-base will let me use my egg cache or something, but i can't make it work :(20:18
replaceafilli don't know who to blame: virtualenv, setuptools, distribute, pypi, my IPS :D20:18
th1aVint Cerf20:19
* replaceafill starts blaming his ISP20:25
replaceafillbootstraping works in our VPS20:25
* replaceafill goes to "borrow" some wireless ;)20:26
*** replaceafill has left #schooltool20:26
*** replaceafill has joined #schooltool20:31
replaceafillit's my damn ISP >:(20:32
replaceafillat least i was able to bootstrap20:32
replaceafilli just don't have to touch my environment anymore20:32
*** aks_ has joined #schooltool21:00
*** aks_ has joined #schooltool21:00
*** aks has quit IRC21:00
*** aks_ has quit IRC21:00
th1ahi aelkner.21:03
aelknerhey th1a21:04
th1aOK, so we have a few things which came up.21:05
th1aThis sorting issue in CanDo, which is also I think a general problem.21:05
th1aYou got an email.21:05
th1aIt also goes with this:
th1aWhich should be applied everywhere skills are listed.21:06
th1aOr, perhaps they should also be sorted by parent node then label.21:07
th1aSorted by parent node, then skillset then skill, all by label.21:07
aelknerwell, the email is about and the xls being out of order21:12
aelknerif we are scanning or otherwise processing the data from their api in the wrong order21:13
th1aThere is that.21:13
aelknerthen the labels that we generate would be in the wrong order anyway21:13
th1aBut also replaceafill doesn't think we're sorting them in the gradebook, and I know we aren't sorting them other places.21:13
aelknerso sorting in the app by label wouldn't solve that problem21:13
th1aSo we probably have a problem with our belt AND our suspenders.21:13
aelknerbut, yes, we could definitely make sure sorting is being done by label in the app21:13
aelkneri can definitely look into both issues21:14
replaceafillwe use .values() for generating the list of activities, which you can't rely on21:14
replaceafilland the gradebook views methods don't sort the activities in any way21:14
aelkner.values() returns them in the order they are added21:15
aelknerif get_verso adds them in the right order, then we'd be ok there21:15
replaceafillin a sorted container that is true21:15
aelkneri was just saying that they values() returns in order added, not sorted21:15
replaceafillalso true :)21:16
aelknerthing about get_verso is that it builds this huge dictionary as it queries their api21:16
aelknerand dictionaries don't have a reliable sort order, they go by the random hash21:17
aelknerso we would need to have a field in the objects that is sortable and use that21:17
aelkneri'd have to look over the code a bit21:17
th1aThat sounds easy enough.21:17
replaceafillaelkner, if you're sorting by label, title you need the request21:18
replaceafillie you need to do it in views21:19
replaceafill(for using collation)21:19
replaceafillis collation a word? :D21:19
aelkneryes :)21:19
replaceafillphew21:19 doesn't have a request, but we should be using the order that they deliver in the api anyway21:20
replaceafilldo relationships work like dictionaries?21:21
aelknerbut the solution is to get the get_verso sort right21:22
aelknerthe result would be to have labels that wold sort in the same order21:23
aelknerthese labels are not anything that would be internationalization-sensitive21:23
aelknerthey are things like 01 02 ...21:23
aelknerthey would sort right in any country21:23
replaceafillbut they're strings...21:24
aelknerthe trick is to get them into the xls file in the right order21:24
aelknerstrings of digits sort the same everywhere, right?21:24
replaceafillfor aps case21:24
replaceafillnot general21:24
aelknerwell, i was just referring to get_verso21:25
aelknerbut i agree that user-defined labels will be international-sensitive21:25
aelknerand the collator would need to work based on that21:25
* replaceafill appreciate any effort on improving i18n :)21:25
aelknerpoint taken :)21:26
aelknerth1a, anyway, i'll look into Lee's claim that the skills are out of order in the xls file21:34
aelknerand i'll let you know what i find when i do21:34
th1aBut also fix the sorts in the app too.21:35
aelkneryes, that, too21:35
th1aAlso... I'd like the search forms for the nodes to search skillsets and skills too, if that is practical.21:35
aelkneryeah, i saw that one, that would be a departure from the way we have always presented data21:46
aelknermixed data types in container views has never been done21:46
aelknerthat doesn't mean it's not possible, just strange, i'd have to look into what that would mean21:46
th1aLook into it.  We either need to do that or just remove skillsets and skills from the the choices there, since you can't actually search for them at all there.21:47
aelkneryou mean remove the checkboxes?21:47
aelknerby there, you mean the Search tab?21:48
aelknerwhen you say 'remove skillsets and skills from the the choices there'21:48
aelknerin the node container view, the Search tab, there is no skillsets or skills choices, so i don't understand21:49
aelknerthere are checkboxes for layers, but that's it21:49
aelkneroh, assigning skillsets to courses, replaceafill could tell you about that one21:51
aelknerthat's the accordion view, is that what you mean?21:51
replaceafillthe filter used in that view21:52
replaceafillshows two layers Skillsets and Skills which don't have nodes21:52
aelknerhas no mention of skillsets and skills, so what about it?21:52
aelkneroh, the layers called Skillsets and Skills21:52
aelknerth1a, you know we created those two layers as part of the document view21:53
aelknerthey are pretend layers to allow the user to rename SkillSet and Skill to DutyArea and Competency (or whatever)21:54
aelkneronly in the document tree views21:54
aelknerthere are actually no nodes that have those layers21:55
aelknerit's just a way for us to have the document tree view for adding a SkillSet be:21:55
th1aWell... I don't care why the view is lying.21:55
aelknerAdding DutyArea21:56
th1aIt IS lying, right?21:56
aelkneri guess we can have the logic to exlude the two lowest layers on the hierarchy21:56
aelknerso they are not included21:56
th1aOr we could include them in the search.21:57
aelkneri was just about to say :)21:57
aelknerlike i said, it's weird, but possible in theory21:57
aelknerif we were to include skillsets and skills in the Search tab, would we want to re-remove the SkillSets tab?21:59
aelkneri mean, is there any reason to have it at that point?21:59
th1aProbably not.22:00
aelknerok, i'll look into including skillsets and skills in the search22:01
* replaceafill goes to get lunch, bb in ~4522:05
replaceafillth1a, zyt?23:42
th1ayes replaceafill.23:42
replaceafillquick question23:42
replaceafilldo you want a Done button under EVERY listing table?23:42
replaceafillsome of them are really short23:42
replaceafilllike Documents in cando for example23:42
th1aThe question would be do I want it OVER every table.23:43
th1aThe default for a short list would be under.23:43
th1aThe answer is no.23:43
replaceafillfor longer tables, like /person, we'll use two right?23:43
replaceafillabove and below23:43
replaceafilli mean /persons23:43
replaceafillhhhmm didn't we put one next to the filter buttons?23:44
* replaceafill goes to see23:44

Generated by 2.15.1 by Marius Gedminas - find it at!