IRC log of #schooltool for Thursday, 2011-06-23

*** replaceafill has quit IRC00:05
*** fsufitch has quit IRC00:08
*** replaceafill has joined #schooltool01:04
*** menesis has quit IRC01:32
*** replaceafill has quit IRC02:08
*** fsufitch has joined #schooltool02:50
*** th1a has quit IRC03:00
*** replaceafill has joined #schooltool03:04
*** replaceafill has quit IRC03:28
*** aks has joined #schooltool07:58
*** aks has joined #schooltool07:58
*** menesis has joined #schooltool08:15
*** menesis has quit IRC11:11
*** replaceafill has joined #schooltool11:18
*** yvl has joined #schooltool11:24
replaceafillyvl you around?11:55
yvlhey replaceafill11:55
replaceafillhey yvl, quick question11:55
replaceafillHow do you get the url of a file resource?11:56
replaceafilli did:11:56
replaceafillresource_directory = getAdapter(self.request, Interface, name='')11:56
replaceafillicon = resource_directory.get('remove-icon.png')()11:56
replaceafillbut it feels wrong :)11:56
replaceafillwhat's the right way? :D11:56
yvlyes, it does feel wrong11:57
replaceafillyou mean that's the way to do it...?11:58
yvlI don't think so11:59
yvllet me grep a bit11:59
yvlat very least, zope.traversing.api.traverse(self.context, '++resource++' + self._path, request=self.request)12:00
replaceafillthat could be: traverse(self.context, '', request=self.request)12:02
yvllooks like it12:04
* replaceafill tries12:04
* yvl hasn't had his coffe yet12:04
replaceafillit works!12:06
replaceafillfeels less wrong ;)12:06
yvlwell what do you know...12:13
yvlI mean - who would have guessed12:13
yvlresource = zope.component.queryAdapter(request, name=name)12:14
yvlname is '' there12:14
replaceafilli looked something similiar in zc.resourcelibrary code12:14
replaceafillthat's where i got the getAdapter(...) idea12:15
*** replaceafill has quit IRC13:16
*** aks has quit IRC14:33
*** th1a has joined #schooltool15:30
*** replaceafill has joined #schooltool16:08
th1ahi replaceafill, aelkner, yvl.16:30
yvlmorning guys16:30
* yvl excuses himself for 2 mins16:31
th1aaelkner:  I assigned a critical bug to you this morning.16:31
th1aDo you see it?16:33
aelknernobody tried that before i guess16:34
* yvl back16:34
th1aThat's your top priority today.16:34
th1aNobody tested for it.  ;-)16:34
aelkneryeah, replaceafill, we didn't think of that when we did that those many years ago...16:35
th1aOK.  Thoughts about my email yesterday?16:36
aelkneri like Done for the button instead of Ok16:37
th1aIt is clearer.16:37
aelkneralso, depending on what yvl has come up with16:38
aelkneri would say the dialogs for the modal vews shold come up16:38
aelkneri mean, they should be put next to the links as i did wth the reports manager16:38
aelknerso if the action link is rendered, then the form for the modal is right there16:39
yvlaelkner, my hat off to you for the implementation16:40
aelknercan we do the same kind of thing for the action links?16:40
th1aAre the new modals on the demo server?16:40
replaceafillth1a yes16:41
replaceafillth1a unstyled though16:41
th1aFor reports?16:41
th1aAh. reloaded.16:41
aelkneryeah, they're ugly at the moment, but functional16:41
aelknerand as replaceafill pointed out, they don't auto-close when the user hits download16:42
yvland keep in mind that they don't work at all when log-in expires16:42
th1aThe one thing aelkner wasn't around yesterday afternoon to discuss is the design of the form.16:42
yvlor in any case where user has no rights to access16:42
th1aI'm thinking it should be a table with download buttons in each row.16:42
th1aClearer than a dropdown.16:43
aelknersounds like like it would be16:43
th1aSo perhaps we could try that before doing the styling.16:45
th1aHas everyone seen the preferences modal?16:46
replaceafilla few comments about that:16:47
replaceafilli removed the title bar as you can see, less feeling of a box inside another box i think16:47
replaceafill(title bar of the dialog)16:47
replaceafillunfortunately, this takes away the X button to close the dialog (equivalent to hitting ESC when the dialog is open)16:48
replaceafillalso, in z3c.form the checkboxes have labels16:49
th1aYeah... I'm a little unsure.16:49
th1aI think this needs some red, too.16:49
th1aGray on gray doesn't look very active.16:50
th1aSo a red bar would help with that.16:50
th1aGray over grayed-out.16:50
replaceafillrefresh the dialog16:50
replaceafilli changed the css to display the labels16:51
replaceafilland hints16:51
th1aWell, it is redundant.16:51
replaceafillthat's why i took them out16:51
replaceafillat least for modal dialogs16:51
th1aPerhaps we could just write helpful hints.16:51
th1aPut some XXX's in there.16:52
th1aYou see, I don't even necessarily know where there are terrible hints, descriptions, etc., because you guys hide them from me.16:52
th1aXXX - need hint here16:53
th1aIs MUCH BETTER.16:53
aelknermost of the hints were established long ago when the interfaces were created16:53
th1aIt is not like "Make calendar public" says it all.16:53
th1aI know, I just need your help.16:54
aelknerso while we can follow your suggestion gong forward, we can't do anything about the existing nes16:54
aelkneri didn't know we were making any new interfaces anywya16:55
th1aWhat you can do is be aware of the fact that a hint or description that is restating the title is a bug.16:56
th1aAnd flag it as such, at least with an XXX so I'll know to fix it.16:56
th1aI know the preferences dialog is old.16:56
aelknerall of the interfaces are16:57
th1aWell, we're all older and wiser now.16:57
aelkneranyway, if you want, you can make a task just for going over every interface in schooltool looking for that problem16:57
th1aWe're going to be going over every view in the next two months, that's my point.16:57
aelknerbut these interfaces are not flourish only, so keep in mind that changes will show up in the old skin16:57
th1aLook... better descriptions and hints are features!16:58
replaceafillwe'll need better styles for them too16:58
th1areplaceafill:  Can you please change the hints to XXX so I can even tell which ones are the hints.16:59
replaceafillok, hold on16:59
replaceafillor go on16:59
replaceafillwhile i do that16:59
th1aWhy is the label in two places?17:01
replaceafillthat's what i was saying17:01
replaceafillz3c.form does that17:01
aelknerbecause the hint css is not right17:01
th1aThere are two problems.17:01
replaceafillno, it's not related to the hints17:01
aelknerok, never mind17:01
aelknerth1a, btw, so you really want to go over cosmetics now when yvl is here and about to leave for the week?17:02
aelknerwe have plumbing discussions to have17:02
* yvl will be here for a while17:02
* yvl overslept today - forgot to set the alarm clock17:02
th1aI was planning on moving on.17:03
aelknerwell, cosmetic discussions can go on for hours17:03
th1aWhen you question everything, yes.17:03
th1ayvl:  Go ahead.17:03
yvlwell, I overslept17:04
yvlso still in progress17:04
yvlnot much to report actually17:04
yvlnothing of interest to you guys, at least17:04
aelknerwhat do you think of the idea of rendering the form div next to the link for action links?17:05
aelknerand the js, too17:05
aelknerfor modals, that is17:05
yvlthat's how I thought of doing it, actually17:05
yvlthis semi-auto-generation removes the issue replaceafill mentioned17:06
yvlthat modal dialogs are per-view now17:06
yvlbecause they won't be17:06
th1aI figured that technical problem could be solved but I think omitting the sidebar could still be a usability win.17:07
yvltechnical problem *had* to be solved anyway17:08
th1aSo... now what?17:10
* yvl still hasn't finished the tal expressions and their tests17:10
yvland respective small .js that goes with it17:11
th1aSo in the meantime we should just plow ahead?17:11
yvland I don't like polluting global js namespace like we do now everywhere, but that's not important now17:11
th1aAny questions aelkner?17:12
aelknersounds like there's nothing to discuss until we see what yvl cooks up17:12
aelknerperhaps monday?17:13
yvlunless I work late today for some reason :)17:13
aelknerok, maybe later today17:13
* yvl worked 3 hours less than expected at this point, hence 3 hours behind schedule17:13
th1aOK, so aelkner: div by zero bug first.17:14
th1aMake reports modal use a table.17:14
th1aIf you get those done we can look at contacts view.17:15
th1areplaceafill:  What's the Cambodia situation?17:15
replaceafilli need to create a report with the columns i describe in my email17:15
replaceafillwaiting for Chandara's confirmation on the values17:15
replaceafillbut i think i got them right17:16
aelknerth1a, i should fix the bug in a branch of gradebook trunk17:16
aelknernot flourish gradebook, right?17:16
th1aIsn't flourish just the skin?17:17
aelknerit's a separate branch17:17
th1aYes, fix it in trunk.17:17
th1aWell, fix it in a branch and file a merge request, correct?17:18
th1areplaceafill:  Did you cc: me on that?17:20
replaceafillth1a yes17:20
replaceafilli think...17:20
th1aOh, I see it.17:20
* replaceafill looks17:20
aelknerth1a, yes, i'll branch trunk and file a merge request17:20
replaceafillah ok17:20
th1aSo lets work on the dialog style more then.17:20
th1aSo we're done?17:21
* th1a drops the bag of gravel.17:21
th1areplaceafill:  Put the bar back on top and make it red.17:22
replaceafillth1a done17:25
th1aPut the form title up there.17:25
replaceafilllet me think about it17:26
th1aCan't you put text there?17:26
replaceafillyou have to set it in .js17:26
replaceafilland the form header is rendered in the content of the dialog17:27
th1abtw, tomorrow is a holiday in Lithuania, aelkner has something going on and my sister is going to be in town.17:38
th1aSo it will be a slow day.17:38
replaceafillth1a perfect day for cambodia work :)17:38
aelkneryes, i'll be offline all day tomorrow17:39
replaceafillth1a i vote to make the current title of dialog look like jquery-ui title bar17:40
replaceafillthing is, the js to create the dialog is separated from the template rendering the form17:41
replaceafilli could also tweak the css to move the form title to the jquery ui title bar position17:42
th1aLike... float it over?17:42
th1aWhy not try that?17:42
replaceafillmove up and bring to the front17:42
replaceafillok, let me try that17:42
replaceafillth1a refresh18:08
th1aLooks good.18:09
replaceafillth1a took the js approach instead of tweaking the css18:09
th1aI'm sure it is the kind of thing that will break horribly in weird languages.18:09
th1aOh, good!18:09
th1aTry taking out the gray background.18:09
th1aI think that's better, too.18:10
th1aNow... switch the checkboxes to radio buttons.18:11
th1aShow periods | Show hours18:11
replaceafillShow periods (yes) | Show hours (no) in z3c.form context, correct?18:12
replaceafilli mean, z3c.form uses yes no for the radio buttons but allows you to customize the labels18:12
th1aWhat if you have three radio buttons?18:12
replaceafillthen it's not a Bool field, right?18:13
th1aYes, like that.18:13
replaceafillok, doing that18:13
replaceafillwe could make the font-size of the dialog title smaller, i think18:14
th1aCalendar is visible to the public | Calendar is visible to $NAME and... who actually?18:14
th1aTry it.18:14
th1aIt needs to pop above the background though.18:14
replaceafillpadding fixed for the title bar and font-size = 16px18:18
replaceafilli'll fix the X button later18:19
replaceafillit needs to be white18:19
replaceafillthe black X button on the right of the title bar18:19
th1aYeah.  Well, I'd just have to fiddle with it.18:19
replaceafillradio buttons now18:20
th1aI guess white, unless it looks stupid!18:20
aelknerth1a, i'm able to reproduce the bug18:41
aelknerthe question is:18:41
aelknerwhat should the behavior be if exam and homework are weighted 50/5018:42
aelknerand the worksheet only has scores for assignment?18:42
aelknerdo we apply the 'zero' weighting to the assignment score18:43
aelknerthus, a worksheet with one score entered, say '87', would have an average of zero?18:43
aelknerreplaceafill, it's interesting, you remember working on that routine together at your first schooltool sprint?18:45
replaceafillaelkner definitely :)18:46
aelknercan you look at the routine now for a second?18:46
aelknerit's in the getTotalAverage of the gradebook class18:46
aelknertotal_percentage is zero because there are no scores for any categories that have non-zero weights18:47
aelkneryeah, so it devides by zero18:47
replaceafillah! here: adjusted_weights[key] /= total_percentage18:48
aelknermathematically, what is the right calculation is the question18:50
replaceafillyvl you still there?18:52
replaceafillyvl i have:18:52
replaceafillclass PeriodPreferencesTerms(term.BoolTerms):18:52
replaceafill    trueLabel = _('Show periods')18:52
replaceafill    falseLabel = _('Show hours')18:52
replaceafilli know the discriminator for the adapter is:  context, request, form, field, and widget.18:52
replaceafillhow can i register the adapter for a specific view and field?18:53
replaceafilli tried "adapts(...)"18:53
replaceafilllike this:18:53
replaceafill    adapts(18:53
replaceafill        Interface,18:53
replaceafill        IFlourishLayer,18:53
replaceafill        FlourishPersonPreferencesView,18:53
replaceafill        IPersonPreferences['cal_periods'],18:53
replaceafill        Interface)18:53
replaceafillbut it complains with:18:54
replaceafill    raise TypeError("Required specification must be a "18:54
replaceafillzope.configuration.config.ConfigurationExecutionError: <type 'exceptions.TypeError'>: Required specification must be a specification or class.18:54
replaceafill  in:18:54
aelknerIPersonPreferences['cal_periods'] is not a class18:54
aelknerit is an instance18:54
yvlI would say so18:55
replaceafillah! so it doesnt work like validator discriminators18:55
yvlreplaceafill, you are doing it in an interesting way, I must say18:55
replaceafillif by interesting you mean stinky, i agree :)18:56
aelknersometimes, you got to try things18:56
aelkneri know how that feels18:56
replaceafill    In case of instances, an interface is generated on the fly and tagged onto18:57
replaceafill    the object. Then the interface is returned as the specification.18:57
yvlone can get a seizure by looking at this, yes18:58
aelknerit might help to step back an reexamine what it is you need18:58
replaceafillmy love/hate relationship with z3c.form is back :D18:59
th1aaelkner:  If it is weighted 0 is it worth 0.18:59
th1aHow else would you do it?18:59
th1areplaceafill:  Is this from using radio buttons with a bool?18:59
aelkneri think you are right, the average should be zero18:59
aelkneri just thought it best to get you to sign off on that18:59
replaceafillth1a yes19:00
th1aI don't even know what else it would be.19:00
th1areplaceafill:  What would the other option be if we were starting from scratch?19:00
th1aChange the interface to a list of values?19:01
aelknerreplaceafill, the thing is, i don't know why we have the adjust_weights in that routine19:01
aelknerif you look below, you see it asks:19:01
replaceafillth1a hack the widget before it renders19:01
replaceafill(let me try that) :)19:01
aelkneris there a category weight for this category19:01
aelknerif so, used the adjusted weight19:01
aelknerwe need to rework that method so that it's comprehensible19:02
aelkneri'm afraid it is a difficult and complex problem19:02
aelknerremember it drove th1a to such visible frustration just thinking about it19:03
aelknerthat replaceafill was afraid for his life there a second :)19:03
aelknerbut seriously, it is a difficult problem, so if we solve it, the solution needs to tell the story19:03
aelkneri think this is a case for divide and conquer, what are the pieces of the solution, broken down so to speak19:04
th1aCalculating the average is a difficult problem?19:05
aelknerwhy the need for adjusted_wights?19:05
aelknerwhich are based on what scores are entered19:05
aelknershouldn't the weights themselves be worthy of applying19:06
aelknerreplaceafill, i could use your pair of eyes on this one19:06
replaceafillaelkner i'm in the middle of changing the radio buttons19:06
aelknerth1a, calculating a weighted average is the problem19:07
aelknerwhen categories are scored and not weighted19:07
th1aWell, is the problem partly that by default nothing is weighted?19:08
aelknerbut perhaps replaceafill and i erred when we tried to adjust the weights according to whether there were scores19:08
aelknerif nothing is weighted?  let me check19:08
aelknerif there are no weights, then the block of code that has the problem is never reached19:09
aelknerif there are, the code block builds an adjusted weights dict19:09
aelknerand i can't work out yet why19:10
th1aIt might be unnecessary.19:10
aelkneri'm starting to think so19:10
th1aPerhaps you need to start with tests...19:10
aelknerwe have tests19:10
aelknerbut not for that case19:10
aelknerso yes, i will need to add a test after i have a solution19:11
th1aWhat happens to your tests if you take that block out?19:11
th1aWell, technically you should start with a failing test.  ;-)19:11
aelknerthey would crash because that block does a lot of good things19:11
aelknerwell, yeah, but the important thing to discuss was the behavior19:12
aelknerso i believe we are in agreement19:12
aelknerif the weights are for cats 1 and 219:12
aelknerand there are only scores for cat 319:12
aelknerthen the average will b zero19:12
aelknereven thought the toal is not19:12
aelknerand i should be able to change the block (simplify it really)19:13
aelknerso that it doesn't need the adjusted_weights19:13
* aelkner goes to take a shower19:14
replaceafillth1a uh!?!?!? "I want you add month score (October-January, March-June) for 9th and 12th level."19:40
* replaceafill writes back...19:40
th1aI don't know what that means.19:40
replaceafilllevels 9 and 12 are supposed to grade by semester19:40
replaceafillnot by month19:41
th1aGood response replaceafill.19:50
replaceafillwell... i'm confused ;)19:50
*** ignas has joined #schooltool19:53
th1aSo do I have you in interface hell over these radio buttons?20:00
replaceafillkind of :(20:01
replaceafilltrying a widget factory instead of a terms adapter20:01
aelknerreplaceafill, prorbably the best way to go20:03
aelknerth1a, so it turns out that i need to be in arlington by 5:4520:10
aelknerso i will be going in half an hour20:10
aelknerbut i know what i need to do with the bug20:10
aelknerand i also have that table task for the report request views20:11
aelknerso i'll get those sorted out by monday20:11
aelkneri'm still taking a vacation day this week, of course20:11
th1aaelkner:  yes.20:13
replaceafilloops error on submit!20:13
th1aWhere does the first "Show periods" come from?20:14
replaceafillthe interface20:14
replaceafill    cal_periods = Bool(20:15
replaceafill        title=_("Show periods"),20:15
replaceafill        description=_("XXX - need hint here"))20:15
th1awhat part of it.20:15
th1aThe title.20:15
th1aCalendar grid layout20:15
th1aHow's that for a title?20:15
th1aCalendar table something.20:15
th1aCalendar row increments...20:16
th1aDaily calendar rows...20:16
th1aThat last one is ok.20:17
th1aNo hint.20:17
th1aFor the calendar:20:18
th1a"$PERSON and school administration."20:18
th1aTitle = "$PERSON's calendar is visible to..."20:19
th1athe public | $PERSON and school administration20:19
yvlugh, JS is a bitch20:22
yvljust so you know where roughly I'm arriving:20:22
yvl  <tal:script tal:replace="structure scriptlocal:20:22
yvl    link_id string:#LinkIdViewlet-page_refine-person-settings-links-preferences-;20:22
yvl    form_id string:#person_preferences_form;20:22
yvl    form_url string:${context/@@absolute_url}/preferences" />20:22
yvl  <script>20:22
yvl    ST.modal_dialog(ST.state.local.link_id,20:22
yvl                    ST.state.local.form_url,20:22
yvl                    ST.state.local.form_id);20:22
yvl  </script>20:22
replaceafillth1a refresh20:22
replaceafillcheck first field20:23
yvlhas some awesomness and some quirks20:24
yvlsorry, th1a, I was just rambling20:24
yvlabout my code20:24
yvlwell, good luck to you guys!20:26
replaceafillth1a refresh20:26
replaceafillhave to change $PERSON of course ;)20:27
replaceafillwe should use first_name last_name, correct?20:27
replaceafillsame for dialog title maybe...?20:27
* replaceafill should write down that rule...20:28
* aelkner heads for virgina20:30
aelknergreate weekend all20:30
th1aYes, I think it is the person title.20:31
replaceafillthis is ridiculous....20:48
replaceafillth1a refresh20:49
th1a  ok...20:49
th1aI'm not married to having the name in the title.20:50
replaceafilloh oh, missed something?20:50
replaceafilljust "Calendar is visible to..."?20:50
th1aI meant in the title bar.20:50
th1aBut I was mostly just referring to it being last, first.20:51
replaceafillchange it to "first last" or take it out?20:51
th1aI think in the "Calendar visible to" is is good to have a reminder so administrators don't get confused.20:52
th1aSince they can change that.20:52
th1aAlso add ... after "calendar rows"20:52
replaceafillah ok20:52
th1aand 's in the second field title.20:52
th1aI'm feeling like the row with buttons should be closer... is there padding there from the nonexistent hints?20:55
replaceafillno, margin from the fieldset20:56
replaceafillit made sense when the fieldset had a background20:56
replaceafillit doesnt anymore20:56
th1aCan you pull the title closer to the button row?20:56
replaceafillmargin removed, refresh20:57
* replaceafill goes check chrome20:58
replaceafillremoved hint space21:01
th1aOK, can we fix the hover color for the buttons, pls?21:02
* replaceafill opens the guidelines21:03
th1aBasically make the hover color the regular red21:03
th1aand the active color the dark red.21:03
replaceafillactive as in when you click it?21:04
replaceafillnever mind21:04
replaceafillpage 24 :)21:04
replaceafillth1a done21:07
th1aThat's probably not permanant, but it is less ugly.21:08
th1aTo get the overlay background specified in p.29 we'll probably need some GIMP work or something, right?21:09
th1aI'd rather not just have the gray, since so much gray is in the regular interface.21:09
* replaceafill looks at ubuntu.com21:11
th1aI don't know if you'll find overlays easily.21:12
replaceafilli remember i saw a page with screenshots using them21:13
* th1a has sent replaceafill on another wild goose chase.21:19
replaceafillnah! all i get is gray :/21:25
replaceafillno patterns21:25
th1aOK, moving on.21:27
replaceafilllook red ;)21:27
replaceafilllike a huge warning page :D21:28
th1aNo... we can maybe get some stripes later.21:28
th1aWe need to get the Add and Edit Persons consistent.21:29
th1aIs the vertical spacing right in Add new person?21:30
replaceafillno there's an unnecessary div between21:30
th1aDes that look right otherwise?21:32
th1aSo basically none of these have "hints?"21:33
replaceafillthe hints are taking space21:33
replaceafilllike 4px21:33
replaceafilleven if they're empty21:33
th1aThat's in the form library?21:34
replaceafillyes, it's taken from the description attribute of the schema field21:34
replaceafillbut we can set display: none using css21:34
replaceafillbut that takes them all out21:34
th1ahints are description21:35
th1aAnd there is no style guideline in UWG for hints.21:35
replaceafillto me the only useful hint in the person add form is the birth date21:35
replaceafillno, there isn't21:35
replaceafilljust error messages21:35
th1aThese are fairly obvious.21:36
th1aUsername could contain the requirements for a username.21:37
replaceafillah! yes21:37
th1aAre spaces allowed?21:37
replaceafilllet me get them21:37
replaceafillNames cannot begin with '+' or '@' or contain '/'"21:38
replaceafillUsernames cannot contain non-ascii characters"21:38
replaceafilldoesn't mention spaces!21:38
replaceafillspaces are allowed!!!!21:39
th1aID could be "Use this for local identification codes or numbers."21:40
th1aOr just "Local identification codes or numbers."21:40
replaceafilllet me see if demographics can have descriptions21:40
replaceafilldemographics fields only have titles21:41
th1aOK, nevermind.21:43
th1aWhat about groups here.21:43
th1aCan we add a hint there?21:43
th1a"You can select one group membership now.  Manage multiple memberships after account creation."21:45
th1aHow's that?21:45
replaceafilli'll try it out21:46
th1aJust trying to make the interface more informative...21:46
replaceafillhints need smaller font21:47
th1ajust try legal/small text from 22 for now.21:47
th1aAdd the username text too.21:47
th1aPassword: "Users cannot log in until a password is assigned."21:48
replaceafillcould you rewrite the username instruction in one sentence?21:50
th1aUsernames cannot begin with '+' or '@' or contain '/' or contain non-ascii characters.21:51
th1aUsernames cannot begin with '+' or '@' or contain '/' or non-ascii characters.21:51
th1aUsernames cannot begin with '+' or '@,' contain non-ascii characters or '/'.21:52
replaceafillcan i take the "Usernames" part out?21:52
replaceafillmaybe "It cannot21:52
th1aJust cannot.21:52
th1aPut the period in the username text inside the quote.21:56
th1aNow we need to make the person edit page look like it.21:57
replaceafillthere, if fields dont have description the hint space is not rendered21:58
th1aMuch better.21:58
th1aHint could maybe be a touch closer to the label.21:58
replaceafilllike that?22:00
th1aYeah, that looks pretty good.22:02
replaceafillth1a lunch time, will you be around later?22:05
replaceafilli'll be back in 1h22:05
th1aMore or less I'll be around.22:05
th1aNo complex dinner tonight.  ;-)22:05
replaceafillok, i'll be back22:05
replaceafilljust in case, i have to make edit person looks like add person, right?22:06
replaceafillwith the fieldsets22:06
th1aAnd we're going to try taking the sidebars out of the non-index pages.22:07

Generated by 2.15.1 by Marius Gedminas - find it at!