[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:closeaccount-skip-pofile-owner into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:closeaccount-skip-pofile-owner into launchpad:master. Commit message: Skip POFile.owner reference when running the close account script Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/410354 It seems that the POFile.owner reference exists just for auditing purposes and there are not special privileges attached to it therefore it should be ok to include it in the skip list. Regarding the unit test added, I have decided to set the ownership using "pofile.owner = person" as the owner parameter offered by the makePOFile is setting the POTemplate owner and not the POFile owner. Also other tests use this way too so probably not worht digging deeper on this now. -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:closeaccount-skip-pofile-owner into launchpad:master. diff --git a/lib/lp/registry/scripts/closeaccount.py b/lib/lp/registry/scripts/closeaccount.py index 419f99c..f488b78 100644 --- a/lib/lp/registry/scripts/closeaccount.py +++ b/lib/lp/registry/scripts/closeaccount.py @@ -142,6 +142,7 @@ def close_account(username, log): ('persontransferjob', 'minor_person'), ('poexportrequest', 'person'), ('pofile', 'lasttranslator'), +('pofile', 'owner'), ('pofiletranslator', 'person'), ('product', 'registrant'), ('question', 'answerer'), diff --git a/lib/lp/registry/scripts/tests/test_closeaccount.py b/lib/lp/registry/scripts/tests/test_closeaccount.py index b90a255..fca56e5 100644 --- a/lib/lp/registry/scripts/tests/test_closeaccount.py +++ b/lib/lp/registry/scripts/tests/test_closeaccount.py @@ -407,6 +407,18 @@ class TestCloseAccount(TestCaseWithFactory): getUtility(IPOFileTranslatorSet).getForPersonPOFile( person, pofile)) +def test_skips_po_file_owners(self): +person = self.factory.makePerson() +pofile = self.factory.makePOFile() +pofile.owner = person +person_id = person.id +account_id = person.account.id +script = self.makeScript([six.ensure_str(person.name)]) +with dbuser('launchpad'): +self.runScript(script) +self.assertRemoved(account_id, person_id) + + def test_handles_archive_subscriptions_and_tokens(self): person = self.factory.makePerson() ppa = self.factory.makeArchive(private=True) ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] lp:~cjwatson/meta-lp-deps/restore-py2-convoy into lp:meta-lp-deps
Review: Approve -- https://code.launchpad.net/~cjwatson/meta-lp-deps/restore-py2-convoy/+merge/409740 Your team Launchpad code reviewers is subscribed to branch lp:meta-lp-deps. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-test_filebug_dupefinderjs-linting into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-test_filebug_dupefinderjs-linting into launchpad:master. Commit message: Fixing test_filebug_dupefinder.js linting Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/407005 Fixing test_filebug_dupefinder.js linting -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-test_filebug_dupefinderjs-linting into launchpad:master. diff --git a/lib/lp/bugs/javascript/tests/test_filebug_dupefinder.js b/lib/lp/bugs/javascript/tests/test_filebug_dupefinder.js index eb85aff..e7159f1 100644 --- a/lib/lp/bugs/javascript/tests/test_filebug_dupefinder.js +++ b/lib/lp/bugs/javascript/tests/test_filebug_dupefinder.js @@ -24,18 +24,18 @@ YUI.add('lp.bugs.filebug_dupefinder.test', function (Y) { throw new Error("Constructor called as a function"); } this.calls = []; -this.io = function(url, config) { +this.io = function io_handler(url, config) { this.calls.push(url); var response = {responseText: ''}; // We may have been passed text to use in the response. -if (Y.Lang.isValue(arguments.callee.responseText)) { -response.responseText = arguments.callee.responseText; +if (Y.Lang.isValue(io_handler.responseText)) { +response.responseText = io_handler.responseText; } // We currently only support calling the success handler. -config.on.success(undefined, response, arguments.callee.args); +config.on.success(undefined, response, io_handler.args); // After calling the handler, resume the test. -if (Y.Lang.isFunction(arguments.callee.doAfter)) { -test_case.resume(arguments.callee.doAfter); +if (Y.Lang.isFunction(io_handler.doAfter)) { +test_case.resume(io_handler.doAfter); } }; } ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-formoverlayjs-linting into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-formoverlayjs-linting into launchpad:master. Commit message: Fixing linting in formoverlay.js file Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406983 Fixing linting in formoverlay.js file -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-formoverlayjs-linting into launchpad:master. diff --git a/lib/lp/app/javascript/formoverlay/formoverlay.js b/lib/lp/app/javascript/formoverlay/formoverlay.js index cd3481e..bb5ef75 100644 --- a/lib/lp/app/javascript/formoverlay/formoverlay.js +++ b/lib/lp/app/javascript/formoverlay/formoverlay.js @@ -516,11 +516,14 @@ Y.extend(FormOverlay, Y.lp.ui.PrettyOverlay, { case 'file': // stub case as XMLHttpRequest will only send // the file path as a string. +break; case undefined: // stub case for fieldset element which returns // undefined. +break; case 'reset': // stub case for input type reset button. +break; case 'button': // stub case for input type button elements. break; ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-widgetsjs-linting into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-widgetsjs-linting into launchpad:master. Commit message: Fixing widgets.js linting Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406985 Fixing widgets.js linting -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-widgetsjs-linting into launchpad:master. diff --git a/lib/lp/registry/javascript/distroseries/widgets.js b/lib/lp/registry/javascript/distroseries/widgets.js index db4c9eb..cf22fbc 100644 --- a/lib/lp/registry/javascript/distroseries/widgets.js +++ b/lib/lp/registry/javascript/distroseries/widgets.js @@ -436,11 +436,15 @@ Y.extend(ArchitecturesChoiceListWidget, formwidgets.ChoiceListWidget, { } var ds; for (ds in this._archindep_tags) { -var arch_tag = this._archindep_tags[ds]; -var i = 0; -for (i; i___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-standard_test_templatejs-linting into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-standard_test_templatejs-linting into launchpad:master. Commit message: Fixing standard_test_template.js linting Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406984 Fixing standard_test_template.js linting -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-standard_test_templatejs-linting into launchpad:master. diff --git a/standard_test_template.js b/standard_test_template.js index a368983..08e40ab 100644 --- a/standard_test_template.js +++ b/standard_test_template.js @@ -1,24 +1,24 @@ /* Copyright 2021 Canonical Ltd. This software is licensed under the * GNU Affero General Public License version 3 (see the file LICENSE). */ -YUI.add('lp.${LIBRARY}.test', function (Y) { +YUI.add('lp.$LIBRARY.test', function (Y) { -var tests = Y.namespace('lp.${LIBRARY}.test'); -tests.suite = new Y.Test.Suite('${LIBRARY} Tests'); +var tests = Y.namespace('lp.$LIBRARY.test'); +tests.suite = new Y.Test.Suite('$LIBRARY Tests'); tests.suite.add(new Y.Test.Case({ -name: '${LIBRARY}_tests', +name: '$LIBRARY_tests', setUp: function () {}, tearDown: function () {}, test_library_exists: function () { -Y.Assert.isObject(Y.lp.${LIBRARY}, -"Could not locate the lp.${LIBRARY} module"); +Y.Assert.isObject(Y.lp.$LIBRARY, +"Could not locate the lp.$LIBRARY module"); } })); }, '0.1', { -requires: ['test', 'lp.testing.helpers', 'console', 'lp.${LIBRARY}'] +requires: ['test', 'lp.testing.helpers', 'console', 'lp.$LIBRARY'] }); ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-autocompletejs-linting into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-autocompletejs-linting into launchpad:master. Commit message: Fixing linting in autocomplete.js file Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406982 Fixing linting in autocomplete.js file -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-autocompletejs-linting into launchpad:master. diff --git a/lib/lp/app/javascript/autocomplete.js b/lib/lp/app/javascript/autocomplete.js index b808eba..1f35175 100644 --- a/lib/lp/app/javascript/autocomplete.js +++ b/lib/lp/app/javascript/autocomplete.js @@ -9,7 +9,7 @@ YUI.add('lp.app.autocomplete', function (Y) { namespace.getRepositoryCompletionURI = function (repo_node) { var entered_uri = repo_node.get('value'); if (entered_uri.startsWith("lp:")) { -var split = "+code/" + entered_uri.split("lp:")[1] +var split = "+code/" + entered_uri.split("lp:")[1]; entered_uri = encodeURI(split); } else if (entered_uri.startsWith("~")) { @@ -29,7 +29,7 @@ YUI.add('lp.app.autocomplete', function (Y) { uri += entered_uri; uri += '/@@+huge-vocabulary'; return uri; -} +}; namespace.getRepoNode = function (path_node) { var split = path_node._node['id'].split('.'); @@ -37,7 +37,7 @@ YUI.add('lp.app.autocomplete', function (Y) { var repository_target = split.join('.'); var target_repo = Y.one('[id="' + repository_target + '"]'); return target_repo; -} +}; namespace.getPathNode = function (path_node) { var split = path_node._node['id'].split('.'); @@ -45,7 +45,7 @@ YUI.add('lp.app.autocomplete', function (Y) { var path_target = split.join('.'); var target_path = Y.one('[id="' + path_target + '"]'); return target_path; -} +}; namespace.setupVocabAutocomplete = function (config, node) { var qs = 'name=' + encodeURIComponent(config.vocabulary_name); @@ -72,7 +72,7 @@ YUI.add('lp.app.autocomplete', function (Y) { var uri = namespace.getRepositoryCompletionURI(this); var path_node = namespace.getPathNode(this); path_node.ac.set("source", uri); -} +}; // ideally this should take node to rebind `this` in the function // but we're also calling it from the popup picker, which has a direct // reference to the repo_node, so maintain the local `this` binding. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master
The proposal to merge ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master has been updated. Description changed to: Skipping E402 in puller/__init__.py For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406656 -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master
The proposal to merge ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master has been updated. Commit message changed to: Skipping E402 in puller/__init__.py For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406656 -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master. Commit message: Skipping E402 in importpedant.py Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406656 Skipping E402 in importpedant.py -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-e402-fix into launchpad:master. diff --git a/lib/lp/scripts/utilities/importpedant.py b/lib/lp/scripts/utilities/importpedant.py index 160af05..fd998aa 100644 --- a/lib/lp/scripts/utilities/importpedant.py +++ b/lib/lp/scripts/utilities/importpedant.py @@ -5,19 +5,20 @@ import atexit import itertools from operator import attrgetter import types -import warnings import six from six.moves import builtins + +original_import = builtins.__import__ +naughty_imports = set() + # Silence bogus warnings from Hardy's python-pkg-resources package. +import warnings # noqa: E402 warnings.filterwarnings('ignore', category=UserWarning, append=True, message=r'Module .*? is being added to sys.path') -original_import = builtins.__import__ -naughty_imports = set() - # Sometimes, third-party modules don't export all of their public APIs through # __all__. The following dict maps from such modules to a list of attributes # that are allowed to be imported, whether or not they are in __all__. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:linting-f811 into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:linting-f811 into launchpad:master. Commit message: Fixing F811 linting errors Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406647 Fixing F811 linting errors -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:linting-f811 into launchpad:master. diff --git a/lib/devscripts/tests/test_sourcecode.py b/lib/devscripts/tests/test_sourcecode.py index 6b538c7..75f2ae4 100644 --- a/lib/devscripts/tests/test_sourcecode.py +++ b/lib/devscripts/tests/test_sourcecode.py @@ -112,7 +112,7 @@ class TestInterpretConfiguration(unittest.TestCase): config = interpret_config([['key', 'value;revno=45']], False) self.assertEqual({'key': ('value', '45', False)}, config) -def test_key_value_revision(self): +def test_key_value_revision_without_third_value_raises_error(self): # A (key, value) pair without a third optional value when the # value has multiple suffixes of ``;revno=[REVISION]`` raises an # error. diff --git a/lib/lp/bugs/scripts/debbugs.py b/lib/lp/bugs/scripts/debbugs.py index a15a73b..81055c1 100644 --- a/lib/lp/bugs/scripts/debbugs.py +++ b/lib/lp/bugs/scripts/debbugs.py @@ -271,8 +271,6 @@ class Database: return bug if __name__ == '__main__': -import sys - for bug in Database('/srv/debzilla.no-name-yet.com/debbugs'): try: print(bug, bug.subject) diff --git a/lib/lp/services/features/testing.py b/lib/lp/services/features/testing.py index e4ed8be..576322f 100644 --- a/lib/lp/services/features/testing.py +++ b/lib/lp/services/features/testing.py @@ -67,12 +67,13 @@ class FeatureFixtureMixin: original_controller = get_relevant_feature_controller() -def scope_lookup(scope_name): -request = get_current_browser_request() -return ScopesFromRequest(request).lookup(scope_name) - if self.override_scope_lookup: scope_lookup = self.override_scope_lookup +else: +def scope_lookup(scope_name): +request = get_current_browser_request() +return ScopesFromRequest(request).lookup(scope_name) + install_feature_controller( FeatureController(scope_lookup, rule_source)) self.addCleanup(install_feature_controller, original_controller) ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:linting-f402 into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:linting-f402 into launchpad:master. Commit message: Fixing F402 linting errors. Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406641 Fixing F402 linting errors. -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:linting-f402 into launchpad:master. diff --git a/lib/lp/answers/browser/question.py b/lib/lp/answers/browser/question.py index 52cff40..de8039a 100644 --- a/lib/lp/answers/browser/question.py +++ b/lib/lp/answers/browser/question.py @@ -957,8 +957,8 @@ class QuestionWorkflowView(LaunchpadFormView, LinkFAQMixin): def hasActions(self): """Return True if some actions are possible for this user.""" -for action in self.actions: -if action.available(): +for operation in self.actions: +if operation.available(): return True return False diff --git a/lib/lp/app/browser/multistep.py b/lib/lp/app/browser/multistep.py index 76cf29d..ac77961 100644 --- a/lib/lp/app/browser/multistep.py +++ b/lib/lp/app/browser/multistep.py @@ -238,11 +238,11 @@ class StepView(LaunchpadFormView): # This is a hack to make it possible to change the label of our main # action in subclasses. actions = [] -for action in self.actions: +for operation in self.actions: # Only change the label of our 'continue' action. -if action.__name__ == 'field.actions.continue': -action.label = self.main_action_label -actions.append(action) +if operation.__name__ == 'field.actions.continue': +operation.label = self.main_action_label +actions.append(operation) self.actions = actions return super(StepView, self).render() diff --git a/lib/lp/code/browser/branch.py b/lib/lp/code/browser/branch.py index f7502e7..cbd4a37 100644 --- a/lib/lp/code/browser/branch.py +++ b/lib/lp/code/browser/branch.py @@ -952,13 +952,13 @@ class BranchDeletionView(LaunchpadFormView): def display_deletion_requirements(self): """Normal deletion requirements, indication of permissions. -:return: A list of tuples of (item, action, reason, allowed) +:return: A list of tuples of (item, operation, reason, allowed) """ reqs = [] -for item, (action, reason) in six.iteritems( +for item, (operation, reason) in six.iteritems( self.context.deletionRequirements(eager_load=True)): allowed = check_permission('launchpad.Edit', item) -reqs.append((item, action, reason, allowed)) +reqs.append((item, operation, reason, allowed)) return reqs @cachedproperty @@ -1008,19 +1008,19 @@ class BranchDeletionView(LaunchpadFormView): 'item', 'reason' and 'allowed'. """ row_dict = {'delete': [], 'alter': [], 'break_link': []} -for item, action, reason, allowed in ( +for item, operation, reason, allowed in ( self.display_deletion_requirements): if IBugBranch.providedBy(item): -action = 'break_link' +operation = 'break_link' elif ISpecificationBranch.providedBy(item): -action = 'break_link' +operation = 'break_link' elif IProductSeries.providedBy(item): -action = 'break_link' +operation = 'break_link' row = {'item': item, 'reason': reason, 'allowed': allowed, } -row_dict[action].append(row) +row_dict[operation].append(row) return row_dict @property diff --git a/lib/lp/code/browser/gitrepository.py b/lib/lp/code/browser/gitrepository.py index fb51ca1..4214e3f 100644 --- a/lib/lp/code/browser/gitrepository.py +++ b/lib/lp/code/browser/gitrepository.py @@ -1364,13 +1364,13 @@ class GitRepositoryDeletionView(LaunchpadFormView): def display_deletion_requirements(self): """Normal deletion requirements, indication of permissions. -:return: A list of tuples of (item, action, reason, allowed) +:return: A list of tuples of (item, operation, reason, allowed) """ reqs = [] -for item, (action, reason) in six.iteritems( +for item, (operation, reason) in six.iteritems( self.context.getDeletionRequirements(eager_load=True)): allowed = check_permission("launchpad.Edit", item) -reqs.append((item, action, reason, allowed)) +reqs.append((item, operation, reason, allowed)) re
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:linting-e402 into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:linting-e402 into launchpad:master. Commit message: Fixing E402 linting errors Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/406632 Fixing E402 linting errors -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:linting-e402 into launchpad:master. diff --git a/lib/lp/app/__init__.py b/lib/lp/app/__init__.py index e79d7bd..7006d36 100644 --- a/lib/lp/app/__init__.py +++ b/lib/lp/app/__init__.py @@ -15,10 +15,8 @@ __all__ = [] # values, but they kindly left this global variable for you to monkey patch if # you want the old behaviour, just like we do. from zope.formlib import itemswidgets - - -itemswidgets.EXPLICIT_EMPTY_SELECTION = False - # Load versioninfo.py so that we get errors on start-up rather than waiting # for first page load. import lp.app.versioninfo # noqa: F401 + +itemswidgets.EXPLICIT_EMPTY_SELECTION = False diff --git a/lib/lp/bugs/interfaces/bug.py b/lib/lp/bugs/interfaces/bug.py index 4c14118..5fde710 100644 --- a/lib/lp/bugs/interfaces/bug.py +++ b/lib/lp/bugs/interfaces/bug.py @@ -1029,7 +1029,7 @@ patch_collection_property(ICve, 'bugs', IBug) # In order to avoid circular dependencies, we only import # IBugSubscription (which itself imports IBug) here, and assign it as # the value type for the `subscriptions` collection. -from lp.bugs.interfaces.bugsubscription import IBugSubscription +from lp.bugs.interfaces.bugsubscription import IBugSubscription # noqa: E402 patch_collection_property(IBug, 'subscriptions', IBugSubscription) diff --git a/lib/lp/bugs/interfaces/bugsubscription.py b/lib/lp/bugs/interfaces/bugsubscription.py index f0241d4..3913944 100644 --- a/lib/lp/bugs/interfaces/bugsubscription.py +++ b/lib/lp/bugs/interfaces/bugsubscription.py @@ -86,5 +86,5 @@ class IBugSubscription(Interface): # In order to avoid circular dependencies, we only import # IBug (which itself imports IBugSubscription) here, and assign it as # the value type for the `bug` reference. -from lp.bugs.interfaces.bug import IBug +from lp.bugs.interfaces.bug import IBug # noqa: E402 patch_reference_property(IBugSubscription, 'bug', IBug) diff --git a/lib/lp/bugs/model/bug.py b/lib/lp/bugs/model/bug.py index c1cc4c8..4f4ea06 100644 --- a/lib/lp/bugs/model/bug.py +++ b/lib/lp/bugs/model/bug.py @@ -75,6 +75,7 @@ from zope.component import getUtility from zope.contenttype import guess_content_type from zope.event import notify from zope.interface import implementer +from zope.security import checker from zope.security.interfaces import Unauthorized from zope.security.proxy import ( ProxyFactory, @@ -2385,7 +2386,6 @@ class StructuralSubscriptionSet(FrozenSetBasedSet): # writing ZCML tedious, so I've opted for registering custom checkers (see # lp_sitecustomize for some other jiggery pokery in the same vein) while I # seek a better solution. -from zope.security import checker checker_for_frozen_set = checker.getCheckerForInstancesOf(frozenset) checker_for_subscriber_set = checker.NamesChecker(["sorted"]) checker_for_subscription_set = checker.NamesChecker(["sorted", "subscribers"]) diff --git a/lib/lp/code/bzr.py b/lib/lp/code/bzr.py index 88d7abb..bac9976 100644 --- a/lib/lp/code/bzr.py +++ b/lib/lp/code/bzr.py @@ -21,9 +21,6 @@ __all__ = [ # line below this comment. import lp.codehosting -# Silence lint warning. -lp.codehosting - from breezy.branch import UnstackableBranchFormat from breezy.bzr.branch import ( BranchReferenceFormat, @@ -77,6 +74,8 @@ from lazr.enum import ( ) import six +# Silence lint warning. +lp.codehosting def _format_enum(num, format, format_string=None, description=None): instance = format() diff --git a/lib/lp/codehosting/__init__.py b/lib/lp/codehosting/__init__.py index c194128..eff84a0 100644 --- a/lib/lp/codehosting/__init__.py +++ b/lib/lp/codehosting/__init__.py @@ -20,6 +20,7 @@ from breezy import ui as brz_ui from breezy.branch import Branch from breezy.library_state import BzrLibraryState as BrzLibraryState from breezy.plugin import load_plugins as brz_load_plugins +import breezy.plugins.loom.branch # This import is needed so that brz's logger gets registered. import breezy.trace from zope.security import checker @@ -82,6 +83,5 @@ def dont_wrap_class_and_subclasses(cls): # Don't wrap Branch or its subclasses in Zope security proxies. Make sure # the various LoomBranch classes are present first. -import breezy.plugins.loom.branch breezy.plugins.loom.branch dont_wrap_class_and_subclasses(Branch) diff --git a/lib/lp/codehosting/puller/__init__.py b/lib/lp/codehosting/puller/__init__.py index 48ec941..e1582ed 100644 --- a/lib/lp/codehosting/puller/__init__.py +++ b/lib/lp/codehosting/puller/__init__.py @@ -10,14 +10,13 @@ import datetime impo
Re: [Launchpad-reviewers] [Merge] lp:~cjwatson/lpbuildbot/py3-only into lp:lpbuildbot
Review: Approve Looks good! -- https://code.launchpad.net/~cjwatson/lpbuildbot/py3-only/+merge/406469 Your team Launchpad code reviewers is subscribed to branch lp:lpbuildbot. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~twom/launchpad:gdbr-add-bzr-branches into launchpad:master
Little refactor suggested. Diff comments: > diff --git a/lib/lp/registry/model/person.py b/lib/lp/registry/model/person.py > index edac8e9..dbadb17 100644 > --- a/lib/lp/registry/model/person.py > +++ b/lib/lp/registry/model/person.py > @@ -4084,13 +4085,33 @@ class PersonSet: > return {"status": "no data held"} > > account = email_results.one()[1] > -# This is only an 'account' in terms of the end user view, > -# it does not refer to an `IAccount`. > -return_data = {"status": "account only; no other data"} > +return_data = {} > return_data["person"] = canonical_url(account) > # Get the data behind the overview screen > overview = self.getUserOverview(account) > return_data.update(overview) > + > +# bzr branches Maybe this whole block can be split into a specific method as we did with the `getUserOverview`? Mainly envisioning this to grow quickly. > +branches = account.getBranches() > +if not branches.is_empty(): > +search_url = canonical_url( > +account, rootsite='code', view_name='+branches') > +req = PreparedRequest() > +req.prepare_url(search_url, { > +"field.category": "OWNED", > +"field.category-empty-marker": "1", > +"field.lifecycle": "ALL", > +"field.lifecycle-empty-marker": "1", > +"field.sort_by": "most recently changed first", > +"field.sort_by-empty-marker": "1"}) > +return_data['branches'] = req.url > + > +# This is only an 'account' in terms of the end user view, > +# it does not refer to an `IAccount`. > +if len(return_data.keys()) > 1: > +return_data["status"] = "account with data" > +else: > +return_data["status"] = "account only; no other data" > return return_data > > def getUserOverview(self, person): -- https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/405703 Your team Launchpad code reviewers is requested to review the proposed merge of ~twom/launchpad:gdbr-add-bzr-branches into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:db-charm-recipe into launchpad:db-devel
Review: Approve Looks good although I guess wgrant will need to take a look at this one. -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/403405 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:db-charm-recipe into launchpad:db-devel. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:db-snap-base-arch into launchpad:db-devel
Review: Approve Looks good! (and also helped me understand the connection between snap bases and distribution series) -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/402532 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:db-snap-base-arch into launchpad:db-devel. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:db-remove-buildd-secret into launchpad:db-devel
Review: Approve Looks good! -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/402376 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:db-remove-buildd-secret into launchpad:db-devel. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~twom/launchpad:oci-set-distribution-credentials-via-api into launchpad:master
Diff comments: > diff --git a/lib/lp/registry/tests/test_distribution.py > b/lib/lp/registry/tests/test_distribution.py > index 0b9f712..44defc1 100644 > --- a/lib/lp/registry/tests/test_distribution.py > +++ b/lib/lp/registry/tests/test_distribution.py > @@ -842,3 +843,83 @@ class TestDistributionWebservice(TestCaseWithFactory): > start_date=(now - day).isoformat(), > end_date=now.isoformat()) > self.assertEqual([], empty_response.jsonBody()) > + > +def test_setOCICredentials(self): Even though the rest parameters that the setOCICredentials method receives are not required, I guess it will make sense to check that those are set properly here. > +# We can add OCI Credentials to the distribution > +self.setConfig() > +with person_logged_in(self.person): > +distro = self.factory.makeDistribution(owner=self.person) > +distro.oci_project_admin = self.person > +distro_url = api_url(distro) > + > +resp = self.webservice.named_post( > +distro_url, > +"setOCICredentials", > +registry_url="http://registry.test;, > +) > + > +self.assertEqual(200, resp.status) > +with person_logged_in(self.person): > +self.assertEqual( > +"http://registry.test;, > +distro.oci_registry_credentials.url > +) > + > +def test_setOCICredentials_no_oci_admin(self): > +# If there's no oci_project_admin to own the credentials, error > +self.setConfig() > +with person_logged_in(self.person): > +distro = self.factory.makeDistribution(owner=self.person) > +distro_url = api_url(distro) > + > +resp = self.webservice.named_post( > +distro_url, > +"setOCICredentials", > +registry_url="http://registry.test;, > +) > + > +self.assertEqual(400, resp.status) > +self.assertIn( > +b"no OCI Project Admin for this distribution", > +resp.body) > + > +def test_setOCICredentials_changes_credentials(self): > +# if we have existing credentials, we should change them > +self.setConfig() > +with person_logged_in(self.person): > +distro = self.factory.makeDistribution(owner=self.person) > +distro.oci_project_admin = self.person > +credentials = self.factory.makeOCIRegistryCredentials() > +distro.oci_registry_credentials = credentials > +distro_url = api_url(distro) > + > +resp = self.webservice.named_post( > +distro_url, > +"setOCICredentials", > +registry_url="http://registry.test;, > +) > + > +self.assertEqual(200, resp.status) > +with person_logged_in(self.person): > +self.assertEqual( > +"http://registry.test;, > +distro.oci_registry_credentials.url > +) > + > +def test_deleteOCICredentials(self): > +# We can remove existing credentials > +self.setConfig() > +with person_logged_in(self.person): > +distro = self.factory.makeDistribution(owner=self.person) > +distro.oci_project_admin = self.person > +credentials = self.factory.makeOCIRegistryCredentials() > +distro.oci_registry_credentials = credentials > +distro_url = api_url(distro) > + > +resp = self.webservice.named_post( > +distro_url, > +"deleteOCICredentials") > + > +self.assertEqual(200, resp.status) > +with person_logged_in(self.person): > +self.assertIsNone(distro.oci_registry_credentials) -- https://code.launchpad.net/~twom/launchpad/+git/launchpad/+merge/402084 Your team Launchpad code reviewers is requested to review the proposed merge of ~twom/launchpad:oci-set-distribution-credentials-via-api into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] lp:~cjwatson/meta-lp-deps/zstd into lp:meta-lp-deps
Review: Approve Looks good! -- https://code.launchpad.net/~cjwatson/meta-lp-deps/zstd/+merge/401880 Your team Launchpad code reviewers is subscribed to branch lp:meta-lp-deps. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:no_edge_tag_for_valid_branches into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:no_edge_tag_for_valid_branches into launchpad:master. Commit message: Do not add the edge tag on branches with valid format Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/400240 We want to stop adding the 'edge' tag to the OCI Images that are built from branches that follow the pattern 'M.N-XX.YY' on their name. Those images must continue getting the 'M.N-XX.YY_edge' tag. -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:no_edge_tag_for_valid_branches into launchpad:master. diff --git a/lib/lp/oci/model/ociregistryclient.py b/lib/lp/oci/model/ociregistryclient.py index f1e083b..34a8c1e 100644 --- a/lib/lp/oci/model/ociregistryclient.py +++ b/lib/lp/oci/model/ociregistryclient.py @@ -258,7 +258,8 @@ class OCIRegistryClient: tags = [] if recipe.is_valid_branch_format: tags.append("{}_{}".format(recipe.git_ref.name, "edge")) -tags.append("edge") +else: +tags.append("edge") return tags @classmethod diff --git a/lib/lp/oci/tests/test_ociregistryclient.py b/lib/lp/oci/tests/test_ociregistryclient.py index 3e0d90f..10f3af8 100644 --- a/lib/lp/oci/tests/test_ociregistryclient.py +++ b/lib/lp/oci/tests/test_ociregistryclient.py @@ -416,7 +416,7 @@ class TestOCIRegistryClient(OCIConfigHelperMixin, SpyProxyCallsMixin, self.build.recipe.git_ref = git_ref result = self.client._calculateTags(self.build.recipe) self.assertThat(result, MatchesListwise( -[Equals("v1.0-20.04_edge"), Equals("edge")])) +[Equals("v1.0-20.04_edge")])) def test_build_registry_manifest(self): self._makeFiles() ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:fixing-git-ref-scan-job-with-oci into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:fixing-git-ref-scan-job-with-oci into launchpad:master. Commit message: Fixing GitRefScanJob for OCI git repositories. Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/398807 GitRefScanJob jobs are executed using the branchscanner user which does not have the needed OCI related database permissions to process a repository that has an OCI project as target. This MP includes: - Adding the missing permissions to the branchscanner user in the securify.cfg file. - A new test case that validates that the GitRefScanJob job can be executed when the repository has an OCI Project as target. To be discussed: - The new test is just a slightly different version of the existing `test_triggers_webhooks`, maybe there is a pattern in the codebase to avoid duplication? -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:fixing-git-ref-scan-job-with-oci into launchpad:master. diff --git a/database/schema/security.cfg b/database/schema/security.cfg index 4a3770c..f198381 100644 --- a/database/schema/security.cfg +++ b/database/schema/security.cfg @@ -715,6 +715,8 @@ public.karmaaction= SELECT public.message= SELECT, INSERT public.messagechunk = SELECT, INSERT public.milestonetag = SELECT +public.ociproject = SELECT +public.ociprojectname = SELECT public.person = SELECT public.personsettings = SELECT public.previewdiff= SELECT diff --git a/lib/lp/code/model/tests/test_gitjob.py b/lib/lp/code/model/tests/test_gitjob.py index 18c91c9..1b41b35 100644 --- a/lib/lp/code/model/tests/test_gitjob.py +++ b/lib/lp/code/model/tests/test_gitjob.py @@ -222,6 +222,48 @@ class TestGitRefScanJob(TestCaseWithFactory): logger.output, LogsScheduledWebhooks([ (hook, "git:push:0.1", payload_matcher)])) +def test_triggers_webhooks_with_oci_project_as_repository_target(self): +# Jobs trigger any relevant webhooks when they're enabled. +self.useFixture(FeatureFixture({'code.git.webhooks.enabled': 'on'})) +logger = self.useFixture(FakeLogger()) +oci_project = self.factory.makeOCIProject() +repository = self.factory.makeGitRepository(target=oci_project) +self.factory.makeGitRefs( +repository, paths=['refs/heads/master', 'refs/tags/1.0']) +hook = self.factory.makeWebhook( +target=repository, event_types=['git:push:0.1']) +job = GitRefScanJob.create(repository) +paths = ('refs/heads/master', 'refs/tags/2.0') +self.useFixture(GitHostingFixture(refs=self.makeFakeRefs(paths))) +with dbuser('branchscanner'): +JobRunner([job]).runAll() +delivery = hook.deliveries.one() +sha1 = lambda s: hashlib.sha1(s).hexdigest() +payload_matcher = MatchesDict({ +'git_repository': Equals('/' + repository.unique_name), +'git_repository_path': Equals(repository.unique_name), +'ref_changes': Equals({ +'refs/tags/1.0': { +'old': {'commit_sha1': sha1(b'refs/tags/1.0')}, +'new': None}, +'refs/tags/2.0': { +'old': None, +'new': {'commit_sha1': sha1(b'refs/tags/2.0')}}, +})}) +self.assertThat( +delivery, +MatchesStructure( +event_type=Equals('git:push:0.1'), +payload=payload_matcher)) +with dbuser(config.IWebhookDeliveryJobSource.dbuser): +self.assertEqual( +"" % ( +hook.id, hook.target), +repr(delivery)) +self.assertThat( +logger.output, LogsScheduledWebhooks([ +(hook, "git:push:0.1", payload_matcher)])) + def test_merge_detection_triggers_webhooks(self): self.useFixture(FeatureFixture( {BRANCH_MERGE_PROPOSAL_WEBHOOKS_FEATURE_FLAG: 'on'})) ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:tidy-bugsubscription-filter into launchpad:master
Nice refactoring, much better usage of the constructor method. -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/397168 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:tidy-bugsubscription-filter into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~pappacena/launchpad:enabling-gunicorn-in-development into launchpad:master
Review: Approve Gunicorn time! -- https://code.launchpad.net/~pappacena/launchpad/+git/launchpad/+merge/396701 Your team Launchpad code reviewers is subscribed to branch ~pappacena/launchpad:gunicorn-appserver-tests. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:py3-tag-decode-contents into launchpad:master
Got scared by the number of lines but good to see that is just a method replacement. Good! -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/395947 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:py3-tag-decode-contents into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] lp:~twom/lpbuildbot/reduce-concurrency into lp:lpbuildbot
Review: Approve Looks good and ... sad... but we will get it back once we figure out what's going on. -- https://code.launchpad.net/~twom/lpbuildbot/reduce-concurrency/+merge/395887 Your team Launchpad code reviewers is subscribed to branch lp:lpbuildbot. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
Re: [Launchpad-reviewers] [Merge] ~cjwatson/launchpad:oci-registry-credentials-unique-allow-region into launchpad:master
Review: Approve Looks good! -- https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/394880 Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:oci-registry-credentials-unique-allow-region into launchpad:master. ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp
[Launchpad-reviewers] [Merge] ~cristiangsp/launchpad:bugfix-1158242-translations-ui-changes into launchpad:master
Cristian Gonzalez has proposed merging ~cristiangsp/launchpad:bugfix-1158242-translations-ui-changes into launchpad:master. Commit message: Reordering "Contributors" column in the distribution's Translations page and converting the "Length" column into "Total" in the distribution series language page. Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cristiangsp/launchpad/+git/launchpad/+merge/393639 This branch introduces the 2 changes requested in bug: https://bugs.launchpad.net/launchpad/+bug/1158242 - Moving the "Contributors" column to the end of the table in the distribution's Translations page. - Converting the "Length" column into "Total" an move it to the end of the table in the distribution series language page. -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cristiangsp/launchpad:bugfix-1158242-translations-ui-changes into launchpad:master. diff --git a/lib/lp/translations/templates/distroseries-langchart.pt b/lib/lp/translations/templates/distroseries-langchart.pt index 47f9a40..87e67b5 100644 --- a/lib/lp/translations/templates/distroseries-langchart.pt +++ b/lib/lp/translations/templates/distroseries-langchart.pt @@ -21,11 +21,11 @@ Language -Contributors Status Untranslated Need review Changed +Contributors @@ -48,15 +48,6 @@ Language Name - - 0 - 0 - - - - @@ -87,6 +78,15 @@ + + 0 + 0 + + + + diff --git a/lib/lp/translations/templates/serieslanguage-index.pt b/lib/lp/translations/templates/serieslanguage-index.pt index 6c59d4f..e8359da 100644 --- a/lib/lp/translations/templates/serieslanguage-index.pt +++ b/lib/lp/translations/templates/serieslanguage-index.pt @@ -65,12 +65,12 @@ - Template Name - Length + Template Name Status Untranslated Need review Changed + Total Last Edited By @@ -83,8 +83,7 @@ tal:content="entry/potemplate/name"> apache2-dev - - 87 + This text is used for the sorting. @@ -138,6 +137,7 @@ + 87 - + -Overall statistics: -N +Overall statistics: -- @@ -180,6 +179,7 @@ N N N +N ___ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp