carlosdaf: how was the party?12:13
dafit was good12:34
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
carlosgood night, I want to wake up early tomorrow 01:24
=== ChanServ [ChanServ@services.] has joined #launchpad
=== carlos [~carlos@69.Red-80-33-181.pooles.rima-tde.net] has joined #launchpad
dafgood morning10:09
carlosdaf: morning10:11
dafcarlos: how was your day yesterday?10:37
carloswell, it was not as productive as I thought, the Efforts task took me more time I wanted.10:38
carlosbut I think I have now a clear image about schema/label10:38
dafI thought we were working on beta-critical stuff?10:39
carlosdaf: that should be working for beta10:39
carlosWe talked about that10:39
carlosand was already on my tasks list10:39
dafoh, ok10:39
dafI thought it was non-beta-crtitical10:39
carlosAlso, the statistics graphs are ready for limi's magic10:39
carlosdaf: Don't worry, the "big" part of my work is also needed for the People/prefered languages10:40
carlosdaf: Lu asked for it last week, I thought it was needed for the beta..10:41
dafhmm, I should have posted the list I made up on the wiki10:42
carlosdaf: spoken-languages is fine for you as the name for the schema?10:47
carlosor 'know-languages'10:48
daftranslation-languages, perhaps10:48
carlosHmm, the Labels should be created with the script that fills the Languages/Countries tables10:50
dafhmm, it would be nice if the user didn't have to navigate through products to get to PO templates10:52
carlosdaf: With lots of templates is not easy to do it without a bloated page10:53
carlosdaf: we need to import data10:53
carlosreal data10:54
carlosto see how will look like it10:54
carloshmmm. I just had an idea about the schemas/labels10:55
carlosdaf: I'm thinking on storing only the language code instead of the name, and then make another query to the Language table10:56
carlosto get the english name and the native name10:56
carlosthat way the duplicated data is small 10:56
dafwhat's the status of the preferred languages things?11:15
dafdo you think it will be ready soon?11:15
carlosdaf: I have the sample data ready11:16
carlosI'm starting now with the code development11:16
dafI suppose it's not really going to have much effect until we have authentication working11:16
carlosHmm, true, but we could "hardcode" one of the sample persons (you, lalo or I)11:17
carlosand then, if we change the database, the list of languages will also change11:17
carlosBreakfast time, see you later11:21
dafcarlos: did you get a chance to look at my changes to the export document?11:53
carlosI forgot it O:-)11:54
carlosI will do it today11:54
dafno problem11:54
dafhi Steve12:09
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
SteveAlulu: can we talk about the authentication for the websites?01:20
limiapparently not :] 01:43
SteveAlimi: hi01:43
limihi SteveA01:44
carlosdaf: Language preferences is working :-P01:44
dafcarlos: ooh01:45
carlosdaf: and you are the "default" until we get the login stuff in place :-P01:45
carloswow, the arch commits list works again, no more garbage....01:49
dafyes, I think lifeless fixed it01:51
carlosdaf: My next tasks is finish the efforts code01:57
carlosdaf: Do you have anything more important for me?01:57
!dmwaters:*! Hi all, we're currently being nailed with drones, we're doing our best to get things under control01:58
dafthere must be something more important thant that :)01:58
carlosCould you populate the task board with pending things?01:59
dafdon't we need scripts for creating projects, products, people, etc?01:59
carlosyes, but I think Lalo is working on it already02:01
dafdo we have a user interface for setting language preferences?02:01
dafI see that's on the task board02:01
carlosdaf: but that should be added to the user preferences, shouldn't it?02:02
carlosdaf: where you configure your login, email, etc, etc...02:03
carlosDo we have it already in any place?02:03
carloslimi: Could you review https://rosetta.warthogs.hbd.com/rosetta/projects/gnome and https://rosetta.warthogs.hbd.com/rosetta/projects/gnome/evolution/?02:03
dafcarlos: yes, it should be on the preference page02:04
dafcarlos: I don't think we have one yet02:04
carloslimi: when you have more than one language we have the same links for every language. Is that ok from the usability point of view?02:05
carlosdaf: Is it included in Steve's work?02:05
dafcarlos: I think the fact that clicking on different languages gives you the same thing is ugly/confusing02:05
dafcarlos: no02:06
=== limi looks
carlosdaf: me too, that's why I'm asking limi, because I just noticied it :-(02:06
dafSteveA has been working on the non-UI side of the auth stuff02:06
dafSteveA: have you merged any of the auth stuff yet?02:06
carlosDo we have any place where lists the things a user will be able to configure from there?02:06
carlosI suppose that the DB schema has been updated to store the user password, right? (I don't remember any field to store it)02:07
=== ChanServ [ChanServ@services.] has joined #launchpad
limithe Translation Overview page shouldn't have the languages before you have selected a product, afaik02:09
=== limi notices that Rosetta has mutated
limiand, "A system error occurred." ;)02:10
limiyou guys desperately need unit tests soon :)02:10
limiit's going to be totally unmanagable if not02:10
daflimi: we've just added unit tests to that page02:11
daflimi: I've fixed that bug but haven't merged it yet02:11
carloslimi: Then, If the project list does not know about any language...02:12
carloslimi: should I calculate the average of all languages?02:13
carlosThat will break the statistics or we need to specify a list of translations we care02:14
carlosbecause there are lots of languages that does not have any translation02:14
limiyes, I thought this was the page where it would show the summary for all languages?02:14
carlosonly the summary of all languages a translator knows, right?02:15
limion the overview page, full summary02:17
carlosdaf: upps, You need to update your database to get working new rosetta02:17
limithis is the thing that Mark wanted, remember?02:17
limiwith the overall project language stats02:17
dafcarlos: huh?02:17
carlosdaf: rosetta servers have my last code changes02:18
carlosbut the database does not have the needed data02:18
carloslimi: I know02:18
carlosbut I'm focusing on the other part of the stats02:18
limion the overview page (is this an Effort?), the current stats make less sense02:19
carloslimi: why?02:19
limibecause you need some aggregation anyway02:20
limiif it should show anything, it's the summary of all the products inside the project02:21
limican you easily report that?02:21
carlosper language or globally?02:22
carlosI can do both02:23
limiper language would be nice02:24
carloslimi: that's what we have already at https://rosetta.warthogs.hbd.com/++skin++Debug/rosetta/projects/gnome02:25
carlosno, sorry, is not the same02:25
carlosbut the code is the same02:25
carlosso it's already done02:25
=== limi probably has to rework that page a bit
limibut we have separate pages for Effort and Project now, right?02:26
carlosnot yet02:26
carlosbut we will have it soon02:26
carlosSteveA: please ping me as soon as you are free, I need to know the status of the login/session code. thanks02:27
carlosdaf: until I get an answer from Steve, I will finish the efforts part. Ok?02:27
liminice work02:28
carloslimi: did you saw the new statistics vars? Do you need anything else?02:29
carloslimi: I suppose you should add a note at /rosetta/projects/gnome so the user knows that the values are related to all languages she's interested on translate02:32
limiI'm going to move things about a bit :)02:32
carloslimi: ok02:34
dafcarlos: there are more important things than translation efforts02:35
dafcarlos: I think you can start writing the template for the preference page without Steve's work02:35
carlosdaf: But I don't have any idea about how will it work, where will it be hosted and if it's a rosetta specific page or launchpad one02:36
daffor now, we will put it at /rosetta/preferences02:37
dafand the only preference it will have is the language preferences02:37
SteveAhi carlos.  I'll be merging the auth code today02:37
dafand I think it should work more or less like the other forms we have in Rosetta02:38
carlosSteveA: ok, please notify me it as soon as it's ready02:38
dafyou might like to look at test/test_browser.py for test cases I've added for the view classes02:38
carlosdaf: ok02:38
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
limishhh, everybody be quiet, lulu is back O:)02:41
luluSteveA: sorry hon - was away from my desk....02:43
luluSteveA: sure...02:43
luluhey - how was your trip back?02:43
SteveAit was okay.  I felt really tired yesterday, though.02:44
SteveAmuch better today02:44
SteveAso, I took yesterday off, as the bank holiday.02:45
lulugood - I'm sure everyone's needed some recovery time.02:45
SteveAwebsites and authentication:  we have the ubuntu plone site.02:45
luluI also need to hat to you about the app server. James is already onto the webserver stuff. Zope and Plone are huge! :o)02:45
SteveAwe discussed having the plone site do authentication against a launchpad app server via xmlrpc (or something similar)02:46
luluMcQuarie = app server and not accessing Emperor direct makes James very happy.02:47
SteveAok.  I can arrange for the code to be written in launchpad that will do this.  Who will write the code to make plone do this?02:47
SteveAis this part of upfront's contract?02:47
luluNo. They are purely commissioned to do installation and config. But I can ask them to quote on it, if they have the know how.02:48
SteveAlimi: what's the standard way to do pluggable auth in plone?02:48
luluI will need a comprehensive spec from you please.02:48
limiany way Zope does it02:48
SteveAI wonder what roche would recommend.02:49
SteveAlulu: how about I mail roche, explain the overall plan, and ask him what he'd suggest?02:50
lulusure - I'll send you an email with his details - pls cc me on correspondence with him,02:50
SteveAI'll cc you.  I know roche already, though.02:51
luluSteveA: great. 02:54
=== limi gets lunch
dafgood idea03:00
limilulu: btw, could you forward me the summary we made of the theft at the hotel? my insurance company wants it.03:07
luluLimi: sure.03:08
lululimi: Jane is looking for you & also - the Squid setup for Plone file - could you check with James that it's readable and what he needs. Thanks :o)03:09
SteveAthe squid set-up for the parts that forward requests to launchpad will be a bit different.03:11
SteveAbut, we can add that to the set-up later on, after the ubuntu and canonical parts are done.03:11
limilulu: uhm, I've already sent the file twice, what's missing?03:14
lululimi: as you saw from James' email - is that what he should be expecting? I cannot read the binary. Pls check with him he has what he needs. cheers.03:16
=== justdave_ [~dave@] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has joined #launchpad
carloslimi: ping05:46
=== limi pongs
carloslimi: I need some help05:47
carloswith a page05:47
carlosit's a list of languages05:47
carlosand the user will select the ones he/she knows about05:47
carloshere you have the output I get:05:48
carlosI don't have the .css but it's the translator's dashboard modified05:48
limiI have a widget for that05:49
carlosI know it's not a good way to put that information05:49
carlosso don't blame me for the big list :-P05:49
limiwhy are all the language names in English?05:50
carlosThe code that generate that page will be at rocketfuel in some minutes05:50
carloslimi: just testing :-)05:50
carlosshould I change anything at browser.py to use the widget?05:50
=== carlos has no idea about widgets
limino, I don't mean widgets in the Z3 sense ;)05:52
carlosdaf: we need a way to cache the language list, we have now 632 in the database and the webpage I have to list all them takes about 3 seconds in my laptop to query the list do some checks and render it05:54
limiit can be cached heavily, it really doesn't change very often05:54
carloslimi: then, Should I do anything, or just implement the form summit for that page as I have it now?05:54
limicarlos: just put in what you have, and I will go and add the widgets05:55
carloslimi: it's now at rocketfuel05:55
carlosthe submit is not yet at rocketfuel, I'm still working on it05:56
dafcarlos: well, it should run much faster on the server05:58
dafcarlos: if it's still slow on the server, we'll optimise it then05:59
carlosdaf: could you update the server's  database, rosetta is broken until it's update05:59
daf(I think)06:03
carlosdaf: yes, it works now06:05
carlosdaf: hmm, I don't get this error in my computer: https://rosetta.warthogs.hbd.com/++skin++Debug/rosetta/translator06:06
dafneither do I06:08
dafSteveA: I'm getting a weird error06:09
dafSteveA: I think it's because sqlos is trying to create a DatabaseException with the wrong number of parameters06:10
carlosdaf: it comes from my latest changes, do you have them?06:10
dafno, I don't06:10
carlosthen it's normal you don't get the error in your local machine :-)06:10
SteveAdaf: can you paste it into jabber?06:11
dafSteveA: sure06:11
dafcarlos: :)06:11
carlosdaf: How could I know if a checkbox is checked or not from the Submit method?06:32
carlosself.request.form[checkbox_name] .checked?06:33
SteveAthis is a tough problem06:33
SteveAso, all you can tell is if a checkbox is checked06:33
SteveAyou cannot tell the difference between a checkbox being unchecked, and a checkbox not being there at all06:34
carlosok, it should not be a problem06:34
carlosfor this page in concrete06:34
SteveAto see what you get out of a particular form, put <div tal:content="request" /> a the bottom of a page06:34
SteveAyou'll see a bulleted-list output of the request06:34
=== daf <3 tla undo
dafor, to put it differently,06:39
=== daf tla undo
=== limi switches encoding to daf-8
carlosdaf: the tla undo is the only thing that keeps me to blame arch :-)06:43
dafcarlos: sorry?06:43
carlosdaf: sorry, /s/blame/speak badly about/06:45
daf"keeps me to" or "keeps me from"? :)06:46
carlosfrom 06:46
carloskeep moving, nothing to see here...06:47
dafno worries, English idioms are hard :)06:48
dafmuy difcil06:50
carlosdaf: :-)06:50
dafDatabaseException: unindexable object06:52
carlosSteveA: How could I use different sentences like <div tal:content="view/submit" /> inside the same template?, It's a template with three forms and I want to use different methods for every form06:53
carlosdaf: URL?06:53
SteveAcarlos: there are various ways of doing this06:54
SteveAfirst though, I must point out the usability pitfall:06:54
SteveAis it obvious to someone using one part of the form that values they enter or change in the other parts of the form will be lost?06:54
SteveAactually, you have a choice about this, if you take the approach I will describe.06:55
SteveAso, have one form.  That is, one set of <form action="+name" method="post"> ... </form>06:55
carlosyes, it's easy to know that the other changes will be lost06:55
SteveAinside the form, have three submit buttons with different names:06:56
SteveA <input type="submit" name="submit1" value=" hello, button one here" />06:56
SteveA <input type="submit" name="submit2" value=" hello, button two here" />06:56
SteveA <input type="submit" name="submit3" value=" hello, button three here" />06:56
SteveAalso, as with other forms, include a <div tal:replace="view/processForm" tal:omit-tag="" /> element, or something similar that calls "processForm()" on the view class.06:57
SteveAthen, in the processForm method, you can have an "if" statement that decides which button was pressed.06:58
SteveAAnother method of doing this whole thing is to have three separate <form action="+name" method="post"> </form> elements.06:58
carloshmm, and how could I know which button was pressed? like the checkbutton? if it's pressed it will be there as a form element?06:59
SteveAyou can make the submit buttons have the magic name <input type="submit" name="handlerOne:action" value="press to submit" />06:59
SteveAthis will cause the "handlerOne()" method on your view class to be called 06:59
SteveAwhen the form is submitted.06:59
SteveAI advise against doing this, though06:59
SteveAas it is rather magical07:00
carlosok, then we forget this option :-)07:00
SteveAif you want to make the forms distinct, then have three form elements, but use different names on the submit buttons to distinguish them07:01
=== elmo [~james@] has joined #launchpad
SteveAand handle them the same07:01
dafcarlos: it's something to do with my local changes, I think07:02
carlosdaf: ok07:02
dafthe last bit of Rosetta code in the trace is a .count() call07:02
carlosSteveA: ok07:02
=== lulu [~lu@host217-37-231-28.in-addr.btopenworld.com] has left #launchpad []
carlosdaf: I need to get the ID for a row of the Schema table from browser.py and I don't know how could I do it without using the SQL Objects methods, is there any way to use getUtility to do it?07:49
SteveAif you need that, it should be part of the interface you're using07:55
SteveAthat way, it is just an integer id07:55
SteveAyou don't care if it comes from the database or whatever07:55
carlosSteveA: but I need a way to query that object07:58
carloswith the languages it's done with getUtility(ILanguages) and I get an object that let's me iterate over all available languages07:59
SteveAoh, okay08:01
SteveAso, you'll need one of those for schemas, I guess08:01
=== carlos was not sure if there is a better way than that, create a new object only for this looks like adding unned
=== carlos was not sure if there is a better way than that, create a new object only for this looks like adding unnecessary complexity to the interface
SteveAyou need to search for a particular schema object, right?08:03
SteveAso, you'll need an object that gives you an ability to do that search08:04
SteveAwho wrote: from canonical.rosetta.interfaces import *  ?08:34
SteveAin sql.py08:35
SteveAwe can only use "from xxx import *" where "xxx" defines an __all__ in the module08:35
carlosNo idea08:37
=== limi is now known as limi|food
dafSteveA: ok08:56
dafSteveA: I can't remember who wrote that08:56
dafI might be guilty08:56
SteveAthe dependencies are now unclear08:56
SteveAI think I'm almost ready to check in the auth stuff08:57
dafI'll half-heartedly argue that it's not so bad in this case because interfaces.py contains (absolutely should contain) nothing but interface declarations08:57
SteveAit obviously also contains Interface and Attribute08:57
SteveAand perhaps other schema stuff08:57
dafah, right08:58
SteveAand also any interfaces that the rosetta interfaces extend08:58
carlosProgrammingError: ERROR: column personlabel.id does not exist SELECT PersonLabel.id, PersonLabel.person, PersonLabel.label FROM PersonLabel WHERE PersonLabel.person = 14 AND PersonLabel.label = 4 LIMIT 109:17
carlosThe table does not have such field 'id'09:17
carlosdaf: Any idea about how could I do a select in that case?09:19
carlospersonLabel = RosettaPersonLabel.select('''09:19
carlos            PersonLabel.person = %d AND09:19
carlos            PersonLabel.label = %d''' %09:19
carlos            (self.id, label.id))[0] 09:19
carlosthat's what I have now, before that I had a selectBy, but It also fails09:20
dafI think SQLObject does not like tables without IDs :)09:20
carlosSteveA: any suggestion?09:21
SteveAI just merged auth into RF09:21
SteveAbut, it was a messy merge09:21
SteveAso, I might have accidentally broken something09:21
carlosI only need a SQLObject to add and remove records to that table nothing more09:21
SteveAat your earliest convenience, can you try merging from RF, and see if stuff works for you?09:22
carlosthe "normal" queries are handled by a RelatedJoin09:22
dafSteveA: according to the PQM log, your merge up contained patches doing nothing but merging down09:23
=== daf finds the commit summary page much more useful now that the log problem has been fixed
SteveAtla changes here shows nothing09:24
=== limi [~limi@159.80-202-72.nextgentel.com] has joined #launchpad
dafdid you merge the correct branch?09:24
carlosSteveA: are you sure you have your mirror updated?09:24
SteveAnew files are committed to my archive09:24
SteveAperhaps I do not have my mirror updated09:25
daf"tla tree-lint"?09:25
SteveAwhat's the "do a mirror" command?09:25
carlostla push-mirror $ARCH_ARCHIVE $ARCH_CATEGORY09:26
SteveAtla archive-mirror09:26
dafcarlos: one of the ftests is failing because you added sample data, I think09:26
carlosdaf: yes, it's possible09:26
daf"make fullcheck"09:26
carlosdaf: the multiline && plural forms one09:26
SteveAok, I am mirroring09:27
SteveAthanks carlos09:27
dafcarlos: exactly09:27
carlosI will fix it now09:27
carlosdaf: I need to leave now (after fixing the test) if I want to have a chance to pass tomorrow's exam. The Language edition is more or less implemented, It lacks some error checks and fix the problem with SQLObjects and perhaps any other thing I forgot, but I'm not able to fix it now. Do you want it committed or what should I do?09:29
dafgo and revise :)09:31
dafif you like, you could send me a changeset and I could finish it off09:31
daf  File "/home/daf/src/canonical/dists/launchpad/lib/sqlobject/dbconnection.py", line 189, in _executeRetry09:32
daf    return cursor.execute(query.encode('utf8'))09:32
dafUnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 96: ordinal not in range(128)09:32
SteveAwell, indeed09:32
SteveAthe query is not ascii nor unicode09:33
carlosdaf: ok, I will send you the patch09:33
SteveAwhy that is, I do not know09:33
dafit's  in latin-109:34
SteveAthat is bad09:34
SteveAstrings in python are just bytes09:35
SteveAthey do not know what encoding they are in09:35
SteveAwhere does the latin-1 string come from?09:35
dafI was just observing09:35
=== daf looks around for an
SteveAfor an?09:35
carlosdaf: the ftest fails because a problem in sql.py09:37
carlos  File "/home/carlos/Work/dists/launchpad/lib/canonical/rosetta/sql.py", line 385, in __getitem__09:37
carlos    elif isinstance(key, string):09:37
carlosNameError: global name 'string' is not defined09:37
carlosalso, I need to update the test09:37
dafSteveA: capital A with tilde09:37
carlosbut there are other problems there09:37
dafthat should be isinstance(key, str)09:37
dafthere are other ocurrences of 0xc3, but no A-tilde09:38
SteveAthere should not be an A-tilde in the source09:38
SteveAas our source should be all in ascii09:38
dafthey are in the test data09:38
SteveAhow is the test data getting into the software?09:38
dafthrough the test code, I imagine09:39
dafI'm not familiar with the import/export tests09:39
carlosdaf: the test data should have only escaped unicode chars ..09:39
dafcarlos: "escaped"?09:39
dafit all looks like UTF-8 to me09:39
SteveAok, my merge went through09:40
dafcarlos: gnome-terminal.po09:40
carlosyes, sorry, utf-8 chars not unicode ones09:40
SteveAapologies in advance if I broke something09:40
carlosdaf: aahh, no idea then09:40
SteveAwhen strings get into the domain code, and the database code, they should be one of two things:09:41
SteveA* python unicode objects09:41
SteveA* python str objects that are to be treated as opaque 8-bit data09:41
SteveAthere should be no str objects meant to be treated as character strings09:41
SteveAthe code that interacts with the outside world (browser, files, database, etc.) must carefully deal with encoded strings, and convert them to unicode objects09:42
SteveAunless we really want to preserve the data, in which case it is "data"09:42
carlosdaf: File "/home/carlos/Work/dists/launchpad/lib/canonical/rosetta/sql.py", line 397, in __getitem__09:44
carlos    sets = RosettaPOMessageSet.select('''09:44
carlosNameError: global name 'msgid_obj' is not defined09:44
carlosdaf: I'm going to have dinner now, please commit all fixes when you finish and that way I will be able to get the missing data easily. Ok?09:45
dafcarlos: I've fixed that one09:45
carlosdaf: did you requested a merge?09:46
dafI'm tring to fix the Unicode problem first09:46
carlosjust tell me when it's done and I will fix it tonight09:47
dafah, I think it was because of a message being encoded as UTF-8 twice09:50
dafonce in canonical.rosetta.sql and again in sqlo{s,bject}09:51
dafSteveA: I think you forgot to update the SQL test generation code when you modified canonical.rosetta.interfaces10:13
carlosdaf: Now that you mention it... I did some interfaces update and did not update it, sorry. I will add the tests tomorrow.11:27
=== carlos backs to study

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