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

*** lawrence has joined #schooltool05:33
lawrenceHi all05:33
lawrenceI installed schooltool yesterday and started configuring today. I managed to set up courses, teachers and students. I also attached a student and instructor to a course on my own. Unable to recall how I did it I referred to the instructions but following the manual does not get me the screen in the instruction manual. Can anyone help? Thanks05:35
lawrenceOk, think I figured it out/06:01
*** lawrence has quit IRC06:02
*** aks has joined #schooltool06:10
*** menesis has quit IRC12:40
*** aelkner has quit IRC12:40
*** aelkner has joined #schooltool12:47
*** menesis has joined #schooltool12:47
*** menesis has quit IRC13:04
*** aks has quit IRC13:14
*** aks has joined #schooltool13:18
*** menesis has joined #schooltool14:02
*** aks has quit IRC14:24
*** replaceafill has joined #schooltool16:26
*** hoffman has joined #schooltool16:29
hoffmanhi aelkner, replaceafill.16:31
replaceafillgood morning16:31
hoffmanSo... have you guys ruminated on moving management views out of the years?16:33
* hoffman includes a good vocabulary word for replaceafill.16:33
* replaceafill goes to look it up...16:34
aelkneri haven't come up with any new ideas if that's what you mean16:34
aelkneri thought we lad it out pretty good last week16:34
aelknerwe just have to decide on what we want16:35
hoffmanJust checking to see if anyone came up with a good argument against it.16:35
aelknernot here16:36
replaceafillme neither16:36
hoffmanOK.  Cool.16:36
hoffmanAll right, so where did you guys leave off Friday?16:37
aelkneri told replaceafill that i wold look into the hint override solution16:38
aelknerbut i couldn't get the ComputerWidgetAttribute to get called16:39
aelknerso i'd like to talk to replaceafill about that in a bit16:39
aelknerbut also, i added flourish.zcml to the schoolyears package16:39
hoffmanThere are only the two of you, so you can do that right now if you'd like.16:39
aelknerand crated the schoolyears view16:39
aelknerthe links that are there don[t work, but the table renders and the linksets are defined16:40
aelknerreplaceafill, i have some unpushed code that i can commit if you're available to look at16:40
aelknerthe WidgetAttribute issue16:41
replaceafillaelkner sure16:41
hoffmanI don't think we need a search there for years.16:41
hoffmanIt will be a long time before there are too many of them.16:41
hoffmanLike... YEARS.16:42
aelkneri thought so, but i wanted you to say for sure16:42
aelknerreplaceafill, i pushed to my branch, do you want me to push to trunk?16:43
hoffmanreplaceafill:  How do we want those checks aligned with their headers?16:43
replaceafillaelkner, no, i can take a look at your branch16:43
hoffmanboth centered?16:43
hoffmanBoth left?16:43
replaceafillhoffman maybe we should make the column narrower16:44
hoffmanOr that.16:44
replaceafilllike the Remove/Add columns in relationships16:44
hoffmanaelkner just needs a rule of thumb.16:46
replaceafillaelkner dont you want to replace the "label" for  the widget?16:46
aelkneri'm not sure, we may be able to think of a generic title which renders as the label16:48
aelknerinstead of Limit to group(s)16:48
aelknerLimit to:16:48
aelknerbut the hint, i.e., the description of the field in the interface16:48
aelknerwhich becomes the widget hint16:49
aelknerthat is a larger sentence that mentions groups which we want to be different for resource demo fields16:49
aelknerhoffman, for the checkbox column, it aligns center right now16:51
aelknerbut all headings align left16:51
aelknerwe could override the table css for th to align center16:52
aelkneror change the checkbox to align left16:52
hoffmanIt looks like the other rows align left.16:52
hoffmanOther columns I mean.16:53
aelknerthey all do in all our tables16:53
aelknerso for that reason, i'd recommend aligning the checkbox itself left16:53
hoffmanOK then.16:53
aelknerreplaceafill, i render that cell as '<span class="ui-icon ui-icon-check ui-icon-center"></span>'16:55
aelknerwhat's the best way to make it align left?16:55
aelkneri can add a class, or is there a class i can reuse?16:55
replaceafilljust remove ui-icon-center16:55
aelknerlet me try16:56
aelknerthat was easy16:57
aelknerreplaceafill, another thing16:58
aelkneri tried removing the filter widget by creating the stub that you see i created16:59
aelknerand adding:16:59
aelknerdef render(self):16:59
aelkner    return ''16:59
aelknerbut the table container template still renders the batch info16:59
aelknerwhich then bcomes visable overlaying the header17:00
aelkneri was hoping to fix that without having to clone the table container template17:00
replaceafillwhy dont you override the template attribute of the widget?17:02
aelknerhow do you mean that?17:02
replaceafilli mean:17:02
replaceafill    def render(self):17:02
replaceafill        return self.template()17:02
replaceafillin the filter widget17:02
aelknerthat's what the the base does17:03
aelkneroh, you mean change17:03
aelknertemplate = ...17:03
aelknerbut there's noting to render, so how would creating an empty template be better than return ''?17:04
replaceafillyou dont want the widget at all?17:05
replaceafillor just the batch info?17:05
aelknerhoffman confirmed my suspicion that we didn't want it17:05
aelknerand played around with rendering nothing for the widget, but the batch still came out17:06
hoffmanWell... we need the batch info if it is batching.17:06
aelknerhoffman, yeah, good point17:06
aelknerin which case, we would need the filter17:06
hoffmanSo just getting rid of the search but leaving the batch is probably the right thing.17:06
hoffmanNot really...17:07
hoffmanIf you have 30 years, you have to be able to get to the next page.17:07
hoffmanI don't think you need to filter though.17:07
hoffmanUnless this is just all so tied together.17:07
aelknerok, i just need to create a template for the widget filter17:07
aelknerthat pushes the content down enough17:08
replaceafillaelkner i'm not sure i understand the problem, but just one comment17:08
replaceafillthe filter widget and the batch info come from different places17:08
replaceafillthe batch info comes from the table formatter17:08
replaceafillit's independent of the filter widget17:08
hoffmanhi menesis.17:08
aelknerso you think i should create my own formatter and disable the batch there17:08
replaceafillso, if you do render to spit ''17:08
menesishi hoffman, all17:09
replaceafillaelkner  check skin/flourish/templates/table_container.pt17:09
replaceafillaelkner you're ussing a table container for the schoolyears view, correct?17:09
replaceafillthat's the template you want to customize i think17:09
replaceafillnot the widget one17:10
aelknerreplaceafill, so you think i do need to clone the table container template17:10
aelknerand get rid of the widget and batch rendering there?17:10
replaceafilli think it's the easiest solution17:11
aelkneri actually had done that but was trying to avoid cloning, but i guess there isn't any cleaner solution17:11
aelkneri wouldn't even need my custom widget in that case, so it's probably best17:11
aelknerhoffman, ok i'll do that right now17:12
hoffmanWe are overly concerned with cloning.17:13
hoffmanreplaceafill:  What's your status?17:13
replaceafillon friday, i spent some time on the xmlrpc stuff for jelkner17:14
replaceafilli also cleaned the resource forms17:14
replaceafillusing yvl's new base class17:14
replaceafilland changed the relationship views to use the new ImageInputColumn17:14
replaceafillhoffman today i was thinking about working on the evolution script17:15
replaceafillfor resources17:15
hoffmanOh, yes, that.17:15
hoffmanGet that out of the way.17:15
replaceafillok, will do, and then
replaceafilland maybe style Access Control, Access Rights and Site Preferences17:16
replaceafilli guess only access control needs styling17:16
replaceafilland access rights maybe...17:16
replaceafillfor site preferences, only the buttons i guess17:17
replaceafillah and the label17:17
replaceafillso i was thinking of styling those next17:17
hoffmanYou could do those.17:17
replaceafillk, will do17:17
replaceafillhoffman question17:17
replaceafilli was checking the logs and saw a conversation between you and aelkner about our "yes" "no" radio buttons17:18
replaceafillyou wanted them to be "Yes" and "No", correct?17:18
aelknerreplaceafill, that's yet another WidgetAttribute situation17:18
replaceafillaelkner not really17:19
replaceafillwe could use an adapter for all our combination of (bool + radio widgets)17:19
hoffmanLooks good.17:19
replaceafilli did that for cambodia17:19
replaceafilland make all the "yes" "no" -> "Yes" "No" across the whole app17:20
aelknerit would probably be faster if you went ahead and did it17:20
aelkneri could learn from seeing your solution17:20
replaceafillaelkner will do17:20
replaceafillaelkner so about the hints17:20
replaceafilli think there's no way to override a "hints" adapter17:21
replaceafillfor widgets17:21
hoffmanreplaceafill:  In the access control view we need sub-sections or sub-headers of some kind separating each permission.17:21
replaceafillhoffman ah17:22
replaceafillone section for a pair of settings17:22
hoffmanI'm not sure offhand whether this is a big form or a big table (or both), but you should be able to figure that out.17:23
aelknerreplaceafill, if there's not way to override the 'hints' adapter, what would one do?17:23
replaceafillaelkner we'll have to figure out17:25
aelknerreplaceafill, ok, i'll be right back17:25
aelkneri'm back17:30
aelknerreplaceafill, something just occured to me17:30
* replaceafill listens aelkner 17:30
aelkneri think yvl was a bit overly complex in his proposed solution17:31
aelknercould we just override the widget text in the __init__ method of the view class17:31
aelknerto have the right hint based programatically on the parent container?17:32
aelknernot using provideBy, god forbid, because I know yvl hates that17:32
aelknerbut perhaps creating an adapter that is implemented on each parent's interface17:32
aelknerand just update the widget in __init__ based on the adapter's hint?17:33
aelknerdoes that sound like the right way to do it to you?17:33
replaceafillaelkner just to be clear, you need to override the p.hint, not the label, correct?17:33
aelknerwe only need to override the label if we can't come up with something generic in the interface17:34
aelknerhoffman, is 'Limit to:' ok fo rthe label if the hint is more specific to person demos vrs resource demos?17:35
aelknerright now it's 'Limit to groups(s)'17:35
replaceafillaelkner the thing is, the p.hint comes from our template17:36
aelknerbut for resources it resource type, so that label is not right17:36
replaceafillthe label, we could override with an adapter17:36
aelknerwhich template has the p.hint?17:37
hoffmanWhat is ok is if I can specify what each one says.17:37
replaceafillaelkner any our our z3c form clones :)17:37
replaceafillaelkner but precisely:17:37
aelknerisn't it widget_macors17:37
aelknerand isn't this the line:17:38
aelkner<p class="hint" tal:content="widget/hint" />17:38
replaceafillaelkner i dont think we're using those macros17:39
replaceafillfor flourish17:39
aelknerso i found the line17:39
aelkner<p class="hint" tal:content="widget/field/description"17:39
aelkner                     tal:condition="widget/field/description">Description of this field.</p>17:39
replaceafillso, you see we render the field description17:39
aelknerso couldn't we override the field's description?17:39
aelknerin __init__ i mean?17:40
aelkneror actually, bot even in __init__17:40
aelkneri think rght in the view class fields=...17:40
aelknerno, nevermind, it need to be __init__17:40
aelknerbecause we need to know th context17:40
aelkneri could try that out now17:41
aelknerreplaceafill, do you think updateActions would be a better place than __init__?17:44
aelknerwe don't have any cases of overriding __init__ in forms i don't think17:45
aelkneris there such a thing?17:45
replaceafillyou're changing the widget, right?17:45
aelknerah, good17:45
replaceafill    def updateWidgets(self):17:46
replaceafill        super(BaseResourceView, self).updateWidgets()17:46
replaceafill        for widget in self.widgets:17:46
replaceafill            if not self.widgets[widget].value:17:46
replaceafill                self.widgets[widget].mode = HIDDEN_MODE17:46
aelknerreplaceafill, all i need was this one line:17:49
aelknerself.widgets['limit_keys'].field.description = u'Boo'17:49
aelknerand it worked!17:49
aelknerso i just need to create the adapter to get the text17:49
aelknerhoffman, could you please indulge me so that i don't have to pour over logs17:50
aelknerand type here what the text should be for the two cases?17:50
aelknerand is 'Limit to:' good enogh for the label since the hint would explain?17:50
hoffman"Limit to" is not as good.17:51
hoffmanI mean, it just depends on how much more of a problem it is.17:51
* hoffman shrugs.17:53
aelkneradding another adapter for the label is not much trouble17:56
aelknerso, 'Limit to group(s)' and 'Limit to type(s)'?17:56
hoffmanOK, so I'm going to be mostly around today and not tomorrow.17:58
hoffmanSo I'll need to get you guys set up with things to do.17:59
hoffmanI think the basic plan will be for aelkner to do more of these index views related to management, and replaceafill more the oddballs.17:59
hoffmanWhich he seemed to want.17:59
replaceafilli think i have enough for today18:00
replaceafillare we meeting until wednesday?18:00
hoffmanI won't be here tomorrow.18:01
hoffmanYou guys don't have to get up.18:01
hoffmanI'll send an email with a few more specific instructions.18:02
* hoffman drops the bag of gravel.18:02
hoffmanSee you Wednesday.18:02
aelknerwait, what's going on18:06
aelknerhoffman, you are not going to be around when?18:07
aelknersorry if you alreay told usd18:07
hoffmanmore or less tomorrow.  Mostly around today.18:07
aelkner+1 on me doing the managerment views and letting replaceafill do oddball stuff :)18:07
aelknerwhatever that means18:07
hoffmanYou don't even have to know.  ;-)18:09
replaceafillYes No18:11
replaceafilli'm going to push this change to trunk18:13
replaceafillchange pushed18:14
aelknerreplaceafill, i'll have to merge and resolve any conflicts18:17
replaceafillaelkner because of my change?18:17
replaceafilldont worry i dont think you're working on the same files i changed18:18
aelknerbtw, a problem with changing the fields in updateWidgets18:19
aelknerit only changes the text that comes out the second time you call up the view!18:20
aelknermaybe i need to call the base class second18:20
aelkneri'll try that18:20
aelknernope, it crashes then18:21
aelknerreplaceafill, i should probably do this in the view class attribute setting section18:22
aelknerright after fields=...18:22
replaceafillgo ahead18:22
aelkneri'm going to try that18:22
aelknerreplaceafill, damn, there isn't any context at that point18:25
replaceafillaelkner why don't you use a custom template :)18:27
replaceafillthat instead of widget/field/description uses something else18:27
replaceafillfor the p.hint18:27
aelkneryou mean clone the whole template?18:29
aelknerah, man, that's just not what i want to be doing, cloning 100 lines of pt to change one field18:30
aelknerbesides, what wold i put there anyway?18:31
aelknerif i'm going to bother fixing the problem, i'd prefer not to have to hack18:31
replaceafillforget it then18:32
aelknerit's probably the same amount of effort18:32
aelknerit's just weird how the change to the widget doesn't take the first time thourgh18:32
aelkneri mean, what's updateWidgets for anyway!18:32
aelkneri'm gond to troubleshoot some more in pdb18:34
replaceafillhoffman are we going to remove the required field markers (*)?18:36
hoffmanWhy would we?18:36
replaceafillit's just that we don't have the hint for what * means18:37
hoffmanWhy not?18:39
replaceafilli just probably want something like page 21 in the guidelines :)18:39
replaceafill* signifies a required field18:39
hoffmanSo why can't we have that?18:40
replaceafilland we could put it in the first fieldset18:40
hoffmanWe have it in the person forms.18:43
hoffmanDon't we?18:44
hoffmanOr just the asterix with no explanation?18:44
replaceafilljust asterix with no explanation18:44
hoffmanWe really can't just add it to the template?18:44
replaceafillthere's a space in the template for that but we don't use it18:45
replaceafill<div class="required-info">18:45
replaceafill          <!--<span class="required">*</span>18:45
replaceafill              &ndash; required -->18:45
replaceafill        </div>18:45
hoffmanI don't understand what I'm supposed to be saying in these conversations.18:45
hoffmanWhy aren't we using it?18:45
replaceafillno idea18:46
replaceafilli'll "activate" and style the space18:46
hoffmanOK then.18:48
aelkneryay!  i got it to work!18:49
aelknerweird how i have to change the widget label18:49
aelknerand the widget field description18:50
aelknerand not the widget field tile18:50
aelknerand eidget hint18:50
aelknerit's a little esoteric the way that works, but as long as the code works, i'm happy18:50
aelkneri'll push so you can look18:50
replaceafillesoteric as in.... hack?18:51
hoffmanreplaceafill:  It would be nice if it was above the group since it implies that it applies to the first group rather than the whole form, but I can live with it.18:52
hoffmanOr you could have it in each relevant group.18:53
replaceafill+1 on above the first group18:53
aelknercompate that to the person demos18:54
aelknerthe add edit views now have the right label/hint for limit keys18:54
aelknerif you think so, of course18:54
aelkneroh, and replaceafill's change for Yes/No is reflected in the instance as well18:55
hoffmanLooks good, but I did notice that the UWG put the checkbox items in a vertical list rather than on one row.18:56
replaceafillabove the fieldsets18:59
replaceafilland red asterix :)19:02
hoffmanOh... I guess the other way is good enough for the UWG, so move it back.19:03
hoffmanThese things require a little experimentation...19:03
replaceafillhoffman refresh19:05
replaceafillwhat do you think of the red *19:05
hoffmanGood.  Thanks.19:06
replaceafillk, will change the rest of the templates to use it19:06
aelknerreplaceafill, see how nice it is to not jump to cloning 100 lines of pt when just one line of python fixes it19:09
replaceafillaelkner where can i see your change?19:10
aelkneroh, i can merge it into trunk if you like19:10
aelknerlet me do that19:10
aelknerreplaceafill, pushed to trunk19:14
aelknerhoffman, when's your next break or are you already on it?19:15
hoffmanOh... inbetween.19:16
hoffmanWhat's up?19:16
aelkneri was just wondering if we cold discuss schooyears now19:16
hoffmanWhat's the question?19:17
aelknerfor Activate New Year, is it really necessary to have the user select what the new year is?19:17
aelkneri mean, the new year is always the newest time-wise19:17
aelknerso if the current year is set, then they add a new one19:17
hoffmanI'd rather have it be explicit.19:18
aelkneryou're saying we should make it possible for the user to activate a year that is five years ago?19:18
aelknerfor adding a school year, that doesn't need to be modal, right?19:19
aelknerwhen the user clicks on a schoolyear title, index.html view or edit.html?19:20
hoffmanwith edit pencil19:20
aelknerah, yes19:20
aelknerthat's all i need, thanks19:21
aelknerreplaceafill, when hoffman says he'd prefer the lst of limit keys to be one per line as per UGL19:21
aelknerwe would need to register a custom widget for select fields, right?19:22
replaceafillaelkner let me try to do it with css first19:22
aelknerah, that's an idea19:22
aelknerdo you have something in mind?19:22
replaceafillset display:block on that span19:23
aelknerok, i'll let you handle that then, thanks19:23
replaceafillbut have to test it first19:23
*** ignas has joined #schooltool19:52
*** menesis has quit IRC20:02
*** ignas has quit IRC20:34
replaceafillaelkner you there/20:42
aelknerreplaceafill, yes20:46
replaceafillah never mind :)20:47
replaceafilli just was going to ask you about the dialogs you've implemented20:47
replaceafillit's only preferences, correct?20:47
aelknerconfirm delete of person20:47
aelkneryeah, you needed another example, right?20:48
replaceafilli'm just checking i didnt break them with my change to the z3c form template20:48
aelkneryeah, don't do that :)20:48
replaceafillthey don't break :)20:49
aelknerso, you're adding css changes to it20:49
aelknerright, and you want to look at the visual appearance of all the forms20:50
aelknerare your changes only affecting modals20:51
replaceafillno, only non-modals20:51
aelknerok, let me know when you push20:51
replaceafillchange pushed, "Added required info message to forms"20:53
replaceafillyou should get a message in the first fieldset of your forms20:54
aelknerreplaceafill, see the trouble cloning caused you there?20:57
replaceafill3 changes instead of 120:58
aelknerand the fear of having missed one!20:58
replaceafilli have grep ;)20:58
aelknerthat's even more wasteful of time20:58
aelkneryeah, but20:58
replaceafillbut i get your point20:58
aelknerthe way i see it, it's always a balancing act, when to clone, when not to20:59
aelkneri think we should periodically consider expanding the capability of our base templates20:59
replaceafillbase class + base template21:00
aelknerto decrease, increasingly, the need for cloning21:00
aelkneryvl laid some good groundwork, so we just need to take advantage21:00
aelkneryes, the base classes hopefully are also helpful enough21:01
aelknerthat we could set everythoing up with zcml from time to time21:01
aelknerbut the templates are more important to avoid cloning that the view classes in my opinion21:01
aelknerthan the view classes, i meant21:01
replaceafillduplicate 100 lines of python code just to get fieldsets...21:02
aelknerwell, no21:02
aelkneri don't think it's bad to have to create a viewclass that does nothing more than derive from base21:02
aelknerand adding some @property or even a small method21:03
replaceafilli agree21:03
replaceafilli like that21:03
aelknerbut i think your point is when the methods get big enough21:03
aelknerthen they could also be put in base class21:03
aelknerif we are thoughful enough21:03
replaceafilli think we'll do it once we have tests in place21:04
replaceafillit's easier to clean repetitiion with tests21:04
aelknerthat is the ideal time to address it21:04
aelknerlet's hope that's soon21:04
aelknerreplaceafill, anyway, i'm curious about the diff21:06
aelkneryou moved extra-info and changed its css?21:06
replaceafillhere's the thing:21:07
aelknerdisplay: none21:07
replaceafillah, that's for dialogs21:07
aelkner.ui-dialog .ui-dialog-content form .required-info21:07
aelkneri see required-info in there21:07
replaceafillso, required-info now it's displayed in forms21:07
replaceafilljust to the right of the first fieldset21:08
aelknernow i'm confusing etra with required, sorry21:08
replaceafillyes, it's required-info21:08
replaceafillbut if you wonder why did i move it21:09
replaceafillit's because i can apply different css to it21:09
replaceafillif it's preceded by a div.status21:09
replaceafill.status ~ .required-info {21:09
replaceafill    top: 42px;21:09
replaceafillthat's the meaning of that rule21:10
replaceafill.status appears when you have an error in the form21:10
aelknerso the '-' means what exactly?21:11
replaceafillyou mean '~'21:11
aelknernext sibling?21:11
replaceafillno, any sibling21:11
replaceafillnext is '+'21:11
replaceafill.status + .required-info21:11
replaceafillmeans <div.status><div.required-info>21:12
aelknerand what is '~'?  what keyboard char is that?21:12
replaceafillleft to your 121:12
replaceafillbelow Esc :D21:12
replaceafill(i think that's the name)21:12
aelknermy font is real small, so i didn't even see it curve21:13
aelknerreplaceafill, btw, those are some tricky selectors you're laying on us21:16
aelkneri hope i'm the only one who thinks so :)21:16
replaceafilltricky? they're css2 ;)21:16
replaceafilli get worried when we use ccs3 :)21:17
aelknerreplaceafill, i noticed something about z3c_form_display.pt21:52
aelknerthat is, nobody is really using it21:53
aelkneri registered basicperson views that use it, but they are not reachable yet21:53
aelknerbecause clicking on the demo field brings up the edit view21:53
aelkneranyway, what do you think about using that macro?21:54
aelknerand did you discuss it at all with hoffman?21:54
aelknerwell, we have add/edit forms that you've worked on to get to look good21:55
aelknerbut you haven't had any views that use displayform21:55
aelkneri guess i'm just saying we would need to look at that if we decide to use dialyform for schoolyear21:55
aelknerand we should probably also put the pencil in that macro21:56
aelknerany object whose view is displayed via diaplayform would have a title21:56
aelknerand that title would have the pencil by it21:56
aelkneror maybe not, maybe the pencil just goes next to the first field21:56
aelknerwhich could be determined in the pt by using repleat/index21:57
aelknerah darn, one more time, repeat/index21:57
aelknerreplaceafill, are you looking at the macro now?21:58
aelknerdoes it make sense that there are input fields in a display macro?21:59
aelknerthey should just be spans or whatever the css selectors expect21:59
replaceafillinput fields?22:00
aelkneri'm using the macro, and i can change the title22:01
aelknerdisplayform is a weird concept when you think about it22:02
aelknerwhy would display only info need to go inside a <form> element22:02
aelkneraren't you looking at that?22:02
replaceafilli know that's what it does aelkner22:02
aelknerok, then waht was you question?22:02
aelknerand what do you think?22:03
replaceafillyou said display forms have input fields22:03
aelknerand you see them, right?22:03
aelkneractually, i see, you only see the widgets22:03
aelknerthey render as input fields22:03
replaceafillno they dont22:04
aelknerthat's what firebug shows22:04
replaceafilllook at the tal:replace and tal:content22:04
aelknerand as i said, i can change the data22:04
aelknerwhat line number?22:04
replaceafillyou sure you're using a z3c.form.DisplayForm?22:05
aelkneri'm using flourish.form.Form22:05
replaceafillwhich subclass....?22:05
aelknerperhaps we need flourish.form.DisplayForm22:05
aelknerlook at that file22:06
* replaceafill shrughs22:06
aelknerthat's the problem, it derives from z3c.form.Form22:06
aelknershruging is no help22:06
aelkneri could use some mutual interest in the problem and its solution22:07
replaceafillaelkner just change the mode of your subclass22:07
aelknerso we don't need DisplayForm?22:07
replaceafillsorry, i'm not interested in that problem, i'm not good at finding patterns and making generalizations22:07
replaceafillyou and yvl are the good ones for that22:08
aelknerok, fair enough22:08
replaceafilli usually apply a stinky hack, and once yvl comes with something better, i just change the implementation22:08
replaceafilljust happened with flourish.form.Form22:08
aelknerclever :)22:09
replaceafilland resource forms22:09
aelkneractually, i've done the same kind of thing in the past22:09
replaceafillmy only comment about display forms22:09
aelknerit's a good way to find out the right way22:09
aelkneronly problem is yvl is ot around22:09
replaceafillis that hoffman seems to be leaning to tables instead of divs22:09
replaceafillif you see the contact index view, you'll see the table macro of z3c.form22:10
aelkneryou see why i asked before?22:10
aelkneri knew you and hoffman had worked on thi before22:10
aelknerthat's why i was wondering what you did, so i could keep doing it22:11
replaceafillwe haven't22:11
replaceafilli decided to do it22:11
replaceafillas you always say, hoffman is not interested in low-level stuff22:11
aelknerindex.html ftml for IContact?22:11
aelknerindex.html for IContact?22:12
aelkneryou're suggesting cloning 100 lines of pt again are you?22:13
replaceafillif you can do the plumbing, go ahead ;)22:14
aelkneryou define a macro in an end of the line template22:14
aelknerhack, hack, hack......22:14
replaceafillwhen did cloning a template became hack?22:14
replaceafillwe've been hacking z3c.form the last 3 years then :)22:15
aelknerand this time around we were going to avoid that22:15
replaceafilldo we have a solution for that?22:15
aelkneryvl wanted the template structure to be easily overridden22:15
replaceafilland it is22:16
aelknerwe need our macros to work22:16
aelknernot clone them and change on line22:16
aelkneri tell you what, i have a solution22:16
aelknerrather than continue to pester you with this problem22:17
replaceafillgreat :)22:17
replaceafillyou're the plumber now that yvl is gone ;)22:17
aelkneri'll take it upon myself to change the dsiplayform macro to my pleasing22:17
aelknerand you can help make it look better with css afterwardsz22:17
aelknerok, i'll put on my plumber's hat22:19
replaceafillwe'll see how good of a plumber you are :D22:19
hoffmanIn all seriousness, copying templates is not a big deal.  Really.22:21
replaceafilli agree22:22
hoffmanOne thing I'd point out (which may or may not be relevant) is that having a lot of individual customized templates is not very costly.22:22
hoffmanHowever having, say, some kind of big crazy macro file which holds the customizations of many different pages is.22:23
aelknerhaving a code base that does the same thing wth 100 times the amount of code is crazy indeed22:24
aelknerthat's what unbridled cloning leads to, every time, take my word for it22:24
aelkneri've seen my share of codebases, and it's always the same thing22:24
aelknerand when it comes time to change one field in all views22:25
hoffmanIf each one equals a page, it is still manageable.22:25
hoffmanThat is the way the vast majority of web applications you've used were coded.22:25
hoffmanI'm not saying re-write SchoolTool in PHP, but really, custom form templates are not the end of the world.22:26
aelknerbad code is bad, and it's easy to write bad code22:26
aelknerjust throw it up on the screen and debug it as a colloegure once told me22:27
aelknerand nobody else in the entire 200 person organization would ever go near his code22:27
aelknergod forbid he should leave the company22:27
replaceafillmy motto: as long as it's tested22:27
aelknerwell, anyway, we already have a good macro system in place22:28
aelknerwe depend upon it to render our pages22:28
aelknerwe just need it to work the way we want22:28
aelknereach field type has a widget that supports its display22:29
aelknerthe form macros organize the widgets in a way that is consistent accreoss the entire application22:30
aelknerthat is good for the user22:30
aelknerthey get used to seeing things a certain way22:30
aelknerand if we need to change something important, like what replaceafill ust changed22:30
aelknerwe change it in the macro, and viola, automatically works everywhere22:31
aelknerand of, course, the user stilll sees the consistency22:31
replaceafilldamn! all evolution tests are broken :(22:35
aelknerall everything test are broken22:41
replaceafilli hope unit test weren't22:41
replaceafillhoffman do you mind if i put radio buttons also one per line22:49
replaceafill(like you want checkboxes)22:49
hoffmanI think it is preferable.22:49
replaceafillah ok, good then22:49
aelknerhoffman, how should a index.html view look in general for any object22:52
aelknerall pages have a title and subtitle22:52
aelknerso far i chose 'School Year' for the title (the dark header22:52
aelknerand the schooyear object's title for subtitle (the lighter header)22:53
aelknerthen there's the context space itself22:53
aelknereach object has a list of attributes that are defined as fields in the view class22:53
aelknerso for schoolyear, Title, First Day, Last Day22:53
aelknerluckily, we have widgets that render dates a certain way and regular test fields a certain way22:54
aelknerbut as far as how the row should go, do we want the each attribute's title above its widget's rendering22:55
aelkneri think that would probably be safer because some titles are long than others, so it would line up22:55
aelkneranother question is, where to put the pencil22:56
aelknerthe displayform macro has uses the view classes label if it defined, rendering it as an <h2> element22:57
aelkneri could put the pencil next to the label22:57
aelknerdo you think index.html views of objects should have a label in addition to the fields?22:58
aelknerfor now, i'll push my changes to my instance22:58
aelknerone sec22:58
hoffmanTables, aelkner.23:05
hoffmanLike in the person accordions.23:06
hoffmanI would be ok with the pencil being by the subtitle, if possible.23:07
aelknerwell, title and subtitle render above in big fonts, dark and light23:08
aelknerso we can't put the pencil there23:08
aelknerlooking at General Information, i see a partern23:08
aelknerthe objects' title is <h2> with a pencil nect to it23:09
aelknerand then first name and last name are rendered in the table as you prefer23:09
aelknerso i couls have the diaplyform work that way23:09
aelkneri'll try it out and haev you look23:10
hoffmanYes, you can do that.23:15
hoffmanOr try it at least.23:17
replaceafillvertical radios and checkboxes23:17
replaceafillyou were right, we need some kind of grouping for the access settings23:17
hoffmanreplaceafill, Did you get the evolution scripts done?23:21
replaceafillhoffman not entirely, i cannot test it23:21
hoffmanOK.  np for now.23:21
hoffmanaelkner is going to need tertiary navigation by year for groups, etc.23:22
replaceafillok, i'll start with that after the access control23:22
replaceafilllook those nice <hr /> :D23:23
hoffmanI guess that's a new viewlet or something?23:23
replaceafillwe'll need a new viewlet for third-nav23:23
replaceafilla viewlet manager23:23
hoffmanCan't you make each pair of permissions a fieldset?23:23
replaceafillwhat do i use for legends?23:24
hoffmanLike "Section Information"23:24
hoffmanit is pretty obvious.23:24
hoffmanList of Accounts...23:25
hoffmanUser Calendars23:25
hoffmanThe object in question.23:25
replaceafillthose will be hard coded though23:25
hoffmanCompared to what?23:26
replaceafillthe settings dont provide info about that23:26
replaceafillalthough, it has and indentifier...23:26
replaceafilllet me see something23:26
replaceafillthose are the keys i need ;)23:27
replaceafillok, making them fieldsets23:27
replaceafillcan you review the fieldset titles?23:43
replaceafillthey need to be improved23:43
hoffmanThey seem ok other than not using "leaders" for resources anymore.23:46
replaceafillthat's from zcml, right?23:47
* replaceafill goes look23:47
replaceafillhoffman fixed23:50
replaceafill'responsible parties'23:50
replaceafillk, pushing to trunk23:50

Generated by 2.15.1 by Marius Gedminas - find it at!