/srv/irclogs.ubuntu.com/2011/03/15/#launchpad-yellow.txt

* gmb lunches12:10
bachi danilos12:32
danilosbac, hi12:32
bacdanilos: you'd already left, but i read your comments about me stepping on the shared branch.  i'm unsure how that happened as i just merged and pushed, definitely no --overwrite.12:32
danilosbac, oh, interesting, something weird is going on then, because both gmb and myself have committed stuff to the branch yesterday morning; no big deal, especially if you are doing the right thing12:35
danilosbac, (we committed and I couldn't see it in the log after your commits, so I assumed this was what has happened; didn't want to blame you for anything, just wanted to stress that we should not --overwrite stuff :)12:36
bacdanilos: yeah, i agree.12:36
danilosbac, it's quite likely that I got confused and nothing happened12:37
bacwe need to work together smartly but i assumed bzr was DTRT12:37
bacok, i'll carry on then and hope we don't get into trouble12:37
danilosbac, yeah, perhaps it did, which is why it hasn't complained :)12:37
bacexcellent12:38
danilosbac, btw, do you know if accordion widget was supposed to generate form data itself and pass it over to the handler, or not?12:47
bacdanilos: i'm not sure.  we hooked it up through the overlay submit callback.12:50
gary_posterbenji, delete functionality works on my branch.  I need to get kids to school then will figure out how I want to get it landed.  I also added code that does not show edit buttons if the subscriber is a team for which you are not an admin.  That probably should be visually improved.12:51
gary_posterI'll try to land that separately.12:52
danilosbac, ok, it does work, not sure why it hasn't initially shown the data13:05
* gmb gets ready to mumble13:27
* gary_poster appreciates reminder13:28
gary_posterbac benji danilos gmb mumble/kanban in 213:28
danilosack13:28
gary_postermm, I will have to let someone into the house; I might be a minute late13:29
gary_posterhey danilos, I'm confused about something and I'm hoping you can help. :-)  In bugsubscriptionfilter.delete, I've changed the code as we discussed.  Now, if there are no more filters, I call delete on the parent structural subscription.  As before, if there *are* more filters, I just call Store.of(self).remove(self) .14:25
gary_posterThe structural subscription delete says14:26
gary_posterself.bug_filters.remove()14:26
gary_posterI assumed that this would be equivalent to calling remove(filter) for each filter14:26
gary_posterHowever, the test seems to indicate that this is not the case14:26
gary_posterbecause Store.of(self.subscription) is None but14:27
gary_posterStore.of(bug_subscription_filter) is the store14:27
gary_posterDo I misunderstand the semantics of self.bug_filters.remove() ?14:27
gary_posterShould that code iterate over the filters and call remove for each one?14:28
gary_posterI guess I could step though self.bug_filters.remove() :-P14:28
gary_posterI'll do that next14:28
gary_posteruntil you provide illuminaton :-)14:28
gary_posterah-ha14:31
gary_poster.remove() does it in SQL14:32
gary_posterso the associated Python objects are not updated14:32
gary_posterthat looks suspiciously like the cause14:32
gary_posterIStore(bug_subscription_filter).find(BugSubscriptionFilter, BugSubscriptionFilter.id==bug_subscription_filter.id).one()14:36
gary_posterreturns None14:36
gary_posterwhich seems like the proof I am after.14:36
gary_posterI'll change the test to do that.14:36
danilosgary_poster, no, you should be able to delete SS to get all SSs deleted, but you should use the API, not Store.of(..).remove(self)14:38
gary_posterdanilos, this is within the API :-)14:38
gary_posterunless I misunderstand you?14:38
danilosgary_poster, the only thing is that removing final BSF doesn't really remove it14:39
gary_posterit does after my change, danilos14:39
danilosgary_poster, ah, right, then it should be fine :)14:39
gary_posterdanilos, one sec, will get a pastebin to make sure we are on the same page14:39
gary_posterdanilos, lines 77ff of http://pastebin.ubuntu.com/580589/14:41
gary_posterbenji, I have tests of the serverside changes I made.  I do not have tests of the JS.  Go ahead and land on ~yellow, for you or someone to establish tests for it as a later punchlist item?14:44
benjigary_poster: sounds good to me14:44
gary_posterok benji14:44
gmbleonardr just described muting as "an anti-subscription." I think we shall use that word henceforth.14:46
gary_posterheh14:46
danilosgary_poster, right, looks good14:48
gary_postercool, danilos, thank you for looking14:48
danilosgary_poster, I believe individual filters are referenced with "ON DELETE CASCADE" in SQL, which is why you don't have to manually remove all the BSFImportance, BSFStatus and similar rows14:49
danilosgary_poster, actually, I am wrong, these are removed with the setter14:49
gary_posterok cool14:49
gary_posterI'll leave as is then14:50
gary_posterTo Whom It May Concern, such as benji: ~yellow's branch is updated now.14:58
gary_posterbac, benji, I'm an hour early (because I decided to postpone landing on devel till later).  Who has a good high priority punchlist item for me?  I have about 3 hours to work on it left today.14:59
* bac looks14:59
* bac does!15:00
benjigary_poster: I have "refresh the subscription listing when a subscription is edited", which would be "...when a subscription is deleted" for your case15:00
gary_posterbenji, btw, do you have the initial flickering of the accordion down as a punchlist item?15:00
bacgary_poster: could you look at the REQUIRED punch down and take the first item -- selectively disable the team selector if the user administers no teams -or- do whatever is smart15:00
benjigary_poster: nope, I figured bac would have it, but the fix should be easy either way15:01
bacgary_poster: or go with benji's since it is work you've done anyway15:01
gary_posterbac I'll look at yours15:02
bacadded initial accordion flicker to my REQ card15:02
bacgary_poster: do you want to decompose that card and create a new one for the subtask?15:02
gary_posterbac prolly so.  on call, then will fiddle with stuff and ask you questions as I have them15:03
bacok15:04
gary_posterbac, you have all four cards in Feature Work 3: Coding in progress right now?15:08
gary_postersorry, 215:08
bacgary_poster: i think three of them are "done" but i'm not sure how to transition them15:09
bacthe work is all a big blob now15:10
gary_posterbac, I was just wondering about that myself.  I decided moving them to Archive:Done was reasonably apt15:10
gary_poster(via right click)15:10
bacskipping review, etc15:10
gary_posteryeah15:10
bacok15:10
bacdone15:11
bacthe board looks more sane now15:11
gary_postercool.  I'll add a microcard now, yeah15:11
gary_posterbac, I don't understand the diff between15:12
gary_poster* Selectively enable team drop down.15:12
gary_poster* Handle case for no adminstered teams.15:12
gary_posterwhich makes me suspect I don't understand something important15:12
gary_postercould you explain?15:12
baccombine them please15:12
gary_posteroh ok15:12
gary_posterbecause if you have no administered teams, the drop down should not be there...and anything else changes, or is that it?15:13
bacgary_poster: oh, i remember -- at one point i thought i saw an exception from the view when a person had no teams.  i could not reproduce it, though.15:13
bacthat would've been the 'handle case' task15:14
gary_posterah ok.  combine for now then15:14
bacyes.  you may want to double check that nothing weird happens with anon and no-priv users15:14
gary_posterack.  do you want me to push to yellow with the change before I start working on it, or is the kanban card sufficient for your workflow?15:15
bacgary_poster: i just saw you question about pushing and i don't understand it15:32
gary_posterbac, I just meant pushing the change to TODO.  I didn't think it was necessary so I have not yet done it.  I do have another question you might be able to help me with faster than I can help myself though15:33
bacgary_poster: nah, overkill15:33
gary_postercool15:33
gary_posterDo you call setup_overlay every time someone clicks an add link, or is the html reused?15:33
gary_posterI know I can figure that out eventually, but I'm getting a bit lost in twisty paths15:34
gary_posterbac, does this mean that we do not support internet explorer at all?15:37
gary_poster    if (Y.UA.ie) {15:37
gary_poster        return;15:37
gary_poster    }15:37
gary_posterline 803 of structural-subscription.js15:37
bacgary_poster: i think it does.  it is all over our JS15:37
gary_posterwow15:38
gary_posteryou mean LP, not just this project, right bac?15:38
bacyes, all over LP javascript15:38
gary_posterwow15:38
bacof course, most of LP has <noscript> backup15:38
gary_posterright15:38
bacwe may get bludgeoned by OEM as their customers are IE6 folks15:39
bacmight be worth making a note15:39
gary_posterow!  IE6 is dramatically worse than later ones, AIUI :-/15:39
gary_posterbac, may I have a quick call so I can flail more quickly as I try to understand what is going on for my task?15:40
bacsure15:40
=== Ursinha is now known as Ursinha-lunch
gary_posterbac, I added all tasks to kanban board individually.  I also added the low priority ones with an corresponding marker.  1) May I delete the "Address remaining REQUIRED tasks" card?  2) Did I understand correctly that the Cancel button styling is in progress?16:01
bacno, it is not in progress16:02
gary_postercool, moved it back16:02
bac1) yes16:02
gary_postercool thanks16:02
gmbI wonder if we could make the malone.advanced-subscriptions.enabled flag turn off when it encounters an IE user agent.16:26
gary_postergmb, do you know how serious the IE problems are?  Do we really need to turn off *all* IE, or just IE 6 and lower?  This kinda shocks and worries me 'cause of OEM people.  I know that YUI supports IE pretty well...16:39
gmbgary_poster: I don't know how serious the problems are with IE>6. sinzui would be the person to ask, I think.16:40
gary_posterok thanks gmb16:40
gary_posterbac, I'd like to support IE >= 7 for this feature, particularly since we are not offering an alternative.  sinzui and deryck are +1 on that as a goal for the site generally, for later16:53
=== Ursinha-lunch is now known as Ursinha-afk
gary_posterbac, I'm logged in as no-priv.  no-priv does not get the subscribe link, unless I'm doing something wrong.  Is that intentional, or should I verify that I'm not doing something stupid?17:17
gary_posterOIC17:22
gary_posterthat's what you said17:22
gary_posterglobal actions portlet is not there17:23
gary_posterbenji, I suspect that, when editing, if you change a subscription from yours to a teams (or even if you change the team) things will go awry.  I'm in favor of making it impossible to change the recipient when you are editing.  What do you think?17:32
=== Ursinha-afk is now known as Ursinha
bacgary_poster: what are the issues with supporting IE?17:33
benjigary_poster: sounds reasonable, if slightly unfortunate (say you accidentally subscribed the wrong team to a complex filter and have to rebuild the whole thing), but it makes sense for a possible follow-on enhancement17:34
bacgary_poster: IIRC the OEM people are on IE617:34
gary_posterbac, apparently YUI did not support it well awhile ago.  Noone knows if recent YUI upgrades have been sufficient to make it OK.  Noone cares enough.  Also, stats, from sinzui: "6% is ie...4% being ie8, 1% ie7, the remaining is 6 and 9"17:35
gary_posterIt's darn hard to get excited about < 1% :-/17:35
gary_poster(IE6)17:36
gary_posterI think, even with OEM, we would need a declaration from jml/flacoste to pursue IE6.  IE8 is more definsable.17:36
gary_posterugh17:36
gary_posterdefensible17:37
gary_posterbenji, could you add that editing recipient thing as a punch list item wherever you are doing such things?17:38
* gary_poster leaving in 217:38
benjigary_poster: the task being disabling editing the recipient or the task being enabling editing the recipient?17:38
gary_posterbenji, AFAI am concerned, you can specify either.  the goal is to have it be sane, however it works out.  I'd lean towards disabling myself, but if it is easy enough to make editing work, great.17:40
* gary_poster has to run17:40
gary_posterback in awhile17:40
benjigotcha17:40
gary_posterbac, my job is done17:40
bacgary_poster: great17:41
=== Ursinha is now known as Ursinha-afk
danilosgary_poster, hi18:19
danilosI guess he's off, ok, email it is then18:23
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
danilosanyway, emailed18:39
daniloscheers all, enjoy the rest of the week18:39
gary_poster(I'm back, fwiw)19:10
gary_posterbac, in order to have *something* to see when there is not a global actions portlet, I stuffed it in the involvement portlet for now.  I used that for debugging, and until we have a better solution, I propose that we keep it.  You alright with that? ("var portlet = Y.one('#global-actions') || Y.one('#involvement');")19:16
gary_posterDone.19:22
gary_posterAnd pushed to ~yellow.19:22
gary_posterbenji, should I look at save changes now, per the email from danilo that I forwarded you?19:23
benjigary_poster: sounds good19:24
gary_posterk19:24
=== Ursinha-afk is now known as Ursinha
bacgary_poster: yeah, that is fine.  i think long term we just need to make the global-actions appear for all logged in users19:55
gary_postercool19:56
gary_posterwhere long term is over the next few days ;-)19:56
bacep20:20
bacyep20:20
bacbenji, gary_poster: do you see anything wrong with this:20:20
gary_posteron call with flacoste20:20
bacvar checkboxes = Y.all('input[name="importances"]');20:20
bacbenji: i'm trying to get all of the checkboxes for a group named "importances".  can't figure out why this is broken.20:21
bacbenji: also, you may have a problem with your make_edit_handler in that it uses get_input_by_value.  both 'importances' and 'statuses' have an entry with the value of 'Unknown'20:23
benjibac: good catch, writing a TODO for myself20:25
benjistill thinking about the other question20:26
bacbenji: you can fix it by making the node more restrictive20:26
benjibac: Y.all('input[name="importances"]') looks like it should work to me20:28
benjiI'm not sure why it isn't20:28
bacthanks for looking at it20:28
benjibac: I just did a down and dirty test of that Y.all call and it worked (returned 7 input elements)20:32
bacbenji: yeah, i'm suspecting i need to 'wait' to see if the items are created yet20:33
bacodd, the selection works inside the main js module but not in the test.  in the test the importances and statuses are not in the DOM21:06
bacbenji: my selector was correct.  i'd failed to populate LP.cache...21:32
bacgary_poster, benji: i've got a NodeList from a selector (as above).  how does one iterate over a NodeList?21:40
bacfor (i in list) doesn't work, as the NodeList is an object and the actual list is in the _nodes property21:40
benjibac: I think it has a .each21:42
bacbenji: yeah, that's for applying a fcn to each item, i think21:42
baci want to loop over them and check the status of each thing.21:42
baci think i found the answer in timeline.js -- you have to use item(i)21:42
benjicool. I think you can also construct a list from the NodeList.21:45
* gary_poster didn't know21:46
benjioh, you can also use the older for construct: for(var i=0; i++; i<l.length)21:47
benjialso, I'm pretty sure NodeLists let you do square bracket lookups so you don't hae to use item(i)21:47
bacbenji, gary_poster: here is what i got to work: http://paste.ubuntu.com/580796/21:54
gary_postergood to know, though what I will remember is "nodelists are weird"21:55
bacbenji: list.length does  not exist.  you must use list.size(). likewise list[i] must be written as list.item(i)21:57
bactruly a pita21:57
gary_poster:-/22:00
bacgary_poster: finished the select all/none and pushed22:17
gary_posterawesome, bac!  I had the save nominally done22:17
gary_posterbut it wasn't updating22:18
gary_posterthe display22:18
gary_posterso changing things for that before I merge22:18
bacwhich is that?22:18
gary_posterthis is for benji22:18
gary_posterhis save button wasn't hooked up22:18
gary_posterfor the overlay22:18
bacoh, ok22:19
bacgary_poster: thanks for making all of those cards22:19
gary_posternp bac.  have agreat evening22:20
benjisounds like good progress gary_poster; wish I had some of that to report22:20
gary_posterbenji, do you know how to use merge from http://developer.yahoo.com/yui/3/api/YUI.html ?22:21
gary_posterI thought I did22:21
bacgary_poster: the OPTIONAL card is still in the backlog.  i'll delete it unless you meant to leave it22:21
gary_posterbac, +1 on deleting, thanks.  I didn't see it22:21
benjigary_poster: I think like so: new_obj = YUI.merge(obj1, obj2, obj3)22:22
gary_posterbenji, it is off of the object22:23
gary_poster(and it is not on YUI, experientially in firebug console)22:23
benjigary_poster: I don't know about that one; what kind of object is it?22:24
gary_posterthe root JS object (kind of like Python).  but it looks like it is just available in the namespace as a function!22:24
gary_posteryeah22:25
gary_postermerge({foo:4, bar:5}, {bar:7,bing:8})22:25
gary_poster== { foo=4, bar=7, bing=8}22:25
gary_postercool22:26
gary_posterwell, I'll have to do more later.  time to go make dinner :-)22:26
gary_posternight all22:26
benjigary_poster: I'm not aware that such a thing exists.22:27
benjil8r22:27
benjigary_poster: I think that merge is coming from mochikit.22:31

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