[12:01] <BradB> ok
[12:01] <carlos> but I don't know the city so don't know a good place to buy it outside big stores that are also in Valencia
[12:01] <BradB> at worst, lamont's bringing me one, but i was hoping to have my own
[12:02] <BradB> carlos: how commonly spoken is french in spain?
[12:02] <carlos> BradB: zero
[12:03] <carlos> BradB: but Catalan is close to French (some words) so perhaps you could understand somethings
[12:03] <BradB> damn! i would have thought sort of popularish, given that the francophones i know learning spanish say it's really easy to learn spanish once you know french, thought it might be reciprocal
[12:04] <carlos> BradB: the problem is that Catalua has its own language, thus they usualy learn Spanish, Catalan and English 
[12:05] <carlos> BradB: in other Spanish regions where don't have a local language, they learn Spanish, English and French
[12:06] <BradB> ah
[12:27] <BradB> sabdfl: I can't figure out if logging everything (in BugActivity) that gets added to a bug (an assignment, an infestation, a web link, etc.) makes sense or not. What do you think?
[12:38] <Kinnison> sabdfl: I'll try and make the time up on saturday instead then.
[01:33] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Small improvements to the potemplate add/edit forms (patch-934)
[02:11] <stub> BradB: ping
[09:44] <sabdfl> morning all
[09:46] <sabdfl> BradB: log only what you think makes sense, we'll get user bug requests if they think they want to see something in there that we are not logging and can deal with those on a case by case basis.
[10:01] <sabdfl> stub: around?
[10:01] <stub> sabdfl: Yup
[10:01] <sabdfl> did you get a chance to look at mark-project-refactor.sql?
[10:02] <stub> Yes - emailed you about it
[10:03] <stub> Its already to put it in if we want.
[10:05] <stub> My main concern is when I checked the documentation on the project table, it looked like we could no longer reasonably support some of the original use cases (gnome project's website product, kde project's website product) without people having to use the project name as a prefix for some or all of their products.
[10:09] <stub> sabdfl: Is that manifest patch waiting on me btw? I don't remember getting an 'its ready' but may have missed it.
[10:11] <lifeless> sabdfl: those areones brought in previously as we'd agreed. bob2 will be working on them today.
[10:12] <bob2> yup
[10:29] <sabdfl> stub: no, i am going to work on code with keybuk today, then we'll know it's ready
[10:30] <sabdfl> (the manifest patch)
[10:30] <sabdfl> stub: new version of the projectless patch will be in as soon as pqm is ready
[10:31] <sabdfl> i've dropped the old UNIQUE (project, product.name);
[10:31] <sabdfl> and added comments
[10:31] <stub> Did you get my modifications? Or are we going to get a clash
[10:31] <sabdfl> stub: need some manual tinkering with the production db at some stage
[10:32] <sabdfl> i refueled just before modifying it, had you comitted?
[10:33] <stub> Yes - but I don't know if it got through in time (I hadn't noticed my first commit bounced due to forgetting to update launchpaddatabaserevision earlier today)
[10:34] <stub> See what happens
[10:35] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: bugassignment table and bugactivity tweak (patch-935)
[10:36] <stub> I win. 
[10:37] <stub> sabdfl: I think your patch will conflict. Email me the file and I'll sort it at my end.
[10:55] <sabdfl> bugger
[10:55] <sabdfl> :-)
[10:55] <sabdfl> i'll have to resolve the conflict anyhow
[11:04] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: update project refactoring patch for stub (patch-936)
[11:14] <SteveA> sabdfl: do you think we'll have malone working as the ubuntu bug tracker later this month?
[11:55] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Soyuz classmethod clean up done. All classmethods used before for Soyuz app componentes has been removed. Other solutions has been used like utilits as sugested by SteveA. Thanks SteveA. (patch-937)
[11:57] <carlos> morning
[11:58] <dilys> Merge to rocketfuel@canonical.com/cscvs--devel--1.0: production fixes to the gnarly port (patch-42)
[11:58] <SteveA> hi carlos
[11:58] <SteveA> you pingged me, but I was asleep
[11:58] <carlos> SteveA: yes, it was about the mail I sent you later
[11:58] <carlos> the file upload problem
[12:03] <SteveA> okay, I'll take a look at it.  It does seem very strange that adding another field to the form stops it working properly.
[12:03] <SteveA> what browser are you using?
[12:03] <carlos> SteveA: no, it does not stops working , the forms works, but the upload field does not work like it should
[12:04] <carlos> SteveA: epiphany
[12:04] <carlos> the old upload form works always
[12:04] <SteveA> that's what I mean by "stops working properly"
[12:04] <SteveA> can you try it with firefox?
[12:04] <carlos> but my template creation form with that upload field does not handles the upload
[12:04] <carlos> ok
[12:04] <carlos> sure
[12:04] <SteveA> daf had a similar problem earlier with epiphany, and it seems to be a problem with epiphany
[12:09] <carlos> SteveA: it works now so I could assume that it's epiphany's fault
[12:09] <SteveA> do we have any epiphany hackers on the warty/hoary team?
[12:09] <carlos> I thought it was not the problem because daf had a check to prevent it, but it does not work. I will fix it now
[12:10] <SteveA> maybe they've come across this problem before.  perhaps it is a reported bug
[12:10] <carlos> SteveA: don't know
[12:10] <SteveA> if we knew more about it, perhaps there's a way of working around it
[12:10] <carlos> I could check that with seb128
[12:11] <carlos> SteveA: I will do a check to see if it's a file like object or a unicode instance
[12:12] <carlos> if it's a unicode instance will show a warning saying that the upload failed
[12:12] <carlos> that should stop breaking launchpad
[12:12] <SteveA> that's a good idea
[12:12] <carlos> as soon as we know if there is a way to fix work around it we could change it later
[12:13] <carlos>  /s/fix/ /
[12:13] <SteveA> actually, here's what I want you to do.
[12:13] <SteveA> 1. file a bug in malone on this.  this is okay, even if it isn't our bug, as we need to resolve it one way or another.
[12:14] <SteveA> 2. put your workaround in the code, and write a comment in there saying why this is there, and making reference to the bug in malone
[12:15] <SteveA> 3. write a message to the launchpad mailing list describing the problem and the workaround and the bug, so that everyone else on the team knows about it
[12:15] <SteveA> we can get seb128 to look at it in mataro
[12:15] <carlos> ok
[12:16] <carlos> SteveA: I have other problem that prevents me to reduce code duplication
[12:17] <carlos> I'm not able to do a "from canonical.rosetta.pofile_adapter import foo"
[12:17] <carlos> from canonical/launchpad/database/pofile.py
[12:18] <carlos> because canonical/rosetta/__init__.py imports the class Project
[12:18] <carlos> "from canonical.launchpad.database import Product"
[12:18] <carlos> and seems like it's not ready at that point
[12:18] <carlos> sorry, Product, not Project
[12:19] <SteveA> well
[12:19] <SteveA> I see the problem
[12:19] <carlos> I know I could fix it with: "from canonical.launchpad.database.product import Product"
[12:19] <SteveA> RosettaApplication has changed from being a "placeholder application object" that doesn't do anything but have some views
[12:19] <SteveA> into a database object that directly uses SQL
[12:19] <carlos> but I know that we are trying to prevent those imports
[12:20] <SteveA> So, RosettaApplication needs to move in to the launchpad/database area
[12:20] <SteveA> or, that code (the translatables method) needs to be separated from it somehow
[12:20] <SteveA> the way I'd do this is as follows
[12:20] <SteveA> * keep RosettaApplication where it is
[12:21] <SteveA> * make translatables() part of the IProductSet interface and the ProductSet class.
[12:21] <SteveA> * make RosettaApplication use this by looking up getUtility(IProductSet)
[12:21] <SteveA> so, we get to keep RosettaApplication where we expect to find it
[12:22] <carlos> and it does not depends on the sql code directly
[12:22] <SteveA> and the translatables() method is also in a reasonable place, seeing as it is to do with products
[12:22] <SteveA> yes
[12:22] <carlos> I get the idea, ok.
[12:22] <carlos> thanks
[12:30] <carlos> SteveA: seb says that it's the first time he knows about that epiphany bug and he says he don't have a problem with bugzilla uploading files from it
[12:57] <dilys> Merge to thelove@canonical.com/bazaar--devo--1.1: Now baz changes does a tree-lint (patch-23)
[01:16] <salgado> if I do a "baz delta --diffs patch-998 patch-999" where neither of these patchlevel exists, I got a "corrupt archive" error.
[01:17] <salgado> but if I specify launchpad--devel--0--patch-99{8,9} it tells me that these patchlevels doesn't exist(exactly what I expected).
[01:17] <salgado> is this intensional behaviour?
[02:44] <SteveA> carlos: heard of "trados" ?
[02:46] <carlos> SteveA: context?
[02:46] <SteveA> translation tool
 my wife is a linguist  and she works with Trados
 the defacto standard for translators and linguists
 standard of what?
 of a translations tool
 one of its main functionalities is the translation memory
 okay.  I'll ask the rosetta team about it.
 you put a document in and Trados records Translations of sentences of this document
[02:46] <carlos> yes
[02:47] <carlos> I think some people was talking about it at gnome mailing list
[02:47] <carlos> let me check
[02:49] <carlos> yeah. I know that the name was familiar for me
[02:49] <carlos> I think it's the most used application to do translations
[02:49] <carlos> it's a commercial tool
[02:49] <SteveA> we should try to look at it sometime
[02:50] <carlos> http://www.trados.com/
[03:00] <BradB> stub: pong
[03:00] <BradB> sabdfl: yes, i've been following some ideas to keep the bug changelog fairly simple
[03:01] <stub> eh? Oh - I emailed you about that (and then Mark said on the mailing to do it the way I did anyway)
[03:02] <BradB> catching up on email now
[03:02] <stub> Patch is in, but the bug migration isn't
[03:44] <dilys> New Malone bug #116: "Upload fails sometimes from epiphany", submitted by Carlos Perell Marn
[03:44] <dilys> https://dogfood.ubuntu.com/malone/bugs/116
[03:46] <Kinnison> Is there a standard login on the dogfood server?
[03:49] <stub> Urgh... I thought my merge went through hours ago - bounced :-(
[03:50] <stub> Kinnison: Real accounts please
[03:50] <Kinnison> stub: real accounts?
[03:50] <BradB> stub: UNIQUE(project, name) will allow dup names for products that don't have projects. Is that something we want to allow?
[03:50] <BradB> I'm guessing not.
[03:50] <stub> Not a shared one - yours.
[03:52] <stub> BradB: No. My bad.
[03:52] <Kinnison> stub: the forgotten password thing mails me an ubuntulinux.org change url
[03:53] <stub> Yer - you need to create your account in launchpad_dogfood or con someone else into doing it for you.
[03:53] <Kinnison> But apparently the password I last thought of was correct
[03:54] <BradB> Kinnison: dude, you already bypassed the forgotten p/w and manually reset your p/w in the dogfood db, IIRC :)
[03:54] <stub> BradB: product.name is about to become UNIQUE anyway - patch should have gone through a few hours ago but I didn't check that mailbox ;)
[03:54] <Kinnison> BradB: it seems so
[03:54] <BradB> stub: So product names will be *globally* unique?
[03:54] <stub> BradB: Yup
[03:54] <Kinnison> BradB: I forget these things when using a different browser :-)
[03:55] <BradB> Kinnison: heh heh
[03:55] <BradB> stub: hm, interesting :)
[03:58] <BradB>      * jblack@gnuarch.org--2004/baz--lintchanges--1.1--patch-1
[03:58] <BradB>        Now baz changes does a tree-lint
[03:58] <BradB> finally! :)
[04:01] <stub> BradB: We arrive at Barcelona at the same time. Look out for the unshaven dude with stupidly long hair and a Zope T-Shirt.
[04:02] <BradB> wicked!
[04:02] <BradB> I just shaved yesterday, but I might be too lazy to shave again once the con gets under way.
[04:04] <kiko-afk> I mean
[04:04] <kiko-afk> SERIOUSLY long hair
[04:05] <carlos> X-)
[04:08] <dilys> Merge to thelove@canonical.com/bazaar--devo--1.1: By default show qualified revisions (patch-24)
[04:13] <stub> Actually - I'll wear my Async SHOW ME THE CODE T-Shirt
[04:13] <stub> 'Cause it is cool
[04:14] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: Product.name is now globally unique, and Product.project optional (patch-938)
[04:38] <carlos> BradB: do we have a way to do form validation easily in launchpad?
[04:38] <carlos> I'm more interested on the visual feedback of errors (missing mandatory fields and things like that)
[04:41] <dilys> Merge to thelove@canonical.com/bazaar--devo--1.1: merge in tla inode sig integrity improvements from rbtcollins@hotmail.com--barch/tla--inode-sigs--1.2 - helps bug #3869 (patch-25)
[04:41] <BradB> carlos: for forms that aren't add or edit forms, you mean?
[04:41] <carlos> BradB: well, at this moment it's for add/edit forms
[04:42] <carlos> I know you are using autogenerated forms with malone, that's why I'm asking
[04:46] <BradB> carlos: Yes.
[04:47] <BradB> Pass a callable to the constraint paramater.
[04:47] <BradB> (of a field in your schema)
[04:47] <BradB> carlos: src/zope/schema/README.txt
[04:47] <carlos> BradB: thanks
[04:48] <BradB> no prob
[05:08] <Kinnison> elmo: roughly what time would be a good time for gina to run? I.E. when will the daily archive sync complete?
[05:19] <stub> Farewell until Spain! I'm off in 12 hours.
[05:20] <BradB> see you there dude
[05:58] <SteveA> Kinnison, BradB: I plan to fix up forgottenpassword tonight
[05:58] <Kinnison> SteveA: cool
[05:58] <BradB> awesome
[05:58] <Kinnison> SteveA: hang on... tonight? Aren't you at the lunchpad?
[05:58] <SteveA> no
[05:58] <SteveA> I'm in lithuania
[05:58] <Kinnison> oh I thought you flew to .uk on wednesday
[05:58] <SteveA> I'd just popped in to see what condition my condition was in.
[05:58] <SteveA> well, that and a schooltool meeting.
[05:59] <Kinnison> oh heh
[05:59] <SteveA> afaik, the schooltool meeting had been planned before the arch sprint
[05:59] <SteveA> so I did 1/3 day on schooltool and 2/3 on canonical
[05:59] <SteveA> each day
[06:03] <SteveA>  nice article on wrapping GTK+ things for python: http://www-106.ibm.com/developerworks/linux/library/l-wrap/
[06:07] <SteveA> I was in this cafe, and the "ubuntu" song came on the sound system.  So,  I bought the CD from them.
[06:09] <SteveA> it's one of the songs on the "Africa" compilation published by Putomayo
[06:10] <Kinnison> SteveA: bring the CD with you to mataro?
[06:11] <SteveA> yep, willdo
[06:11] <SteveA> I'm listening to it now, as I'm not sure which track is the one with the ubuntu chorus.
[06:12] <SteveA> definitely "move your ass around" music though
[06:12] <SteveA> ideal for those long coding sessions
[06:14] <Kinnison> Mmm donkey!
[06:14] <SteveA> aha, got it: "Thandaza" by "Soul Brothers"
[06:25] <BradB> SteveA: email sent
[06:26] <SteveA> thanks
[06:44] <SteveA> BradB: do you need this fixed up urgently?
[06:44] <SteveA> I mean, is it stopping you doing something you really want to get done right now?
[06:44] <SteveA> (just trying to plan my evening's work)
[06:45] <BradB> SteveA: It's not stopping me, per se, but it's still leaving a major gap in the fact that the whole point of keeping history (or well, an important part of it) is to be able to make a note about why one changed something (e.g. why a bug was rejected.)
[06:45] <BradB> I'm just putting a dummy message in the BugActivity.message field in the meantime.
[06:46] <BradB> I think it's more of a showstopper than the forgotten p/w though, if that's what you're asking :)
[06:46] <SteveA> okay.  I'll take a brief look now, and if I don't get the "eureka", I'll try and get to it more thoroughly this evening.
[06:48] <SteveA> BradB: probably unrelated...         fields="title shortdesc description name"
[06:48] <SteveA> I see no changelog_comment in there
[06:49] <BradB> SteveA: Unrelated. Error is precisely the same with or without.
[06:50] <SteveA> try adding a "for" attribute perhaps
[06:55] <BradB> I'll have to try it a bit later, as I've commented out the code and reverted the ZCML, and am in the midst of merging some of the activity stuff.
[06:56] <dilys> Merge to thelove@canonical.com/bazaar--devo--1.1: merge in aaron.bentley@utoronto.ca--baz/bazaar--three-way--0 (patch-26)
[06:56] <SteveA> okay.  let me know how it goes, and whether I need to look into it further.
[06:56] <SteveA> if it *does* work, that makes it easier to find out exactly what is going on.
[06:57] <BradB> ok, I'll let you know when I get around to it.
[07:24] <salgado> SteveA, I want to get rid of person-{join,unjoin}.pt, wich only serves to display "User foo joined team bar". for this I was thinking in self-posting to the team page and then look in the request for +join/+unjoin. 
[07:24] <salgado> what do you think of this?
[07:26] <kiko> salgado, except it's not self-posting!
[07:27] <salgado> yeah, it's not. but how do I'll call it?
[07:28] <SteveA> sounds like something that could use a status message and a redirect
[07:32] <kiko> SteveA, can you elaborate or point out a simile?
[07:33] <SteveA>   -----> d:-)
[07:33] <SteveA> oh, you didn't mean "a smiley"
[07:33] <kiko>   simile
[07:33] <kiko>        n : a figure of speech that expresses a resemblance between
[07:33] <kiko>            things of different kinds (usually formed with `like' or
[07:33] <kiko>            `as')
[07:34] <SteveA> I meant that, rather than fill in a form and go to a do-nothing page that just says "you did something", go to a normal "+index" page, but with a status message saying "you did something".
[07:34] <SteveA> For a self-posting form, this is usually done with a redirect on successful form submission
[07:35] <kiko> SteveA, using person-join.pt and a redirect, or using index itself and sniffing +join from the request location?
[07:35] <SteveA> kiko: yep -- had metaphor and simile drilled into me for years in school :-)
[07:35] <kiko> thank god someone here went to school! barbarians! ;)
[07:36] <SteveA> the message would be done in the same way brad has been doing messages.
[07:36] <kiko> ah?
[07:36] <BradB> kiko: I wrote a mail to the list about it already.
[07:36] <BradB> kiko: It should contain everything you need to know.
[07:37] <SteveA> a bit subject to "we can make your page say something lame" injection attacks
[07:37] <SteveA> but we'll worry about that later
[07:37] <BradB> SteveA: Mine isn't. :)
[07:37] <SteveA> ok -- must read it more carefully ;-)
[07:37] <kiko> BradB, did the message have a subject? :)
[07:37] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: record some of the more important bug activity, namely bug add/edit, package assignment add/edit and product assignment add/edit (still a work in progress\!) (patch-939)
[07:37] <BradB> kiko: Yeah, it mentioned "status messages" in the subject :)
[07:38] <BradB> And "add forms" too, I think.
[07:38] <kiko> okay
[07:38] <kiko> salgado, see if you can find it, otherwise I can explore my launchpad mailbox
[07:38] <kiko> but if it is not sufficient 
[07:38] <kiko> I WILL BE BACK
[07:39] <kiko> and that wasn't english either
[07:39] <salgado> kiko, I'm reading it right now
[07:39] <BradB> kiko, salgado: http://rince.africaninspace.com/mailman/private/launchpad/2004-December/000845.html
[07:40] <BradB> that shows how sadly difficult it currently is to display status messages that 1. survive redirects and 2. avoid content injection attacks.
[07:42] <SteveA> BradB|lunch: okay -- so it works only for ints
[07:43] <salgado> you can pass in any bug number
[07:43] <BradB|lunch> salgado: yes, but you won't get a defacement
[07:43] <SteveA> the general form of that is a regex or other callable that verifies the form of the passed-in replacement
[07:43] <SteveA> basically a schema field ;-)
[07:43] <BradB|lunch> salgado: I could have also verified that the bug exists, but that's just the details
[07:43] <SteveA> so, perhaps we have a "redirect message schema"
[07:44] <SteveA> class IBugAddedRedirect(Interface):
[07:44] <SteveA>     bugnumber = Int(u"The bug number")
[07:44] <SteveA> something like that
[07:44] <BradB|lunch> SteveA: i dunno about regexes there though, it depends on what you want to show.
[07:45] <BradB|lunch> normally the general form is intended to be: 1. you pass back something that uniquely identifies something you want to show, 2. you leave it to the view to write the actually message, and lookup whatever it's supposed to lookup from the identifier it was given.
[07:45] <SteveA> then, in the redirect, it says  ..../+index?schema=IBugAddedRedirect&bug=123
[07:45] <SteveA> could also use the docstring of the IBugAddedRedirect schema as the message
[07:45] <SteveA> class IBugAddedRedirect(Interface):
[07:45] <SteveA>     """Bug number ${bug} has been added."""
[07:45] <SteveA>     bugnumber = Int(u"The bug number")
[07:46] <SteveA>     bug = Int(u"The bug number")
[07:46] <SteveA> (oops -- ignore 'bugnumber')
[07:46] <BradB|lunch> seeing schema=IBugAddedRedirect makes me worry a bit :)
[07:46] <SteveA> is this total CA crack ? ;-)
[07:46] <BradB|lunch> heh
[07:47] <BradB|lunch> okay, really |lunch now
[07:47] <SteveA> of course, we could use a code instead of IBugAddedRedirect
[07:47] <SteveA> like, an int
[07:48] <SteveA> but, that would be handled by the framework -- no need to see that in the code
[08:54] <sabdfl> SteveA, BradB: the View class should as a general pattern have a "messages" attribute, which is a list of messages
[08:55] <sabdfl> perhaps those could be smart enough to know what sort of message they are (info, alert, error sort of thing)
[08:55] <sabdfl> then a form can trivially iterate over those and display them
[08:55] <sabdfl> without content-injection problems
[08:58] <BradB> sabdfl: hm? I don't see how that survives redirects.
[08:59] <BradB> sabdfl: Realistically, what happens is that .nextURL gets called on the add form's view, which redirects to another URL (e.g. redirect back to the bug listing from a bug add form)
[09:02] <BradB> We need some kind of smart "IPC", I think. e.g. perhaps a status could be associated with a unique token, registered in a global utility. The global utility could store the status object + receipt in the ZODB, and pass the receipt to the nextURL. A view could then try to "pick up" a status message (like picking up something waiting for you at the post office), using the receipt. That's one idea anyway.
[09:04] <BradB> e.g.:
[09:04] <BradB> (in some method where something happens)
[09:05] <BradB> status.setInfo("congrats, something happened successfully")
[09:05] <BradB> browser_status = getUtility(IBrowserStatus)
[09:05] <SteveA> sabdfl: what I proposed is similar to what you describe above.
[09:05] <BradB> browser_status.set(status, 'some unique receipt')
[09:05] <SteveA> with the formalism of using schemas to describe messages and the allowed form of replacement text
[09:06] <BradB> then in nextURL:
[09:06] <SteveA> BradB: sounds a bit complex and heavy; could do that, though 
[09:06] <BradB> return "foo?status_receipt=some+unique+receipt"
[09:07] <SteveA> another scheme entirely is to use crypto, and pass a digest along with the query string stuff
[09:07] <SteveA> foo?message=You+have+added+bug+123&digest=0x123abcde
[09:07] <SteveA> still, not a big problem at the moment.  let's chat about it next week
[09:08] <BradB> SteveA: If I check that IBugEditForm thing now (with for=), will you have any time to look into tonight/
[09:08] <SteveA> yes
[09:08] <BradB> ok, then I'll check it now
[09:14] <BradB> I expect that it's going to tell me that my view doesn't implement IBugEditForm. Let's see...
[09:16] <BradB> SteveA: Adding for="canonical.launchpad.interfaces.IBugEditForm", produced the exact same KeyError
[09:18] <BradB> SteveA: i tried implement()'ing that iface in the view class too. no dice.
[09:19] <BradB> i.e. same error
[09:19] <SteveA> okay.  is this going to be straightforward for me to reproduce on my machine?
[09:19] <SteveA> is all the necessary code checked in?
[09:20] <BradB> SteveA: no, but all the necessary code is in the email that I sent you. :)
[09:20] <BradB> I don't really want to check this in
[09:20] <BradB> lib/canonical/launchpad/zcml/bug.zcml and lib/canonical/launchpad/interfaces/bug.py are where the bits go
[09:21] <SteveA> can you mail me those files?
[09:21] <SteveA> that way I'll be sure I've got it right
[09:21] <BradB> ok
[09:21] <SteveA> I'll have a crack at this now
[09:23] <SteveA> I need to fix up that keyerror problem, anyway
[09:23] <BradB> sent
[09:24] <BradB> See, we're already doing something very similar with the bug add form (it uses IBugAddForm to create a form that includes fields that you won't find on the bug itself.) It seems though that editforms behave differently in that respect.
[09:29] <SteveA> yeah, weird
[09:29] <SteveA> it could well be a bug
[09:29] <SteveA> this part of the forms stuff is more complex than it should be
[09:30] <BradB> SteveA: I hope life gets made easier with a browser:form directive in Mataro!
[10:27] <dilys> Merge to rocketfuel@canonical.com/launchpad--devel--0: add infestation activity tracking (patch-940)
[10:54] <BradB> sabdfl: I just realized package maintainers are going to get spammed on bug notifications, crap.
[10:55] <BradB> e.g. I'm the debian maintainer. I don't want to get emails about to whom the bug was assigned among the redhat maintainers.
[10:59] <BradB> sabdfl: It's not a big deal I guess. The notifiers could be made more intelligent for some of the notifications (e.g. a maintainer probably wants to see CVE refs and web links and perhaps even infestations no matter the distro, whereas the *assignment stuff could be filtered to notify per-distro)
[11:17] <BradB> SteveA: any luck on the editform-fu?
[11:18] <SteveA> BradB: not yet.  popped off to eat.  I'll stare at it some more now :) 
[11:36] <sabdfl> SteveA, bradb, it seems that the web page alert or message is really a message *to a person*
[11:37] <sabdfl> so this might be a useful place to use the zodb decorations
[11:37] <sabdfl> decorate the principal
[11:37] <sabdfl> "add this alert to the list of alerts for user X"
[11:37] <sabdfl> then the view can have a .messages list which give you any messages
[11:37] <sabdfl> hmm... how would messages be cleared, I wonder?
[11:38] <sabdfl> back in a few minutes
[11:39] <BradB> sabdfl: Annotations are meant to describe things, without having to alter the original content to do so. I think an average Zope 3 developer would be quite surprised to figure out that annotations were used for that.
[11:39] <BradB> sabdfl: And also, well, it's not thread safe.
[11:40] <SteveA> I think zodb annotations, and maybe the zodb in general, is a bit dodgy for status messages.
[11:40] <SteveA> but...
[11:40] <SteveA> I think the idea of a personal activity log is useful
[11:40] <SteveA> like, imagine if there's a list of stuff you've done, and when
[11:41] <SteveA> that is kept in the zodb
[11:41] <SteveA> that you can look at
[11:41] <SteveA> and a portlet that tells you the most recent 5 things
[11:41] <SteveA> and has a link to the "noun" that the thing was about
[11:41] <BradB> SteveA: Or better, yet, a not-personal activity log, perhaps.
[11:41] <SteveA> for example, if a thing is "changed status on bug 123", it is a link to bug 123
[11:41] <BradB> People seem to always want to be able to audit users.
[11:41] <SteveA> non-personal?
[11:42] <BradB> i.e. just an audit log of what people do in the site.
[11:42] <SteveA> well, sure, *we* could look at what someone has done.  could be useful for handling bug reports
[11:42] <SteveA> it would be an audit log only of completed transactions
[11:42] <SteveA> which is useful in itself
[11:42] <SteveA> but not so useful of a full audit log
[11:42] <SteveA> hey, another thing to jam on in mataro
[11:42] <SteveA> when do you leave, brad?
[11:43] <BradB> tomorrow night at 18:40
[11:43] <BradB> going for tapas with girlfriend soon :P
[11:43] <SteveA> cool
[11:43] <SteveA> where does bug.py go?
[11:43] <SteveA> it seems to have a large delta from the one in database/
[11:43] <BradB> SteveA: that files contains interfaces
[11:43] <SteveA> oh
[11:43] <SteveA> duh ;-)
[11:44] <BradB> :)
[11:44] <SteveA> should have actually read the file
[11:44] <SteveA> so, if I go to +edit on a bug I'll see the problem
[11:44] <BradB> yes
[11:45] <SteveA> one thing with malone
[11:45] <BradB> SteveA: the goal is that all edit screens on things related to a bug (including, of course, the bug itself) will have one extra little widget added to them, to capture a changelog message, and store that somewhere that isn't a bug
[11:45] <SteveA> I find the lots of "document" icons in different places very confusing
[11:46] <SteveA> like my UI renderer has left noise when I've been trying to drag and drop
[11:46] <BradB> SteveA: mark's idea :)
[11:46] <SteveA> the icons should be in front of the text
[11:46] <SteveA> not after it
[11:46] <SteveA> so they line up nicely
[11:46] <BradB> that'd help, yeah
[11:46] <SteveA> and like they are in the column header
[11:47] <SteveA> I think we need something better for "upstream"
[11:47] <BradB> SteveA: the word you mean?
[11:47] <SteveA> no, the icon
[11:47] <BradB> ah
[11:48] <SteveA> yay
[11:48] <SteveA> I have reproduced your bug
[11:49] <SteveA> okay
[11:49] <BradB> woo
[11:49] <SteveA> traverse functions need to return None, not raise KeyError
[11:49] <SteveA> so the traverse function is in error there
[11:49] <SteveA> that's the "traverse function" contract
[11:49] <SteveA> let's see what happens when I fix that
[11:50] <SteveA> okay, I now get a proper NotFound error
[11:50] <SteveA> now I need to find out why it doesn't find +edit
[11:51] <BradB> indeed, indeed
[11:51] <SteveA> can you fix the traverse function in your copy?
[11:51] <BradB> sure
[11:51] <BradB> it might break things though. i guess we'll see
[11:52] <SteveA> shouldn't do
[11:55] <SteveA> aw crap
[11:56] <SteveA> I think I've got it
[11:57] <SteveA> okay, here's what you need to do
[11:57] <BradB> !
[11:57] <SteveA> 1. register the +edit form for IBug
[11:57] <SteveA> 2. register an adapter from IBug to IBugEditForm.
[11:57] <SteveA> I suggest you use the "decorates" thing for this
[11:58] <SteveA> you know about "decorates" don't you?
[11:58] <SteveA> basically, the forms machinery doesn't really fit with what you're trying to do
[11:59] <SteveA> I think what you're trying to do is pretty reasonable, given the forms machinery
[11:59] <SteveA> we need to make this better when we work on browser:form
[11:59] <BradB> SteveA: if i were missing an adapter, i would have expected it to tell me that it couldn't find an adapter
[11:59] <SteveA> it does do
[11:59] <SteveA> when you do step 1 above