IRC log of #schooltool for Thursday, 2011-07-14

*** ignas has joined #schooltool00:06
*** hoffman has quit IRC00:31
*** ignas has quit IRC00:45
*** menesis has quit IRC01:32
*** issyl0 has quit IRC02:35
*** issyl0 has joined #schooltool02:35
*** issyl0 has quit IRC02:35
*** issyl0 has joined #schooltool02:35
*** aks has joined #schooltool06:25
*** aks has joined #schooltool06:26
*** aks has joined #schooltool06:26
*** aks has joined #schooltool06:26
*** aks has quit IRC08:44
*** aks has joined #schooltool10:20
*** menesis has joined #schooltool10:27
*** aks has quit IRC10:40
*** aks has joined #schooltool10:49
*** aks has joined #schooltool10:49
*** menesis has quit IRC13:03
*** aks has quit IRC14:14
*** menesis has joined #schooltool14:28
*** ignas has joined #schooltool16:33
*** replaceafill has joined #schooltool17:44
aelknerreplaceafill, hey17:59
replaceafillhey aelkner18:00
aelknerhow; it going?18:01
replaceafillgood, i'm working on /email18:01
aelkneri worked on the schoolyear add view, copying the old skin template to create a flourish version18:02
aelknerand i registered the datepicker widget stuff for flourish18:02
aelknerso it renders the button, but pushing it doesn't do anything18:02
aelknercould you check it out in firebug real quick?18:03
replaceafillwhat's the url?18:03
aelkneri pushed all my changes to trunk, too18:04
replaceafillyou're going to remove that inline <style> right? :)18:06
aelkneri knew you'd say something about that :)18:06
aelknerwhat's the right way to move the style?18:06
aelknercan you point me to an example of local style?18:07
replaceafillwe dont have local styles18:07
aelknerso where do i move it to?18:07
replaceafillleave it like that for now, put an <!-- XXX: CSS TODO --> on it please18:08
replaceafillwe should probably just mark the table with a custom class18:08
replaceafilland set the right styles in table.css18:09
replaceafillabout the [...] buttons18:09
replaceafillwhy do you expect those to open the jqueryui calendar widget?18:10
replaceafillthey're for zc.datetimewidget18:10
aelkneri wasn't expecting anything different than the old skin18:11
aelknerare you saying we need to change that to use jqueryui?18:11
replaceafillah, no, my bad, i understood you wanted the jquery-ui datepicker18:11
replaceafill"and i registered the datepicker widget stuff for flourish"18:11
replaceafillyou want the zc.datetimewidget18:12
aelknerright, we just have this ongoing need to reregister old skin stuff for flourish18:12
aelkneranything new, like jqueryui, is another thing18:12
aelknerthat would represent new functionality in the new skin18:13
aelknerbut we hadn't discussed changing the datpickers in the new skin18:13
aelknerwhat do you think about the js at the top of the template18:13
aelknerthe old skin version of the template18:14
aelknerhad it fill in extrahead18:14
aelknerbut we're not using page macros where we fill in extrahead18:14
aelknerinstead we've been putting our js right in the body18:14
replaceafillyes, that's the approach yvl wants us to use18:15
replaceafillas long as it works...18:15
aelknercould there be something wrong with the syntax there?18:15
replaceafilllet me update my trunk to get your changes18:15
replaceafillaelkner you know, the calendar is being rendered18:20
replaceafillhave you noticed that?18:20
aelknerlet me look18:21
replaceafillrefresh the page, open firebug18:21
replaceafillcheck the footer element in firebug18:22
replaceafillclick the [...]18:22
replaceafilland you'll see the calendar being inserted18:22
replaceafillif i set a z-index: 1 on it, it shows18:22
replaceafillblame .schooltool > .page having an z-index: 118:23
aelknerdid you mean 'click the ...' after clicking the inspect button?18:23
replaceafillthe calendar div is inserted below <div class="schooltool">18:24
aelknerso where's the caledar?18:24
replaceafillit's behind the page18:24
replaceafill.schooltool > .page has a z-index property18:24
aelkneri see it now18:24
aelknergo on18:24
replaceafill.schooltool contains:18:24
replaceafill.header, .page, .footer18:24
replaceafillbecause of the shadow effects, .page needs a z-index higher than .header18:25
replaceafillso, we set it to 118:25
replaceafillbut apparently that's making the calendar not to show18:25
replaceafillbecause the calendar doenst have a z-index18:25
replaceafillso it's being displayed behind .page18:25
aelknergot it18:26
replaceafillwe can set its z-index to 1 or 218:26
replaceafilli our css18:26
aelkneris it that simple?18:26
replaceafilldiv.calendar { z-index: 2}18:26
aelknercool, o need to hack/register zc.datepicker!18:26
replaceafillyou mean jqueryui?18:27
aelknerno i meant, if the zindex was set in python, maybe we wold need to subclass/register a hack to change it18:27
aelknerbut if you can change it with css, cool18:27
aelkneri haven't gotten used to the programming-like features css and selectors gives you18:29
replaceafillthere, i set z-index to 2 for the div.calendar18:29
aelknernow that's a simple fix!18:30
aelknerme likey18:30
replaceafilli'll push it to trunk18:30
aelknercool, thanks18:31
aelknerso can you explain how the shadow effects problem/solution works?18:32
replaceafillfix pushed to trunk18:33
replaceafill"Added css fix for zc.datetimewidget calendar"18:33
replaceafillcould you try it in your instance?18:33
aelknerworks in my local/demo instances, thanks18:36
aelknerwe'll need some z-index planning at some point18:36
replaceafilli rather staying out of z-indexes :)18:37
aelknercould you explain the shadow effects problem/solution18:37
replaceafillah sure18:38
replaceafillso we have the header, the page, and the footer18:38
replaceafillif you check the shadows for the three18:39
replaceafillyou notice the footer doesnt have any18:39
replaceafilland it seems like the header and the page share their shadow18:39
replaceafillbut that's not possible, unless they're contained in a single element18:40
replaceafillhowever i didnt want the extra markup18:40
replaceafilli mean doing something like <div.wrapper><div.header><>18:41
replaceafilljust for the shadow effect18:41
replaceafillso, the header and the page have their own shadow18:41
aelknerso what's a shadow? :)18:41
aelkneris that the thing you see in firebug18:42
replaceafillyou see the borders of the header and page18:42
aelknerwhen you inspect as you roll over elements?18:42
replaceafilland the breadcrumbs18:42
replaceafilland the top navbar18:42
replaceafillthey have like a grey border18:42
replaceafillbut it's not a "border: ..." property18:42
replaceafillit's a "box-shadow: ...."18:43
replaceafillanyway, since shadows collapse between the header and the page18:43
replaceafilli solved it with a hack18:44
aelkner -webkit-box-shadow:18:44
replaceafillthat's for chrome to understand it18:44
replaceafilland safari i think18:44
replaceafillthe page is moved like 4px up18:45
replaceafillso it goes 4px behind the header18:45
replaceafillthen z-index: 2 is set on the header18:46
replaceafilland z-index: 1 on the page18:46
replaceafillmeaning that the header is on top of the page18:46
replaceafillyou need to move the page up, or you'd get a gap between the shadows...18:46
replaceafillit's tiny... but you can notice it :)18:47
replaceafill(if you look closely)18:47
replaceafill.schooltool > .page {18:47
replaceafill    margin-top: -4px; /* Hack to close the  */18:47
replaceafill    padding-top: 4px; /* gap in the shadows */18:47
aelknerthat's some tricky stuff18:48
aelknerperhaps it should be in its own file at least18:48
aelknerwith a nice header comment explaining what you ust said here18:48
aelknerbut anyway, thanks for the explanation!18:49
replaceafilli think we have to review the css closely before the release18:49
replaceafillto organize better, etc18:49
aelknerwe need to budget, and by we i mean tom, time to refactor18:50
aelknerfix tests!18:50
aelknernew test coverage18:50
aelknercss reorg for clarity ease of new use18:50
aelknereven view class refactor for optimal new class development18:51
aelknerperhaps that last one will get a big veto :)18:51
aelkneri just want to make sure we have a big celebration when we get to a million lines of code :)18:52
aelkneranyway, thanks for the css lesson today18:54
replaceafillnp, sorry that the z-indexes got in your way18:54
aelknernah, that's ok, i knew you would be able to handle anything you broke :)18:54
replaceafilland dont forget to at least mark that inline <style> ;)18:55
aelkneri did, didn't push to trunk yet18:55
*** menesis has quit IRC20:19
*** ignas has quit IRC20:28
aelknerreplaceafill, i'm having another css problem with errors on add school year21:31
aelknerone sec, i have tp push21:32
aelknerchoose dates from this month21:35
aelknerif you firbug the div where it says 'There were some errors"21:35
aelkneryou see that there is a hidden div with the overlap error message21:35
aelknerdiv class="errors"21:36
replaceafillthe ul.errors21:36
aelknerdisplay: none21:36
aelknerso that's on purpose :)21:37
replaceafillyes, th1a doesnt want errors displayed there21:37
replaceafillhe wants them next to the widgets21:37
replaceafillthat's why your form should say:21:37
replaceafill    formErrorsMessage = _('Please correct the marked fields below.')21:37
replaceafillall of them21:38
replaceafillbase class!!!21:38
replaceafillthere's a js hack i've been using too:21:38
replaceafillsee the <script> at the top21:39
replaceafillthat's a hack to mark the error fields21:39
replaceafilli need to investigate how to set classes conditionally with z3c.form21:39
replaceafill(if that's possible)21:39
replaceafillfor now, the hack uses jquery to mark the fields with errors21:40
aelkneryeah, i remember yvl scolding you for that bit of magic :)21:42
aelkneri still couldn't tell you how that call works21:42
aelknerfirst sibling?21:42
replaceafillit's the way z3c.form renders the widgets21:42
replaceafillit uses:21:43
replaceafillso, if you get an error21:43
aelknerwhen you say <div.row> you mean <div class="row">?21:43
replaceafillyou go to .prev()21:43
replaceafill.prev() gets you to <div.widget>21:44
aelknerah, shorthand21:44
replaceafillbut div.widget could contain several tihngs21:44
replaceafillbut the first is always the <input> or <textarea> or <select>21:44
replaceafillso you add the class 'error' to that first element21:45
replaceafillstinks all over the place :)21:45
replaceafillbut it works ;)21:45
replaceafillbut i rather we find a nice way to set the 'error' class through z3c.form21:45
*** hoffman has joined #schooltool21:46
replaceafillonce we do that, we remove those js hacks :)21:46
replaceafillhello hoffman!21:46
aelknerso addClass('error') adds the css class that causes the field to have a red outline, right?21:46
aelknerhey hoffman21:47
replaceafillaelkner same effect when you focus the field21:47
aelknerthe thing about the overlap error is that it is not a widget error21:47
aelknerit is a form error21:47
aelknerthe message applies to the whole of the data, not one field21:48
hoffmanHey replaceafill & aelkner.21:48
replaceafillaelkner like an invariant error?21:48
Lumieresomeone lost a letter21:48
* Lumiere goes back to lurking21:48
aelknerhoffman, status21:49
aelkneryour last comment on the channel mided me that the schoolyear add didn't have everything the old one did21:49
aelknerwhich made me realize that i needed to make a flourish copy of the schoolyear_add template21:49
aelknerand then i got all the fields that are there in the old skin21:50
aelkneri then saw that i needed to add flourish registrationsfor the datepicker widget21:51
aelkneronce i figured out what they were21:51
aelknera side-effect of replaceafill fixing the shadow css was that the calendar was hidden21:51
aelknerbut he was able to spot that quickly and fix it21:51
aelknerlately, i've been adding various registrations for content provides to flourish21:52
aelknerso that things like @@link or @@shortDate didn't crash21:52
aelknerand that has led me to where I am now where the new year overlap message21:52
aelknerrenders but is hidden to a css rule you and replaceafill agreed on and implemented21:53
aelknerthat hides the errors div for form errors21:53
aelknerwe should talk about that after replaceafill has updated you, but that's my update21:53
hoffmanI'm getting an iframe or something inside the year add form.21:54
aelknerreplaceafill, can you follow the link to see what hoffman might be referring to?21:55
hoffmanIt is a scroll bar inside the page.21:55
hoffmanThere is a separate scroll bar for the content area.21:56
aelknerare you using chrome?21:56
hoffmanNot in this case.21:56
replaceafillconfirmed, in chrome i get the same21:56
aelknerhow about firefox?21:56
aelkneris this immediately upon calling p the link i posted or after hitting submit?21:57
replaceafillthe second fieldset flows out of the parent div21:58
aelkneri'm not seeing it21:58
*** menesis has joined #schooltool21:58
* replaceafill goes check the template21:58
replaceafillaelkner you have a typo in the template21:59
replaceafilltwo <legend>s21:59
replaceafillmissed the / in the second one21:59
aelknerloading fix, please wait...22:01
replaceafillfixed in chrome22:01
aelknerfix, loaded22:01
aelkneryou just tried before i said it was loaded?22:02
replaceafillaelkner on the overlap error22:02
replaceafillwe have a problem with our new "display errors next to widgets" approach and invariant validations22:03
replaceafillwe discussed that with yvl like 2 or 3 mondays ago22:04
replaceafilland he told me that invariants were not designed to work like that22:04
*** menesis has quit IRC22:04
replaceafilland i should use a simple field validator instead22:04
replaceafillthat one used to be an @invariant in the interface22:05
aelknerline number?22:07
aelkneri can't find it22:07
replaceafillhave you synced with trunk?22:07
replaceafillthat's on trunk22:07
replaceafilllike 37922:07
aelknerhow long ago, i merged today22:07
aelkneri see, so what is the upshot of the diff, where does the password match error get rendered?22:10
aelkner'Supplied new passwords are not identical'22:10
replaceafillyes, but if you look closely, it looks in the request :(22:11
replaceafillanyway, the point is, that was an invariant check22:11
replaceafillthat got converted to a field validator check22:11
replaceafillto get the error next to the widget22:12
aelknerwidgets, you mean, because there are two password fields that are guilty of not matching22:12
replaceafillcheck the discriminator below22:13
replaceafillit's assigned to ['password'] only22:13
replaceafilli mean, the validator22:13
replaceafillso, you'll  get the error only in that widget22:13
aelknerso the password match validator is called for the password field22:17
aelknerbecause it is registered to do so22:17
*** menesis has joined #schooltool22:17
aelknerand it checks the contents of its data against that of the verify_password field22:17
aelknerand raises the error if the are different22:17
aelknerso in addition to being a hack, it's special logic to the password problem22:18
replaceafillthe hack is that i check the request to get the value of verify_password22:19
replaceafillthe data hasn't been serialized yet22:19
replaceafillin the case of password fields that's not a problem22:19
replaceafillbecause the data manager doesnt do much on the field value22:19
replaceafillbut if it were a Choice or something that would require more 'magic'22:20
replaceafillhoffman my report?22:21
replaceafillwell, i cleaned /security.html22:21
replaceafilldoesnt look great, but looks better i think22:21
replaceafilland i finished the /email functionality22:22
hoffmanSecurity looks fine.22:22
hoffmanemail looks fine.22:23
replaceafilljust a couple of comments:22:24
replaceafilli changed Enable from a single checkbox to two radio buttons22:24
replaceafillalso, do we want to keep the red/green message colors for Server Status?22:25
hoffmanWe'll have a new palette.22:25
replaceafillah, true22:25
hoffmanI signed the estimate with Schwa today, btw.22:25
hoffmanSo that's happening.22:25
* replaceafill looks lots of css changes in the horizon :)22:26
replaceafillmy last comment is about the functionality of the settings22:26
replaceafillfor the password22:26
hoffmanWhat is the "Done" story for these pages?22:26
hoffman(also, aelkner)22:26
replaceafillah also that22:26
hoffmanBasically, we should always be asking that.22:26
replaceafillshould we add a Done button to forms that submit success to themselves?22:27
hoffmanWell, maybe they shouldn't be doing that.22:27
* hoffman hasn't actually tried these forms yet.22:27
hoffmanotoh, we don't really know exactly where "Done" is taking you in the end for these manage forms.22:28
hoffmanWe haven't settled on School | Application definitively.22:28
hoffmanWe'll nail that down next week.22:29
hoffmanreplaceafill:  Do you still have enough things in your queue?22:30
replaceafillif you're ok with /email i was thinking of jumping to /control22:31
hoffmanWhy does email settings go to itself?22:32
replaceafilljust to confirm your changes were saved :)22:32
replaceafilli though of that since it's a change in the state of the app22:33
hoffmanWhy don't we add the settings to /email then.22:33
hoffmaner... no, ok, I see.22:34
hoffmanThis does need some tweaking.22:34
hoffmanWhat is the table on /email telling me?22:34
replaceafilli think /email/settings.html should go to a different place than the queued messages22:34
replaceafillhoffman right now, not much22:35
hoffmanWhat is it supposed to be telling me?22:35
replaceafillit used to have almost all the fields of IEmail22:35
replaceafillwhat your queued messages are22:35
hoffmanIs the table telling me the queued messages?22:36
hoffmanIs there only one SMTP server per SchoolTool instance?22:36
hoffmanOK, so first off, that table needs to be labeled.22:36
hoffmanAnd perhaps just a view of its own.22:36
hoffmanAnd just make the main page the settings view.22:37
hoffmanAnd an edit pencil to edit it.22:37
hoffmanWhich sends you back to the main view.22:37
hoffmanThen you don't need a settings action.22:37
replaceafilli like it22:37
hoffmanBut you can add a "Mail log" action & view.22:38
replaceafillMail log? you mean to track all the messages sent?22:38
hoffmanOr queue.22:39
hoffmanThat's what we've got, right?22:39
replaceafillwe dont track successfully sent messages22:39
hoffmanI'm NOT suggesting new functionality here, intentionally.22:39
replaceafillwe just track stuck messages22:39
hoffmanThe problem is you didn't label that table so I'm confused!22:40
replaceafillmy bad22:40
replaceafillwell, we use "Email Queue"22:40
replaceafillso instead of Mail log, should be "Email queue"22:41
hoffmanIf that's what it is.22:42
replaceafillwhat title should i use for the link22:42
replaceafilllike Actions22:42
replaceafill- Send Test22:42
replaceafill- Email queue22:43
replaceafill(sorry, i meant for the link group)22:43
hoffmanJust don't call them buttons. ;-)22:44
hoffmanEmail queue isn't really an action.22:44
hoffmanBut... stick it there for now.22:44
replaceafillwill work on that after lunch :)22:44
hoffmanaelkner:  You have stuff to do?22:46
aelkneryes, still stuff to do with schoolyears22:50
aelknercan i do terms after that?22:50
aelknerit will have similar issues with dates and overlaps and such22:50
hoffmanAlso the organization will be a little different since they won't be contained by years anymore in terms of navigation.22:51
aelkneroh, how would the user create terms?22:51
hoffmanWell, from /terms, I guess.22:51
hoffmanwill have to designate the year?22:51
hoffmanam not sure.22:52
hoffmanI've not really thought about it in detail.22:52
hoffmanBut you won't be making other things contained by years from within the year.22:52
aelknerwith /terms /courses /groups, all the same issue with how the user communicates the year22:54
aelknerwe could assume active year22:54
hoffmanWell... by default perhaps, but they'll need to be able to select it.22:54
hoffmanProbably in most cases you're setting up the NEXT year anyhow.22:55
aelkneri must say, i'm ot sure why we would want to change all of this22:55
aelknerkeep in mind that a lot of work has been done with traversal adapters22:55
aelknerand views that work off of certain contexts22:55
aelknerschooyear/addTerm.html i think is an example22:56
hoffmanAlternately, you could select the year when you initiate the add, and just end up adding from within the year.22:56
aelkneri suppose we could wrangle the new view to render the links we need22:56
hoffmanJust making it more transparent to the user.22:56
hoffmanOr, perhaps less transparent actually.22:56
aelknermore seemless, less transparanet22:57
hoffmanPerhaps what you see in terms is a table with subheaders per year.22:58
aelkneri think the user likes the idea of thinking about a schoolyear by itself22:58
hoffmanAnd an edit pencil next to each year.22:58
aelknerah, yes, so /terms is an accoridon view22:58
hoffmanI'm pretty certain no other application would work that way.22:58
aelknerwith the active year open by default22:58
hoffmanI don't think it needs to be an accordion.22:58
hoffmanFive years with four terms is still not a very big table.22:59
aelknerwhen you no other application, is there another application with the same type of problem?22:59
hoffmanEvery other student information system.22:59
hoffmanOur approach tends to be informed by the ZODB structure.23:00
aelknerif we have a table of all the terms., historically, that could beg the question by the user:23:00
aelknerwhy do i want to see these other years?23:00
aelkneri don't carfe about them anymore23:00
aelknerand having them all come up as a default behavior could be a real head-scratcher23:01
hoffmanOK... sort of the point here is that the old way has people navigating through year/term more than they should be anyhow.23:01
hoffmanIn particular through year.23:01
hoffmanSo basically the admin should be the only person looking at term, when he's administering terms.23:02
hoffmanSo seeing old ones isn't that weird.23:02
hoffmanAnd perhaps helpful!23:02
hoffmanAlso, we'll be moving reports too so they won't be, say, going to terms to generate reports.23:02
hoffmanThis'll just be when they're working directly with terms.23:03
hoffmanOr maybe they'll go to terms for reports as one route, but deprecating it.23:04
hoffmanAnyhow, I'm liking table/subtable by year as the main index.23:05
aelkneroh, and you wanted the terms table to be descending year, so it wouldn't be that annoying23:05
hoffmanFor, say, groups we'll probably want accordions, because you can have a lot more groups per year than terms.23:05
aelknerso, just in case i clear the schooyears task before i can reach you, /term should be a table23:06
aelknersorted in reverse timewise23:06
aelknerso last term is first row23:06
aelknerthat term being either last term of current active ear23:06
aelkneror last term of new year that hasn't been activated yet23:07
aelknersound like a good first thing to do for coding /terms?23:07
aelknercool, sounds like a straightforward thing to start with23:07
* hoffman goes back outside.23:09
*** ignas has joined #schooltool23:21

Generated by 2.15.1 by Marius Gedminas - find it at!