a very nice branch! I have only a number of mostly formal nitpicks,
see below.
When you have fixed these small issues, I'll ec2-test the branch and
land it on your behalf.
Abel
>
> = Bug 193750 =
>
> == Proposed fix ==
>
> The fix should replace "ticket" to "question" and update the required answer links for addticket to addquestions.
>
> Also instead on translations.lp.dev/rosetta/addticket the url was replaces to answers.lp.dev/rosetta/addquestion to have a clean namespace
>
> == Implementation details ==
>
> There were no test for checking the cases when those links should appear so I have added the required pagetests.
Thanks for adding them!
>
> The translate.txt pagetest was also structured... but a bit.
>
> == Tests ==
>
> ./bin/test -ct language
>
> == Demo and Q/A ==
>
> Abkhazian is a language that has no information about plural forms and is not registered as being spoken in any country.
>
> We will see a note about missing plural forms and a link to Rosetta
> add question page for informing Rosetta admin about the right plural form.
>
> >>> browser.open('http://translations.launchpad.dev/+languages/ab')
> >>> print extract_text(find_portlet(browser.contents, 'Plural forms'
> ... ).renderContents())
> Plural forms
> Unfortunately, Launchpad doesn't know the plural
> form information for this language...
>
> >>> print browser.getLink(id='plural_question').url
> http://answers.launchpad.dev/rosetta/+addquestion
>
> We will see a note that this language is not registred as being spoken in any
> country and a link to add question page for informating Rosetta admin about the
> countries where this page is officially spoken.
>
> >>> countries_portlet = find_portlet(browser.contents, 'Countries')
> >>> print countries_portlet
> <...
> Abkhazian is not registered as being spoken in any
> country...
>
> >>> print browser.getLink(id='country_question').url
> http://answers.launchpad.dev/rosetta/+addquestion
>
> == lint ==
>
> Checking for conflicts. and issues in doctests and templates.
> Running jslint, xmllint, pyflakes, and pylint.
> Using normal rules.
>
> Linting changed files:
> lib/lp/translations/browser/language.py
> lib/lp/translations/stories/standalone/xx-language.txt
> lib/lp/translations/templates/language-index.pt
>
>
> === modified file 'lib/lp/translations/browser/language.py'
> --- lib/lp/translations/browser/language.py 2009-10-31 11:06:44 +0000
> +++ lib/lp/translations/browser/language.py 2009-11-26 19:30:28 +0000
> @@ -29,6 +29,7 @@
> enabled_with_permission, GetitemNavigation, LaunchpadEditFormView,
> LaunchpadFormView, LaunchpadView, Link, NavigationMenu)
> from lp.translations.utilities.pluralforms import make_friendly_plural_forms
> +from lp.registry.interfaces.product import IProductSet
>
> from canonical.widgets import LabeledMultiCheckBoxWidget
>
> @@ -202,6 +203,13 @@
>
> return pluralforms_list
>
> + @property
> + def add_question_url(self):
> + rosetta = getUtility(IProductSet).getByName('rosetta')
Here you use the rosetta project not as an ordinary project that can
be replaced by any other project but as something that is simply
expected to exist, and you use it for a special purpose: To
create the URL to contact the people who administer LP translations.
For such purposes it is better to access the Rosetta project via
LaunchpadCelebrities than via IProductSet:
from canonical.launchpad.interfaces.launchpad import ILaunchpadCelebrities
rosetta = getUtility(ILaunchpadCelebrities).lp_translations
> + return canonical_url(
> + rosetta,
> + view_name='+addquestion',
> + rootsite='answers')
>
> class LanguageAdminView(LaunchpadEditFormView):
> """Handle an admin form submission."""
>
> === modified file 'lib/lp/translations/stories/standalone/xx-language.txt'
> --- lib/lp/translations/stories/standalone/xx-language.txt 2009-10-31 11:06:44 +0000
> +++ lib/lp/translations/stories/standalone/xx-language.txt 2009-11-26 19:30:28 +0000
> @@ -1,6 +1,9 @@
> += Languages view =
> Here is the tale of languages. We will see how to create, find and edit
> them.
>
> +== Getting there ==
> +
/me knows that it is bit of back and forth with the style we use for
headings... But could you change the formatting to our current style:
Language View
=============
and
Getting There
-------------
Also, could you please make sure that we have two empty lines before
each header (ecxpet at the start of the file) and one empty line after
the header?
> Launchpad Translations has a main page.
>
> >>> admin_browser.open('http://translations.launchpad.dev/')
> @@ -11,7 +14,10 @@
> >>> print admin_browser.url
> http://translations.launchpad.dev/+languages
>
> -Following the link, there is a form to add new languages.
> +== Adding new languages ==
> +
> +Following the link from the translations main page, there is a form to add new
> +languages.
Could you wrap the lines above at 72 characters?
>
> >>> admin_browser.getLink('Add new language').click()
> >>> print admin_browser.url
> @@ -70,6 +76,8 @@
> ...
> Unauthorized:...
>
> +== Searching for a language ==
> +
> From the top languages page, anyone can find languages.
>
> >>> browser.open('http://translations.launchpad.dev/+languages')
> @@ -82,7 +90,9 @@
> >>> print browser.url
> http://translations.launchpad.dev/+languages/+index?find=Spanish
>
> -And following one of the found languages, we can see a brief information
> +== Read language information ==
> +
> +Following one of the found languages, we can see a brief information
> about the selected language.
>
> >>> browser.getLink('Spanish').click()
> @@ -133,6 +143,36 @@
> <...
> ...Carlos Perelló Marín...
>
> +Abkhazian is a language that has no information about plural forms and is not registered as being spoken in any country.
With this statement we might inadvertently step on somebody's toes ;)
What about "Our test sample data does not know about plural forms of
Abkhazian and about countries where this language is spoken."?
> +
> +We will see a note about missing plural forms and a link to Rosetta
> +add question page for informing Rosetta admin about the right plural form.
> +
> + >>> browser.open('http://translations.launchpad.dev/+languages/ab')
> + >>> print extract_text(find_portlet(browser.contents, 'Plural forms'
> + ... ).renderContents())
> + Plural forms
> + Unfortunately, Launchpad doesn't know the plural
> + form information for this language...
> +
> + >>> print browser.getLink(id='plural_question').url
> + http://answers.launchpad.dev/rosetta/+addquestion
> +
> +We will see a note that this language is not registred as being spoken in any
"we will see a note that Launchpad does not know in which countries
this language is spoken" ;)
> +country and a link to add question page for informating Rosetta admin about the
s/informating/informing/
> +countries where this page is officially spoken.
Could you wrap the lines above at <= 72 characters?
> +
> + >>> countries_portlet = find_portlet(browser.contents, 'Countries')
> + >>> print countries_portlet
> + <...
> + Abkhazian is not registered as being spoken in any
> + country...
> +
> + >>> print browser.getLink(id='country_question').url
> + http://answers.launchpad.dev/rosetta/+addquestion
> +
> +== Edit language information ==
> +
> Finally, there is the edit form to change language basic information.
>
> >>> user_browser.open('http://translations.launchpad.dev/+languages/es')
>
> === modified file 'lib/lp/translations/templates/language-index.pt'
> --- lib/lp/translations/templates/language-index.pt 2009-09-17 14:45:59 +0000
> +++ lib/lp/translations/templates/language-index.pt 2009-11-26 19:30:28 +0000
> @@ -43,7 +43,11 @@
> <p class="helpwanted">
> Unfortunately, Launchpad doesn't know the plural form
> information for this language. If you know it, please open a
> - <a href="/rosetta/+addticket">ticket</a> with that information,
> + <a id='plural_question'
> + tal:attributes="href view/add_question_url">
> + question
> + </a>
> + with that information,
> so we can add it to Launchpad.
> </p>
> </tal:has_not_pluralforms>
> @@ -124,8 +128,12 @@
> </tal:language>
> is not registered as being spoken in any country. If you know
> about a country that officially speaks this language, please
> - open a <a href="/rosetta/+addticket">ticket</a> with that
> - information, so we can add it to Launchpad.
> + open a
> + <a id='country_question'
please remove the trailing space in the line above.
Hi Adi,
a very nice branch! I have only a number of mostly formal nitpicks,
see below.
When you have fixed these small issues, I'll ec2-test the branch and
land it on your behalf.
Abel
> lp.dev/ rosetta/ addticket the url was replaces to answers. lp.dev/ rosetta/ addquestion to have a clean namespace
> = Bug 193750 =
>
> == Proposed fix ==
>
> The fix should replace "ticket" to "question" and update the required answer links for addticket to addquestions.
>
> Also instead on translations.
>
> == Implementation details ==
>
> There were no test for checking the cases when those links should appear so I have added the required pagetests.
Thanks for adding them!
> translations. launchpad. dev/+languages/ ab') text(find_ portlet( browser. contents, 'Plural forms' getLink( id='plural_ question' ).url answers. launchpad. dev/rosetta/ +addquestion browser. contents, 'Countries') getLink( id='country_ question' ).url answers. launchpad. dev/rosetta/ +addquestion translations/ browser/ language. py translations/ stories/ standalone/ xx-language. txt translations/ templates/ language- index.pt translations/ browser/ language. py' translations/ browser/ language. py 2009-10-31 11:06:44 +0000 translations/ browser/ language. py 2009-11-26 19:30:28 +0000 with_permission , GetitemNavigation, LaunchpadEditFo rmView, .utilities. pluralforms import make_friendly_ plural_ forms interfaces. product import IProductSet ckBoxWidget url(self) : IProductSet) .getByName( 'rosetta' )
> The translate.txt pagetest was also structured... but a bit.
>
> == Tests ==
>
> ./bin/test -ct language
>
> == Demo and Q/A ==
>
> Abkhazian is a language that has no information about plural forms and is not registered as being spoken in any country.
>
> We will see a note about missing plural forms and a link to Rosetta
> add question page for informing Rosetta admin about the right plural form.
>
> >>> browser.open('http://
> >>> print extract_
> ... ).renderContents())
> Plural forms
> Unfortunately, Launchpad doesn't know the plural
> form information for this language...
>
> >>> print browser.
> http://
>
> We will see a note that this language is not registred as being spoken in any
> country and a link to add question page for informating Rosetta admin about the
> countries where this page is officially spoken.
>
> >>> countries_portlet = find_portlet(
> >>> print countries_portlet
> <...
> Abkhazian is not registered as being spoken in any
> country...
>
> >>> print browser.
> http://
>
> == lint ==
>
> Checking for conflicts. and issues in doctests and templates.
> Running jslint, xmllint, pyflakes, and pylint.
> Using normal rules.
>
> Linting changed files:
> lib/lp/
> lib/lp/
> lib/lp/
>
>
> === modified file 'lib/lp/
> --- lib/lp/
> +++ lib/lp/
> @@ -29,6 +29,7 @@
> enabled_
> LaunchpadFormView, LaunchpadView, Link, NavigationMenu)
> from lp.translations
> +from lp.registry.
>
> from canonical.widgets import LabeledMultiChe
>
> @@ -202,6 +203,13 @@
>
> return pluralforms_list
>
> + @property
> + def add_question_
> + rosetta = getUtility(
Here you use the rosetta project not as an ordinary project that can ities than via IProductSet:
be replaced by any other project but as something that is simply
expected to exist, and you use it for a special purpose: To
create the URL to contact the people who administer LP translations.
For such purposes it is better to access the Rosetta project via
LaunchpadCelebr
from canonical. launchpad. interfaces. launchpad import ILaunchpadCeleb rities ILaunchpadCeleb rities) .lp_translation s
rosetta = getUtility(
> + return canonical_url( '+addquestion' , ew(LaunchpadEdi tFormView) : translations/ stories/ standalone/ xx-language. txt' translations/ stories/ standalone/ xx-language. txt 2009-10-31 11:06:44 +0000 translations/ stories/ standalone/ xx-language. txt 2009-11-26 19:30:28 +0000
> + rosetta,
> + view_name=
> + rootsite='answers')
>
> class LanguageAdminVi
> """Handle an admin form submission."""
>
> === modified file 'lib/lp/
> --- lib/lp/
> +++ lib/lp/
> @@ -1,6 +1,9 @@
> += Languages view =
> Here is the tale of languages. We will see how to create, find and edit
> them.
>
> +== Getting there ==
> +
/me knows that it is bit of back and forth with the style we use for
headings... But could you change the formatting to our current style:
Language View
=============
and
Getting There
-------------
Also, could you please make sure that we have two empty lines before
each header (ecxpet at the start of the file) and one empty line after
the header?
> Launchpad Translations has a main page. open('http:// translations. launchpad. dev/') translations. launchpad. dev/+languages
>
> >>> admin_browser.
> @@ -11,7 +14,10 @@
> >>> print admin_browser.url
> http://
>
> -Following the link, there is a form to add new languages.
> +== Adding new languages ==
> +
> +Following the link from the translations main page, there is a form to add new
> +languages.
Could you wrap the lines above at 72 characters?
> getLink( 'Add new language').click() translations. launchpad. dev/+languages') translations. launchpad. dev/+languages/ +index? find=Spanish getLink( 'Spanish' ).click( )
> >>> admin_browser.
> >>> print admin_browser.url
> @@ -70,6 +76,8 @@
> ...
> Unauthorized:...
>
> +== Searching for a language ==
> +
> From the top languages page, anyone can find languages.
>
> >>> browser.open('http://
> @@ -82,7 +90,9 @@
> >>> print browser.url
> http://
>
> -And following one of the found languages, we can see a brief information
> +== Read language information ==
> +
> +Following one of the found languages, we can see a brief information
> about the selected language.
>
> >>> browser.
> @@ -133,6 +143,36 @@
> <...
> ...Carlos Perelló Marín...
>
> +Abkhazian is a language that has no information about plural forms and is not registered as being spoken in any country.
With this statement we might inadvertently step on somebody's toes ;)
What about "Our test sample data does not know about plural forms of
Abkhazian and about countries where this language is spoken."?
> + translations. launchpad. dev/+languages/ ab') text(find_ portlet( browser. contents, 'Plural forms' getLink( id='plural_ question' ).url answers. launchpad. dev/rosetta/ +addquestion
> +We will see a note about missing plural forms and a link to Rosetta
> +add question page for informing Rosetta admin about the right plural form.
> +
> + >>> browser.open('http://
> + >>> print extract_
> + ... ).renderContents())
> + Plural forms
> + Unfortunately, Launchpad doesn't know the plural
> + form information for this language...
> +
> + >>> print browser.
> + http://
> +
> +We will see a note that this language is not registred as being spoken in any
"we will see a note that Launchpad does not know in which countries
this language is spoken" ;)
> +country and a link to add question page for informating Rosetta admin about the
s/informating/ informing/
> +countries where this page is officially spoken.
Could you wrap the lines above at <= 72 characters?
> + browser. contents, 'Countries') getLink( id='country_ question' ).url answers. launchpad. dev/rosetta/ +addquestion translations. launchpad. dev/+languages/ es') translations/ templates/ language- index.pt' translations/ templates/ language- index.pt 2009-09-17 14:45:59 +0000 translations/ templates/ language- index.pt 2009-11-26 19:30:28 +0000 rosetta/ +addticket" >ticket< /a> with that information, question' "href view/add_ question_ url"> not_pluralforms > rosetta/ +addticket" >ticket< /a> with that question'
> + >>> countries_portlet = find_portlet(
> + >>> print countries_portlet
> + <...
> + Abkhazian is not registered as being spoken in any
> + country...
> +
> + >>> print browser.
> + http://
> +
> +== Edit language information ==
> +
> Finally, there is the edit form to change language basic information.
>
> >>> user_browser.open('http://
>
> === modified file 'lib/lp/
> --- lib/lp/
> +++ lib/lp/
> @@ -43,7 +43,11 @@
> <p class="helpwanted">
> Unfortunately, Launchpad doesn't know the plural form
> information for this language. If you know it, please open a
> - <a href="/
> + <a id='plural_
> + tal:attributes=
> + question
> + </a>
> + with that information,
> so we can add it to Launchpad.
> </p>
> </tal:has_
> @@ -124,8 +128,12 @@
> </tal:language>
> is not registered as being spoken in any country. If you know
> about a country that officially speaks this language, please
> - open a <a href="/
> - information, so we can add it to Launchpad.
> + open a
> + <a id='country_
please remove the trailing space in the line above.
> + tal:attributes= "href view/add_ question_ url">
> + question
here too.
> + </a>
and here too.
> + with that information, so we can add it to Launchpad. not_countries>
> </p>
> </tal:has_
> </div>