/srv/irclogs.ubuntu.com/2004/09/14/#launchpad.txt

carlosspiv: ok, thanks for look at it :-)12:04
carlospeople, good night12:04
limi|busydaf?12:07
daflimi|busy?12:12
=== limi|busy might have figured it out ;)
limi|busygive me 20 seconds, and we'll know12:12
limi|busyModule canonical.rosetta.browser, line 75, in products12:13
limi|busytotal = product.messageCount()12:13
limi|busyForbiddenAttribute: ('messageCount', <Product at 0x12:13
limi|busylatest merges from rocketfuel12:14
limi|busyre-built DB12:14
limi|busydaf: this is when accessing the GNOME project in Rosetta12:14
dafbah12:15
dafcan you give the complete last line of the error message?12:16
limi|busyyes12:16
limi|busyModule zope.tal.talinterpreter, line 311, in interpret12:16
limi|busyhandlers[opcode] (self, args)12:16
limi|busyModule zope.tal.talinterpreter, line 723, in do_loop_tal12:16
limi|busyiterator = self.engine.setRepeat(name, expr)12:16
limi|busyModule zope.tales.tales, line 687, in setRepeat12:16
limi|busyit = self._engine.iteratorFactory(name, expr, self)12:16
limi|busyModule zope.tales.tales, line 109, in __init__12:16
limi|busyself._next = i.next()12:16
limi|busyModule canonical.rosetta.browser, line 75, in products12:16
limi|busytotal = product.messageCount()12:16
limi|busyForbiddenAttribute: ('messageCount', <Product at 0x38292d012:16
limi|busy>12:17
limi|busy)12:17
limi|busy:)12:17
dafhmm12:17
limi|busydaf: any idea what it could be?12:36
dafa bug?12:43
spivGah.12:50
dafI don't understand it12:50
spivSteveA: Around?12:50
dafspiv: I suspect not, given his timezone12:51
spivdaf: Ah, ok.  I've no idea what time it is anywhere anymore ;)12:51
limi|busytime zones are for wimps12:51
dafspiv: :)12:52
daflimi|busy: ah, I think I see what's going on12:53
limi|busyok12:53
=== limi|busy rearranges Stuff
daflimi|busy: in lib/canonical/rosetta/browser.py12:54
spivdaf: Anyway, I *may* have found the cause of carlos's bug.12:54
dafspiv: the mystery of the missing END?12:55
limi|busydaf: do continue ;)12:55
limi|busythe suspense is killing me12:55
limi|busy;)12:55
daf--- orig/lib/canonical/rosetta/browser.py12:55
daf+++ orig/lib/canonical/rosetta/browser.py12:56
limi|busythere's a conflict that got merged?12:56
daf@@ -58,3 +58,3 @@12:56
daf          person = IPerson(self.request.principal, None)12:57
daf          if person is not None:12:58
limi|busydaf, the manual diffing machine12:58
daf              for language in person.languages():12:58
daf-                 yield LanguageProducts(language, self.context.products)12:58
=== daf gives up
limi|busyremove that line and...12:58
dafadd this one:12:59
daf                yield LanguageProducts(language, self.context.rosettaProducts)12:59
dafwell, give that a try and see if it fixes it01:00
limi|busytesting01:00
=== mdz [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
dafoh, Friday01:00
limi|busylovely Friday01:00
limi|busydaf: same error01:02
limi|busyor; similar01:02
limi|busyModule zope.tales.tales, line 109, in __init__01:03
limi|busyself._next = i.next()01:03
limi|busyModule canonical.rosetta.browser, line 75, in products01:03
limi|busytotal = product.messageCount()01:03
limi|busyForbiddenAttribute: ('messageCount', <Product at 0x3843750>)01:03
=== limi|busy still wonders why nobody else sees these
dafhmmm01:03
=== elmo [~james@83.216.141.215] has joined #launchpad
daflimi|busy: I'm trying to reproduce this error locally01:11
limi|busyok01:11
=== limi|busy goes back to the prefs form tweaking
spivdaf: Yep, I definitely know why carlos's thiing isn't being committed.01:21
spivdaf: What I don't know is what the right way to fix that is :)01:21
=== spiv goes to think about it over dinner
dafspiv: another sqlobject/slos bug?01:24
limi|busycarlos does insane things to ZPT at times :] 01:44
limi|busydaf: any idea where the actual language list is coming from?01:48
limi|busyie. which file is it in?01:49
limi|busyor does it grab it from the system?01:50
limi|busydaf: ping? :)02:03
limi|busyspiv?02:03
limi|busy:)02:04
limi|busyanyone? :] 02:04
=== limi|busy feels alone
daflimi|busy: from the database02:04
dafsorry, got distracted02:04
limi|busydaf: aha02:04
limi|busyanyway02:04
limi|busyI have a more complex question ;)02:04
dafeek!02:05
limi|busyhow can I get the languages the logged-in person has?02:05
limi|busyI didn't quite understand what kind of structure carlos was using in the dashboard02:05
dafum02:05
limi|busythe "select your languages" part02:05
dafshould be something like02:05
dafrequest/lp:person/languages02:05
=== limi|busy tests
dafgrep around for something like that; I think it's used in at least one template already02:06
limi|busyModule zope.interface.interface, line 684, in __call__02:07
limi|busyraise TypeError("Could not adapt", obj, self)02:07
limi|busyTypeError: ('Could not adapt', <zope.app.security.principalregistry.UnauthenticatedPrincipal object at 0x29a3a50>, <InterfaceClass canonical.rosetta.interfaces.IPerson>)02:07
limi|busynothing greppable that I can find :(02:07
dafbah, that error again02:08
=== limi|busy gets some litchi
dafhmm02:11
dafyou know that error you had before?02:11
limi|busyoh well, I can leave it for carlos to sort it out02:12
limi|busyyes?02:12
dafwhat does line 65 of your browser.py say?02:12
limi|busy                yield LanguageProducts(language, self.context.products)02:13
limi|busychange to rosettaProducts?02:13
dafwhat line did you change before?02:13
limi|busy5802:13
dafaha02:14
dafok, both lines 58 and 65 should read ".rosettaProducts()" instead of ".products"02:14
limi|busyok02:14
limi|busyand why is it only me that has this problem? :)02:15
=== limi|busy feels singled out
limi|busy:] 02:15
dafI didn't get it because I was not up-to-date, I think02:15
dafor because I wasn't looking at that page02:16
limi|busyok :)02:16
dafor because the moon is Waning Gibbous02:16
limi|busywell, it's just the project page, it's not like it's important or anything O:)02:16
daf:)02:16
limi|busythat language list in the DB is on crack, btw02:17
limi|busy70% of it is dead/unused languages02:17
limi|busy:] 02:17
limi|busydaf: almost:02:19
limi|busyModule zope.tales.tales, line 109, in __init__02:19
limi|busyself._next = i.next()02:19
limi|busyModule canonical.rosetta.browser, line 74, in products02:19
limi|busyfor product in self._products:02:19
limi|busyTypeError: iteration over non-sequence02:19
limi|busy;)02:19
dafwtf?02:19
dafthat is *so* a sequence02:19
limi|busyhaha02:19
limi|busynot _rosettaProducts?02:19
daftry slapping a list() around self.context.rosettaProducts()02:20
limi|busyok02:20
limi|busyboth lines?02:20
dafaye02:20
=== limi|busy feels like the Java days again
limi|busytypecasting all over the place ;)02:21
dafhaha :)02:22
limi|busysame error02:22
dafhumph02:22
dafWorks For Me <tm>02:25
limi|busyDoesn't Help02:26
limi|busy;)02:26
=== daf scratches his head
daftry rebuilding your database02:27
daf"make -C database/schema launchpad_test", IIRC02:27
limi|busyI did that after I updated last, but...02:29
=== limi|busy tries again
dafand you did restart Launchpad, right?02:30
limi|busyyes02:31
dafthen you *are* being singled out :)02:31
limi|busyhehe02:32
limi|busyModule zope.tales.tales, line 109, in __init__02:32
limi|busyself._next = i.next()02:32
limi|busyModule canonical.rosetta.browser, line 65, in languageProducts02:32
limi|busyyield LanguageProducts(language, list(self.context.rosettaProducts))02:32
limi|busyTypeError: iteration over non-sequenc02:32
limi|busystill no worky02:33
dafyou missed out the ()02:33
limi|busy?02:33
dafrosettaProducts()02:33
limi|busyaha02:33
dafif you add the (), you can probably get rid of the list()02:34
daf(both of them)02:34
limi|busyyes, did that ;)02:34
limi|busydaf: what's a "temporal hack", btw? is that where you get 25 hours in a day?02:35
daf:)02:35
limi|busyO:)02:35
daf:D02:35
dafI think that's Carlosspeak for "temporary hack" :)02:35
limi|busyhehe02:35
=== limi|busy is no longer singled out!
daflimi has gone mainstream :)02:36
=== limi|busy breaks Rosetta 0.2s later:
limi|busyModule zope.app.publication.publicationtraverse, line 57, in traverseName02:37
limi|busyob2 = adapter.publishTraverse(request, nm)02:37
limi|busyModule canonical.metazcml, line 148, in publishTraverse02:37
limi|busytraversed_to = getattr(self.context, self._getter)(name)02:37
limi|busyForbiddenAttribute: ('product', <canonical.rosetta.domain.RosettaProject object at 0x38678f0>)02:37
limi|busywhen clicking a product in GNOME project page02:37
=== limi|busy adds some UI porn instead
dafoh, bloody ForbiddenAttributes02:39
dafbah, file system full >:-|02:42
limi|busyouch02:43
dafFilesystem            Size  Used Avail Use% Mounted on02:43
daf/dev/hda2              24G   22G     0 100% /02:43
dafum, isn't there 2G missing there?02:44
limi|busydepends how it counts it02:46
limi|busythere's always block slack02:46
limi|busyif you have lots of small files, that may be a correct number02:46
dafI know, but it's annoying when you're desparately looking around for free space02:46
limi|busyget rid of some mp3s :] 02:47
dafeek!02:48
justdavethe Avail and the Use% indicate userspace on the disk03:31
justdavethere's a bit reserved for root03:31
mdzdaf: it doesn't count space which is reserved for root03:33
mdzby default 5%03:33
mdzso 1G and change in your case03:33
dafmdz: interesting, thanks03:40
dafmdz: this is something which can be configured, right?03:41
mdzdaf: yes03:41
mdzdaf: tune2fs -l /dev/hda2 to view it03:41
mdztune2fs -m <percentage> /dev/hda2 to change it03:41
dafgroovy03:41
dafcan this be changed on a mounted filesystem?03:42
mdzit's probably not dangerous to do so, but it wouldn't take effect until the filesystem was remounted03:42
dafhmm, df is reporting the change immediately03:43
!dmwaters:*! hi all! I'm going to wake everyone up a bit.:) I need to switch out one main rotation server for another. basically, replacing an old box with a new one.:) this won't take long. 1800 users affected.04:14
=== spiv [~andrew@fuchsia.puzzling.org] has joined #launchpad
=== SteveA [~steve@adsl-213-190-44-43.takas.lt] has joined #launchpad
mdzthat seems plausible04:21
mdzI wouldn't expect it to be enforced yet, though, but I suppose it's possible04:21
dafwe shall see :)04:27
=== mdz_ [~mdz@69-167-148-207.vnnyca.adelphia.net] has joined #launchpad
=== mdz_ is now known as mdz
spivSteveA: I'm off to bed now, so just a quick note that BrowserPublication defines two different beforeTraversal methods!06:43
!lilo:*! So, it occurs to me to wonder what the maximum practical latency between participants in a peer-directed project might be: http://www.reuters.com/newsArticle.jhtml?type=scienceNews&storyID=6133976&src=eDialog/GetContent&section=news07:29
SteveAthanks!09:16
SteveAI'll fix that09:16
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
carlosmorning11:10
SteveAmorning11:32
SteveAspiv found the database error11:32
SteveAI'd introduced a bug when I merged in the auth changes11:32
SteveAthere are two beforeTraversal methods defined in BrowserPublication11:32
carlosSteveA: then, it's already fixed?11:40
SteveAI don't believe anything is checked in yet11:57
SteveAbut, I also just read andrew's note about a bug in sqlobject joins11:57
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
=== carlos_ [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
=== carlos_ is now known as carlos
carlosSteveA: I'm having a problem with this page https://rosetta.warthogs.hbd.com/rosetta/prefs12:54
carlosSteveA: if I select only a entry from "Available languages", the request gives me something like: availablelanguages: itemSelected12:55
carlosbut If I select more than one, I get something like: availablelanguages: u'item1', u'item2', u'item3' 12:56
carlosand when I try to iterate over all values, it does not work as it should12:57
carlosbecause in the first case, it itereates over all letters instead of just retrieve the value12:57
SteveAok, that sounds like what I'd expect it to do01:09
SteveAwhen there is more than one, what kind of object is it?01:09
SteveAyou can also change the code in the page template to say availablelanguages:list rather than just availablelanguages01:10
SteveAlike:01:10
SteveA  <select name="availablelanguages:list">01:10
SteveAyeah, try making it a list:01:12
SteveA            <select id="prefs-available-languages" name="availablelanguages" size="10" style="width: 20em;" multiple="multiple" ondblclick="javascript:addSelectedKeywords('prefs-available-languages','prefs-selected-languages');return false;">01:12
SteveAchange that to contain name="availablelanguages:list"01:12
carlosok01:12
SteveAoh, wait...01:12
SteveAyou want "selectedLanguages" not "availableLangauges" dont' you?01:12
carlosI want both01:13
SteveAwell, all in lower01:13
carlosyes01:13
SteveAI don't know how what I suggested would interact with the fancy javascript01:13
SteveAso, better to handle this in your form-processing method01:13
carlosthe add submit gets the available, the remove submit gets the selected01:13
SteveAtest the type of availablelanguages01:14
carloswell, in fact, I don't know why, but the javascript is not working anymore here01:14
SteveAisinstance(availablelanguages, list)01:14
carlosbut that's another problem01:14
carlosSteveA: is there any way to do the javascript magic without submit it?01:15
carlosor just ignoring it is enough?01:15
SteveAI don't know exactly what you mean01:15
carloswith the limi's code, we have three submit buttons01:15
SteveAlet's solve your original problem first01:15
carlosone to save and two for add/remove01:15
carlosok01:15
SteveAcan you try to use isinstance(availablelanguages, list) to see if it is a string or a list?01:16
carlosSteveA: ok, it works01:18
SteveAgreat01:19
SteveAnow, on stopping buttons from submitting01:20
SteveAyou need to ensure the javascipt returns false01:20
SteveAthat should stop them from hitting the server01:20
SteveAbut, it looks like it does that already01:20
carlosand it's fixed now01:20
carlosif isinstance(self.request.form['availablelanguages'] , list):01:20
carlos                    newLanguages = self.request.form['availablelanguages'] 01:20
carlos                else:01:20
carlos                    newLanguages = [ self.request.form['availablelanguages']  ] 01:20
carlos                for englishName in newLanguages:01:20
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
SteveAokay01:21
carlosSteveA: hmm, I think I was wrong the add/remove button should submit always because if the languages are not selected the request does not have the list of items...01:21
carloslimi: hey01:21
carloslimi: I'm broking your templates :-P01:22
limihehe01:22
carlosbut then, I don't understand the utility of the javascript...01:22
carloslimi: if the submit buttons work, the javascript has any utility?01:22
carlosI mean, Is it useful?01:23
limiwhat do you mean?01:23
carloslimi: in my local machine, the javascript code has not effect anymore and I just changed the template so the list of selected languages is filled with user's preferences01:24
carlos /s/just/only/01:24
carlosfrom the template, from browser.py I changed lot of things01:25
limiyou probably changed the variable names, right?01:25
SteveAI must go out and buy some optician stuff.  probably get some lunch too.  back later.01:27
carloslimi: only the browser.py ones, not the javascript ones or the html objects ones01:28
carlosSteveA: later01:28
carloslimi: my changes:01:29
carlos <div metal:fill-slot="main"01:29
carlos-     tal:define="languages view/languages">01:29
carlos+     tal:define="languages view/languages; selectedLanguages view/selectedLanguages" >01:29
carlos-    <form action="translator" method="post">01:29
carlos+    <form action="prefs" method="post">01:29
carlos-                      <option>Dummy</option>01:29
carlos+01:29
carlos+                      <option tal:repeat="language selectedLanguages"01:29
carlos+                             tal:content="language/englishName"01:29
carlos+                             tal:attributes="name language/code" />01:29
carlosnothing more01:29
limishould work then01:30
=== limi updates
carlosI know :-)01:30
carlosIt's not yet at rocketfuel01:30
limiok01:30
carlosdo you want it?01:30
limiyes, mail it to me?01:30
limilimi at plone.org01:30
carlosok01:30
carlossent01:36
carloslimi: also, I think we don't need the Save button01:39
limiwell, it depends01:40
carlosbecause the only way to save the new list is every time we push the add/delete one01:40
limiyes, but there might be more preferences later01:40
carlosseems like the View object is created every time after the submit01:40
SteveAthe view object is created on every request01:40
liminot sure I follow you01:40
SteveAyou cannot cache data in the view object between requests01:41
limithe page shouldn't reload01:41
carloslimi: When you click on the add button01:41
limiyes01:41
carlosI create a list with the additions01:41
limiand reload the page?01:41
carlosbut if you click again in any other button that list does not exists anymore01:41
limi?01:42
carloslimi: new object, new variables01:42
limiyou are only concerned with the list on the right01:42
SteveAwhen I click the "add to my languages" button, there is no request back to the server.01:42
limisave that to the user prefs01:42
limiSteveA: exactly01:42
SteveAthe javascript has a "return false;" in it01:42
limiI don't want to rely on XmlHttpRequest (not just yet, at least)01:43
carloslimi: ok, that's fine for me, but with my changes, I don't know why, the submit is done01:43
limicarlos: just take the list on the right and save that to the user prefs01:43
limicarlos: then that needs to be fixed ;)01:43
SteveAyou can tell what button is pressed in your form handling method01:44
carloslimi: ok, if you could tell me what did I broke...01:44
carlos:-)01:44
limihehe01:44
carlosSteveA: I know01:44
=== limi looks
SteveAso, the form handler should do nothing (but maybe emit a warning) unless "save" is pressed01:44
carlosSteveA: then the submit is always done?01:44
carlosthen, the problem is that I added code to handle all buttons01:44
SteveAcan you ask that question in another way?01:44
SteveAonly the save button should submit the form to the server01:45
SteveAthe other buttons might, if javascript is turned off01:45
SteveAunless limi has done more magic to make them appear only when javascript is working01:45
carlosSteveA: with javascript on and the current configuration, the view should never get a request from add/remove?01:45
SteveAyes01:45
SteveAthe server should get no request from add/remove01:46
limicorrect01:46
SteveA"no no no no absolutely not", to quote "Bad News"01:46
carlosSteveA: I got those requests, and I have javascript enabled, because without my changes the javascript works01:46
limiyou just save the list on the right01:46
SteveAplaying a bastardized version of "Bohemian Rhapsody"01:46
carlosok, the problem is that I was handling "add" submit01:47
carlosremoving it makes it work again01:47
carlosbut then the submit is done always01:47
SteveAok, but it shouldn't actually hit the server01:47
SteveAcheck in the rendered page01:47
SteveAsee if you have "return false;" at the end of the javascript in the add/remove buttons01:48
SteveA01:48
SteveA        <div style="float: left; padding-top: 5em;">01:48
SteveA            <input type="submit" name="add" value="Add to my languages &raquo;" onclick="javascript:addSelectedKeywords('prefs-available-languages','prefs-selected-languages');return false;" />01:48
SteveAsee, at the end of the onclick attribute01:48
SteveAthat "return false;" will stop the browser from treating the click as a real form submit01:49
SteveAlimi: why do paragraphs change colour when my mouse goes over them?01:49
limiparagraphs?01:50
limioh, the help text?01:50
SteveA" Add or remove languages in your language list by double clicking the entries or using the labeled buttons. Use Ctrl to select multiple elements".01:52
=== SteveA really goes out now
carlosthe return false is still there but for some reason does not work...01:55
carlosbtw, it's not important now, just remove the code to handle those buttons and that's it01:55
carloslimi: I don't have a way to get the list of selected languages01:59
carloslimi: they should be "selected" so the request send me that list01:59
limiyou are going about this the wrong way :)02:00
carlosI'm using <div tal:content="request" />02:00
carlosto see the request02:00
limithe list on the left is always static, and a separate item02:00
limithe list on the right is the variable stored on the user02:00
carlosand every time I press the Save button I don't get that list02:00
limidon't make them one variable02:00
carlosforget the code I sent you02:01
carlosjust look at this:02:01
carlosCHANNEL_CREATION_TIME: 1094212731.84 CONNECTION_TYPE: keep-alive CONTENT_LENGTH: 33 CONTENT_TYPE: application/x-www-form-urlencoded GATEWAY_INTERFACE: CGI/1.1 HTTP_ACCEPT: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP_ACCEPT_ENCODING: gzip,deflate HTTP_ACCEPT_LANGUAGE: es,en-gb;q=0.7,en;q=0.3 HTTP_HOST: localhost:8085 HTTP02:01
carlos_KEEP_ALIVE: 300 HTTP_REFERER: http://localhost:8085/++skin++Debug/rosetta/prefs HTTP_USER_AGENT: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.7.2) Gecko/20040814 Epiphany/1.3.7 PATH_INFO: /++skin++Debug/rosetta/prefs REMOTE_ADDR: 127.0.0.1 REQUEST_METHOD: POST SAVE: Save SCRIPT_NAME: SERVER_NAME: frodo SERVER_PORT: 8085 SERVER_PROTOCOL: HTTP/1.1 SERVER_SOFTWARE: zope.server.http (HTTP) availablelanguages: Akan02:01
carlosI get that after add the Akan language with javascript (without the submit)02:01
carlosand the pressing the Save button02:02
carlosI only get availablelanguages: Akan, because It's still selected from the available list when I added it with javascript02:02
carlosI don't see a way to get the list of selectedlanguages02:02
limiask SteveA when he gets back, this is request magic :)02:05
limishouldn't be a problem if you know how (I don't ;)02:06
carloslimi: SteveA told me that the way it works is: you only get what you have selected02:06
carlosis the same with a checkbox02:07
carlosif the checkbox is not checked, you don't get it with the request object02:07
limiyes, but it should select the selected languages on submit02:07
=== limi checks
carlosthat's why I was working with the add/remove buttons02:07
SteveAI see no code that would select languages in the "my languages" select box before submitting02:08
limiok, let me look at it02:09
=== SteveA really really goes now :-)
=== SteveA isn't here any more
carlosSteveA: X-)02:12
carloslunch time02:27
carloslater02:27
=== limi subjects himself to a temporal hack
dafsomebody broke the server03:02
dafcarlos: I think it was you03:02
dafcarlos: syntax error in lib/canonical/browser.py, line 32603:02
dafdid SteveA say when he'd be back?03:08
liminope03:08
carlosdaf: hmm, I checked it before commit03:43
carloslet me see...03:43
carlosshit03:44
carlosdaf: sorry, was my fault03:45
carlosdaf: merge request to fix it sent03:47
dafthanks03:50
carlosdaf: could we add all pending things to bugzilla so we can track its status and pick the "free" ones when we are free to pick another task?03:57
carloshmm I thought our bugzilla is at https://bugzilla.warthogs.hbd.com/ but seems like it's not there, which one is the correct URL?03:59
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
dafhttp://bugzilla.warthogs.hbd.com/bugzilla?04:01
carlosdaf: yes04:02
carlosthanks04:02
dafdoo itashimashite04:02
carlosdaf: :-?04:02
dafcarlos: de nada04:03
carlos:-P04:04
carlosok04:04
=== SteveA is back
dafSteveA: hi04:07
carlosSteveA: Did you saw the talk I had with limi about the request object?04:07
dafSteveA: do you have time to help me with this problem I'm having?04:07
=== carlos can wait
SteveAcarlos: should I read the irc logs for when I was at lunch?04:18
SteveAdaf: what's the problem?04:18
dafin a nutshell:04:19
dafNotFoundError: (<RosettaProject at 0xb414896c>, 'title')04:19
carlosSteveA: no, it was just before you leave. As soon as you end helping daf I will explain again the problem, ok?04:19
SteveAok04:20
SteveAdaf: that doesn't tell me much04:20
dafSteveA: I'm miffed because RosettaProject implements IRosettaProject which is derived from doap.IProject which has a title attribute04:20
dafSteveA: and, in sql.zcml, the IRosettaProject interface is allowed for RosettaProject04:20
dafthe error ocurrs on the TAL expression 'context/product/project/title'04:21
dafin pdb:04:22
daf(Pdb) self.context04:22
daf<RosettaPOTemplate at 0xb4204b2c>04:22
daf(Pdb) self.context.product04:22
daf<RosettaProduct at 0xb41fb58c>04:22
daf(Pdb) self.context.product.project04:22
daf<RosettaProject at 0xb41aeecc>04:22
daf(Pdb) self.context.product.project.title04:22
daf*** ForbiddenAttribute: ('title', <RosettaProject at 0xb41aeecc>)04:22
SteveAwhat box are you working on?04:22
SteveAyour laptop?04:22
dafyes04:22
SteveAcan you give me a login there, and we can use screen for some pair-programming debugging?04:23
dafsure04:23
=== SteveA goes to make a cup of tea while daf gets set up
dafit's been a while since I've done this04:23
SteveAkeep notes to put up on a wiki page perhaps04:25
dafgood idea04:25
SteveAthis will be even better when we can use voip and screen together04:25
daf:)04:28
carloshttps://rosetta.warthogs.hbd.com/++skin++Debug/rosetta/projects/gnome/evolution/04:33
carlosSteveA: I think that error is related to that bug04:33
SteveAI think you're right04:35
SteveAwant to talk about requests while daf gets ready?04:36
carlosok04:36
carlosIt's about the page to select interested languages04:36
carlosLimi creates a list with javascript04:36
carloswhen you click on add/remove04:36
carlosand in theory, when you click on "Save", I should get that list04:37
SteveAok04:37
limiI probably need to do a select all on that click04:37
SteveAyes04:37
SteveAI expect so04:37
SteveAotherwise, nothing will be sent04:37
carlosthat's what I thought :-P04:37
SteveAotherwise, when you add items to the select box, also add a hidden form field04:37
SteveAbut that sounds complex04:37
SteveAwhen you consider removal too04:38
SteveAdon't even know if it would work :)04:38
limiwe are using it in production with the select all :)04:38
limiso I should be able to locate that04:38
SteveAso, carlos, limi will fix it with javascript04:39
SteveAto test for now, you can manually select all the items before submitting04:39
limi+104:39
limi:)04:39
carlosok04:39
carloslimi: and is there any way to get the language code instead of the language name?04:39
SteveAcarlos: maybe add a note to the UI saying "XXX select all items before submitting"04:39
carlosSteveA: ok04:40
limiit has the lang code now, afaik?04:40
carloslimi: no, the submit send the language name04:40
limiok04:40
carloslimi: I just merged into rocketfuel the project-index.pt updated so it does not shows anything about a language04:41
dafSteveA: ssh stevea@earthsea.homedns.org04:44
SteveAhmm04:51
SteveAdebug1: Connecting to earthsea.homedns.org [80.69.60.252]  port 22.04:51
dafhmm04:52
SteveAI can't get any response telnetting to port 22 either04:56
dafprobably a problem with the router04:56
SteveAlet's see if I can connect to your launchpad04:57
SteveArun it on 8085, and I'll try to connect04:57
SteveAcan I run a portscan on you?04:58
SteveAwill your isp think I'm cracking?04:59
dafno, they're sane05:02
dafhm, I tried opening port 2222 also05:02
dafbut that doesn't seem to work either05:02
dafperhaps I'll just set up an ssh tunnel05:02
carloslimi: the preferences page is implemented but does some funny things until the DB commit is fixed05:05
dafSteveA: try "ssh stevea@muse.19inch.net -p 2222"05:06
SteveAok, need password05:07
daf/msg'd05:07
dafnow: screen -x daf/05:08
daf(I think)05:08
SteveAMust run suid root for multiuser support.05:08
dafhrm05:08
daftry again05:09
carloswow, I didn't know that screen's feature05:10
=== SteveA waits for daf to type something in screen
SteveA3 minute workrave time05:11
SteveAok, let's debug05:17
SteveAhow about we do gossip and screen05:17
SteveA?05:17
dafsure05:20
dafhttp://muse.19inch.net/~daf/misc/multiuser-screen.html05:22
SteveAstill there?05:25
dafyes05:27
dafthe screen session has two windows05:28
SteveAso, we can talk on gossip05:28
dafone for running launchpad in05:28
dafand the other for modifying code in05:28
SteveAI have my terminal arranged so I can see our talk in gossip, and the screen session05:28
SteveAmainly, I want to get into the debugger at the point the error fails05:28
SteveAso, PM debug the permissions problem05:28
dafI have an explicit "import pdb; pdb.set_trace()" in the code at the moment05:29
dafwe can debug from where that runs05:29
daf(in browser.py)05:29
dafor we can debug from the point whre it was failing of its own accord05:29
SteveAlet's use the post-mortem debugger for now05:30
SteveAI want you to see how I'd debug one of these permissions problems05:30
dafwell, both suggestions apply to the PMD05:30
dafoh, right05:30
dafok, I'll disable the explicit debugger invocation05:31
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad
!lilo:*! Hi all. We need translator assistance in translating an English-language email for speakers of Spanish in the Dominican Republic....please message me if you can help05:58
=== justdave [~dave@24.247.63.44.gha.mi.chartermi.net] has joined #launchpad
=== carlos goes to the university to study. See you!!
=== elmo [~james@83.216.141.215] has joined #launchpad
=== SteveA [~steve@adsl-213-190-44-43.takas.lt] has joined #launchpad
daflimi: the color scheme change seem to only happen for some pages07:11
daflimi: also, I noticed you discussing the "change-colour-on-hover" behaviour of some text with Steve -- did you come to a conclusion about it?07:12
limiit's on the help text class - from Plone07:15
limiit was essentially added since some hard-of-sight people didn't like grayed-out text for the help07:15
limieasily removed if we don't like it07:15
limione line of CSS ;)07:15
limithe color change should happen everywhere, make sure your cache is fresh07:16
limishift-reload where it looks like the old version07:16
limianyway, still waiting for the designs from the agency07:16
limiwas just tired of it looking like Plone :)07:17
daf:)07:17
dafwhich agency is this?07:17
limithe logo people07:17
daf(I find the black-on-dark-blue a little difficult to read)07:17
dafoh dear07:17
=== limi fears the worst
=== lalo [~lalo@200-203-022-120.paemt7002.dsl.brasiltelecom.net.br] has joined #launchpad
dafhurrah!08:24
dafDatabaseException: unindexable object08:24
dafI didn't think I'd be happy to see that again...08:25
dafspiv: around?08:26
daflalo: "fixed DB regression introduced by SteveA when integrating authentication." -- was that yours?08:28
SteveAthat was me08:32
SteveAwhat's up?08:33
SteveAare you glad you got an "unindexable object" error?08:34
dafSteveA: did you forget to mirror?08:34
dafSteveA: no patches were merged08:34
dafSteveA: yes, I'm glad08:34
dafbecause that's what I was working on a few days ago before I got sidetracked by other things08:35
SteveAoh, yes... I forgot that my mirror hook isn't there08:35
dafI'd really like to get this error fixed08:37
dafbecause I don't think there's much else in the way of getting database submission merged to rocketfuel08:37
dafperhaps spiv's at lunch08:38
SteveAI just submitted a merge08:42
SteveAthat should fix the database error I introduced08:42
dafwhich one?08:42
SteveAthere were two beforeTraversal methods08:43
SteveAthey should have been merged into one08:43
SteveAso, the transaction wasn't being started correctly, and the connection pool wasn't being cleared08:44
dafoh, right08:44
=== limi_ [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
SteveAnono nononono nononono nono08:44
SteveAthere's no limi08:44
=== limi_ is now known as limi
limiO:)08:44
SteveAchris morris interviewed the performers of that song (2 unlimited) about the semantic content of the lyrics08:45
SteveA"so, do you think there should be limits on anything at all?"08:45
daf:D08:46
dafchris morris... the name rings a bell, faintly08:46
dafwas the the guy behind Brass Eye?08:46
SteveAyes08:47
SteveA'"No, no, no no no no, no no no" - don't you think it's a bit negative?'08:47
=== limi grins
SteveAdaf: technically, the man in front of brass eye08:54
SteveAbrass eye is a crude anatomical reference09:00
=== debonzi [~debonzi@200.158.100.251] has joined #launchpad
!lilo:*! Hi all. Just a reminder for those who wish to attend the official Gentoo meeting in Manchester UK tomorrow---if you're interested and you can make it there, please visit #gentoo-uk. Kudos to everyone involved for all the time they've put in to put this happen, and we know it will be an excellent event.09:57
spivdaf: Yep, am now.10:44
=== limi [~limi@sparkit.easynet.no] has joined #launchpad
dafspiv: I've tried escaping the '%'s in the query11:51
dafspiv: but I'm still getting the same error11:51
spivdaf: Hmm.  Can you find out what the query string is?  (and what's the final part of the traceback?)11:53
dafsure11:58
daf'Opening %%d contact will open %%d new window as well.\r\nDo you really want to display this contact?' is the string in question11:58
dafany easy way to get hold of the query?11:58
dafor shall I just turn postgres statement loggin on?11:59

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