*** jelkner has quit IRC | 00:31 | |
*** alga has quit IRC | 02:37 | |
*** klausade has quit IRC | 03:31 | |
*** th1a has quit IRC | 05:43 | |
*** aks has joined #schooltool | 06:10 | |
*** aks has joined #schooltool | 06:10 | |
*** replaceafill has joined #schooltool | 08:46 | |
*** alga has joined #schooltool | 09:34 | |
*** alga has quit IRC | 09:54 | |
*** yvl has joined #schooltool | 11:00 | |
replaceafill | yvl do you have a moment after you drink your coffee? :) | 11:06 |
---|---|---|
yvl | sure replaceafill :) | 11:06 |
replaceafill | (asumming it's coffee time...) | 11:06 |
yvl | bullseye ;) | 11:07 |
replaceafill | i just want to report my "findings" on jquery-ui and have your suggestions | 11:07 |
yvl | please go ahead :) | 11:07 |
replaceafill | actually, i have more questions than findings | 11:08 |
yvl | gimme 5 mins to get more coffee | 11:09 |
replaceafill | ok | 11:09 |
replaceafill | yvl http://69.164.203.135:7080/schoolyears/2011/groups | 11:12 |
replaceafill | click New Group | 11:12 |
replaceafill | just a hack to see how those modal dialogs work | 11:12 |
yvl | looking... | 11:15 |
yvl | cool | 11:18 |
replaceafill | so, now that i know how the dialogs work, here are some questions: | 11:18 |
replaceafill | 1. how do we sync validation? | 11:18 |
replaceafill | we need client-side and server-side validations, right? | 11:19 |
replaceafill | we have the second | 11:19 |
replaceafill | all i can think of has remote calls involved | 11:19 |
yvl | I guess we should keep just the server-side validation | 11:20 |
replaceafill | me 2 | 11:20 |
replaceafill | but if the user doesn't fill the "title" for groups, he should receive the "required input missing" message, right? | 11:21 |
replaceafill | i mean, in the jquery dialog | 11:21 |
yvl | basically it should reload contnent of the dialog | 11:21 |
yvl | we will still need to style it with our CSS | 11:21 |
yvl | and an ability to display additional HTML there | 11:22 |
yvl | like labels, additional information text and so on | 11:22 |
replaceafill | ok, let me get it straight | 11:23 |
replaceafill | we have the typical add form | 11:23 |
replaceafill | (what we have now) | 11:23 |
replaceafill | z3c.form, etc | 11:24 |
replaceafill | we code this jquery-ui dialog | 11:24 |
replaceafill | in this case, add it to the groups container view | 11:24 |
replaceafill | and fill the "values": labels, input names, hints, from the z3c.form? | 11:25 |
yvl | maybe even the whole html content of the dialog | 11:26 |
yvl | think of it this way | 11:26 |
replaceafill | sure, i tried that | 11:26 |
yvl | say, we have 5 complex add forms in a page | 11:26 |
replaceafill | use the z3c.form macros | 11:26 |
* replaceafill listens | 11:26 | |
yvl | if we load them all (hidden) each time somebody looks at the page... | 11:26 |
yvl | I would prefer the "pre-loading" optional | 11:26 |
yvl | as in: click button, do http request, fill the dialog with response html | 11:27 |
replaceafill | ajaxy | 11:27 |
yvl | yes :| | 11:27 |
replaceafill | :( | 11:27 |
yvl | don't know how much trouble that is | 11:27 |
replaceafill | ok, i tried that | 11:28 |
replaceafill | create a z3c.form version of the add course form | 11:28 |
replaceafill | btw, these old zope.app.form.... :'''( | 11:28 |
yvl | I feel your pain | 11:28 |
replaceafill | anyway, i created a form with a template with only two macros | 11:28 |
replaceafill | the header and the widgets of the form | 11:29 |
yvl | it renders only <form>...</form>, right? | 11:29 |
replaceafill | yes | 11:29 |
replaceafill | but without the form buttons | 11:29 |
replaceafill | because those have to live in the jquery side | 11:29 |
replaceafill | for the dialog to work | 11:29 |
replaceafill | the problem there was that i couldnt find a way to submit the form | 11:30 |
replaceafill | a clean way | 11:30 |
replaceafill | but i tried to load the whole <form></form> tag | 11:31 |
replaceafill | maybe if i take only pieces could work | 11:31 |
replaceafill | including the "action" attribute of the form | 11:31 |
replaceafill | and setting that in the jquery-ui side | 11:31 |
yvl | by the way, maybe you can get away with "rendered" form buttons? | 11:32 |
replaceafill | i guess i just wanted your confirmation on my belief that we need to rebuild the form in the jquery-ui side | 11:32 |
yvl | and bind JS to them? | 11:32 |
replaceafill | i thought of that | 11:32 |
yvl | and skip jquery buttons altogether | 11:32 |
yvl | well, if we can avoid rebuilding the form on jquery side, we should | 11:33 |
yvl | if we can't, then I'm sad, but oh well - life goes on | 11:33 |
replaceafill | then we'd be using only modal dialogs, and not modal forms in jquery-ui | 11:34 |
replaceafill | :D | 11:34 |
yvl | that's also a reasonable option | 11:34 |
replaceafill | ok, i've confirmed my thoughts :) | 11:35 |
replaceafill | i'm going to try that today | 11:35 |
yvl | there's also that thing with pre-loading | 11:35 |
yvl | on one hand - it's nice to pre-load the forms | 11:35 |
replaceafill | ah, what did you mean by "optional" | 11:35 |
yvl | insta-feedback after clicking a button is cool | 11:36 |
yvl | on the other hand - extra payload each time people look at the page | 11:36 |
yvl | and we also need to keep in mind, that if page submits something ajaxy that changes the data model | 11:37 |
yvl | pre-loaded things should be reloaded | 11:37 |
yvl | so - extra pain | 11:37 |
replaceafill | yes | 11:37 |
yvl | umm, regarding "optional"... I think I said "option" :) | 11:38 |
replaceafill | well, that experiment i showed you is not so ajaxy, because it re-renders the groups page after submitting | 11:38 |
yvl | that is good | 11:38 |
yvl | it could re-render part of the page | 11:38 |
replaceafill | <yvl> I would prefer the "pre-loading" optional | 11:38 |
yvl | oh | 11:38 |
replaceafill | but im clear what you meant now | 11:38 |
yvl | yes, that ;) | 11:39 |
replaceafill | ah last thing | 11:39 |
replaceafill | the New Group button | 11:39 |
replaceafill | it's an action button | 11:39 |
replaceafill | and we have to bind the jquery stuff to it | 11:39 |
yvl | "$('div.content-nav a:first').click" made me giggle :) | 11:39 |
replaceafill | :P | 11:39 |
replaceafill | we need id's for those, right? | 11:39 |
yvl | good point | 11:40 |
yvl | I'll keep it in mind | 11:40 |
replaceafill | new navigationviewlet directive ;) | 11:40 |
yvl | basically when the action button is rendered in manager | 11:40 |
yvl | if it should also render it's own script somewhere | 11:41 |
yvl | that binds the click actions and so on | 11:41 |
replaceafill | :/ ? | 11:41 |
* yvl is talking to himself here :D | 11:41 | |
* replaceafill tries to interpret that | 11:41 | |
replaceafill | :D | 11:42 |
yvl | say we render a simple action button in the new UI | 11:42 |
yvl | somewhere in the page there should be javascript | 11:42 |
yvl | that says $('mynewactionbutton').click( .... | 11:42 |
yvl | that opens the pop-up dialog with something | 11:42 |
yvl | that something, by the way could be (for example) | 11:43 |
yvl | http://..../persons/add.html/@@js-popup | 11:43 |
replaceafill | view on view!?!? | 11:43 |
yvl | or 'http://.../persons/add.html/js-popup' | 11:43 |
yvl | the view can be traversable, why not? ;) | 11:44 |
*** aks has quit IRC | 11:44 | |
yvl | though I'm just throwing random ideas here | 11:44 |
* replaceafill trusts yvl's magic for this | 11:44 | |
yvl | no magic, just zope | 11:44 |
replaceafill | in the meantime i'll keep testing with :first, :last, n-child, etc | 11:44 |
replaceafill | ;) | 11:44 |
yvl | :D | 11:44 |
yvl | that was a nice hack, btw | 11:45 |
replaceafill | ok, i guess that's all i had | 11:45 |
replaceafill | thanks yvl | 11:45 |
replaceafill | i'll let you know how today's experimenting goes | 11:45 |
yvl | thanks replaceafill | 11:46 |
replaceafill | ah!!! | 11:46 |
replaceafill | last one! | 11:46 |
replaceafill | (i promise) | 11:46 |
replaceafill | the calendar widget | 11:47 |
replaceafill | the datepicker | 11:47 |
replaceafill | it has js translations files | 11:47 |
replaceafill | i noticed zc.datetimewidget has logic for knowing which translation file to use | 11:47 |
replaceafill | we will need something like that | 11:47 |
replaceafill | lang = self.request.locale.id.language | 11:48 |
replaceafill | lang = lang in LANGS and lang or 'en' | 11:48 |
replaceafill | if lang != 'en': | 11:48 |
replaceafill | # en is always loaded via the resourcelibrary, so that all | 11:48 |
replaceafill | # variables are defined in js | 11:48 |
replaceafill | # TODO: do not hardcode this | 11:48 |
replaceafill | langFile = '/++resource++zc.datetimewidget/'\ | 11:48 |
replaceafill | 'languages/calendar-%s.js' % lang | 11:48 |
replaceafill | langDef = "dateTimeWidgetLoadLanguageFile('%s');" % langFile | 11:48 |
replaceafill | else: | 11:48 |
replaceafill | langDef = '' | 11:48 |
replaceafill | oops | 11:48 |
replaceafill | sorry | 11:48 |
*** menesis has joined #schooltool | 11:49 | |
*** aks has joined #schooltool | 11:49 | |
replaceafill | again, i'll test and report :) | 11:49 |
yvl | I wonder if it has decent fallbacks from unknown languages | 11:50 |
replaceafill | it fallbacks to english | 11:50 |
replaceafill | if i say $(".date-field").datepicker($.datepicker.regional['km']); | 11:51 |
replaceafill | and the khmer file is not there, it displays english | 11:51 |
yvl | just out of curiosity, can it accept a list of preferred languages? | 11:51 |
replaceafill | :| | 11:51 |
yvl | 'km', 'ru', 'en' | 11:51 |
* yvl kind of got used looking at schooltool in 3-4 languages ;) | 11:52 | |
yvl | simultaneously :) | 11:52 |
replaceafill | ah?!?!? | 11:53 |
replaceafill | simultaneously? | 11:53 |
replaceafill | you mean changing the locale of the browser? | 11:53 |
yvl | well, I have a preferred list in FFox | 11:53 |
yvl | including Lithuanian, English, Russian and Khmer | 11:54 |
replaceafill | i've always looked for an extension that can switch between languages easily | 11:54 |
replaceafill | a firefox extension | 11:54 |
yvl | oh | 11:54 |
yvl | btw - schooltool's switcher is not good enough for you? ;) | 11:54 |
replaceafill | ?!?!? | 11:55 |
replaceafill | am i missing a feature?!?!? | 11:55 |
yvl | if you specify more than one language in schooltool.conf | 11:56 |
yvl | you get a small switcher near your login name | 11:56 |
replaceafill | yes...? | 11:56 |
yvl | lang en, ru | 11:56 |
replaceafill | ah?!?!?1 | 11:56 |
replaceafill | come on!!! | 11:56 |
replaceafill | really? | 11:56 |
yvl | you can select the language | 11:56 |
yvl | also! | 11:56 |
yvl | lang test, en | 11:56 |
yvl | try this one, you will like it ;) | 11:56 |
* replaceafill tries intantaneously | 11:56 | |
replaceafill | I DON'T F***ING BELIEVE THIS! | 11:58 |
replaceafill | i've been here for 2 years, started translating this stuff... | 11:58 |
replaceafill | and i just realized about this!?!?!? | 11:59 |
yvl | well, we are very good at documenting features ;) | 11:59 |
replaceafill | :D | 11:59 |
* replaceafill goes to be thinking "how is this possible?" | 11:59 | |
replaceafill | thanks for the tip | 11:59 |
replaceafill | :) | 11:59 |
replaceafill | well, bed time, see you yvl | 12:00 |
yvl | oh, and try the test translation | 12:00 |
yvl | you can reload it at http://localhost/schooltool/control/TranslationDomain.html | 12:00 |
replaceafill | so, test is an actual language? | 12:00 |
yvl | yes | 12:01 |
replaceafill | i thought you wrote as an example | 12:01 |
yvl | it shows translation domains! | 12:01 |
yvl | if you ever wondered if a string comes from gradebook or journal | 12:01 |
yvl | this is the thing to use | 12:01 |
* replaceafill cries his eyes out! | 12:01 | |
replaceafill | how long has this been around? | 12:02 |
replaceafill | since the beginning? | 12:02 |
yvl | since the last ice age :| | 12:02 |
replaceafill | :( | 12:02 |
yvl | I somewhat thought you knew | 12:02 |
replaceafill | well, better to find it later than never | 12:02 |
yvl | true :) | 12:02 |
yvl | well, good night to you :) | 12:02 |
*** replaceafill has quit IRC | 12:03 | |
*** aks has quit IRC | 12:33 | |
*** aks has joined #schooltool | 12:34 | |
*** aks has quit IRC | 12:59 | |
*** yvl has quit IRC | 13:00 | |
*** yvl has joined #schooltool | 13:01 | |
*** aks has joined #schooltool | 13:04 | |
*** aks has quit IRC | 14:20 | |
*** alga has joined #schooltool | 15:05 | |
*** th1a has joined #schooltool | 15:37 | |
*** th1a has quit IRC | 15:47 | |
*** th1a has joined #schooltool | 15:48 | |
*** alga has quit IRC | 17:17 | |
*** replaceafill has joined #schooltool | 17:55 | |
*** alga has joined #schooltool | 18:56 | |
th1a | 13 weeks until feature freeze! | 19:14 |
*** yvl has quit IRC | 19:22 | |
*** jelkner has joined #schooltool | 20:54 | |
*** fsufitch has joined #schooltool | 21:09 | |
fsufitch | aelkner: ping | 21:09 |
fsufitch | im here, but i havent had anything to eat yet today | 21:09 |
fsufitch | so i need to go grab a bit | 21:09 |
fsufitch | *bite | 21:09 |
aelkner | fsufitch, hey | 21:12 |
fsufitch | so, bbiab | 21:12 |
aelkner | i'll be here | 21:14 |
th1a | Hey aelkner. | 21:43 |
aelkner | th1a, hey | 21:49 |
th1a | How's it going? | 21:50 |
aelkner | fine, working on the section linkage during xls import | 21:50 |
fsufitch | aelkner: ping | 22:23 |
fsufitch | just got back | 22:23 |
fsufitch | got food and talked to dwelsh about some stuff that he needs us to do in the sprint this weekend | 22:23 |
aelkner | is he going to be around on Friday at 11:00? | 22:23 |
aelkner | also, could you please have him call me? | 22:24 |
fsufitch | he might be around | 22:27 |
fsufitch | he will *probably* be around | 22:28 |
fsufitch | ill go downstairs and have him call you | 22:28 |
aelkner | thanks | 22:28 |
replaceafill | th1a zyt? | 22:42 |
th1a | I'm just sitting here tweaking PIL cropping coordinates. | 22:42 |
replaceafill | :D | 22:42 |
replaceafill | you can get the exact form region in the screenshot? | 22:43 |
th1a | Thinking about how I'll still have to redo this again. | 22:43 |
th1a | I have some standard coordinates at this point and tweak from there. | 22:43 |
replaceafill | http://69.164.203.135:7080/schoolyears/2011/courses | 22:43 |
replaceafill | if it appears in spanish you can change the language next to the log out button | 22:44 |
* replaceafill learned that last night! | 22:44 | |
th1a | I let Google do it. :-D | 22:45 |
replaceafill | :)) | 22:45 |
replaceafill | so, there's a forth button | 22:45 |
replaceafill | New Course (Popup) | 22:45 |
replaceafill | click on it and then Add | 22:45 |
replaceafill | you will see validation take place inside the form | 22:46 |
replaceafill | without reloading the page | 22:46 |
replaceafill | and if you change the language of the app to spanish | 22:46 |
replaceafill | everything works in spanish also | 22:46 |
replaceafill | there's no client-side validation | 22:46 |
replaceafill | it's server-side, and refreshed using jquery's post mechanism | 22:47 |
th1a | OK... I was interrupted. | 22:47 |
th1a | This is another good reason to tone down the boxes. | 22:48 |
replaceafill | :) | 22:48 |
th1a | Yeah, that's fine. | 22:49 |
th1a | This could get rid of a lot of our dead ends. | 22:50 |
replaceafill | we should definitely consider to move older forms to z3c.form | 22:50 |
* replaceafill has a love/hate relationship with z3c.form... | 22:50 | |
th1a | z3c.forms would work better with the pop-ups? | 22:51 |
replaceafill | yes, because you can use the same class to render the whole html page or just the form tag | 22:51 |
th1a | This looks like the right way to do it. | 22:51 |
replaceafill | that example is using only the form tag | 22:51 |
th1a | What other gotchas are there? | 22:51 |
*** jelkner has quit IRC | 22:52 | |
replaceafill | not many really, because all the logic is in a python class | 22:52 |
replaceafill | less javascript | 22:52 |
replaceafill | if you see, it's only a dialog | 22:52 |
replaceafill | not a form dialog | 22:52 |
replaceafill | i mean, jquery-ui | 22:52 |
th1a | Ah... nice. | 22:53 |
replaceafill | so, we dont worry about synching translations, etc | 22:53 |
replaceafill | i have to refine it, but that's the direction i guess | 22:54 |
th1a | It seems very doable. | 22:54 |
th1a | We've used z3c.forms in new development for a while, right? | 22:54 |
replaceafill | yes, since our 2009 sprint | 22:55 |
replaceafill | well, before, but that date i remember ;) | 22:55 |
th1a | So everyone knows how to write them. | 22:55 |
replaceafill | i think so | 22:55 |
th1a | It doesn't seem like a lot of new stuff to learn. | 22:55 |
replaceafill | yvl made some points during the sprint why it's hard to work with it, but it's still a powerful library | 22:55 |
replaceafill | no, just the javascript parts | 22:56 |
th1a | Which is actually pretty minimal. | 22:56 |
replaceafill | ah, last night i told yvl we also need to be able to mark the action buttons | 22:56 |
replaceafill | in that example i'm saying "add this behaviour to the forth button" | 22:57 |
replaceafill | we need id's or something on them | 22:57 |
th1a | Well, yes, those need love anyhow. | 22:57 |
replaceafill | yes and i think yvl has an idea on how to do it | 22:57 |
replaceafill | next, i'll experiment with the datepicker and it's translations | 22:58 |
replaceafill | if that's ok | 22:58 |
th1a | Would you go so far as to say Zope's form machinery is actually helping us in this case? ;-) | 22:58 |
replaceafill | again, love/hate :P | 22:58 |
replaceafill | love it for this | 22:58 |
replaceafill | hate it when i try to do subforms! | 22:59 |
th1a | Right, but it is giving us *something* to love here. | 22:59 |
replaceafill | yep | 22:59 |
replaceafill | ok, back to work | 22:59 |
th1a | Thanks! | 22:59 |
replaceafill | i'll have to check the cambodia error too | 23:00 |
th1a | Can you post a branch or mail a diff for that dialog? | 23:00 |
th1a | To the developer list? | 23:00 |
replaceafill | ah, yes i'll push my two examples (groups and courses) and tell the story of what i've done | 23:01 |
th1a | Thanks! | 23:01 |
th1a | replaceafill: A completed image update -- http://book.schooltool.org/htmlhelp/courses.html | 23:04 |
replaceafill | !! those images are generated with your script? | 23:04 |
th1a | um... yes? | 23:04 |
replaceafill | cool! | 23:05 |
* replaceafill notices the number of questions about schooltool is increasing :) | 23:07 | |
th1a | Yes. | 23:07 |
th1a | This is a difficult one. | 23:08 |
*** alga has quit IRC | 23:41 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!