IRC log of #schooltool for Friday, 2011-07-08

replaceafillth1a almost done: http://69.164.203.135:6660/resources/01:59
*** replaceafill has quit IRC02:16
*** aelkner has quit IRC05:42
*** aelkner has joined #schooltool05:50
*** th1a has quit IRC05:58
*** aks has joined #schooltool06:14
*** menesis has joined #schooltool09:54
*** aks has quit IRC13:28
*** aks has joined #schooltool13:44
*** aks has quit IRC14:23
*** ignas has joined #schooltool15:26
*** menesis has quit IRC15:47
*** th1a has joined #schooltool16:16
*** replaceafill has joined #schooltool16:24
yvloh, right, coffee :)16:27
* th1a sighs.16:29
yvlsorry th1a16:32
th1aNo problem.16:33
th1aOK, so I think we should start with question time.16:33
yvlsure16:33
th1aOr does yvl want to start with answers to the emailed questions?16:33
yvlumm, ok16:34
yvlso I fixed that problem with delete modal dialog16:34
yvlI forgot that valid html IDs are not valid jquery selectors16:34
yvlwe need to escape . and :16:34
yvlas luck would have it, I used a "preferences" viewlet, and you guys used "delete.html" and so on16:35
yvlthe sanitizer is called jq_selector in flourish.js16:36
yvljust so you guys know16:36
replaceafillah16:36
replaceafillso, a link name that is going to be a selector id cannot contain . or :16:37
yvlyes16:37
aelkneri had a feeling the difference had to do wth the '.'16:37
yvlhttp://docs.jquery.com/Frequently_Asked_Questions#How_do_I_select_an_element_by_an_ID_that_has_characters_used_in_CSS_notation.3F16:37
yvlso that covers that16:38
yvlanything else?16:41
* yvl is a bit feeble minded today, apologies for that16:41
replaceafillyvl question about flourish and z3c.forms16:43
replaceafillyesterday i created a few add/edit forms for resources16:43
replaceafilland noticed that if you inherit the actions from other forms, you dont get redirected appropriately16:43
replaceafilli guess that's the reason of comments like:16:44
replaceafill # XXX: hacky sucessful submit check16:44
replaceafillin code, correct?16:44
yvlumm, that's weird16:44
replaceafillbasicperson.browser.person.FlourishPersonEditView16:44
replaceafillthe add/edit form worked but the add/apply buttons sent me back to the form after success16:45
yvlah, right that one16:45
replaceafilland i check the status of one response and got like 599!!!16:45
yvlthis is Zope's response status not set status16:46
replaceafillah16:46
yvlas for apply buttons - they don't redirect normally, AFAIR16:46
replaceafillthen i noticed that in that case, z3c.form render wasnt called16:46
replaceafilli guess flourish.page.Page was taking charge16:47
replaceafillafter applying the hack, everything worked of course16:47
yvlright!16:47
yvlthanks for noticing16:47
replaceafillbut it meant 6 new hacks :(16:47
yvlhmm16:48
replaceafillwell, it can be only 3, but still16:48
replaceafill(if i create a base class)16:48
yvlok, I'll do the add form base today16:48
yvlbasically we just need to move the redirect from __call__ to update16:48
replaceafillah16:49
yvlthe if _finishedAdd condition16:49
yvlbut only for addforms16:49
yvlI kind of wanted success status built-in in our forms16:49
yvlsimply not yet got to doing that16:49
replaceafillunderstand16:50
aelknerwhat are we saying here?16:50
aelknerthat if someone puts a redirect call in one of the action handlers16:50
aelknerthat it doesn't work?16:50
yvlno16:50
yvljust that:16:51
yvla)  somebody forgot to write the base add form that redirects after successful add16:51
yvlb) there's no nice way to check for form "success" status, and we tend to do redirects sometimes16:51
yvlhence the XXX:16:52
yvland if self.status == self.successMessage16:52
yvlor self.status == self.noChangesMessage16:53
yvlthen redirect16:53
*** ignas has quit IRC16:53
aelkneroh, ok, i haven't dealt with add/edit modals with the new plumbing yet16:54
aelknerso is there a base class fix coming?16:55
yvlyes, after the meeting16:55
aelknercool, well i have no more questions at this time16:55
yvlthere was also something about widget labels?16:55
yvl"limit keys" text?16:56
yvlor is that resolved?16:56
aelkneroh, right, i almost forgot16:56
aelknerso yvl, the interface has text that doesnt' work for all demos16:56
aelknerth1a wants the form hint to say something different for person demos as resource demos16:57
yvlthat is not a problem as long as we're using z3c forms16:57
aelknerwe are16:57
yvlcool16:57
yvlso, we can use StaticWidgetAttribute16:57
aelknerhow?16:57
replaceafillwith name="hint"?16:58
yvladapter names: 'label', 'name', 'required', 'title'16:58
yvli.e. these are attributes we can override with adapters16:58
aelknercan someone type a full command here rather than pieces of code16:58
yvlok16:58
yvlone sec16:58
yvlMyNewLabel = z3c.form.widget.StaticWidgetAttribute(16:59
yvl_("This is the new label"),16:59
yvlfield=ISomethingForm['limit_keys'],16:59
yvl)17:00
yvlthen zcml17:00
aelknerwait17:00
aelknerwhere does the python go?17:00
yvlsigh17:00
yvlit's the same thing I was explaining the other day17:00
yvlsee person/browser/person.py for example17:01
yvlCalendarPublicWidgetLabel17:01
aelknerah, got it17:01
aelknerok, zcml?17:01
yvlthe difference is, that it uses a ComputedWidgetAttribute, because it needs to change17:01
yvl<zope:adapter factory=".something.MyNewLabel" name="label" />17:02
yvland here you can use "label", "required", "title" or "name" as the adapter name17:02
aelknerbut yvl, that code lives outside of the view class17:02
yvlyes, outside17:03
aelknerand i need to know the context to decide whether to change the hint17:03
yvlwell17:03
replaceafilluse context=... in the StaticWidgetAttribute17:03
yvlplease refer to z3c/form/widget.txt17:04
yvlDynamically Changing Attribute Values17:04
aelkneranother problem:17:04
yvland yes - what replaceafill said :)17:04
aelknerthe context, IDemographicField is the base class for person demos17:04
aelkneryvl, strike that, it is the only class for demo felds17:05
aelknerit is the container that is different17:05
aelknerIDemographicFields is the base class for the demo fields container17:05
aelknerand is used without subclass for person demo fields17:05
aelknerIResourceDemographicFields is for resource demo fields17:06
aelknerand is derived from IDemographicFields17:06
aelknerso, th hint on one context needs to change based on the parent's context17:07
yvleh?17:07
aelknerthe context is IDeographicField17:08
yvlcan you please point to the original view class please17:08
* yvl is dumb today17:08
aelknerwhich one?17:08
yvlthe one that renders something that you want to change17:08
aelknerone sec17:09
aelknerbasicperson/browser/demographics.py (FieldDescriptionEditView)17:09
aelkneror FieldDescriptionAddView, either one17:10
aelknerthe context for those views is not the different for person demos and resource demos17:10
aelknerthe container is what is different from one case to the next17:10
yvlok, I see now17:11
yvlthen probably there are two easiest solutions17:11
yvl1) change the label for a view17:11
yvlwell, views to be more precise17:11
yvlor17:11
yvl2) use the ComputedWidgetAttribute17:12
yvlyou'll get to specify a function instead of a string17:12
yvlfor the label17:12
yvland in that function you'll get access to everything you need there17:13
yvllook at  persons/browser/persons.py calendar_public_widget_label17:13
aelknerlike context, right17:13
yvlyou can even write some adapters for the parent containers, and query them for context.__parent__17:14
aelkneri'll need to17:15
aelknerok, i'll look into it17:15
yvlI guess the problem here is not that it can't be done or is difficult, but rather that we're not very used to fine-tuning :)17:15
aelknerbrb17:15
yvlok17:16
yvlhope that helped17:16
* yvl also apologizes for a minute17:16
th1aIt helped.  We're all about fine-tuning right now, so we needed to know that.17:18
yvlcool :)17:18
* aelkner is back17:18
yvlz3c.form gives way more control than formlib in such cases17:18
th1aaelkner and I were at an impasse otherwise.17:19
yvl:)17:19
yvlso that's a good reason to port what we can (reasonably fast) to z3c.form17:19
aelkneryes, thanks yvl17:19
th1aOK, anything else before yvl goes on vacation?17:20
aelkneryvl, when do you return again?17:21
yvllet me check :)17:21
yvlI plan to be here on 21st17:22
yvlbut there is a slight chance that people will decide to kayak all the way back to Vilnius17:22
yvlthen I'd be back on 25th17:22
yvlso basically two weeks away17:23
replaceafill:|17:23
replaceafill:)17:23
replaceafillenjoy yvl!17:23
yvlthanks!17:23
aelkneryeah, sounds like fun17:24
replaceafillwill be weird not having you around for silly questions ;)17:24
th1aJust a reminder -- next Thursday will be 4 weeks until feature freeze.17:24
th1aI think we'll make it.17:24
yvlthere's a good chance IMHO17:24
th1aI don't see any sudden roadblocks coming up.17:25
yvland then we'll have some time for testing, cleanup, i18n and all other things, right?17:25
th1aAnd it is easy enough to punt on hard parts.17:25
th1ayvl:  Yes.17:25
yvlgreat17:25
yvlI think well make it17:26
yvl* we'll17:26
th1aWell, at a certain point nobody is going to be allowed to work on plumbing, etc.17:26
yvlit's going to be a moderately risky release, but - the payoff! :)17:26
yvlsure, th1a17:26
th1aI may be getting overconfident but I don't feel like there's much risk.17:27
th1aAlso, October is the right release for this.17:27
yvlyes17:27
th1aI haven't heard much from CL, which suggests they'll end up waiting and porting this as well.17:28
th1aWhich will be good for everyone.17:28
* yvl got the same vibe17:29
th1aOK, go away yvl!17:29
* th1a drops the bag of gravel.17:29
yvl:D17:29
yvlthank you, th1a17:29
yvlit's been a fun sprint17:29
yvlso thanks guys!17:29
yvl(and yes, I'll just do the add form before I go)17:30
aelknerhappy kayaking!17:30
replaceafillth1a http://69.164.203.135:6660/resources17:31
th1aI was just going to ask.17:31
th1aJust remove the hints for title and description.17:31
replaceafillok17:32
th1aCan you make the textarea bigger for description on the form?17:32
replaceafillmore height?17:32
th1aAnd width.17:32
th1aMake it as wide as the other text entries.17:33
replaceafillhhmm, it is17:33
th1aAnd.. twice as high.17:33
th1aFour lines.17:33
th1aActually,17:33
th1aoh, I needed to reload.17:33
th1aIt is fine as is.17:33
replaceafill:)17:34
th1aOK.17:34
th1aLooks good.17:35
aelknerreplaceafill, are the attributes demos?17:35
th1aSo we're adding the "Book" action?17:35
replaceafillaelkner yes17:35
replaceafillth1a to the resource index view, correct?17:35
th1aYes.17:36
th1aHm...17:36
th1aCalendar link.17:36
replaceafilljust removed the hints17:36
aelknerreplaceafill, is this in trunk?17:36
replaceafillaelkner no, not yet17:36
replaceafilli wanted th1a to see it first17:36
th1aActually, maybe we should do17:36
th1aIt just like person.17:37
th1a$RESOURCE's17:37
th1a - Calendar17:37
th1aActions17:37
th1a - Delete17:37
th1a - Book17:37
th1a(book first)17:37
replaceafillah ok17:37
th1aLet's make "Book" "Reserve This"17:38
th1aOr "Reserve" I guess.17:38
th1aFor consistency.17:38
replaceafillcool, i'll work on that17:39
th1aSo aelkner you added Delete to the person action.17:41
th1a?17:41
aelkneryes, and i wanted to discuss the dialog with you17:41
aelknerhttp://69.164.203.135:36660/persons/student117:41
th1aYes, we can make the text more emphatic.17:41
aelknerso you already saw17:41
aelkneri can make the text anything you want it to be17:42
aelknerand call the buttons whatever you want17:42
th1aCan we make settings always last?17:43
th1aOr just on a per-view basis?17:43
aelknerwe can order the sidebar sections any way you want17:43
aelkneri put actions after settings because i didn't know otherwise17:43
th1aSure.17:43
th1aLet's make Settings last, in general.17:43
th1aBasically:17:44
th1aObject17:44
th1aActions17:44
th1aSettings17:44
aelknerok, the delete dialog:17:44
aelknertitle, message text, message element (h3?), etc.17:45
th1aMessage element?17:45
aelkneri used a <p>17:46
aelknerbut that renders the text kind of small17:46
th1aYeah...17:46
aelkneranyway, whenever you have suggestions for those things, i will change them17:46
th1aTry h3.17:47
* th1a checks the UWG.17:47
th1aMaybe just make that a separate class that we can fiddle with later.17:50
th1aDoes that make sense replaceafill?17:50
replaceafillsure17:50
replaceafillthis is for the "Are you sure?" message, correct?17:51
th1aYes.17:51
th1aConfirmation message.17:51
th1aSomething like that.17:51
replaceafillyou don't like h3 for that?17:52
replaceafilltoo much margin?17:52
th1aI guess I should see it.17:52
replaceafillah17:52
th1aThat might do the trick.17:52
replaceafilli just saw it in firebug :P17:52
replaceafillh3 looks good to me17:52
replaceafillmaybe just the margin17:52
replaceafillbut the font size seems ok17:53
replaceafillat least in Debian ;)17:53
aelknermaking it h3...17:53
aelknerth1a, it is h3 now17:54
aelknerlooks good to me17:55
th1aActually, why does it have less of a left margin than the buttons?17:55
replaceafillth1a it's the style of the button17:56
replaceafillthey have the same alignment17:56
replaceafillbut the left border of the button is white17:56
th1aWhy?17:57
* replaceafill goes look the guidelines18:00
th1aOK.18:00
th1aOK... text.18:01
aelknerdrumroll, please18:02
aelknerbtw, you realize that we are talking about deleting the person object permanently here,.right?18:03
aelknerthis is important so that the admin can reuse the username18:03
aelknerbut it also means that all grades, for instance, will be lost18:03
aelknerand not retrievable18:03
replaceafillth1a page 23, GRAPHIC SECTION, Base styling, Background-color18:04
th1a"Deleting a person is permanent, irreversible, and destroys all data associated with the person, including relationships with other people.  It is strongly recommended that you only delete people who have been created in error or have no data associated with them."18:04
aelknerwell, i guess you did :)18:04
th1a(this is in lieu of making it impossible)18:04
aelknerthat's a good message18:04
th1aIs there a reason the button has a border at all?18:04
aelknerwhat do you think about double-confirmation steps18:05
th1aNah.18:05
aelknersometimes on-line forms will ask you one more time18:05
replaceafillth1a sorry, it's not a border, it's the background that does that effect18:05
th1aIt doesn't work, aelkner.18:05
aelknerlike first the confirmation step with long text18:05
replaceafillth1a and it looks ok on regular forms18:05
replaceafillth1a because of the gray background they have18:05
replaceafillwe could assign a different background to buttons on dialogs18:05
replaceafillsince dialogs have white backgrounds18:06
th1aI guess try that?18:06
aelknerthen the user hits ok, and the website, says one more time, please click conform again to finalize this action18:06
aelkneror something like that18:06
aelkneryou probably will say no, but i thought it was worth throwing it out there18:06
replaceafillth1a cool, will do when i finish the resources18:06
th1aaelkner: Yeah, it is ineffective.  Regular confirmations are ineffective too, but more of a cya thing.18:06
th1areplaceafill:  The problem with making them gray is that it might blend into the background more.18:07
aelknerwhen you say ineffective, you mean because people ignore them?18:07
th1aYes.18:07
replaceafillth1a agree18:07
th1aDon't read them.18:07
aelknerwell, people are people, what are you going to do18:08
th1aA world where people read confirmation dialogs would be a very different world.18:08
aelkner:)18:08
aelknerwhat about the button, Apply, change that to Confirm?18:09
aelkneror Delete?18:10
th1aOooh... Delete actually.18:11
th1aMake it as explicit as possible.18:11
aelknerDelete it is18:12
aelknernow that yvl got the dialog to come up for us, i need to work on getting it to actually delete the person18:12
th1alol18:12
aelknerwhy is that funny?18:12
replaceafillth1a are we keeping the "Leaders" link for resources?18:13
th1aOh, yes.18:14
aelknerreplaceafill, to get the person to delete, i'll need to redirect to a person container delete view18:14
th1aWell, no.18:14
th1a:-D18:14
aelknerthat doesn't have confirm step\18:14
replaceafill:/18:14
th1aLeaders should be a table on the resource index page.18:14
replaceafilllike advisors?18:15
th1aWith a pencil.18:15
th1aYes.18:15
aelknerjust does it, but i need to do that because person context can't delete itself18:15
*** ignas has joined #schooltool18:15
aelknerreplaceafill, make sense?18:15
yvl[pushed the add base form]18:15
replaceafillaelkner yes18:15
aelknerthought so18:15
aelknerthanks for confirming that18:15
replaceafillyou just pass the person_id, right?18:15
aelknerright18:15
aelknerno template, just a __call__ method18:16
replaceafillaelkner i think containers already have a generic delete view18:16
* replaceafill goes to see the new add form18:16
th1areplaceafill:  In english let's change "Leaders" to "Responsible parties."18:20
replaceafillyvl if you do:18:20
replaceafilltemplate = InheritTemplate(flourish.page.Page.template)18:20
th1aI don't know how easy it will be to translate that.18:20
replaceafillyou dont have to call update on the base class?18:20
yvlumm no18:21
yvltwo things there:18:21
yvlflrouish.form.* views call super() and invoke base class updates18:21
yvland template was being set to person_add.pt, so I changed to default page template18:22
yvlflourish.page.Page.update does not call base class update, and I think that is OK18:22
replaceafillah ok18:23
aelkneryou have to do that explicitly in the derived class, right?18:23
replaceafilli'll try to remove some hacks by using it18:23
yvlif you inherit NewClass(flourish.page.Page, SomeClassWithUpdate)18:24
yvlthen NewClass needs to call SomeClassWithUpdate.update explicitly18:24
yvlwell guys... good luck!18:26
yvland keep up the amazing work :)18:26
replaceafillthanks yvl, take care18:26
aelknerthanks yvl18:26
yvlif something breaks when I'm away, feel free to hack as much as you need to to keep the show rolling ;)18:27
*** yvl has quit IRC18:27
aelknerreplaceafill, here that, we have complete reign :)18:27
replaceafillyeah i was thinking the same :))18:28
replaceafilllet's break the code!!18:28
replaceafill:D18:28
aelknerand listen to me, 'here that', that comes from needing to type faster than thinking18:29
replaceafill:D18:29
aelknerreplaceafill, you were saying something about an existing container view18:32
aelknerwhere would that be?18:32
replaceafillah yes, i remember containers already have a delete view18:32
replaceafilllet me check18:32
aelkneri remember seeing that somewhere, too, but i can't find it now18:33
replaceafillsrc/schooltool/app/browser/configure.zcml18:33
replaceafillclass="schooltool.skin.containers.ContainerDeleteView"18:34
aelknerok, thanks, so i can redirect to that view and add &CONFIRM to the querystring, right?18:35
replaceafillyes18:35
aelknerhandy18:35
replaceafillbut your keys need to be in form: delete.person_id18:36
aelknerright, and i need to create a flourish version of that view, too18:36
aelknerbtw, this app pointing into skin and person pointing into basicperson stuff is a mess18:38
aelkneri mean we have many classes that are created in one package and registered in another18:39
aelknerreplaceafill, how do you like that, container delete already has flourish version!18:40
replaceafillnice! thanks yvl ;)18:41
aelkneryeah, that was in the beginning18:41
* th1a goes to take a shower.18:45
* th1a gets back.19:06
aelknerth1a, http://69.164.203.135:36660/persons/student119:14
aelknertry the delete button now19:14
th1aWe need some line breaks there.19:15
th1aCan you force the size of the dialog?19:15
th1aWidth?19:15
aelknerreplaceafill, do we have css for dialog widths?19:15
th1aOH SHIT.19:15
aelknernice language!19:16
th1aI didn't want to delete that person.  HELP!19:16
replaceafill:))19:16
replaceafillUNDO!!!19:16
aelknerth1a :)19:16
aelkneryou know, we had talked about arckiving students19:17
th1aaelkner: http://jqueryui.com/demos/dialog/19:17
th1aYes, it has to be done.19:17
replaceafillaelkner i guess you can assign the width using ajax_settings19:17
th1amaxWidth19:17
replaceafillaccording to what yvl explained yesterday19:17
aelknerah, ok19:17
replaceafill    def updateDialog(self):19:18
replaceafill        # XXX: hacked-in default width19:18
replaceafill        self.ajax_settings['dialog']['width'] = 94419:18
replaceafillttwizard.py19:18
aelknercool, thanks19:18
aelknerth1a, what width do you want?19:20
aelkner944 was necessary for the timetable wizard19:21
th1aHow about the width of the main content area.19:21
th1aThis is for all dialogs or just this one?19:21
aelknerjust this one19:21
th1aThe width of the main content area is fine.19:22
aelknerwe need to hack this dialog to dialog until we have a general solution in base class19:22
aelknerreplaceafill, that's 544, right?19:22
aelknerthat's what i see in page.css19:23
replaceafillaelkner if you just insert your h3 inside the form you'll get the default width19:24
replaceafillforms inside dialogs have a default width19:24
replaceafillmaybe we should set that default width to the dialog content instead19:25
replaceafillbut yes aelkner it's 544px19:25
replaceafillfor the form19:25
aelkneryeah, but it's not set to that by default, we need the hack, right?19:26
replaceafillset the width using ajax_settings and please put an XXX: fix the width of dialog content in css19:27
aelknerso that's a css TODO19:27
replaceafillyes19:28
aelknerah, ok19:28
aelknerreplaceafill, do i need to use <br /> elements inside my <h3> to get it to break lines19:28
aelknerotherwise, it creates a scroll bar as a result of wrapping19:29
aelknerwhich doesn't look good19:29
replaceafilllet me check19:29
replaceafillaelkner can you update your instance?19:30
aelknerok, one sec19:30
aelknerreplaceafill, loaded19:31
replaceafillaelkner it's the right and left padding19:32
aelknerso more css to fix?19:33
replaceafilltry 544+1619:33
aelknerah19:33
replaceafillyou see, the buttons are inside the form19:33
replaceafillso the buttons row only has 544px19:33
replaceafilland they're contained19:33
aelknermuch better19:33
replaceafillbut yes, i need to fix that19:34
replaceafill:)19:34
aelknerinstance loaded19:34
replaceafillhhhmm19:35
replaceafillis it me or the default action is Delete19:35
replaceafilli mean, if you see the form and hit Enter...19:36
aelknerdefine hhhmm please :)19:36
replaceafillcan you try that?19:36
replaceafilli see the focus on the Delete button19:36
aelkneri believe you :)19:36
aelknerdo you know how to control the default button in z3c?19:37
replaceafillactually, it's an html thing19:37
aelkneranyway, maybe it's ok19:37
replaceafillok19:37
aelkneryeah, it's the order19:37
aelknerhtml makes the zero button the default19:38
aelkneranyway, enter for yes, escape for no, pretty much the convention19:38
replaceafilli just remember Vitor saying "make the default action non destructible" ;)19:38
replaceafillbut i'll leave that to th1a19:38
aelknergood point19:38
* replaceafill goes back to fight leaders19:39
aelknerbut how would we change the default anyway in z3c?19:39
aelknerwe would need to tell it to render the button differently19:39
aelknerbut god know how one would do that19:39
replaceafilleeehhh!! leaders is working!19:41
aelknerth1a, have you looked at the delete view in my instance lately19:41
aelknerand also, what do you want me to do nect?19:41
aelknernext19:41
replaceafillth1a http://69.164.203.135:6660/resources/my-resource19:41
replaceafillth1a for Delete i suppose you want a dialog like the one aelkner just did, correct?19:42
th1aEh...19:48
th1aWell, a simple confirmation I guess.19:49
th1aNot a paranoid one.19:49
replaceafillth1a check the resource functionality19:49
replaceafillexcept for the calendar/booking it's complete19:49
th1aaelkner, flip Settings/Actions19:50
th1areplaceafill: Can we change "leaders" on the relationship form?19:51
replaceafillyes19:51
replaceafillCurrent/Available ...?19:52
replaceafillresponsible parties?19:52
th1aYes.19:52
replaceafillrefresh19:52
th1areplaceafill:  Make Delete last19:53
replaceafilloops, forgot the title19:53
replaceafillok19:53
replaceafillfixed19:54
th1aOK.19:54
aelknerth1a, what would be a good thing to do next?20:02
th1ayears20:02
aelknerah, yes, a good one20:02
replaceafillth1a http://69.164.203.135:6660/resources20:19
replaceafilldelete works now20:19
replaceafillcan you check the dialog?20:19
th1aThat's fine.20:19
replaceafillcool, pushing these changes20:20
aelknerreplaceafill, i pushed my changes to trunk, could you do the same sometime today?20:35
aelknerth1a, i flipped Settings/Actions in person view20:36
th1aLooks good.20:36
th1areplaceafill:  Has enrollment statuses never made it into trunk?21:07
th1aWhat did we do that for?21:07
th1aDid you work on that?21:07
replaceafillyes, but it was never finished21:07
replaceafilli remember i jumped into something else21:07
replaceafillbefore a sprint21:07
replaceafill2010 i think21:07
th1aWell, I don't remember.21:07
replaceafillor after...21:08
th1aWe'll have to finish that!21:08
replaceafilli could retake that :)21:08
replaceafillah! good21:08
th1aNot right now.21:08
replaceafillah :(21:08
replaceafill:)21:08
th1aWe're kinda busy.21:08
th1aI'd rather we didn't finish it than finished it and never merged it!21:09
replaceafillno, it was never finished21:10
replaceafillaelkner i pushed my changes21:10
replaceafillto trunk21:10
th1areplaceafill:  We should pick it up after this release is ready.21:10
replaceafillth1a could i work this afternoon in jelkner's pyquiz request?21:12
replaceafillor do you want me to start with something on flourish?21:12
th1aThis would be a reasonable time to squeeze in some PyQuiz.21:13
replaceafillgreat21:14
replaceafillbtw, one thing still missing for resources is the evolution script, but i'll work on that next week (if that's ok)21:16
th1aOh... I was hoping you were done with that!21:21
replaceafilli just wonder if the evolution tests work21:22
* replaceafill tries21:22
replaceafillConfigurationError: ('Unknown directive', u'http://schooltool.org/flourish', u'content')21:22
replaceafill:(21:22
th1aaelkner and replaceafill:  What do we know about years at this point?21:31
th1aThat is, we know one is active the others aren't.21:31
th1aDo they have a sequence?21:31
th1aDo we know if one has been active already and deactivated -- that it is effectively archived?21:31
replaceafillthe schoolyear container has a sorted_schoolyears property21:32
replaceafillthat orders them based on their last attribute21:33
th1alast attribute?21:33
replaceafillwhen you create one schoolyear, you set title, first and last21:33
replaceafilldates21:33
th1aOK.21:33
th1aaelkner: ayt?21:34
replaceafilland the schoolyear container only knows about the current school year setting a property21:34
th1aI figured.21:34
replaceafill_active_id, the schoolyear object knows nothing about it21:34
replaceafillaelkner are you going to fix the limit keys labels?21:36
aelknerth1a, catching up to log...21:36
aelknerreplaceafill, i can do that, yes21:37
aelknerth1a, i see replaceafill answered you questions21:38
th1aYes, so let's talk years index for a minute.21:42
th1aYears should be in a table.21:43
th1aTitle | First Day | Last Day | Active21:44
th1aWith the active one checked.21:44
th1aSidebar:21:44
th1aAdd21:44
th1a - New School Year21:44
th1aI mean21:44
th1a- School Year21:44
th1aActions21:44
th1a - Activate New Year21:45
th1aWhich gives you a modal, with radio button form to select the active year.21:45
aelkneri think the activate view works off the schoolyear in question21:45
aelknerbut i might be mistaken21:45
aelknerwe could create a new modal as you suggest21:45
th1ayou do it from the /schoolyears form.21:45
aelkneroh, you already checked th old skin?21:46
th1aYes.21:46
aelknerok21:46
replaceafillaelkner active id is a property on the container21:46
th1aOh, also, we'll move delete to the year index.21:46
aelkneryes, following the pattern we have been using21:47
replaceafillif the delete person message was scary, delete schoolyear should be scarier (or whatever you say that) :)21:47
th1a"Noooooooo........... DON'T DO IT."21:48
aelkner:)21:49
th1aSort in descending order of time (most recent first).21:52
th1aActive year gets a check.21:52
th1areplaceafill, aelkner:  How do you guys feel about an accordion for the year view.21:58
th1aTerms / Groups / Levels / Timetables21:59
th1a?21:59
th1aAre more accordions much work at this point?21:59
aelknerthose are all container views22:00
aelknerputting them all as subfroms of the schoolyear view might be tricky22:01
th1aWell... more of that info should be on the page itself anyhow.22:01
replaceafillsubforms?22:01
th1aviewlets?22:01
aelknerthe current viewlet manager is just for the links22:02
aelknerif we create a new on to contain the container views22:02
aelknereach view having a filter widget22:03
aelknermeaning each one will have a form22:03
aelknerthat's what i meant by subforns22:03
th1aBut the accordion itself?22:08
aelknerthat's the manager22:08
th1aThe question is...22:08
aelknerit's the viewlets that contain forms that is the question22:08
th1aAre more accordions much work at this point?22:08
th1aI mean, the alternative is a multi-column layout, which is probably more work all around.22:09
th1aAnd not as good.22:09
aelknertake person, for instance22:09
aelknerthere are no accordion viewlets that have a form22:09
aelknerjust links to call up other forms22:09
th1aYes.22:10
replaceafillaelkner why do you want a form in the accordions?22:10
th1aaelkner is jumping the gun.22:10
replaceafilldont you just need links?22:10
aelknersay the year has 200 courses22:10
aelknerdo we show the whole list?22:11
aelknerdo we allow filtering?22:11
aelknerif so, how?22:11
replaceafillgood point22:12
aelknernow you see why i mentioned subforms :)22:12
replaceafillwell, you can make a table scrollable22:13
replaceafillwith the right css22:13
replaceafillhttp://www.imaputz.com/cssStuff/bigFourVersion.html22:13
replaceafillfor example22:13
aelknerinteresting22:15
aelkneris it display: table?22:15
aelknerthat's what firebug shows22:15
th1aCourses is the only one that could be big.22:16
replaceafillaelkner no, overflow i think22:16
aelkneri don't see overflow in firebug22:17
aelknerth1a, what do you think about that table?22:17
th1aThat would be reasonable in this case.22:18
th1aInside an accordion.22:18
aelknerif no filtering is necessary, and it's ok for the tables to be as big as the data22:19
th1aActually, consider this:22:19
th1aWe have the year page which includes an accordion section for groups.22:19
th1aBut now we also have a global groups index with an accordion for each year.22:19
th1aWhat would you think about that?22:19
aelknerthat would follow as a good design, yes22:20
replaceafillth1a you mean a /groups view22:21
th1aYes.22:21
replaceafillgot it22:21
th1aOr...22:21
th1aYes, that.22:21
replaceafilland /courses, /levels, etc views too?22:21
th1aYes.22:21
replaceafill:|22:22
replaceafilllots of new views :)22:22
th1aAnd they'd both point you to the same manage views.22:22
replaceafillthe index of the containers22:22
aelknerth1a, yeah, we don't have groups, courses, levels outside of years in old skin22:22
th1aThe particular year/groups22:22
aelknerbut if you want them, that would possible22:23
th1aThat might have to wait for th next release.22:23
aelkneryeah, it's not urgent anyway, just interesting22:24
aelknerand perhaps convenient22:24
aelknerand a useful tool for educating the user as to the scope of their data22:25
th1aWell, I want to get out of the navigating through years paradigm.22:26
th1aIt isn't really intuitive to the user.22:26
th1aIt is just us mapping the UI to the database.22:26
th1aThere definitely isn't going to be a year tab.22:26
th1aOTOH, we could just make the year view simple and do the /groups, etc views INSTEAD.22:27
aelknerinteresting22:27
aelknerif we did that, say groups for instance22:28
aelknerit could be an accordion, one for each year, with the active schoolyear expanded?22:28
th1aI guess we have to assume that 99% of the time the user is only interested in the active year's group, so an accordion per year is probably wrong.22:28
th1aWell, perhaps that's wrong.22:29
th1aBecause basically, you shouldn't need to go to that view very much at all.22:29
replaceafillwhy dont /groups -> active year groups and so on22:29
th1aSo yeah, an accordion per year might be fine.22:29
aelkneri don't think replaceafill meant that22:31
aelknerwe could only show the activie year groups in /groups22:31
* th1a was responding to himself.22:31
aelknerwith a link to other years, and that cold be an accordion22:31
th1aCan we populate an accordion section on open using ajax?22:35
th1aHrm...22:35
th1aLIke http://jqueryui.com/demos/tabs/#ajax22:36
replaceafillaccordions don't have that natively22:37
replaceafillbut neither dialogs, and yvl made it possible ;)22:37
th1atbh, probably just tertiary navigation would be best, with a "tab" per year.22:38
th1aYou know, let's bite the bullet a bit here.22:39
th1aI think we can and should just chuck navigating through years.22:40
th1aAny objections?22:41
th1ayvl is on vacation...22:41
th1aWe're in charge...22:41
aelkner:)22:41
th1aDad left the car keys.22:41
replaceafill:))22:41
aelknerwhat do you mean 'navigating through years'?22:41
th1aAlan has a fake ID so he can buy a keg.22:41
th1aI mean, there definitely will be no year tab in the top bar.22:42
th1aWhen you go to schoolyears, you'll be able to create a school year, but go no "deeper."22:42
th1aTo make a term you'll go to /terms.22:42
th1aetc.22:42
th1aI guess this is the point where you should say "Oh... that is one of those things that's WAY more painful than you'd think."22:43
th1aIf it is.22:43
th1a(we can also mull this over the weekend...)22:44
aelknerthink about this:22:44
aelknerif we force the user to go to year to find terms, courses, etc.22:44
aelkneror if we let the user go to /terms and then they have to find a year22:45
aelknerit seems like they have to deal with the year either way22:45
aelkneri think we need to stick to the schoolyear approach22:45
th1aBut that's not the problem.22:45
replaceafilli think we should hide non-active schoolyears22:45
aelknerthe user definitely will find it easy to go to the active schooyear and do stuff from there22:45
th1aThe problem is the user has to remember if this is a global thing he's dealing with, or a year-based one.22:45
th1aThat's the problem.22:46
aelknerwe offer year-based data, so they have to think about it22:46
aelknerjust because persons and demo fields are not, doesn't change that22:46
th1aThe problem is not that people have to remember what year it is.22:47
th1aThe problem is that the management is split apart in an unintuitive way.22:47
aelknerwe should talk about a manage home view22:48
aelknerand perhaps we could combine stuff there22:48
aelknerboth active year and global22:48
aelknerthen the user would find everything there and only have to think about years when they are different than current22:49
th1aThat's the part I've only got in my head.22:49
th1aIf there is one manage view, it isn't going to send you through the year hierarchy.22:49
th1aThe problem now is we have multiple manage views.22:50
aelknerwhat if the manage view had a link for persons22:50
aelknerand a link for active schooyear22:50
aelknerand a link for active schoolyear groups22:50
aelknerand courses, etc.22:51
th1aWhat does the "link for active schoolyear" get for you then?22:51
aelknertitle, descrption, edit links22:51
aelknerheck, it could be a odal edit view22:51
aelknerthink about this:22:51
aelknerit's true that schoolyear now has links for its data, but we don;t have to put the lnks there22:52
th1aThat's what I'm saying.22:52
aelknerthey are just there because it made sense to ignas when he created schooyears way back when22:52
th1aprecisely.22:53
aelknerso i vote for having the links that are in schooyear just be in the manage view22:53
th1aOK, here's one executive decision.22:54
th1aI want new years to have their titles limited to 12 characters.22:54
th1aSo add that.22:54
th1aWe don't need to evolve the old ones.22:55
aelknerok22:55
th1aSo then we can fit plenty of years in tertiary navigation.22:55
th1ae.g. p. 19.22:56
th1aThis may actually be kind of simple.22:58
th1aIf you click on Groups in the manage view.22:58
th1aAnd it takes you to $ACTIVE_YEAR/groups22:59
th1aand the tertiary navigation is just a link for each school year/groups22:59
th1aThat's... pretty much it, right?22:59
replaceafillwhen are we showing the third-level nav? just for /groups, /courses, etc?23:00
th1aYeah.23:02
aelknerwhat do we have for second-level navigation?23:03
th1aBreadcrumbs.23:04
th1aSo basically, in the short term, do schoolyears, but keep the year index pages simple.23:09
th1aWithout the contained objects.23:09
aelknergot it23:13
th1aOK, that should carry us through to Monday.23:30
th1areplaceafill can do the CSS for tertiary navigation if he feels motivated.23:31
th1aI'll be traveling to Maine.23:31
replaceafillth1a ah ok, will also work on the evolution script for resources23:31
th1aThat should be fun.23:31
replaceafillare we meeting next monday?23:31
* replaceafill doesnt remember th1a's vacation schedule :)23:32
th1aYes.23:33
th1aNext week I'll be around for morning meetings most of the time.23:33
th1aI'll let you know if not.23:33
replaceafillcool23:33
th1aI just won't be lurking all day.23:33
replaceafillth1a what's coming for me next week?23:34
replaceafillno calendar/timetable please :)23:34
th1aNo.23:34
* replaceafill is scared of those parts23:34
replaceafill:D23:34
th1aWe're going to finish the management views.23:34
replaceafillah, i can style access control23:35
replaceafillit looks funny23:35
th1aYes.23:35
th1aOK, have a good weekend guys.23:37
* th1a goes to the grocery store.23:37
replaceafillsee you th1a23:37

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