IRC log of #schooltool for Monday, 2011-04-11

*** menesis has quit IRC00:00
*** aks has joined #schooltool09:06
*** aks has quit IRC09:16
*** aks has joined #schooltool09:19
*** yvl has joined #schooltool09:26
*** aks has quit IRC09:50
*** ignas has joined #schooltool12:52
*** aks has joined #schooltool13:53
*** menesis has joined #schooltool14:36
*** jelkner has joined #schooltool15:08
*** aks has quit IRC15:09
*** menesis has quit IRC15:23
*** th1a has joined #schooltool15:34
*** replaceafill has joined #schooltool16:23
th1aHi aelkner, replaceafill, yvl.16:31
replaceafillgood morning/afternoon16:32
yvlmorning guys16:32
aelknermorning16:32
th1aFirst off, thanks to aelkner for the screenshots.  That's exactly what we need to start doing.16:33
th1a(sending screenshots)16:33
th1aI sent a brief reply.16:33
yvlyes, thanks aelkner :)16:33
aelkneri saw the replies, thanks for them16:34
aelkneri'm guessing nothing has to change on the CSS front because we all seem16:35
aelknerto agree that table width 100% is not appropriate16:35
th1aI think not in this case.16:35
aelkneryvl did make a number of suggestions about changing how the buttons work16:36
aelkneri still haven't digested them all16:36
aelkneri can see having a confirmation step for extending a section16:36
th1aI'm thinking that for this version displaying the terms like this might be fine --16:37
yvlfrom user's perspective the main thing is to allow "link existing section" in all terms16:37
th1aTerm:  Second (Third)16:37
th1aWhere (Third) is the link.16:37
th1ayvl:  Yes.16:38
th1aAlso, we didn't discuss unlinking, did we?16:38
yvland yes to you, th1a :)16:38
aelknerth1a, no, we didn't discuss unlinking16:38
yvlbasically, the view should look the same, no matter which section you came from16:39
th1aThere is no reason not to be able to link backwards.16:39
aelknerjust no extend backwards, right?16:39
th1aRight now I can't remember what the problem with that was...16:40
* yvl has no strong opinion on this one16:41
aelknerth1a, i think you just felt that no sane user would want to extend backwards16:41
yvlunless he made a mistake16:41
aelkneri don't think you had any other reason16:41
yvlby creating a term in spring instead of fall16:41
aelkneryvl, right16:41
yvland thinking that he will extend that "tomorrow"16:42
th1aProbably also because we were thinking about not propogating enrollment changes backwards.16:42
th1aBut that's really a different case.16:42
yvlyes16:42
aelknerth1a, i think you were thinking about how users play around with the data sometimes16:42
th1aWell... don't try to inject too much analysis into my decision.16:43
aelknerthat's ok, i just need to know if it's ok to extend backwards16:43
th1aI think we might as well allow linking and extending backwards.16:44
th1aAnd probably the next thing you should do is implement unlinking.16:44
* th1a is anticipating the first bug reports...16:44
th1aHOW DO I UNLINK NOW?16:44
aelknerbut propagating backwards is not going to happen, right16:44
aelkner?16:45
th1aIt is not going to happen.16:45
yvlit also creates a new section, so we may also get "how do I delete now" bug reports16:45
yvlnot that my remark matters, when I think about it :)16:45
aelknerth1a, how would the user unlink a section?16:46
aelkneri'm not sure what button i would put where on the section_linkage view16:46
th1aPerhaps just an "Unlink this section" link at the bottom of each section.16:47
aelknerso if all four terms are lnked16:47
aelknerand the user hits the unlink button in term two16:48
aelknerthen the previous and next links should be broken16:48
aelknerand the view would only have the Term2 column filled in after that?16:48
yvlother way around16:49
th1aTerm 2 would be separate and terms 1, 3, 4 linked.16:49
yvlt1<->t3<->t416:49
aelkneri checked, can't link terms that are not consecutive16:49
th1aOh, ok.16:49
th1aHm...16:49
yvlok then16:50
yvlunlink buttons in terms 4 and 116:50
th1aYeah, that's probably best.16:50
aelknerso from the outside in, so to speak16:50
aelkneralso, we would need a confirmation button step, rght?16:51
th1aSure.16:51
yvlplease be verbose16:51
aelkneryvl, sure16:51
yvlif unlinking does not delete the section, say so16:51
aelknerdoes it not delete the section?16:52
th1aNo.16:52
yvland say so in the page16:52
aelknerright16:52
yvlconfirmation page, that is16:52
aelknerwhen the user hits Link and Existing section16:52
th1aThe warning should say -- this section will be separate, these sections will still be linked (if any).16:52
yvlyes :)16:52
aelkneri will be presenting a filter widget and search results with the section candidates for linking16:53
aelknerfirst of all, what should the buttons look like?16:53
aelknerjust the section title is probably not enough16:54
aelknertitl and teacher name?16:54
aelknerwe already defined that no section would show if it didn't have exact same course(s)16:54
aelknerbut i guess the section title + teacher name would be necessary16:55
aelknerto distinguish the links from one another?16:55
th1aInclude the database id.16:55
aelkner?16:55
th1aIsn't there an id in the url?16:55
aelkner__name__ is an arbitrary number chosen by the ames chooser16:56
th1aIs that just unique to the course?16:56
aelknernames16:56
aelkneri don't think we want to confuse the user with that16:56
th1aI'm just saying, these may be difficult to distinguish.16:56
yvlplease do16:56
th1ajelkner may be teaching 10 sections of CS101.16:57
yvlsection_id is appropriate here16:57
yvlit is the same in URL16:57
aelknerso could you please type an example link text here?16:57
th1aYou'll need a table.16:57
jelknerlol16:57
aelknerah, a table16:58
aelknerit could look like the sections container view's table, right?16:58
th1aaelkner:  This isn't going to be something that necessarily be easy.16:58
aelknerbut only the column wth the section's ttle has a link16:58
th1aIt is the wrong way to fix something after the fact.16:58
th1aaelkner:  Yes, I think so.16:59
aelknerthen, when the user clicks the link, i'll need another confirmation page, right?16:59
th1aIt would be better to have radio buttons and a sumbit button.17:00
yvlyes17:00
aelkneri like that better17:00
aelknerless steps for the user17:00
yvlfor users, in my opinion, seciton is unique by: course + instructor + students17:00
yvlyou may consider having a table with large rows, displaying students17:01
yvlat least first 10 students or something17:01
th1aMaybe the section title link should open the section page in a new window.17:01
aelknerdoes the section container view list students in the table?17:01
th1aNo.17:01
yvlprobably it would be best to do a simple table with radio buttons17:02
aelknercan radio buttons span across table rows?17:02
yvlyes17:02
aelknergood17:02
yvlwell, no17:02
aelknerbad :)17:03
yvlit depends on what you mean17:03
aelknerso we're talking about a table with trs and tds17:03
aelknerand we're also talking about the user clicking a radio button to select the section to link17:03
aelknerbut each row has a different section17:03
aelknerso can a radio button be spread between tds17:04
yvlAlan, let me put it this way17:04
aelkneri'm thinking not17:04
yvlthere is a similar table in add/remove members of a section17:04
yvlyou select a student and click Add17:04
aelknerthose are not radio buttons17:04
yvlmy God17:05
aelknerthose are links, any number can be clicked, not just the one17:05
yvlyes17:05
yvlthose are check boxes17:05
aelknerthat's what i meant17:05
yvlyou can make them radio buttons17:05
yvlnow I understand your question17:05
yvlyes, radio buttons can be used in a table17:05
yvlsame like checkboxes17:06
yvland you may notice, that if you click the first name of a student in that table17:06
yvlthe checkbox is set17:06
yvlyou should do the same with sections17:06
aelknerthat's the lebel for=17:07
aelknerso, right17:07
aelkneri have a question about unlinking17:08
aelknerif a section is linked for terms 1-417:08
aelknerwe already agreed that terms 1 and 4 would have an additional 'Unlink this term' button in their columns17:09
aelknerwhat if the section is only schedule for two terms?17:09
aelknerwould both columns have unlink buttons?17:09
aelkneri'm thinking yes, but i wanted to check17:10
yvlin that case, having only one button for the second one would be a tiny bit nicer17:11
yvlbut it's not life changing, IMHO17:11
aelknerbut what about the idea that the view should be identical regardless of which section is the context?17:12
yvlthe second one is always the second one17:12
yvlby date17:12
aelknergood point17:12
yvlbut that's usability sugar17:13
aelknerso only have unlink button for first if there are three or more terms linked?17:13
yvlif it's not too much of a hassle17:13
aelknerno hassle at all, just need to know what we want to do17:13
yvl:)17:13
th1aOK.17:14
aelknerth1a, do you agree, only unlink first term if three or more terms linked?17:14
th1aI guess.  It is a small point.17:14
aelkneryvl, after th1a drops the bag of gravel, i need to discuss some code ideas with you17:15
yvlok17:15
th1aAre we ready to move on?17:15
aelkneryes17:15
th1aAre you on schedule, aelkner?17:15
aelknerif you don't heap any more changes on me, then yes17:15
th1aGood.17:15
th1aBefore I forget:  I need March invoices from replaceafill & aelkner.17:16
th1areplaceafill?17:16
replaceafillth1a ah ok, will send mine later today17:16
replaceafillok17:16
replaceafillthis week i added shifts to cambodia17:16
aelknerth1a, i'll send mine now while others report17:16
replaceafillalso, report samples keep coming (and that's good)17:17
th1aAs long as you're not letting yourself get overwhelmed.17:17
replaceafillwhile i started to work on reports, i have some questions17:17
replaceafillth1a sometimes i am :(17:17
replaceafilllike with the demographics by year issue17:18
replaceafilli reported a couple of bugs last week about it17:18
replaceafillmenesis already fixed the critical one17:18
th1aYou literally have to work with people for a year before they get to dumping the pile of reports on you.17:18
replaceafillyvl, thanks for answering my email on the int demo field and multiple enum field17:19
replaceafillth1a :)17:19
yvlumm, I don't recall answering... but you're welcome, replaceafill? ;)17:19
replaceafillemail in the dev list :P17:19
replaceafillok, a few questions17:20
replaceafilli need ages of people17:20
replaceafilli shamelessly (if that's a word) took this: http://stackoverflow.com/questions/2217488/age-from-birthdate-in-python17:20
replaceafilli looked and we don't have this in trunk, correct?17:21
yvlcorrect17:21
yvlwell, AFAIR17:21
replaceafillok, also, in the census report, i have to calculate ages for students, time of service for teachers17:22
replaceafilland i started to think, should i use the catalog for reports17:22
replaceafilli mean, should i start inserting indexes for things i have to look for?17:22
replaceafillor should i use looping and lists to calculate totals17:23
replaceafill(like i did in cando)17:23
replaceafillwhich later resulted in memory issues...17:23
yvlall I can say at this point - it depends...17:23
yvlprobably yes17:25
yvlmany students17:25
yvlso probably makes sense to index their data17:25
replaceafillyvl but then i think, if i index some attributes and i need the total number of students, do i have to do: len(list(result))17:26
yvlhmm, maybe you can send me a short mail17:26
replaceafillis that similar to using loops and lists?17:27
replaceafillah ok17:27
yvlthanks17:27
replaceafillanother quick question17:27
replaceafilldo we have 1-to-1 relationships with schoolyears in trunk?17:27
replaceafilli mean17:27
replaceafillcourses, levels, groups and now shifts are 1-to-many, right?17:28
replaceafillbut now i have this SchoolInfo object17:28
replaceafillwith information about the school17:28
yvlno, we do not - yet17:28
replaceafillwhich i only need one per year17:28
yvlclosest we have - annotations17:28
yvlyou can go with that17:28
replaceafilli decided one container with one object per year than annotations17:29
replaceafillsame for location information (villages, provinces, communes, etc)17:29
replaceafilland if this one object per year approach is correct, how is it best to link the object with the schoolyear, by intid or by schoolyear.__name__?17:30
replaceafillor it doesnt matter?17:30
yvlsee schooltool/app/app.py, getApplicationPreferences17:31
yvlyou can do same with schoolyear17:31
replaceafilluse annotations instead of  a separated container, right?17:31
yvlright17:32
replaceafillthat seems easier :P17:32
yvlon one hand, I'd rather have separations by int-id or something similar17:32
yvlbut more importantly, I'd like consistency17:32
yvleasier to fix later :)17:33
* replaceafill checks his notes17:33
replaceafillah17:33
replaceafill- Sorting vocabulary translated titles17:33
replaceafillwould it be possible to sort titles in a vocabulary17:33
replaceafillwhere you dont have access to the request?17:34
yvlnow that I think of it, per-int-id separation would not be that much different17:34
replaceafillyvl separation just feels odd, 1-to-1 containers...17:34
yvlno, a single container;  key - intid, value - value object17:35
yvlsorry, I don't have a strong opinion today17:35
yvlwill have one in ~3 weeks ;)17:35
replaceafillcool17:36
replaceafill:|17:36
replaceafillwe will have this in 3 weeks?!??!17:36
replaceafill:)17:36
yvlno, but then I'll start thinking about that again17:36
replaceafillah ok17:36
yvlabout sorting17:36
replaceafillplease17:36
yvlwhy do you need that?17:37
replaceafillit's just that i have vocabulary lists like:17:37
yvlusers communicate with the system via http requests, so...17:37
replaceafill+            _('Accounting/Cashier'),17:37
replaceafill+            _('Agriculture'),17:37
replaceafill+            _('Drama/Music/Plastic Arts'),17:37
replaceafill+            _('Home Economy/Technology'),17:37
replaceafill+            _('Laboratory'),17:37
replaceafill+            _('Librarian'),17:37
replaceafill+            _('Secretary'),17:37
replaceafill+            _('Sports'),17:37
replaceafill+            _('Workshop'),17:37
replaceafill+            _('Youth')17:37
replaceafillsorry for the flooding17:37
replaceafilland all of them are message strings17:38
replaceafillmaybe in khmer (or spanish) the sorting wont make sense17:38
yvlbut why you can't have access to the request?17:38
replaceafillit's a static vocabulary17:39
replaceafilli just use app/utils/vocabulary for it17:39
yvlbut you can sort it when displaying?17:39
replaceafillhhmm didnt think of it...17:39
yvlI don't know if we did that anywhere, but I think that would be the right approach17:40
replaceafillso, i should build the vocabulary terms on displaying time17:40
replaceafillthere i'd have access to the request and sorting, etc17:41
replaceafilli have a lot of this kind of vocabularies...17:41
replaceafill+            _('In-service training'),17:41
replaceafill+            _('Maternity'),17:41
replaceafill+            _('Mission'),17:41
replaceafill+            _('Suspend'),17:41
replaceafill+            _('Take care of health'),17:41
replaceafill+            _('Leader'),17:42
replaceafill+            _('Sub-leader'),17:42
replaceafill+            _('Member'),17:42
yvlI understand17:42
replaceafillinteresting, i'll try to do that17:42
yvlwell, give it a go, if you don't find an easy way, I can look into that17:42
replaceafillapp/utils/vocabulary was too easy :P17:42
yvlmaybe sorting is built in in some widgets17:42
yvlmaybe can be enabled17:42
replaceafillah17:42
replaceafillthat would be great ;)17:43
yvlmaybe we need to extend a widget17:43
yvlmaybe we can rebuild vocabularies on the fly17:43
yvlmany options, need to look at code ;)17:43
replaceafillok, will move on17:43
replaceafill- Shifts start/end times17:43
replaceafillshifts should have start/end times17:43
replaceafillbut they're only used for display purposes17:44
replaceafillso i used plain textlines for now17:44
replaceafilli just was curious about a "time only" field17:44
replaceafilllike 12:00 pm17:44
replaceafillor 3:30 pm17:44
replaceafill:)17:44
th1aOne could be built.17:45
replaceafilldont know how useful would be though17:45
replaceafillmaybe just a crazy thought of mine17:45
replaceafillok th1a im putting the census report together17:45
th1aMoving on...17:45
yvltime only field?17:46
yvlwe do have that, don't we?17:46
replaceafillthere's a lot of sources of information for it17:46
replaceafillyvl really?17:46
replaceafilli found Date and Datetime17:46
replaceafillbut couldnt find something like that....17:46
yvlzope.schema.Time ?17:46
replaceafillah?!?!?!17:46
replaceafillah come on!!!!17:46
replaceafill:D17:46
yvlit's not like it works well, but still17:47
yvl:)17:47
replaceafillyvl thanks, i'll take a look17:47
replaceafillth1a to wrap it up, i'm also adding more tests17:47
replaceafillthis week i'll be working mostly on the complex reports17:48
replaceafilllast question!17:48
replaceafillcan i replace the schooltool.cambodia branch with my current working branch?17:49
replaceafilli mean, i started this rewrite17:49
replaceafilli looked for a way to rename branches...17:49
yvlmove your current to junk17:49
replaceafillah!17:49
replaceafillok will look at that17:50
replaceafillth1a that's it from me17:50
th1aThanks replaceafill.17:50
th1ayvl?17:50
th1aWhere's menesis?17:50
yvlHe caught a cold17:50
th1aOK.17:50
yvlprobably a nasty one :/17:50
yvlas for my report...17:51
yvlfinished scheduling views17:51
yvlalmost done with calendar integration17:51
yvlit seems that I'll make the deadline17:52
yvldiff against trunk at roughly 600kb now :)17:52
th1aAaaagh.17:52
yvlwill get bigger17:52
th1aThere's a WATERFALL ahead!17:53
yvl:)17:53
yvlI'll need to be careful when merging to trunk17:54
yvla big change, so it should sit a while before getting released17:54
yvlanyway17:54
th1aIt will sit until October.17:54
yvlyes17:55
yvlwe should make that available in dev PPA17:55
yvlso people can test if they want17:55
th1aYes.17:55
yvland report bugs early :)17:55
yvlwell, that's that.17:56
th1aOK.  DON'T SLOW DOWN.17:56
yvlok17:56
th1aI spent some time last week being bad and fiddling with tools instead of writing documentation, but at least my tools are better now.17:56
yvldev speed is increasing, for what that's worht17:56
th1aYes, it sounds like it, and once we get this elephant off your back, I'm expecting it to even more.17:57
th1aSo basically I can now make a rough script in Selenium IDE, export it in Python, and add as a method in my screenshot generating script.17:58
yvlnice17:58
th1aWhich can size, position, and name a whole sequence of screenshots, organized by page.17:59
th1aSo in the long run, it should help.17:59
th1aLike, when we change the UI and we need a whole new set of shots.17:59
th1aI'll share my amusing script soon...18:00
th1aOK, have a great week gentlemen!18:00
* th1a drops the bag of gravel.18:00
yvlthanks!18:00
replaceafillthanks everybody18:00
* yvl is keen to see the script18:00
aelknergreeat week everyone18:01
aelkneryvl, i'm confused about your desire to have more logic in tal18:01
aelkneri thought you told me not to avoid python: in tal which i interpreted as:18:01
aelknernot so much logic in tal18:02
aelknerok, i stated that wrong18:02
yvlI understand18:02
yvlI probably confused you18:02
yvlhmm18:03
aelknercould you tell me what rule you would like me to follow?18:03
yvlI don't like when things are calculated in tal18:03
aelknerah, no calculations18:03
aelknerbut conditions ok18:03
yvlsure18:03
yvlsay, in your case18:03
yvlI mean the view in question18:03
replaceafillpython: conditions are ok in templates?18:04
yvlit would all be ok, if the logic was really complex18:04
yvlreplaceafill, I don't like python:18:04
yvlbut tal:condition="foo|nothing" is really acceptable18:04
yvlor tal:condition="bar"18:04
replaceafilli usually set a view attribute for the condition and do tal:condition='view/somethingsomething'18:04
replaceafillah18:05
yvlsay, if you want to display a link to the next linked section18:05
replaceafilli thought you were saying something like tal:condition='python: view.somesome > 2.4'18:05
yvlusing tal is fine18:05
yvlnow that I do not like :)18:06
replaceafillright18:06
replaceafilli thought *that* was a python condition :D18:06
aelkneryvl told me tal:condition="python: view.isDisplayed(cell)" is ok18:06
aelkneralthough i could see a reason for adding the boolean while building cell18:07
yvlit is the case of judgement18:07
aelkneryielding tal:condition="cell/isDisplayed"18:07
yvlif you can't avoid it easily - it's ok18:07
yvlif you can, you should better avoid it18:08
replaceafillaelkner right, that's what i try to do18:08
aelknerok, i think i know what i need to do now18:08
yvlit's not that the view was bad, aelkner18:08
aelkneri'll add to the email thread when i've commited those changes18:08
yvlit just that it seemed a bit over-complicated, when reading the tal template18:08
aelkneryvl, that's ok, i appreciate the input18:09
aelknerand i want you to like the code since you will be merging it :)18:09
yvlthanks for the patience, aelkner :)18:09
yvlI'm actually most worried about code being maintainable18:09
aelkneri'll go with your columns property suggestion18:10
aelknerbut i'll add flags like isUnlinkable18:10
aelknerto that i can conditionally display those links18:10
yvlthat seems fair18:11
yvlthat seems more than fair, actually :)18:12
aelkner:)18:12
yvlmaybe "canUnlink" might be easier on the eye18:12
replaceafilli need yvl to rename some of my view properties ;)18:13
aelknerindeed18:13
yvl:D18:13
replaceafilli like canX vs isXable18:13
replaceafilland i use isXable a lot....18:13
yvlyou can also use stuff like "showUnlink"18:14
yvldepending on the situation :)18:15
aelknerall good suggestions18:15
yvlwell, it's been a long day...18:15
yvl:)18:16
yvlso... do you guys need me for anything?.. :)18:16
aelknerwho needs you? :)18:16
aelknerbut seriously, i'm done18:16
aelkneri'll send the email tonight18:16
yvl:))18:16
yvlthanks :)18:16
yvlhappy coding then!18:17
yvlsee you later ;)18:17
aelknercya18:17
yvland, replaceafill, you can drop me a mail also ;)))18:17
replaceafillyvl will do thanks18:18
replaceafillabout catalog and stuff18:18
yvlmy pleasure :)18:18
*** ignas has quit IRC19:51
replaceafillis it me or the coverage report doesnt show modules with no tests...20:50
th1aHm, I guess capture_entire_page_screenshot captures the entire page, regardless of window size.21:42
th1aWho would have guessed?21:42
replaceafillth1a really?21:42
th1aYes... I was just fooling myself before.21:43
replaceafillfrom the docs i thought i would act as  the imagegrab extension for firefox21:43
th1aIt is just the whole page.21:43
replaceafills/imagegrab/screengrab21:43
replaceafillwell, the whole page but using the width of the window, right?21:44
th1aOh... maybe.21:44
th1aOr, no I don't think so.21:44
th1aAlthough I don't know what it would use as a default.21:45
th1aI should just use PIL.21:46
th1aThat looks easy enough.21:47
th1a box = (100, 100, 400, 400)21:47
th1a    region = im.crop(box)21:47
replaceafillth1a it works like i expect21:47
th1aSelenium?21:48
replaceafillif i resize the window width to 800px21:48
*** jelkner has quit IRC21:48
replaceafilland get the screenshot from the IDE it gets me the whole page but with the 800px width21:48
th1aThere's a minimum though.21:48
th1aI mean, if it thinks the window is 200px wide it scrolls.21:49
replaceafillah yes, if i resize the width to almost nothing it seems like the screenshot uses the min-width of the page21:50
replaceafilli get around 630px width21:50
replaceafillgoogle gives me 617px...21:51
th1ay21:52
th1aPIL will give me better control anyhow.21:52
replaceafilldefinitely21:52
*** menesis has joined #schooltool21:54
*** replaceafill has quit IRC23:05
*** th1a has quit IRC23:25

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!