*** aks has joined #schooltool | 06:21 | |
*** aks has joined #schooltool | 06:21 | |
*** th1a has quit IRC | 07:11 | |
*** aks has quit IRC | 14:18 | |
*** replaceafill has joined #schooltool | 16:15 | |
*** th1a has joined #schooltool | 16:29 | |
th1a | hi yvl, aelkner, replaceafill. | 16:31 |
---|---|---|
th1a | Is menesis on vacation? | 16:31 |
replaceafill | good morning/afternoon | 16:31 |
aelkner | morning | 16:31 |
yvl | good morning! | 16:32 |
yvl | yes, th1a | 16:32 |
th1a | Thanks yvl. | 16:32 |
yvl | sorry, I guess we missed some communication again | 16:32 |
th1a | np. | 16:32 |
th1a | yvl: How was your day? | 16:33 |
yvl | very productive, thanks | 16:33 |
yvl | it was a plumbing day, but I finished what I wanted | 16:33 |
yvl | I guess I need to update you guys on what has changed and how to use it | 16:34 |
yvl | as I'm away on vacation until 13th I think | 16:34 |
aelkner | well, then definitely, yes | 16:34 |
yvl | also, I'm taking a day off tomorrow, but I'll be available at meeting time | 16:35 |
yvl | so, please update your branches and let's go over some code | 16:35 |
aelkner | ok, my branch is updated | 16:36 |
yvl | cool | 16:36 |
yvl | replaceafill, are you in a semi-alive state? | 16:36 |
replaceafill | yvl, better than yesterday :) | 16:37 |
yvl | or in other words, are you feeling better? :) | 16:37 |
yvl | good to hear! | 16:37 |
replaceafill | i had 38.8 temperature yesterday :( | 16:37 |
yvl | ouch! | 16:37 |
replaceafill | but i'm alive ;) | 16:37 |
replaceafill | go ahead yvl | 16:37 |
yvl | first, skin.flourish.from gained Dialog and DialogForm base classes | 16:38 |
yvl | Dialog is for porting old formlib forms to modal dialogs | 16:38 |
yvl | DialogForm is for porting z3c.form forms to modal dialogs | 16:38 |
yvl | so, the most basic usage: person preferences form | 16:39 |
yvl | schooltool.person.browser.person.FlourishPersonPreferencesView | 16:39 |
yvl | you can see dialog_submit_actions | 16:40 |
yvl | and dialog_close_actions | 16:40 |
yvl | these are lists of z3c.form buttons, that you want to behave "ajaxy" | 16:40 |
yvl | *_close_actions will make the buttons simply close the dialog on click | 16:40 |
yvl | without sending a request to the server | 16:40 |
yvl | dialog_submit_actions will, well, submit the form | 16:41 |
yvl | and load the result into modal dialog | 16:41 |
yvl | you may choose to omit some buttons from those lists | 16:41 |
yvl | if you do, it will work like simple form buttons: | 16:42 |
yvl | submit the form and reload everything (the page) | 16:42 |
yvl | also | 16:42 |
yvl | this preferences dialog is quite interesting: | 16:42 |
yvl | we do not want to reload the parent page after hitting "apply" | 16:42 |
yvl | because preferences do not change any content on person index page | 16:43 |
yvl | so, I added to the "apply" action | 16:43 |
yvl | self.reload_parent = False | 16:43 |
yvl | the base class does some magic | 16:44 |
yvl | if you use self.request.response.redirect() in your form | 16:44 |
yvl | it detects that and reloads the *whole page* | 16:44 |
yvl | but - if you specify self.reload_parent = False, it reloads only the dialog | 16:44 |
yvl | and then there is one more interesting thing | 16:45 |
yvl | after we hit apply, and process the form successfully, we want to close the modal dialog | 16:45 |
yvl | so, we add self.ajax_settings['dialog'] = 'close' | 16:46 |
yvl | self.ajax_settings['dialog'] is basically the same dict you pass to jquery ui dialog | 16:46 |
yvl | please look briefly at | 16:47 |
yvl | skin/flourish/form.py | 16:47 |
yvl | Dialog.initDialog() | 16:47 |
yvl | self.ajax_settings currently passes these settings to the $.ajax callback: | 16:48 |
yvl | ajax_settings['html'] - calculated automatically, no need to set that manually - this is the new html to be put in modal dialog | 16:49 |
yvl | ajax_settings['dialog'] - this is the manually set dict to be passed to: $(form).dialog() | 16:49 |
yvl | so you can control exciting things, like | 16:49 |
yvl | ajax_settings['dialog']['title'] = u'Hello world!' | 16:50 |
yvl | ajax_settings['dialog']['width'] = 512 | 16:50 |
yvl | finally, it also has autmatic ajax_settings['redirect'] | 16:50 |
yvl | if you set it (or it is set by self.request.response.redirect() and self.reload_parent == True) | 16:51 |
yvl | the modal dialog will reload the whole page to the location specified there | 16:51 |
yvl | ok | 16:52 |
yvl | now, to the timetabling wizard | 16:52 |
yvl | (I kept it as a dialog for now) | 16:52 |
yvl | (to be used as an example of porting, until I get back from vacation :) ) | 16:52 |
yvl | if you looked at timetable/browser/ttwizard.py | 16:53 |
yvl | FlourishTimetableWizard | 16:53 |
yvl | you could see, that apart from viewstate magic (that is uset to simulate getSession) - and please ignore that part | 16:54 |
yvl | apart from that, it's modal behaviour is done by two things | 16:54 |
yvl | inherit from flourish.form.Dialog (it's an old non-z3c form) | 16:54 |
yvl | and def updateDialog | 16:55 |
yvl | where it changes the modal dialog's width | 16:55 |
yvl | and since it is an old form | 16:55 |
yvl | the buttons are rendered in templates, manually | 16:56 |
yvl | like | 16:56 |
yvl | templates/f_ttwizard_first.pt | 16:56 |
yvl | <input type="submit" ... onclick="return ST.dialogs.submit(this, this);" /> | 16:56 |
yvl | and the final change | 16:56 |
yvl | I made a SimpleModalLinkViewlet | 16:57 |
yvl | you cannot specify the dialog_title to it now | 16:57 |
yvl | (simply it was not enough time) | 16:57 |
yvl | but | 16:57 |
yvl | it shows off the new ST API feature: | 16:58 |
yvl | if you have a link, that has an HTML id set | 16:58 |
yvl | you can do this to call up a modal dialog: | 16:58 |
yvl | <a id="my_unique_id" href="something/modal_form_link.html" onclick="return ST.dialogs.open_modal_dialog(this);" > Link </a> | 16:59 |
yvl | simple as that | 16:59 |
th1a | aelkner, replaceafill: You guys following this? | 16:59 |
replaceafill | th1a kind of (lots of things to digest) :) | 17:00 |
yvl | well, that's the news :) | 17:00 |
yvl | yes | 17:00 |
yvl | but I wanted to put them on IRC | 17:00 |
yvl | so you could at least look at the logs | 17:00 |
aelkner | yeah, i wold need time to look over the code, but the explanation helps | 17:00 |
aelkner | yvl, so the idea is not to have to write much js, right? | 17:01 |
yvl | yes! | 17:01 |
aelkner | that's good | 17:01 |
yvl | also - so we could control the dialog from the python forms | 17:01 |
yvl | those simplest settings | 17:01 |
yvl | like width and so on | 17:01 |
replaceafill | no more title hacks :) | 17:01 |
yvl | also to have working form validation and so on :) | 17:01 |
aelkner | since we usually would need the same type of blcks of js, this deinitely helps | 17:01 |
yvl | replaceafill, only the big hacks from now on! | 17:02 |
yvl | unless I forgot something | 17:02 |
yvl | making a form modal should be way easier now | 17:03 |
th1a | I guess today would be a good time to do some gratuitous dialogs. | 17:03 |
yvl | yes | 17:03 |
th1a | for aelkner. | 17:03 |
yvl | or at least to try out one modal dialog with form validation | 17:03 |
th1a | Yes. | 17:03 |
yvl | replaceafill - if you manage, please just take a short look at this before tomorrow | 17:04 |
yvl | just a brief one :) | 17:04 |
replaceafill | yvl will do | 17:04 |
yvl | also - stepping over JS with firebug may help | 17:05 |
yvl | flourish.js is not very big | 17:05 |
yvl | and hopefully - readable | 17:05 |
aelkner | yvl, i'm assuming th1a is going to give me a modal dialog task, so i'll email you if i have a question | 17:05 |
yvl | sure! | 17:05 |
th1a | OK. | 17:06 |
th1a | replaceafill: Can you give aelkner a quick primer on using the jquery icons? | 17:06 |
* yvl would like to run off early today, if you guys are ok with it | 17:07 | |
replaceafill | th1a ah sure | 17:07 |
th1a | Also, for all of you, we should replace all the LP icons with jquery ones. | 17:07 |
th1a | For the sake of consistency. | 17:07 |
yvl | right | 17:07 |
replaceafill | yvl in which package is your image column getter? | 17:08 |
replaceafill | i dont remember right now... | 17:08 |
yvl | schooltool.table.table | 17:09 |
yvl | ImageInputColumn | 17:09 |
replaceafill | resourceDirectory's are also registered like adapters on request, correct? | 17:10 |
replaceafill | i ask this because jquery-ui directory is registered like one | 17:10 |
yvl | I think so | 17:10 |
yvl | I'm not sure about "deep" folders though | 17:11 |
replaceafill | right | 17:11 |
yvl | never tried any | 17:11 |
replaceafill | it's just that i'd like to use the jquery icons without the extra markup jquery ui needs | 17:11 |
replaceafill | like inserting empty spans with appropriate classes | 17:11 |
yvl | you can make copies of them | 17:11 |
yvl | the images | 17:12 |
replaceafill | right | 17:12 |
yvl | if you need to of course | 17:12 |
replaceafill | correct | 17:12 |
* yvl didn't look at that either :) | 17:12 | |
* aelkner takes a quick break, please go on | 17:12 | |
replaceafill | ok, i'll look into that | 17:13 |
yvl | it should "just work" IMHO | 17:13 |
yvl | or you can copy them to a decent place and make them "just work" ;) | 17:13 |
yvl | right... | 17:14 |
yvl | so - anything else you guys need from me today? | 17:14 |
replaceafill | not me, thanks yvl | 17:14 |
* aelkner is back | 17:15 | |
aelkner | i can't think of anything, but then again, i haven't had a chance to digest anything :) | 17:16 |
yvl | right | 17:16 |
aelkner | but your timetable dialogs work, right? | 17:16 |
yvl | yes | 17:17 |
yvl | and the person preferences dialog also | 17:17 |
aelkner | so they should provide ample examples | 17:17 |
aelkner | between replaceafill and myself, we should be able to work it out | 17:17 |
yvl | I hope so | 17:17 |
* yvl is quite confident in you guys :) | 17:18 | |
aelkner | your confidence is inspirational :) | 17:18 |
yvl | :D | 17:18 |
yvl | I think we'll chat more on this tomorrow | 17:18 |
aelkner | definitely | 17:19 |
yvl | *if* you have questions - it may as well be quite straightforward | 17:19 |
yvl | th1a... so... is there some spare gravel by any chance? ;) | 17:20 |
th1a | you are excused, yvl. | 17:20 |
yvl | thanks, th1a | 17:20 |
yvl | see you guys tomorrow! | 17:20 |
aelkner | thanks yvl | 17:20 |
aelkner | cya then | 17:20 |
th1a | replaceafill: I need your invoice today. | 17:22 |
th1a | Whether or not you're able to do any other work. | 17:22 |
replaceafill | th1a will send it right away | 17:22 |
th1a | aelkner: What's your status now? Ready for something new? | 17:23 |
aelkner | that's p to you, do you consider my previous task as completed? | 17:24 |
aelkner | it's loaded in my instance | 17:25 |
aelkner | if so, i would suggest a modal dialog task | 17:26 |
th1a | Well, let's change the icons before we go any further. | 17:26 |
th1a | Just to have that squared away. | 17:26 |
th1a | make the 'x' into a jquery check box. | 17:26 |
aelkner | replaceafill, can you explain what th1a means by tat? | 17:27 |
replaceafill | th1a can i take that task? | 17:27 |
aelkner | is there an example i can look at? | 17:27 |
aelkner | th1a, perhaps that would be best | 17:27 |
th1a | OK, replaceafill can do it. | 17:27 |
replaceafill | thanks | 17:27 |
th1a | Change the delete icon too. | 17:27 |
replaceafill | i mean, since we're chaning all the icons | 17:27 |
replaceafill | in all the views | 17:27 |
th1a | In both person and resource "demographics." | 17:28 |
replaceafill | and the pencil too, right? | 17:28 |
th1a | Oh... | 17:28 |
replaceafill | .ui-icon-pencil | 17:29 |
th1a | Let's not change the pencil yet. | 17:30 |
replaceafill | ok | 17:30 |
th1a | I don't like that pencil as well. | 17:30 |
th1a | I think it would need to have a circle added or something. | 17:30 |
th1a | aelkner: Is the terminology we use for resources "types?" | 17:31 |
aelkner | where? | 17:31 |
th1a | What are location/equipment/resource? | 17:31 |
th1a | Types? | 17:32 |
aelkner | i suppose we should call then that | 17:32 |
aelkner | as it is, they are interfaces | 17:32 |
aelkner | but that is not interesting to you | 17:32 |
aelkner | and all resources have subtypes | 17:32 |
aelkner | so yes, let's call them types | 17:32 |
th1a | Types and subtypes? | 17:32 |
aelkner | ok, so the types are fixed by us | 17:33 |
aelkner | because we define the separate interfaces and those drive the views | 17:33 |
aelkner | the subtypes are for the user | 17:33 |
aelkner | so that they can sub-devide the resources into subtypes | 17:33 |
th1a | Subtypes is actually probably clearest. | 17:33 |
aelkner | but i don't now why the user wants that as yet | 17:34 |
aelkner | so you? | 17:34 |
aelkner | do you? | 17:34 |
aelkner | actually, now i remember something | 17:34 |
th1a | Well, all of resources is stuck at the point of being not *quite* useful. | 17:34 |
th1a | ALMOST. | 17:34 |
th1a | Not quite. | 17:34 |
th1a | But if you were tracking resources, you'd eventually want to filter by subtype, cameras, computers, etc. | 17:35 |
aelkner | i remember subtypes being something the user defined at the time of adding a resource | 17:35 |
aelkner | th1a, right | 17:35 |
aelkner | so in reports or something it becomes useful | 17:35 |
th1a | OK, so anyway thse resource attribute add and edit forms should substitute "type" for "groups" in the limit part. | 17:36 |
aelkner | th1a, ok, but if you are having replaceafill work on resources, i think now would be | 17:36 |
th1a | Actually, can we just get rid of subtype and let people add their own selection field? | 17:37 |
aelkner | a good time to split me off onto somthing unrelated | 17:37 |
th1a | aelkner: Switch the damn terminology and then you're done. | 17:37 |
th1a | OK? | 17:37 |
aelkner | ok | 17:37 |
th1a | But the larger question for resources is how are these equipment fields defined now? | 17:38 |
th1a | They aren't actually custom attributes, right? | 17:39 |
replaceafill | th1a you mean the subtypes? | 17:39 |
aelkner | no, he means the types | 17:39 |
th1a | LIke "manufacturer" | 17:39 |
aelkner | yes, each interface has different attribites | 17:39 |
aelkner | right | 17:39 |
th1a | So really, we should have a evolution script to port existing instances to have these as "custom demographics" fields. | 17:40 |
th1a | replaceafill can do this. | 17:41 |
replaceafill | i like that idea :) | 17:41 |
replaceafill | of using custom attributes for that | 17:41 |
th1a | In new instances there should just be Title and Description (as text area). | 17:42 |
th1a | If people want the other stuff in the future they can add it themselves. | 17:42 |
aelkner | so, preset demos for resources like we have for persons | 17:42 |
th1a | I think Title and Descriptions as the only new ones by default is fine. | 17:43 |
th1a | We just can't disappear the old ones in existing instances. They need to be ported. | 17:44 |
aelkner | ah, yes, makes sense | 17:44 |
th1a | That should be enough for a sick man, replaceafill. | 17:44 |
replaceafill | :D | 17:45 |
aelkner | th1a, so you want me to change the interface for demo fields so that the form says type instead of group, yes? | 17:45 |
aelkner | Limit to group(s) -> Limit to type(s)? | 17:45 |
aelkner | If you select one or more groups below, this field will only be displayed in forms and reports for | 17:46 |
aelkner | members of the selected groups | 17:46 |
aelkner | i'm not sure if substituting type for group there makes sense | 17:46 |
aelkner | we would need to restate that sentence | 17:46 |
th1a | "for resources of the selected types." | 17:47 |
aelkner | the interface is not defined for resources | 17:47 |
aelkner | so the sentence has to make sense for persons and resources | 17:47 |
aelkner | and whatever other object we add demos to in the future | 17:47 |
th1a | Grr... | 17:48 |
th1a | See, these abstractions that damage the UI are not helpful. | 17:49 |
th1a | We're at best saving hypothetical developer time at the expense of users. | 17:50 |
th1a | And I don't think we're saving developer time. | 17:50 |
aelkner | you make it sound like i decided to add an abstraction that was unnecessary | 17:52 |
aelkner | but i didn't, the abstraction was created when we only had demos for persons | 17:52 |
aelkner | then we decided to add demos to resources | 17:52 |
aelkner | we didn't feel the need to clone IFieldDescription at that point | 17:52 |
aelkner | just to change some text that would appear on a form | 17:53 |
th1a | OK, so how can we change this text? | 17:53 |
aelkner | Do you really want me to change many lines of code in many places just to | 17:54 |
aelkner | avoid coming up with a general term for the user to understand types? | 17:54 |
aelkner | i think we could save time just thinking this out anyway | 17:54 |
aelkner | what about demos for all objects? | 17:54 |
aelkner | what would the text be for app demos | 17:54 |
aelkner | do we need to clone IFieldDescription each time we add demos to other objects? | 17:55 |
aelkner | i recommend investing the time coming p with a general set of terms for the user | 17:55 |
th1a | Should we subclass IFieldDescription and override the text? | 17:55 |
th1a | No... the problem isn't coming up with a better abstraction. | 17:56 |
aelkner | let me look at code a sec.... | 17:56 |
th1a | It is being able to modify the text to be helpful to the user in each specific case. | 17:56 |
aelkner | well, we have a number of views that are written to handle adding IFieldDescription | 17:58 |
aelkner | objects to IDemographicsFields containers | 17:58 |
aelkner | class IResourceDemographicsFields(IDemographicsFields): | 17:58 |
aelkner | that exists so that we can have two different container views, one for person demo fields | 17:59 |
aelkner | and one for resource demo fields | 17:59 |
aelkner | for the /demographics and /resource_demographics views | 18:00 |
aelkner | but we don't subclass IFieldDescription | 18:00 |
aelkner | and all the views for adding those objects to their containers already work as they are | 18:00 |
aelkner | there was no need to subclass there | 18:00 |
aelkner | if we were to, we would need to create a whole new set of views | 18:01 |
aelkner | it seems like a lot of wasted effort to change text in one form | 18:01 |
aelkner | we could hack the form | 18:01 |
aelkner | to programatically override the widget text based on the container that we are adding/editing the demo field for | 18:02 |
th1a | But we're really talking about a whole new set of really simple views, right? | 18:02 |
aelkner | and an evolution script to change all IFieldDescription objects to IResourceFieldDescription | 18:03 |
aelkner | again, i don't see the use of it | 18:04 |
th1a | The purpose is to make the application clear to users. | 18:04 |
aelkner | yeah, so let's make the sentence clear and be done with it | 18:05 |
aelkner | one line of code to change in iinterfaces.py | 18:05 |
aelkner | instead of saying 'member of group' | 18:05 |
aelkner | say, 'type of object'? | 18:05 |
th1a | No... that's the point. | 18:05 |
aelkner | type of (fill in object name) | 18:06 |
aelkner | so type of person | 18:06 |
aelkner | type of resource | 18:06 |
aelkner | see, student, teacher, admin is not a flexible group list | 18:06 |
aelkner | it's really a type of person | 18:06 |
aelkner | the toehr groups that uses can set up for clubs, etc. | 18:07 |
aelkner | are not even relavent to demos | 18:07 |
aelkner | so what's the harm in saying type of person? | 18:07 |
th1a | How would you implement that? | 18:08 |
aelkner | type of resource | 18:08 |
aelkner | hack the form | 18:08 |
aelkner | i think i can update the widget text | 18:09 |
th1a | If you can do that you can also just have it select "group" vs. "type" too, right? | 18:09 |
aelkner | so in the case of persons, it wold still be group, but for resources (or other objects) it would be type | 18:10 |
aelkner | is that you would want? | 18:10 |
th1a | Sure. | 18:10 |
aelkner | ok, let me try that then | 18:10 |
th1a | OK. | 18:11 |
aelkner | but can we discuss my next task now | 18:11 |
aelkner | something to do with modal dialogs | 18:11 |
aelkner | so that i have questions for yvl tomorrow | 18:11 |
th1a | OK, looking... | 18:12 |
th1a | Of course now I won't be able to think of one... | 18:13 |
th1a | how about /calendar/add.html ? | 18:14 |
th1a | That's one that feels like it should be modal. | 18:14 |
th1a | But it is a little extra-complicated. | 18:15 |
aelkner | sorry, can we pick something that doesn't involve timetables? | 18:15 |
th1a | There's lots in the gradebook, but we probably need some kind of rudimentary basic gradebook view first. | 18:15 |
th1a | Can you hack that in quickly? | 18:15 |
th1a | Just move the action buttons to the sidebar? | 18:16 |
aelkner | sorry, again, i'm not being helpful, but that task is also going to take away from groking the modal stuff | 18:16 |
aelkner | can't we do something for course/section? | 18:17 |
th1a | We still need those basic views right? | 18:17 |
aelkner | something where the other parts of the problem don't introduce complexity on their own | 18:17 |
th1a | I'm not really seeing low-hanging fruit. | 18:18 |
aelkner | bummer | 18:18 |
aelkner | we could think about this another way | 18:18 |
aelkner | perhaps i don't need to worry about modals for now | 18:18 |
aelkner | if that's the case, i can work on any task you like and not worry about groking the modal stuff | 18:19 |
aelkner | i could shift my focus to the gradebook, for instance | 18:19 |
th1a | No... | 18:19 |
th1a | Let's go through the manage pages. | 18:20 |
aelkner | what about course container vew? | 18:20 |
aelkner | \we don't have that yet | 18:20 |
aelkner | that would probably involve links for modals | 18:20 |
aelkner | granted, we don't have a schoolyear view yet | 18:20 |
replaceafill | th1a http://69.164.203.135:6660/demographics | 18:20 |
th1a | Do we have /years? | 18:21 |
replaceafill | (sorry to interrupt) | 18:21 |
aelkner | th1a, perfect /schooyears | 18:21 |
aelkner | add schoolyear | 18:21 |
aelkner | that would be a modal, right? | 18:21 |
th1a | Well, it could be. | 18:22 |
th1a | Doesn't really need to be. | 18:22 |
th1a | OK. | 18:23 |
th1a | School years. | 18:23 |
aelkner | it's cetainly a good task in its own right | 18:23 |
th1a | - make it a table | 18:23 |
aelkner | forget the modal links? | 18:24 |
th1a | - move "delete" to an action on the year itself -- you can do a confirmation dialog for that. | 18:24 |
aelkner | are you saying have the delete pencil in the schoolyears view next to each year? | 18:25 |
aelkner | and have that call up the modal confirmation dialog? | 18:26 |
th1a | For one delete is not a pencil. | 18:26 |
aelkner | well, the icom that we have in person container view | 18:26 |
th1a | I am saying it is an action in the sidebar (under "Action") on the view of the year itself. | 18:26 |
aelkner | oh | 18:26 |
th1a | All these deletes on the containers are in the wrong place, essentially. | 18:27 |
th1a | Well, most. | 18:27 |
th1a | In the wrong place for things you rarely delete. | 18:27 |
th1a | It can just be an action on the object, not the container. | 18:27 |
th1a | (from the user's perspective, at least) | 18:28 |
aelkner | how does one call up the persons view? | 18:28 |
aelkner | i tried localhost7080:/persons: | 18:28 |
aelkner | but it says the page is not found | 18:28 |
aelkner | wait, it works in the demo instance | 18:29 |
aelkner | ok, never mind, i'm at the person view | 18:30 |
replaceafill | th1a is this checkbox ok? http://69.164.203.135:6660/demographics | 18:30 |
th1a | http://localhost:7080/persons | 18:30 |
aelkner | no delete icon like i thought for some reason | 18:30 |
th1a | replaceafill: Yes. | 18:30 |
aelkner | no delete or hide of person, either | 18:30 |
replaceafill | th1a there's another checkbox with a circle around | 18:30 |
th1a | replaceafill: Can we center that? | 18:30 |
th1a | No circle here. | 18:30 |
replaceafill | ok | 18:31 |
th1a | aelkner: Yeah, we need to do the same thing in person. | 18:31 |
aelkner | th1a, so, we need to add a Delete link to the Actions section when viewing a particular person | 18:32 |
aelkner | ? | 18:32 |
aelkner | with confirmation dialog? | 18:33 |
th1a | Yes. | 18:33 |
aelkner | that would be a perfect task | 18:33 |
aelkner | it wold get me quickly to groking the modal stuff | 18:33 |
th1a | OK. | 18:33 |
aelkner | can we leave the demo field help task until tomorrow so i can discuss the best way | 18:34 |
aelkner | to handle that with yvl? | 18:34 |
th1a | OK. | 18:34 |
th1a | You can also start on /schoolyears | 18:34 |
th1a | Don't do the activate school year part yet though. | 18:35 |
aelkner | well, adding the delete link to person view is first, right? | 18:35 |
th1a | Just get the basic table and link view in. | 18:35 |
th1a | Sure. | 18:35 |
aelkner | that should keep me busy | 18:35 |
th1a | OK. | 18:36 |
th1a | I have to try to renew my driver's license this afternoon. | 18:36 |
th1a | It could take... a long time. | 18:36 |
aelkner | replaceafill, can you push your change to trunk so that i can see it? | 18:36 |
aelkner | i'm curious what you did to get the checkoxes going | 18:36 |
replaceafill | aelkner i'm still in the middle, but i can show you the diff | 18:37 |
replaceafill | hold on | 18:37 |
replaceafill | aelkner http://pastebin.com/3BR4Jq2p | 18:38 |
aelkner | replaceafill, thanks | 18:39 |
replaceafill | basically, it's just the empty spans i was talking about in the meeting | 18:39 |
replaceafill | with the UI classes | 18:39 |
aelkner | nice | 18:40 |
aelkner | and no more bool_dict :) | 18:41 |
replaceafill | :) | 18:41 |
replaceafill | aelkner shouldn't we change /resource_demographics to /resource_attributes or something? | 18:43 |
aelkner | it's just a url, not important to the user | 18:43 |
replaceafill | hhmm ok | 18:44 |
aelkner | we call everything demographics in our code, so there's no point changing that now | 18:44 |
* th1a goes to the DMV. | 18:49 | |
replaceafill | i think Reorder demographics needs a subtitle | 18:59 |
* replaceafill doesnt like the new "delete" button :( | 19:26 | |
replaceafill | th1a http://69.164.203.135:6660/demographics/reorder.html | 19:26 |
replaceafill | th1a add/remove icons http://69.164.203.135:6660/persons/alvaro/@@manage_contacts.html | 19:39 |
* th1a is back. | 19:52 | |
th1a | replaceafill: Can we adjust the colors? | 19:52 |
replaceafill | th1a sure | 19:52 |
th1a | I don't want to do it now, but that'll help. | 19:53 |
replaceafill | ok, i'll push these changes to trunk then | 19:54 |
replaceafill | http://jqueryui.com/themeroller/images/?new=ff0000&w=256&h=240&f=png&fltr[]=rcd|256&fltr[]=mask|icons/icons.png | 19:54 |
replaceafill | if you change the new=.... parameter you get new colors | 19:54 |
replaceafill | we can play with 'w' and 'h' too if we want bigger icons | 19:54 |
th1a | This is one of the things I'm finalizing with Schwa -- making sure we get a palette for this stuff. | 19:55 |
replaceafill | changes pushed "Changed X to jQuery UI checkboxes in demographics/resource attributes views. Also updated add/remove icons" | 19:57 |
replaceafill | aelkner did you change the group/type terminology in the resource attributes views? | 20:16 |
replaceafill | th1a what resource attributes should we set in init? | 20:19 |
replaceafill | (like the default demographics) | 20:19 |
th1a | Title and description. | 20:19 |
replaceafill | i thought those were the only core attributes on resources? | 20:20 |
replaceafill | and others like manufacturer would be resource attributes | 20:20 |
replaceafill | model, serialNumber | 20:20 |
replaceafill | purchaseDate | 20:21 |
replaceafill | capacity | 20:21 |
th1a | People can add those if they want. | 20:21 |
th1a | I don't really think we need examples. | 20:21 |
replaceafill | ah ok, so no default resource attributes then | 20:21 |
replaceafill | but evolution should create some, correct? depending on the existing data | 20:22 |
th1a | Yes. | 20:22 |
replaceafill | got it | 20:22 |
th1a | For resources I think the built in attributes are as likely to confuse people as anything. | 20:23 |
th1a | Not that they don't have a purpose. | 20:23 |
th1a | But since we don't have to add them ourselves, we can just leave it up to the user. | 20:23 |
replaceafill | what if they already have Locations defined, but with no capacity for instance, should we create the custom attribute for capacity? | 20:24 |
th1a | You mean if it is blank? | 20:29 |
replaceafill | yes | 20:29 |
th1a | I don't think we need to bother checking. | 20:29 |
th1a | Also, I we don't need to surprise people by removing things even if they aren't using them. | 20:30 |
replaceafill | right | 20:30 |
*** menesis has joined #schooltool | 20:45 | |
replaceafill | th1a are we keeping the Book button functionality in the /resources view | 20:56 |
th1a | oh... | 21:09 |
replaceafill | basically, you mark one or several resources, click Book and put them on your session | 21:10 |
replaceafill | so, next tiime you add/edit an event, the resources are already listed | 21:10 |
th1a | Oh... it needs to be different. | 21:10 |
th1a | Make it an action on the resource. | 21:11 |
replaceafill | ah ok | 21:11 |
th1a | Also, you should make leaders a table on the resource index. | 21:14 |
replaceafill | i'm making /resources kind of like /persons | 21:15 |
replaceafill | is that ok? | 21:15 |
th1a | That's the idea. | 21:15 |
replaceafill | it seemed appropriate now that all resources have only two core attrbiutes | 21:15 |
replaceafill | cool | 21:15 |
th1a | None of these things are different for a reason. It is just inconsistency. | 21:15 |
th1a | Which should be replaced with consistency. | 21:16 |
*** menesis has quit IRC | 21:16 | |
*** menesis has joined #schooltool | 22:05 | |
*** menesis has quit IRC | 22:47 | |
th1a | How we coming, aelkner? | 22:54 |
replaceafill | th1a http://69.164.203.135:6660/resources/@@index.html | 22:58 |
replaceafill | now i need to add existing resources :/ | 22:58 |
replaceafill | or better fix the add resource forms :) | 22:59 |
th1a | lol | 22:59 |
th1a | Yes. Looks good. | 23:00 |
replaceafill | for the sidebar: | 23:00 |
replaceafill | Add | 23:00 |
replaceafill | - Equipment | 23:00 |
replaceafill | - Location | 23:00 |
replaceafill | - Resource? | 23:00 |
th1a | Yes. | 23:06 |
replaceafill | th1a should i get rid of these hints? http://69.164.203.135:6660/resources/addResource.html | 23:37 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!