`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/module_change_auto_install/__manifest__.py b/module_change_auto_install/__manifest__.py
index 0120d9f38e2..92534d516ba 100644
--- a/module_change_auto_install/__manifest__.py
+++ b/module_change_auto_install/__manifest__.py
@@ -5,7 +5,7 @@
{
"name": "Change auto installable modules",
"summary": "Customize auto installables modules by configuration",
- "version": "18.0.1.0.3",
+ "version": "19.0.1.0.0",
"category": "Tools",
"maintainers": ["legalsylvain"],
"author": "GRAP, Odoo Community Association (OCA)",
diff --git a/module_change_auto_install/patch.py b/module_change_auto_install/patch.py
index 6adbb0fc6b5..e4dcf83e689 100644
--- a/module_change_auto_install/patch.py
+++ b/module_change_auto_install/patch.py
@@ -2,14 +2,15 @@
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+import configparser
import logging
import os
-from odoo import modules
+from odoo.modules.module import Manifest
from odoo.tools import config
_logger = logging.getLogger(__name__)
-_original_load_manifest = modules.module.load_manifest
+_original_init = Manifest.__init__
def _get_modules_dict_auto_install_config(config_value):
@@ -17,14 +18,14 @@ def _get_modules_dict_auto_install_config(config_value):
{module_name: modules_list or False}
if the odoo.cfg file contains
-
- modules_auto_install_enabled =
+ [module_change_auto_install]
+ modules_enabled =
web_responsive:web,
base_technical_features:,
point_of_sale:sale/purchase,
account_usability
- >>> split_strip('modules_auto_install_enabled')
+ >>> split_strip('modules_enabled')
{
'web_responsive': ['web'],
'base_technical_features': [],
@@ -36,49 +37,52 @@ def _get_modules_dict_auto_install_config(config_value):
"""
res = {}
config_value = (config_value or "").strip(" ,")
- config_list = [x.strip() for x in config_value.split(",")]
- for item in config_list:
- if ":" in item:
- res[item.split(":")[0]] = (
- item.split(":")[1] and item.split(":")[1].split("/") or []
- )
- else:
- res[item] = True
+ if config_value:
+ config_list = [x.strip() for x in config_value.split(",")]
+ for item in config_list:
+ if ":" in item:
+ res[item.split(":")[0]] = (
+ item.split(":")[1] and item.split(":")[1].split("/") or []
+ )
+ else:
+ res[item] = True
return res
-def _overload_load_manifest(module, mod_path=None):
- res = _original_load_manifest(module, mod_path=None)
- if not res:
- # Specific case where a previously available module marked as auto installable
- # is NOT available in the addons path.
- # In that case, avoid to crash when trying to get 'depends' key.
- return res
- auto_install = res.get("auto_install", False)
-
- modules_auto_install_enabled_dict = _get_modules_dict_auto_install_config(
+def _get_modules_auto_install_enabled_dict():
+ return _get_modules_dict_auto_install_config(
config.get(
- "modules_auto_install_enabled",
+ "module_change_auto_install.modules_enabled",
os.environ.get("ODOO_MODULES_AUTO_INSTALL_ENABLED"),
)
)
- modules_auto_install_disabled_dict = _get_modules_dict_auto_install_config(
+
+
+def _get_modules_auto_install_disabled_dict():
+ return _get_modules_dict_auto_install_config(
config.get(
- "modules_auto_install_disabled",
+ "module_change_auto_install.modules_disabled",
os.environ.get("ODOO_MODULES_AUTO_INSTALL_DISABLED"),
)
)
+
+def _get_auto_install_flag(self):
+ modules_auto_install_enabled_dict = _get_modules_auto_install_enabled_dict()
+ modules_auto_install_disabled_dict = _get_modules_auto_install_disabled_dict()
+ auto_install = self._Manifest__manifest_cached["auto_install"]
+ module = self.name
+
if auto_install and module in modules_auto_install_disabled_dict.keys():
_logger.info(f"Module '{module}' has been marked as NOT auto installable.")
- res["auto_install"] = False
+ return False
if not auto_install and module in modules_auto_install_enabled_dict.keys():
specific_dependencies = modules_auto_install_enabled_dict.get(module)
if isinstance(specific_dependencies, bool):
# Classical case
_logger.info(f"Module '{module}' has been marked as auto installable.")
- res["auto_install"] = set(res["depends"])
+ return set(self._Manifest__manifest_cached["depends"])
else:
if specific_dependencies:
_logger.info(
@@ -91,12 +95,33 @@ def _overload_load_manifest(module, mod_path=None):
f"ALL CASES."
)
- res["auto_install"] = set(specific_dependencies)
+ return set(specific_dependencies)
+ return auto_install
- return res
+
+def _patched_init(self, *, path: str, manifest_content: dict):
+ _original_init(self, path=path, manifest_content=manifest_content)
+ # Post-process before cached_property kicks in
+ self.auto_install = _get_auto_install_flag(self)
+ if "auto_install" in self._Manifest__manifest_cached:
+ self._Manifest__manifest_cached["auto_install"] = self.auto_install
+
+
+def _load_module_change_auto_install_options(rcfile):
+ """Load custom [module_change_auto_install] section into config."""
+ cp = configparser.ConfigParser()
+ cp.read([rcfile])
+
+ if cp.has_section("module_change_auto_install"):
+ for key, value in cp.items("module_change_auto_install"):
+ # Store with prefix to avoid collisions
+ config[f"module_change_auto_install.{key}"] = value
+ _logger.debug("Loaded custom option %s=%s", key, value)
def post_load():
_logger.info("Applying patch module_change_auto_install ...")
- modules.module.load_manifest = _overload_load_manifest
- modules.load_manifest = _overload_load_manifest
+ Manifest.__init__ = _patched_init
+ rcfile = config.get("config")
+ if rcfile:
+ _load_module_change_auto_install_options(rcfile)
diff --git a/module_change_auto_install/readme/CONFIGURE.md b/module_change_auto_install/readme/CONFIGURE.md
index 753ee5b1d36..38bd38c55bb 100644
--- a/module_change_auto_install/readme/CONFIGURE.md
+++ b/module_change_auto_install/readme/CONFIGURE.md
@@ -1,10 +1,10 @@
- Edit your `odoo.cfg` configuration file:
- Add the module `module_change_auto_install` in the
`server_wide_modules` list.
-- (optional) Add a new entry `modules_auto_install_disabled` to mark a
+- (optional) Add a new entry `modules_disabled` beneath a new section `[module_change_auto_install]` to mark a
list of modules as NOT auto installable.
The environment variable ``ODOO_MODULES_AUTO_INSTALL_DISABLED`` can also be set.
-- (optional) Add a new entry `modules_auto_install_enabled` to mark a
+- (optional) Add a new entry `modules_enabled` beneath a new section `[module_change_auto_install]` to mark a
list of modules as auto installable. This feature can be usefull for
companies that are hosting a lot of Odoo instances for many customers,
and want some modules to be always installed.
@@ -18,12 +18,13 @@ values.
``` cfg
server_wide_modules = web,module_change_auto_install
-modules_auto_install_disabled =
+[module_change_auto_install]
+modules_disabled =
partner_autocomplete,
iap,
mail_bot
-modules_auto_install_enabled =
+modules_enabled =
web_responsive:web,
base_technical_features,
disable_odoo_online,
@@ -53,7 +54,8 @@ INFO db_name odoo.modules.loading: 42 modules loaded in 0.32s, 0 queries (+0 ext
if your `odoo.cfg` file contains the following configuration:
``` cfg
-modules_auto_install_enabled =
+[module_change_auto_install]
+modules_enabled =
account_usability,
web_responsive:web,
base_technical_features:,
diff --git a/module_change_auto_install/static/description/index.html b/module_change_auto_install/static/description/index.html
index c5f4f92d350..bfc67ab53aa 100644
--- a/module_change_auto_install/static/description/index.html
+++ b/module_change_auto_install/static/description/index.html
@@ -374,7 +374,7 @@ Change auto installable modules
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:162ad195483bc21079128fc8075e1cf29eba3e177cffd0fbfa8d42f28a27ceab
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
In odoo, by default some modules are marked as auto installable by the
auto_install key present in the manifest.
@@ -421,13 +421,15 @@
Edit your odoo.cfg configuration file:
Add the module module_change_auto_install in the
server_wide_modules list.
-(optional) Add a new entry modules_auto_install_disabled to mark a
-list of modules as NOT auto installable. The environment variable
+ (optional) Add a new entry modules_disabled beneath a new section
+[module_change_auto_install] to mark a list of modules as NOT
+auto installable. The environment variable
ODOO_MODULES_AUTO_INSTALL_DISABLED can also be set.
-(optional) Add a new entry modules_auto_install_enabled to mark a
-list of modules as auto installable. This feature can be usefull for
-companies that are hosting a lot of Odoo instances for many customers,
-and want some modules to be always installed. The environment variable
+ (optional) Add a new entry modules_enabled beneath a new section
+[module_change_auto_install] to mark a list of modules as auto
+installable. This feature can be usefull for companies that are
+hosting a lot of Odoo instances for many customers, and want some
+modules to be always installed. The environment variable
ODOO_MODULES_AUTO_INSTALL_ENABLED can also be set.
The values in the configuration file takes precedence over the
@@ -436,12 +438,13 @@
server_wide_modules = web,module_change_auto_install
- modules_auto_install_disabled =
+ [module_change_auto_install]
+ modules_disabled =
partner_autocomplete,
iap,
mail_bot
- modules_auto_install_enabled =
+ modules_enabled =
web_responsive : web,
base_technical_features,
disable_odoo_online,
@@ -463,7 +466,8 @@
Advanced Configuration Possibilities
if your odoo.cfg file contains the following configuration:
-modules_auto_install_enabled =
+[module_change_auto_install]
+ modules_enabled =
account_usability,
web_responsive : web,
base_technical_features : ,
@@ -497,7 +501,7 @@
Bugs are tracked on GitHub Issues .
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback .
+feedback .
Do not contact contributors directly about support or help with technical issues.
diff --git a/module_change_auto_install/tests/__init__.py b/module_change_auto_install/tests/__init__.py
index d9b96c4fa5a..f7aa81860ba 100644
--- a/module_change_auto_install/tests/__init__.py
+++ b/module_change_auto_install/tests/__init__.py
@@ -1 +1,2 @@
from . import test_module
+from . import test_patch
diff --git a/module_change_auto_install/tests/test_module.py b/module_change_auto_install/tests/test_module.py
index 7719edb98d6..a2a265b1231 100644
--- a/module_change_auto_install/tests/test_module.py
+++ b/module_change_auto_install/tests/test_module.py
@@ -8,8 +8,6 @@
_get_modules_dict_auto_install_config,
)
-# from ..models.base import disable_changeset
-
class TestModule(TransactionCase):
_EXPECTED_RESULTS = {
diff --git a/module_change_auto_install/tests/test_patch.py b/module_change_auto_install/tests/test_patch.py
new file mode 100644
index 00000000000..01a134f0c11
--- /dev/null
+++ b/module_change_auto_install/tests/test_patch.py
@@ -0,0 +1,76 @@
+import logging
+import os
+import tempfile
+from unittest.mock import patch
+
+from odoo.modules.module import Manifest
+from odoo.tests.common import TransactionCase
+from odoo.tools import config
+
+import odoo.addons.module_change_auto_install as mcai
+
+_logger = logging.getLogger(__name__)
+
+
+def make_manifest(name, depends=None, auto_install=False):
+ tmpdir = tempfile.mkdtemp()
+ module_path = os.path.join(tmpdir, name)
+ os.makedirs(module_path, exist_ok=True)
+
+ manifest_content = {
+ "name": name,
+ "author": "Author",
+ "license": "AGPL-3",
+ "depends": depends or [],
+ "auto_install": auto_install,
+ }
+ return Manifest(path=module_path, manifest_content=manifest_content)
+
+
+class TestModuleChangeAutoInstall(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ # Apply patch once for all tests
+ mcai.post_load()
+
+ def test_default_auto_install(self):
+ m = make_manifest("test_module", ["base"], auto_install=False)
+ self.assertFalse(m._Manifest__manifest_cached["auto_install"])
+
+ @patch.dict(
+ config.options,
+ {
+ "module_change_auto_install.modules_disabled": "test_module",
+ },
+ )
+ def test_disabled_module(self):
+ m = make_manifest("test_module", ["base"], auto_install=True)
+ self.assertTrue(m._Manifest__manifest_cached["auto_install"] is False)
+
+ @patch.dict(
+ config.options, {"module_change_auto_install.modules_enabled": "test_module"}
+ )
+ def test_enabled_module_unconditional(self):
+ m = make_manifest("test_module", ["base"], auto_install=False)
+ # Should return its dependencies as auto-install condition
+ self.assertEqual(m._Manifest__manifest_cached["auto_install"], set(["base"]))
+
+ @patch.dict(
+ config.options,
+ {
+ "module_change_auto_install.modules_enabled": "test_module:dep1/dep2",
+ },
+ )
+ def test_enabled_module_with_specific_dependencies(self):
+ m = make_manifest("test_module", ["base"], auto_install=False)
+ self.assertEqual(
+ m._Manifest__manifest_cached["auto_install"], set(["dep1", "dep2"])
+ )
+
+ @patch.dict(
+ config.options, {"module_change_auto_install.modules_enabled": "test_module:"}
+ )
+ def test_enabled_module_all_cases(self):
+ m = make_manifest("test_module", ["base"], auto_install=False)
+ self.assertEqual(m._Manifest__manifest_cached["auto_install"], set())
From 3c73a740303ad81c811a08dabb7cfb51260225a3 Mon Sep 17 00:00:00 2001
From: Stefan Rijnhart
Date: Tue, 28 Jan 2014 22:09:41 +0100
Subject: [PATCH 038/770] [ADD] Database cleanup module
---
database_cleanup/__init__.py | 1 +
database_cleanup/__openerp__.py | 54 +++++++++
database_cleanup/model/__init__.py | 5 +
database_cleanup/model/purge_columns.py | 131 ++++++++++++++++++++++
database_cleanup/model/purge_models.py | 115 +++++++++++++++++++
database_cleanup/model/purge_modules.py | 91 +++++++++++++++
database_cleanup/model/purge_tables.py | 137 +++++++++++++++++++++++
database_cleanup/model/purge_wizard.py | 63 +++++++++++
database_cleanup/static/src/img/icon.png | Bin 0 -> 30647 bytes
database_cleanup/view/menu.xml | 41 +++++++
database_cleanup/view/purge_columns.xml | 37 ++++++
database_cleanup/view/purge_models.xml | 36 ++++++
database_cleanup/view/purge_modules.xml | 36 ++++++
database_cleanup/view/purge_tables.xml | 36 ++++++
14 files changed, 783 insertions(+)
create mode 100644 database_cleanup/__init__.py
create mode 100644 database_cleanup/__openerp__.py
create mode 100644 database_cleanup/model/__init__.py
create mode 100644 database_cleanup/model/purge_columns.py
create mode 100644 database_cleanup/model/purge_models.py
create mode 100644 database_cleanup/model/purge_modules.py
create mode 100644 database_cleanup/model/purge_tables.py
create mode 100644 database_cleanup/model/purge_wizard.py
create mode 100644 database_cleanup/static/src/img/icon.png
create mode 100644 database_cleanup/view/menu.xml
create mode 100644 database_cleanup/view/purge_columns.xml
create mode 100644 database_cleanup/view/purge_models.xml
create mode 100644 database_cleanup/view/purge_modules.xml
create mode 100644 database_cleanup/view/purge_tables.xml
diff --git a/database_cleanup/__init__.py b/database_cleanup/__init__.py
new file mode 100644
index 00000000000..9186ee3ad24
--- /dev/null
+++ b/database_cleanup/__init__.py
@@ -0,0 +1 @@
+from . import model
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
new file mode 100644
index 00000000000..c752ae48e11
--- /dev/null
+++ b/database_cleanup/__openerp__.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Database cleanup',
+ 'version': '0.1',
+ 'author': 'Therp BV',
+ 'depends': ['base'],
+ 'license': 'AGPL-3',
+ 'category': 'Tools',
+ 'data': [
+ 'view/purge_modules.xml',
+ 'view/purge_models.xml',
+ 'view/purge_columns.xml',
+ 'view/purge_tables.xml',
+ 'view/menu.xml',
+ ],
+ 'description': """\
+Clean your OpenERP database from remnants of modules, models, columns and
+tables left by uninstalled modules (prior to 7.0) or a homebrew database upgrade
+to a new major version of OpenERP.
+
+After installation of this module, go to the Settings menu -> Technical ->
+Database cleanup. Go through the modules, models, columns and tables
+entries under this menu (in that order) and find out if there is orphaned data
+in your database. You can either delete entries by line, or sweep all entries
+in one big step (if you are *really* confident).
+
+Caution! This module is potentially harmful and can *easily* destroy the
+integrity of your data. Do not use if you are not entirely comfortable
+with the technical details of the OpenERP data model of *all* the modules
+that have ever been installed on your database, and do not purge any module,
+model, column or table if you do not know exactly what you are doing.
+""",
+
+}
diff --git a/database_cleanup/model/__init__.py b/database_cleanup/model/__init__.py
new file mode 100644
index 00000000000..9b366b62bf3
--- /dev/null
+++ b/database_cleanup/model/__init__.py
@@ -0,0 +1,5 @@
+from . import purge_wizard
+from . import purge_modules
+from . import purge_models
+from . import purge_columns
+from . import purge_tables
diff --git a/database_cleanup/model/purge_columns.py b/database_cleanup/model/purge_columns.py
new file mode 100644
index 00000000000..5266ab160d6
--- /dev/null
+++ b/database_cleanup/model/purge_columns.py
@@ -0,0 +1,131 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class CleanupPurgeLineColumn(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.column'
+
+ _columns = {
+ 'model_id': fields.many2one(
+ 'ir.model', 'Model',
+ required=True, ondelete='CASCADE'),
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.column', 'Purge Wizard', readonly=True),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ """
+ Unlink columns upon manual confirmation.
+ """
+ for line in self.browse(cr, uid, ids, context=context):
+ if line.purged:
+ continue
+
+ model_pool = self.pool[line.model_id.model]
+
+ # Check whether the column actually still exists.
+ # Inheritance such as stock.picking.in from stock.picking
+ # can lead to double attempts at removal
+ cr.execute(
+ 'SELECT count(attname) FROM pg_attribute '
+ 'WHERE attrelid = '
+ '( SELECT oid FROM pg_class WHERE relname = %s ) '
+ 'AND attname = %s',
+ (model_pool._table, line.name));
+ if not cr.fetchone()[0]:
+ continue
+
+ self.logger.info(
+ 'Dropping column %s from table %s',
+ line.name, model_pool._table)
+ cr.execute(
+ """
+ ALTER TABLE "%s" DROP COLUMN "%s"
+ """ % (model_pool._table, line.name))
+ line.write({'purged': True})
+ cr.commit()
+ return True
+
+class CleanupPurgeWizardColumn(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.column'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardColumn, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge columns')
+ return res
+
+ def get_orphaned_columns(self, cr, uid, model_pool, context=None):
+ """
+ From openobject-server/openerp/osv/orm.py
+ Iterate on the database columns to identify columns
+ of fields which have been removed
+ """
+ columns = [
+ c for c in model_pool._columns
+ if not (isinstance(model_pool._columns[c], fields.function)
+ and not model_pool._columns[c].store)]
+ columns += orm.MAGIC_COLUMNS
+ cr.execute("SELECT a.attname"
+ " FROM pg_class c, pg_attribute a"
+ " WHERE c.relname=%s"
+ " AND c.oid=a.attrelid"
+ " AND a.attisdropped=%s"
+ " AND pg_catalog.format_type(a.atttypid, a.atttypmod)"
+ " NOT IN ('cid', 'tid', 'oid', 'xid')"
+ " AND a.attname NOT IN %s",
+ (model_pool._table, False, tuple(columns))),
+ return [column[0] for column in cr.fetchall()]
+
+ def find(self, cr, uid, context=None):
+ """
+ Search for columns that are not in the corresponding model.
+ """
+ res = []
+ model_pool = self.pool['ir.model']
+ model_ids = model_pool.search(cr, uid, [], context=context)
+ line_pool = self.pool['cleanup.purge.line.column']
+ for model in model_pool.browse(cr, uid, model_ids, context=context):
+ model_pool = self.pool.get(model.model)
+ if not model_pool or not model_pool._auto:
+ continue
+ for column in self.get_orphaned_columns(
+ cr, uid, model_pool, context=context):
+ res.append((0, 0, {
+ 'name': column,
+ 'model_id': model.id}))
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No orphaned columns found'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.column',
+ 'wizard_id', 'Columns to purge'),
+ }
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
new file mode 100644
index 00000000000..8355b4921dd
--- /dev/null
+++ b/database_cleanup/model/purge_models.py
@@ -0,0 +1,115 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+
+
+class IrModel(orm.Model):
+ _inherit = 'ir.model'
+
+ def _drop_table(self, cr, uid, ids, context=None):
+ # Allow to skip this step during model unlink
+ # The super method crashes if the model cannot be instantiated
+ if context and context.get('no_drop_table'):
+ return True
+ return super(IrModel, self)._drop_table(cr, uid, ids, context=context)
+
+
+class CleanupPurgeLineModel(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.model'
+
+ _columns = {
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.model', 'Purge Wizard', readonly=True),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ """
+ Unlink models upon manual confirmation.
+ """
+ model_pool = self.pool['ir.model']
+ attachment_pool = self.pool['ir.attachment']
+ constraint_pool = self.pool['ir.model.constraint']
+
+ local_context=(context or {}).copy()
+ local_context.update({
+ MODULE_UNINSTALL_FLAG: True,
+ 'no_drop_table': True,
+ })
+
+ for line in self.browse(cr, uid, ids, context=context):
+ cr.execute(
+ "SELECT id, model from ir_model WHERE model = %s",
+ (line.name,))
+ row = cr.fetchone()
+ if row:
+ self.logger.info('Purging model %s', row[1])
+ attachment_ids = attachment_pool.search(
+ cr, uid, [('res_model', '=', line.name)], context=context)
+ if attachment_ids:
+ attachment_pool.write(
+ cr, uid, attachment_ids, {'res_model': False},
+ context=context)
+ constraint_ids = constraint_pool.search(
+ cr, uid, [('model', '=', line.name)], context=context)
+ if constraint_ids:
+ constraint_pool.unlink(
+ cr, uid, constraint_ids, context=context)
+ model_pool.unlink(cr, uid, [row[0]], context=local_context)
+ line.write({'purged': True})
+ cr.commit()
+ return True
+
+
+class CleanupPurgeWizardModel(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.model'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardModel, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge models')
+ return res
+
+ def find(self, cr, uid, context=None):
+ """
+ Search for models that cannot be instantiated.
+ """
+ res = []
+ cr.execute("SELECT model from ir_model")
+ for (model,) in cr.fetchall():
+ if not self.pool.get(model):
+ res.append((0, 0, {'name': model}))
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No orphaned models found'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.model',
+ 'wizard_id', 'Models to purge'),
+ }
diff --git a/database_cleanup/model/purge_modules.py b/database_cleanup/model/purge_modules.py
new file mode 100644
index 00000000000..b62a037a4fa
--- /dev/null
+++ b/database_cleanup/model/purge_modules.py
@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp import pooler
+from openerp.osv import orm, fields
+from openerp.modules.module import get_module_path
+from openerp.tools.translate import _
+
+
+class CleanupPurgeLineModule(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.module'
+
+ _columns = {
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.module', 'Purge Wizard', readonly=True),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ """
+ Uninstall modules upon manual confirmation, then reload
+ the database.
+ """
+ module_pool = self.pool['ir.module.module']
+ lines = self.browse(cr, uid, ids, context=context)
+ module_names = [line.name for line in lines if not line.purged]
+ module_ids = module_pool.search(
+ cr, uid, [('name', 'in', module_names)], context=context)
+ if not module_ids:
+ return True
+ self.logger.info('Purging modules %s', ', '.join(module_names))
+ module_pool.write(
+ cr, uid, module_ids, {'state': 'to remove'}, context=context)
+ cr.commit()
+ _db, _pool = pooler.restart_pool(cr.dbname, update_module=True)
+ module_pool.unlink(cr, uid, module_ids, context=context)
+ return self.write(cr, uid, ids, {'purged': True}, context=context)
+
+
+class CleanupPurgeWizardModule(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.module'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardModule, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge modules')
+ return res
+
+ def find(self, cr, uid, context=None):
+ module_pool = self.pool['ir.module.module']
+ module_ids = module_pool.search(cr, uid, [], context=context)
+ res = []
+ for module in module_pool.browse(cr, uid, module_ids, context=context):
+ if get_module_path(module.name):
+ continue
+ if module.state == 'uninstalled':
+ module_pool.unlink(cr, uid, module.id, context=context)
+ continue
+ res.append((0, 0, {'name': module.name}))
+
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No modules found to purge'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.module',
+ 'wizard_id', 'Modules to purge'),
+ }
diff --git a/database_cleanup/model/purge_tables.py b/database_cleanup/model/purge_tables.py
new file mode 100644
index 00000000000..8fb6120e23f
--- /dev/null
+++ b/database_cleanup/model/purge_tables.py
@@ -0,0 +1,137 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class CleanupPurgeLineTable(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.table'
+
+ _columns = {
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.table', 'Purge Wizard', readonly=True),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ """
+ Unlink tables upon manual confirmation.
+ """
+ lines = self.browse(cr, uid, ids, context=context)
+ tables = [line.name for line in lines]
+ for line in lines:
+ if line.purged:
+ continue
+
+ # Retrieve constraints on the tables to be dropped
+ # This query is referenced in numerous places
+ # on the Internet but credits probably go to Tom Lane
+ # in this post http://www.postgresql.org/\
+ # message-id/22895.1226088573@sss.pgh.pa.us
+ # Only using the constraint name and the source table,
+ # but I'm leaving the rest in for easier debugging
+ cr.execute(
+ """
+ SELECT conname, confrelid::regclass, af.attname AS fcol,
+ conrelid::regclass, a.attname AS col
+ FROM pg_attribute af, pg_attribute a,
+ (SELECT conname, conrelid, confrelid,conkey[i] AS conkey,
+ confkey[i] AS confkey
+ FROM (select conname, conrelid, confrelid, conkey, confkey,
+ generate_series(1,array_upper(conkey,1)) AS i
+ FROM pg_constraint WHERE contype = 'f') ss) ss2
+ WHERE af.attnum = confkey AND af.attrelid = confrelid AND
+ a.attnum = conkey AND a.attrelid = conrelid
+ AND confrelid::regclass = '%s'::regclass;
+ """ % line.name)
+
+ for constraint in cr.fetchall():
+ if constraint[3] in tables:
+ self.logger.info(
+ 'Dropping constraint %s on table %s (to be dropped)',
+ constraint[0], constraint[3])
+ cr.execute(
+ "ALTER TABLE %s DROP CONSTRAINT %s" % (
+ constraint[3], constraint[0]))
+
+ self.logger.info(
+ 'Dropping table %s', line.name)
+ cr.execute("DROP TABLE \"%s\"" % (line.name,))
+ line.write({'purged': True})
+ cr.commit()
+ return True
+
+class CleanupPurgeWizardTable(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.table'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardTable, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge modules')
+ return res
+
+ def find(self, cr, uid, context=None):
+ """
+ Search for tables that cannot be instantiated.
+ Ignore views for now.
+ """
+ model_ids = self.pool['ir.model'].search(cr, uid, [], context=context)
+ line_pool = self.pool['cleanup.purge.line.table']
+ known_tables = []
+ for model in self.pool['ir.model'].browse(
+ cr, uid, model_ids, context=context):
+
+ model_pool = self.pool.get(model.model)
+ if not model_pool:
+ continue
+ known_tables.append(model_pool._table)
+ known_tables += [
+ column._sql_names(model_pool)[0]
+ for column in model_pool._columns.values()
+ if column._type == 'many2many'
+ # unstored function fields of type m2m don't have _rel
+ and hasattr(column, '_rel')
+ ]
+
+ # Cannot pass table names as a psycopg argument
+ known_tables_repr = ",".join(
+ [("'%s'" % table) for table in known_tables])
+ cr.execute(
+ """
+ SELECT table_name FROM information_schema.tables
+ WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
+ AND table_name NOT IN (%s)""" % known_tables_repr)
+
+ res = [(0, 0, {'name': row[0]}) for row in cr.fetchall()]
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No orphaned tables found'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.table',
+ 'wizard_id', 'Tables to purge'),
+ }
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
new file mode 100644
index 00000000000..542ac1507f3
--- /dev/null
+++ b/database_cleanup/model/purge_wizard.py
@@ -0,0 +1,63 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import logging
+from openerp.osv import orm, fields
+
+
+class CleanupPurgeLine(orm.AbstractModel):
+ """ Abstract base class for the purge wizard lines """
+ _name = 'cleanup.purge.line'
+ _columns = {
+ 'name': fields.char('Name', size=256, readonly=True),
+ 'purged': fields.boolean('Purged', readonly=True),
+ }
+
+ logger = logging.getLogger('openerp.addons.database_cleanup')
+
+ def purge(self, cr, uid, ids, context=None):
+ raise NotImplementedError
+
+class PurgeWizard(orm.AbstractModel):
+ """ Abstract base class for the purge wizards """
+ _name = 'cleanup.purge.wizard'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(PurgeWizard, self).default_get(
+ cr, uid, fields, context=context)
+ if 'purge_line_ids' in fields:
+ res['purge_line_ids'] = self.find(cr, uid, context=None)
+ return res
+
+ def find(self, cr, uid, ids, context=None):
+ raise NotImplementedError
+
+ def purge_all(self, cr, uid, ids, context=None):
+ line_pool = self.pool[self._columns['purge_line_ids']._obj]
+ for wizard in self.browse(cr, uid, ids, context=context):
+ line_pool.purge(
+ cr, uid, [line.id for line in wizard.purge_line_ids],
+ context=context)
+ return True
+
+ _columns = {
+ 'name': fields.char('Name', size=64, readonly=True),
+ }
diff --git a/database_cleanup/static/src/img/icon.png b/database_cleanup/static/src/img/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..6980d05de2f0a9bd93df4207cc0245eb566f818a
GIT binary patch
literal 30647
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 G3WqHI+Gl@?7q9)=zQdDv^3R>v
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
aO#eUJ;J(3(mu?6E0000
+
+
+
+
+
+
+
+
+
+
+ Purge obsolete columns
+
+
+
+
+
+
+
+
+
diff --git a/database_cleanup/view/purge_columns.xml b/database_cleanup/view/purge_columns.xml
new file mode 100644
index 00000000000..40ed4a4f6fd
--- /dev/null
+++ b/database_cleanup/view/purge_columns.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Form view for purge columns wizard
+ cleanup.purge.wizard.column
+
+
+
+
+
+
+ Purge columns
+ ir.actions.act_window
+ cleanup.purge.wizard.column
+ form
+ form
+
+
+
+
diff --git a/database_cleanup/view/purge_models.xml b/database_cleanup/view/purge_models.xml
new file mode 100644
index 00000000000..0ae1d20e851
--- /dev/null
+++ b/database_cleanup/view/purge_models.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Form view for purge models wizard
+ cleanup.purge.wizard.model
+
+
+
+
+
+
+ Purge models
+ ir.actions.act_window
+ cleanup.purge.wizard.model
+ form
+ form
+
+
+
+
diff --git a/database_cleanup/view/purge_modules.xml b/database_cleanup/view/purge_modules.xml
new file mode 100644
index 00000000000..7c0151f54b9
--- /dev/null
+++ b/database_cleanup/view/purge_modules.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Form view for purge modules wizard
+ cleanup.purge.wizard.module
+
+
+
+
+
+
+ Purge modules
+ ir.actions.act_window
+ cleanup.purge.wizard.module
+ form
+ form
+
+
+
+
diff --git a/database_cleanup/view/purge_tables.xml b/database_cleanup/view/purge_tables.xml
new file mode 100644
index 00000000000..dc9ddd8f57e
--- /dev/null
+++ b/database_cleanup/view/purge_tables.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Form view for purge tables wizard
+ cleanup.purge.wizard.table
+
+
+
+
+
+
+ Purge tables
+ ir.actions.act_window
+ cleanup.purge.wizard.table
+ form
+ form
+
+
+
+
From 438d397f803891c683ce30b10fdfdf438cadff43 Mon Sep 17 00:00:00 2001
From: Guewen Baconnier
Date: Mon, 3 Feb 2014 11:30:25 +0100
Subject: [PATCH 039/770] remove relations when purging models avoid
''NoneType' object has no attribute 'exists'' error when purging models fix
my change guewen.baconnier@camptocamp.com-20140203103254-v1mzu2uib047xb9h,
wrong lines replaced...
---
database_cleanup/model/purge_models.py | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
index 8355b4921dd..811da30fe46 100644
--- a/database_cleanup/model/purge_models.py
+++ b/database_cleanup/model/purge_models.py
@@ -51,6 +51,7 @@ def purge(self, cr, uid, ids, context=None):
model_pool = self.pool['ir.model']
attachment_pool = self.pool['ir.attachment']
constraint_pool = self.pool['ir.model.constraint']
+ fields_pool = self.pool['ir.model.fields']
local_context=(context or {}).copy()
local_context.update({
@@ -68,14 +69,20 @@ def purge(self, cr, uid, ids, context=None):
attachment_ids = attachment_pool.search(
cr, uid, [('res_model', '=', line.name)], context=context)
if attachment_ids:
- attachment_pool.write(
- cr, uid, attachment_ids, {'res_model': False},
- context=context)
+ cr.execute(
+ "UPDATE ir_attachment SET res_model = FALSE "
+ "WHERE id in %s",
+ (tuple(attachment_ids), ))
constraint_ids = constraint_pool.search(
cr, uid, [('model', '=', line.name)], context=context)
if constraint_ids:
constraint_pool.unlink(
cr, uid, constraint_ids, context=context)
+ relation_ids = fields_pool.search(
+ cr, uid, [('relation', '=', row[1])], context=context)
+ if relation_ids:
+ fields_pool.unlink(cr, uid, relation_ids,
+ context=local_context)
model_pool.unlink(cr, uid, [row[0]], context=local_context)
line.write({'purged': True})
cr.commit()
From 18a4b77586a160a51804cf7c150f417128220111 Mon Sep 17 00:00:00 2001
From: Stefan Rijnhart
Date: Sat, 8 Feb 2014 18:00:09 +0100
Subject: [PATCH 040/770] [FIX] Don't remove uid field from wkf_instance, which
is written in raw SQL query (but never read afterwards). Workaround for
lp:1277899
[FIX] Preserve dangling workflow table which is in use
[RFR] Group models per table when detecting columns to purge
to prevent problems with models sharing the same table
[ADD] Allow purging of dangling data entries
[FIX] Data purging now working
[IMP] Docstrings
[FIX] Label
[FIX] Catch attempt to unlink field from nonexisting model
[RFR] Flake8
---
database_cleanup/__openerp__.py | 5 +-
database_cleanup/model/__init__.py | 1 +
database_cleanup/model/purge_columns.py | 43 +++++++---
database_cleanup/model/purge_data.py | 106 ++++++++++++++++++++++++
database_cleanup/model/purge_models.py | 19 +++--
database_cleanup/model/purge_modules.py | 2 +-
database_cleanup/model/purge_tables.py | 17 ++--
database_cleanup/model/purge_wizard.py | 1 +
database_cleanup/view/menu.xml | 9 +-
database_cleanup/view/purge_data.xml | 37 +++++++++
10 files changed, 211 insertions(+), 29 deletions(-)
create mode 100644 database_cleanup/model/purge_data.py
create mode 100644 database_cleanup/view/purge_data.xml
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index c752ae48e11..12c7233656e 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -31,12 +31,13 @@
'view/purge_models.xml',
'view/purge_columns.xml',
'view/purge_tables.xml',
+ 'view/purge_data.xml',
'view/menu.xml',
],
'description': """\
Clean your OpenERP database from remnants of modules, models, columns and
-tables left by uninstalled modules (prior to 7.0) or a homebrew database upgrade
-to a new major version of OpenERP.
+tables left by uninstalled modules (prior to 7.0) or a homebrew database
+upgrade to a new major version of OpenERP.
After installation of this module, go to the Settings menu -> Technical ->
Database cleanup. Go through the modules, models, columns and tables
diff --git a/database_cleanup/model/__init__.py b/database_cleanup/model/__init__.py
index 9b366b62bf3..77faf891cd5 100644
--- a/database_cleanup/model/__init__.py
+++ b/database_cleanup/model/__init__.py
@@ -3,3 +3,4 @@
from . import purge_models
from . import purge_columns
from . import purge_tables
+from . import purge_data
diff --git a/database_cleanup/model/purge_columns.py b/database_cleanup/model/purge_columns.py
index 5266ab160d6..60b56ccc8f5 100644
--- a/database_cleanup/model/purge_columns.py
+++ b/database_cleanup/model/purge_columns.py
@@ -53,7 +53,7 @@ def purge(self, cr, uid, ids, context=None):
'WHERE attrelid = '
'( SELECT oid FROM pg_class WHERE relname = %s ) '
'AND attname = %s',
- (model_pool._table, line.name));
+ (model_pool._table, line.name))
if not cr.fetchone()[0]:
continue
@@ -68,10 +68,17 @@ def purge(self, cr, uid, ids, context=None):
cr.commit()
return True
+
class CleanupPurgeWizardColumn(orm.TransientModel):
_inherit = 'cleanup.purge.wizard'
_name = 'cleanup.purge.wizard.column'
+ # List of known columns in use without corresponding fields
+ # Format: {table: [fields]}
+ blacklist = {
+ 'wkf_instance': ['uid'], # lp:1277899
+ }
+
def default_get(self, cr, uid, fields, context=None):
res = super(CleanupPurgeWizardColumn, self).default_get(
cr, uid, fields, context=context)
@@ -79,17 +86,22 @@ def default_get(self, cr, uid, fields, context=None):
res['name'] = _('Purge columns')
return res
- def get_orphaned_columns(self, cr, uid, model_pool, context=None):
+ def get_orphaned_columns(self, cr, uid, model_pools, context=None):
"""
From openobject-server/openerp/osv/orm.py
Iterate on the database columns to identify columns
of fields which have been removed
"""
- columns = [
- c for c in model_pool._columns
- if not (isinstance(model_pool._columns[c], fields.function)
- and not model_pool._columns[c].store)]
+
+ columns = list(set([
+ column for model_pool in model_pools
+ for column in model_pool._columns
+ if not (isinstance(model_pool._columns[column], fields.function)
+ and not model_pool._columns[column].store)
+ ]))
columns += orm.MAGIC_COLUMNS
+ columns += self.blacklist.get(model_pools[0]._table, [])
+
cr.execute("SELECT a.attname"
" FROM pg_class c, pg_attribute a"
" WHERE c.relname=%s"
@@ -98,26 +110,37 @@ def get_orphaned_columns(self, cr, uid, model_pool, context=None):
" AND pg_catalog.format_type(a.atttypid, a.atttypmod)"
" NOT IN ('cid', 'tid', 'oid', 'xid')"
" AND a.attname NOT IN %s",
- (model_pool._table, False, tuple(columns))),
+ (model_pools[0]._table, False, tuple(columns))),
return [column[0] for column in cr.fetchall()]
def find(self, cr, uid, context=None):
"""
Search for columns that are not in the corresponding model.
+
+ Group models by table to prevent false positives for columns
+ that are only in some of the models sharing the same table.
+ Example of this is 'sale_id' not being a field of stock.picking.in
"""
res = []
model_pool = self.pool['ir.model']
model_ids = model_pool.search(cr, uid, [], context=context)
- line_pool = self.pool['cleanup.purge.line.column']
+
+ # mapping of tables to tuples (model id, [pool1, pool2, ...])
+ table2model = {}
+
for model in model_pool.browse(cr, uid, model_ids, context=context):
model_pool = self.pool.get(model.model)
if not model_pool or not model_pool._auto:
continue
+ table2model.setdefault(
+ model_pool._table, (model.id, []))[1].append(model_pool)
+
+ for table, model_spec in table2model.iteritems():
for column in self.get_orphaned_columns(
- cr, uid, model_pool, context=context):
+ cr, uid, model_spec[1], context=context):
res.append((0, 0, {
'name': column,
- 'model_id': model.id}))
+ 'model_id': model_spec[0]}))
if not res:
raise orm.except_orm(
_('Nothing to do'),
diff --git a/database_cleanup/model/purge_data.py b/database_cleanup/model/purge_data.py
new file mode 100644
index 00000000000..bcab2d8327b
--- /dev/null
+++ b/database_cleanup/model/purge_data.py
@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2014 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class CleanupPurgeLineData(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.data'
+
+ _columns = {
+ 'data_id': fields.many2one(
+ 'ir.model.data', 'Data entry',
+ ondelete='SET NULL'),
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.data', 'Purge Wizard', readonly=True),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ """
+ Unlink data entries upon manual confirmation.
+ """
+ data_ids = []
+ for line in self.browse(cr, uid, ids, context=context):
+ if line.purged or not line.data_id:
+ continue
+ data_ids.append(line.data_id.id)
+ self.logger.info('Purging data entry: %s', line.name)
+ self.pool['ir.model.data'].unlink(cr, uid, data_ids, context=context)
+ return self.write(cr, uid, ids, {'purged': True}, context=context)
+
+
+class CleanupPurgeWizardData(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.data'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardData, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge data')
+ return res
+
+ def find(self, cr, uid, context=None):
+ """
+ Collect all rows from ir_model_data that refer
+ to a nonexisting model, or to a nonexisting
+ row in the model's table.
+ """
+ res = []
+ data_pool = self.pool['ir.model.data']
+ data_ids = []
+ unknown_models = []
+ cr.execute("""SELECT DISTINCT(model) FROM ir_model_data""")
+ for (model,) in cr.fetchall():
+ if not model:
+ continue
+ if not self.pool.get(model):
+ unknown_models.append(model)
+ continue
+ cr.execute(
+ """
+ SELECT id FROM ir_model_data
+ WHERE model = %%s
+ AND res_id IS NOT NULL
+ AND res_id NOT IN (
+ SELECT id FROM %s)
+ """ % self.pool[model]._table, (model,))
+ data_ids += [data_row[0] for data_row in cr.fetchall()]
+ data_ids += data_pool.search(
+ cr, uid, [('model', 'in', unknown_models)], context=context)
+ for data in data_pool.browse(cr, uid, data_ids, context=context):
+ res.append((0, 0, {
+ 'data_id': data.id,
+ 'name': "%s.%s, object of type %s" % (
+ data.module, data.name, data.model)}))
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No orphaned data entries found'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.data',
+ 'wizard_id', 'Data to purge'),
+ }
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
index 811da30fe46..a6342afd3fb 100644
--- a/database_cleanup/model/purge_models.py
+++ b/database_cleanup/model/purge_models.py
@@ -53,11 +53,11 @@ def purge(self, cr, uid, ids, context=None):
constraint_pool = self.pool['ir.model.constraint']
fields_pool = self.pool['ir.model.fields']
- local_context=(context or {}).copy()
+ local_context = (context or {}).copy()
local_context.update({
- MODULE_UNINSTALL_FLAG: True,
- 'no_drop_table': True,
- })
+ MODULE_UNINSTALL_FLAG: True,
+ 'no_drop_table': True,
+ })
for line in self.browse(cr, uid, ids, context=context):
cr.execute(
@@ -80,9 +80,14 @@ def purge(self, cr, uid, ids, context=None):
cr, uid, constraint_ids, context=context)
relation_ids = fields_pool.search(
cr, uid, [('relation', '=', row[1])], context=context)
- if relation_ids:
- fields_pool.unlink(cr, uid, relation_ids,
- context=local_context)
+ for relation in relation_ids:
+ try:
+ # Fails if the model on the target side
+ # cannot be instantiated
+ fields_pool.unlink(cr, uid, [relation],
+ context=local_context)
+ except AttributeError:
+ pass
model_pool.unlink(cr, uid, [row[0]], context=local_context)
line.write({'purged': True})
cr.commit()
diff --git a/database_cleanup/model/purge_modules.py b/database_cleanup/model/purge_modules.py
index b62a037a4fa..12734d15765 100644
--- a/database_cleanup/model/purge_modules.py
+++ b/database_cleanup/model/purge_modules.py
@@ -50,7 +50,7 @@ def purge(self, cr, uid, ids, context=None):
module_pool.write(
cr, uid, module_ids, {'state': 'to remove'}, context=context)
cr.commit()
- _db, _pool = pooler.restart_pool(cr.dbname, update_module=True)
+ _db, _pool = pooler.restart_pool(cr.dbname, update_module=True)
module_pool.unlink(cr, uid, module_ids, context=context)
return self.write(cr, uid, ids, {'purged': True}, context=context)
diff --git a/database_cleanup/model/purge_tables.py b/database_cleanup/model/purge_tables.py
index 8fb6120e23f..8d9c8654439 100644
--- a/database_cleanup/model/purge_tables.py
+++ b/database_cleanup/model/purge_tables.py
@@ -56,11 +56,11 @@ def purge(self, cr, uid, ids, context=None):
FROM pg_attribute af, pg_attribute a,
(SELECT conname, conrelid, confrelid,conkey[i] AS conkey,
confkey[i] AS confkey
- FROM (select conname, conrelid, confrelid, conkey, confkey,
- generate_series(1,array_upper(conkey,1)) AS i
+ FROM (select conname, conrelid, confrelid, conkey,
+ confkey, generate_series(1,array_upper(conkey,1)) AS i
FROM pg_constraint WHERE contype = 'f') ss) ss2
WHERE af.attnum = confkey AND af.attrelid = confrelid AND
- a.attnum = conkey AND a.attrelid = conrelid
+ a.attnum = conkey AND a.attrelid = conrelid
AND confrelid::regclass = '%s'::regclass;
""" % line.name)
@@ -80,6 +80,7 @@ def purge(self, cr, uid, ids, context=None):
cr.commit()
return True
+
class CleanupPurgeWizardTable(orm.TransientModel):
_inherit = 'cleanup.purge.wizard'
_name = 'cleanup.purge.wizard.table'
@@ -88,7 +89,7 @@ def default_get(self, cr, uid, fields, context=None):
res = super(CleanupPurgeWizardTable, self).default_get(
cr, uid, fields, context=context)
if 'name' in fields:
- res['name'] = _('Purge modules')
+ res['name'] = _('Purge tables')
return res
def find(self, cr, uid, context=None):
@@ -97,11 +98,11 @@ def find(self, cr, uid, context=None):
Ignore views for now.
"""
model_ids = self.pool['ir.model'].search(cr, uid, [], context=context)
- line_pool = self.pool['cleanup.purge.line.table']
- known_tables = []
+ # Start out with known tables with no model
+ known_tables = ['wkf_witm_trans']
for model in self.pool['ir.model'].browse(
cr, uid, model_ids, context=context):
-
+
model_pool = self.pool.get(model.model)
if not model_pool:
continue
@@ -119,7 +120,7 @@ def find(self, cr, uid, context=None):
[("'%s'" % table) for table in known_tables])
cr.execute(
"""
- SELECT table_name FROM information_schema.tables
+ SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
AND table_name NOT IN (%s)""" % known_tables_repr)
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
index 542ac1507f3..5003c4aefe1 100644
--- a/database_cleanup/model/purge_wizard.py
+++ b/database_cleanup/model/purge_wizard.py
@@ -36,6 +36,7 @@ class CleanupPurgeLine(orm.AbstractModel):
def purge(self, cr, uid, ids, context=None):
raise NotImplementedError
+
class PurgeWizard(orm.AbstractModel):
""" Abstract base class for the purge wizards """
_name = 'cleanup.purge.wizard'
diff --git a/database_cleanup/view/menu.xml b/database_cleanup/view/menu.xml
index ff6a1694ba6..9d770ea03b3 100644
--- a/database_cleanup/view/menu.xml
+++ b/database_cleanup/view/menu.xml
@@ -32,10 +32,17 @@
+
+
diff --git a/database_cleanup/view/purge_data.xml b/database_cleanup/view/purge_data.xml
new file mode 100644
index 00000000000..e749f456936
--- /dev/null
+++ b/database_cleanup/view/purge_data.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ Form view for purge data wizard
+ cleanup.purge.wizard.data
+
+
+
+
+
+
+ Purge data entries that refer to missing resources
+ ir.actions.act_window
+ cleanup.purge.wizard.data
+ form
+ form
+
+
+
+
From eb78a7493e759e819e6ca15f49f50685ace96388 Mon Sep 17 00:00:00 2001
From: Anthony Muschang
Date: Thu, 11 Dec 2014 23:04:24 +0100
Subject: [PATCH 041/770] [CHG] Migration to 8.0
[CHG] database_cleanup: move description to README.rst
---
database_cleanup/README.rst | 15 ++++++++++++
database_cleanup/__openerp__.py | 22 ++----------------
database_cleanup/model/purge_columns.py | 5 ++--
database_cleanup/model/purge_models.py | 8 +++++++
database_cleanup/model/purge_tables.py | 6 ++---
.../static/{src/img => description}/icon.png | Bin
6 files changed, 31 insertions(+), 25 deletions(-)
create mode 100644 database_cleanup/README.rst
rename database_cleanup/static/{src/img => description}/icon.png (100%)
diff --git a/database_cleanup/README.rst b/database_cleanup/README.rst
new file mode 100644
index 00000000000..6456ff195a1
--- /dev/null
+++ b/database_cleanup/README.rst
@@ -0,0 +1,15 @@
+Clean your OpenERP database from remnants of modules, models, columns and
+tables left by uninstalled modules (prior to 7.0) or a homebrew database
+upgrade to a new major version of OpenERP.
+
+After installation of this module, go to the Settings menu -> Technical ->
+Database cleanup. Go through the modules, models, columns and tables
+entries under this menu (in that order) and find out if there is orphaned data
+in your database. You can either delete entries by line, or sweep all entries
+in one big step (if you are *really* confident).
+
+Caution! This module is potentially harmful and can *easily* destroy the
+integrity of your data. Do not use if you are not entirely comfortable
+with the technical details of the OpenERP data model of *all* the modules
+that have ever been installed on your database, and do not purge any module,
+model, column or table if you do not know exactly what you are doing.
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index 12c7233656e..ef0bef0667b 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -21,8 +21,8 @@
{
'name': 'Database cleanup',
- 'version': '0.1',
- 'author': 'Therp BV',
+ 'version': '8.0.0.1.0',
+ 'author': "Therp BV,Odoo Community Association (OCA)",
'depends': ['base'],
'license': 'AGPL-3',
'category': 'Tools',
@@ -34,22 +34,4 @@
'view/purge_data.xml',
'view/menu.xml',
],
- 'description': """\
-Clean your OpenERP database from remnants of modules, models, columns and
-tables left by uninstalled modules (prior to 7.0) or a homebrew database
-upgrade to a new major version of OpenERP.
-
-After installation of this module, go to the Settings menu -> Technical ->
-Database cleanup. Go through the modules, models, columns and tables
-entries under this menu (in that order) and find out if there is orphaned data
-in your database. You can either delete entries by line, or sweep all entries
-in one big step (if you are *really* confident).
-
-Caution! This module is potentially harmful and can *easily* destroy the
-integrity of your data. Do not use if you are not entirely comfortable
-with the technical details of the OpenERP data model of *all* the modules
-that have ever been installed on your database, and do not purge any module,
-model, column or table if you do not know exactly what you are doing.
-""",
-
}
diff --git a/database_cleanup/model/purge_columns.py b/database_cleanup/model/purge_columns.py
index 60b56ccc8f5..abcf1d2d4e4 100644
--- a/database_cleanup/model/purge_columns.py
+++ b/database_cleanup/model/purge_columns.py
@@ -96,8 +96,9 @@ def get_orphaned_columns(self, cr, uid, model_pools, context=None):
columns = list(set([
column for model_pool in model_pools
for column in model_pool._columns
- if not (isinstance(model_pool._columns[column], fields.function)
- and not model_pool._columns[column].store)
+ if not (isinstance(model_pool._columns[column],
+ fields.function) and
+ not model_pool._columns[column].store)
]))
columns += orm.MAGIC_COLUMNS
columns += self.blacklist.get(model_pools[0]._table, [])
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
index a6342afd3fb..1aff2dc3d6e 100644
--- a/database_cleanup/model/purge_models.py
+++ b/database_cleanup/model/purge_models.py
@@ -52,6 +52,7 @@ def purge(self, cr, uid, ids, context=None):
attachment_pool = self.pool['ir.attachment']
constraint_pool = self.pool['ir.model.constraint']
fields_pool = self.pool['ir.model.fields']
+ relation_pool = self.pool['ir.model.relation']
local_context = (context or {}).copy()
local_context.update({
@@ -86,8 +87,15 @@ def purge(self, cr, uid, ids, context=None):
# cannot be instantiated
fields_pool.unlink(cr, uid, [relation],
context=local_context)
+ except KeyError:
+ pass
except AttributeError:
pass
+ relation_ids = relation_pool.search(
+ cr, uid, [('model', '=', line.name)], context=context)
+ for relation in relation_ids:
+ relation_pool.unlink(cr, uid, [relation],
+ context=local_context)
model_pool.unlink(cr, uid, [row[0]], context=local_context)
line.write({'purged': True})
cr.commit()
diff --git a/database_cleanup/model/purge_tables.py b/database_cleanup/model/purge_tables.py
index 8d9c8654439..50bf3d8e624 100644
--- a/database_cleanup/model/purge_tables.py
+++ b/database_cleanup/model/purge_tables.py
@@ -110,9 +110,9 @@ def find(self, cr, uid, context=None):
known_tables += [
column._sql_names(model_pool)[0]
for column in model_pool._columns.values()
- if column._type == 'many2many'
- # unstored function fields of type m2m don't have _rel
- and hasattr(column, '_rel')
+ if (column._type == 'many2many' and
+ hasattr(column, '_rel')) # unstored function fields of
+ # type m2m don't have _rel
]
# Cannot pass table names as a psycopg argument
diff --git a/database_cleanup/static/src/img/icon.png b/database_cleanup/static/description/icon.png
similarity index 100%
rename from database_cleanup/static/src/img/icon.png
rename to database_cleanup/static/description/icon.png
From 0e77fda0e709a3cc8b2cc9b6f560187cdb2162f2 Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Tue, 28 Apr 2015 15:54:12 +0200
Subject: [PATCH 042/770] [IMP] hide unnecessary buttons in wizard
[IMP] order wizard lines by name
[IMP] deal with modules whose models can't be loaded
[IMP] double quotes for docstring
[FIX] use exists query instead of huge in list
[IMP] hide unnecessary buttons in wizard II
[IMP] readability
[FIX] cope with purging nonexisting models
---
database_cleanup/model/purge_data.py | 4 +--
database_cleanup/model/purge_models.py | 20 +++++++++++++
database_cleanup/model/purge_modules.py | 38 +++++++++++++++++++++++++
database_cleanup/model/purge_wizard.py | 1 +
database_cleanup/view/purge_columns.xml | 22 ++++++++++----
database_cleanup/view/purge_data.xml | 22 ++++++++++----
database_cleanup/view/purge_models.xml | 22 ++++++++++----
database_cleanup/view/purge_modules.xml | 22 ++++++++++----
database_cleanup/view/purge_tables.xml | 22 ++++++++++----
9 files changed, 146 insertions(+), 27 deletions(-)
diff --git a/database_cleanup/model/purge_data.py b/database_cleanup/model/purge_data.py
index bcab2d8327b..f3e1b63cd40 100644
--- a/database_cleanup/model/purge_data.py
+++ b/database_cleanup/model/purge_data.py
@@ -82,8 +82,8 @@ def find(self, cr, uid, context=None):
SELECT id FROM ir_model_data
WHERE model = %%s
AND res_id IS NOT NULL
- AND res_id NOT IN (
- SELECT id FROM %s)
+ AND NOT EXISTS (
+ SELECT id FROM %s WHERE id=ir_model_data.res_id)
""" % self.pool[model]._table, (model,))
data_ids += [data_row[0] for data_row in cr.fetchall()]
data_ids += data_pool.search(
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
index 1aff2dc3d6e..415f1048991 100644
--- a/database_cleanup/model/purge_models.py
+++ b/database_cleanup/model/purge_models.py
@@ -34,6 +34,26 @@ def _drop_table(self, cr, uid, ids, context=None):
return True
return super(IrModel, self)._drop_table(cr, uid, ids, context=context)
+ def _inherited_models(self, cr, uid, ids, field_name, arg, context=None):
+ """this function crashes for undefined models"""
+ result = dict((i, []) for i in ids)
+ existing_model_ids = [
+ this.id for this in self.browse(cr, uid, ids, context=context)
+ if self.pool.get(this.model)
+ ]
+ super_result = super(IrModel, self)._inherited_models(
+ cr, uid, existing_model_ids, field_name, arg, context=context)
+ result.update(super_result)
+ return result
+
+ def _register_hook(self, cr):
+ # patch the function field instead of overwriting it
+ if self._columns['inherited_model_ids']._fnct !=\
+ self._inherited_models.__func__:
+ self._columns['inherited_model_ids']._fnct =\
+ self._inherited_models.__func__
+ return super(IrModel, self)._register_hook(cr)
+
class CleanupPurgeLineModel(orm.TransientModel):
_inherit = 'cleanup.purge.line'
diff --git a/database_cleanup/model/purge_modules.py b/database_cleanup/model/purge_modules.py
index 12734d15765..d371b5f0593 100644
--- a/database_cleanup/model/purge_modules.py
+++ b/database_cleanup/model/purge_modules.py
@@ -23,6 +23,44 @@
from openerp.osv import orm, fields
from openerp.modules.module import get_module_path
from openerp.tools.translate import _
+from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+
+
+class IrModelConstraint(orm.Model):
+ _inherit = 'ir.model.constraint'
+
+ def _module_data_uninstall(self, cr, uid, ids, context=None):
+ """this function crashes for constraints on undefined models"""
+ for this in self.browse(cr, uid, ids, context=context):
+ if not self.pool.get(this.model.model):
+ ids.remove(this.id)
+ this.unlink()
+ return super(IrModelConstraint, self)._module_data_uninstall(
+ cr, uid, ids, context=context)
+
+
+class IrModelData(orm.Model):
+ _inherit = 'ir.model.data'
+
+ def _module_data_uninstall(self, cr, uid, modules_to_remove, context=None):
+ """this function crashes for xmlids on undefined models or fields
+ referring to undefined models"""
+ if context is None:
+ context = {}
+ ids = self.search(cr, uid, [('module', 'in', modules_to_remove)])
+ for this in self.browse(cr, uid, ids, context=context):
+ if this.model == 'ir.model.fields':
+ ctx = context.copy()
+ ctx[MODULE_UNINSTALL_FLAG] = True
+ field = self.pool[this.model].browse(
+ cr, uid, this.res_id, context=ctx)
+ if not self.pool.get(field.model):
+ this.unlink()
+ continue
+ if not self.pool.get(this.model):
+ this.unlink()
+ return super(IrModelData, self)._module_data_uninstall(
+ cr, uid, modules_to_remove, context=context)
class CleanupPurgeLineModule(orm.TransientModel):
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
index 5003c4aefe1..8629eb0b3b4 100644
--- a/database_cleanup/model/purge_wizard.py
+++ b/database_cleanup/model/purge_wizard.py
@@ -26,6 +26,7 @@
class CleanupPurgeLine(orm.AbstractModel):
""" Abstract base class for the purge wizard lines """
_name = 'cleanup.purge.line'
+ _order = 'name'
_columns = {
'name': fields.char('Name', size=256, readonly=True),
'purged': fields.boolean('Purged', readonly=True),
diff --git a/database_cleanup/view/purge_columns.xml b/database_cleanup/view/purge_columns.xml
index 40ed4a4f6fd..96aa1212ea4 100644
--- a/database_cleanup/view/purge_columns.xml
+++ b/database_cleanup/view/purge_columns.xml
@@ -25,12 +25,24 @@
-
+
Purge columns
- ir.actions.act_window
- cleanup.purge.wizard.column
- form
- form
+ ir.actions.server
+ code
+
+
+wizard_id = self.create(cr, uid, {}, context=context)
+action = {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': 'cleanup.purge.wizard.column',
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+}
+
diff --git a/database_cleanup/view/purge_data.xml b/database_cleanup/view/purge_data.xml
index e749f456936..890d0d45042 100644
--- a/database_cleanup/view/purge_data.xml
+++ b/database_cleanup/view/purge_data.xml
@@ -25,12 +25,24 @@
-
+
Purge data entries that refer to missing resources
- ir.actions.act_window
- cleanup.purge.wizard.data
- form
- form
+ ir.actions.server
+ code
+
+
+wizard_id = self.create(cr, uid, {}, context=context)
+action = {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': 'cleanup.purge.wizard.data',
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+}
+
diff --git a/database_cleanup/view/purge_models.xml b/database_cleanup/view/purge_models.xml
index 0ae1d20e851..2dc25c74c16 100644
--- a/database_cleanup/view/purge_models.xml
+++ b/database_cleanup/view/purge_models.xml
@@ -24,12 +24,24 @@
-
+
Purge models
- ir.actions.act_window
- cleanup.purge.wizard.model
- form
- form
+ ir.actions.server
+ code
+
+
+wizard_id = self.create(cr, uid, {}, context=context)
+action = {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': 'cleanup.purge.wizard.model',
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+}
+
diff --git a/database_cleanup/view/purge_modules.xml b/database_cleanup/view/purge_modules.xml
index 7c0151f54b9..65dd5473ab8 100644
--- a/database_cleanup/view/purge_modules.xml
+++ b/database_cleanup/view/purge_modules.xml
@@ -24,12 +24,24 @@
-
+
Purge modules
- ir.actions.act_window
- cleanup.purge.wizard.module
- form
- form
+ ir.actions.server
+ code
+
+
+wizard_id = self.create(cr, uid, {}, context=context)
+action = {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': 'cleanup.purge.wizard.module',
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+}
+
diff --git a/database_cleanup/view/purge_tables.xml b/database_cleanup/view/purge_tables.xml
index dc9ddd8f57e..b963a2f02d9 100644
--- a/database_cleanup/view/purge_tables.xml
+++ b/database_cleanup/view/purge_tables.xml
@@ -24,12 +24,24 @@
-
+
Purge tables
- ir.actions.act_window
- cleanup.purge.wizard.table
- form
- form
+ ir.actions.server
+ code
+
+
+wizard_id = self.create(cr, uid, {}, context=context)
+action = {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': 'cleanup.purge.wizard.table',
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+}
+
From 8f0bd9ac8402c519e382a2d288098eee808d45a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Matja=C5=BE=20Mozeti=C4=8D?=
Date: Tue, 11 Aug 2015 11:22:37 +0200
Subject: [PATCH 043/770] Missing templates and translations added
---
database_cleanup/i18n/database_cleanup.pot | 279 +++++++++++++++++++++
database_cleanup/i18n/sl.po | 271 ++++++++++++++++++++
2 files changed, 550 insertions(+)
create mode 100644 database_cleanup/i18n/database_cleanup.pot
create mode 100644 database_cleanup/i18n/sl.po
diff --git a/database_cleanup/i18n/database_cleanup.pot b/database_cleanup/i18n/database_cleanup.pot
new file mode 100644
index 00000000000..1dbecdeebab
--- /dev/null
+++ b/database_cleanup/i18n/database_cleanup.pot
@@ -0,0 +1,279 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * database_cleanup
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-08-11 06:45+0000\n"
+"PO-Revision-Date: 2015-08-11 06:45+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.column,purge_line_ids:0
+msgid "Columns to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,create_uid:0
+#: field:cleanup.purge.line.data,create_uid:0
+#: field:cleanup.purge.line.model,create_uid:0
+#: field:cleanup.purge.line.module,create_uid:0
+#: field:cleanup.purge.line.table,create_uid:0
+#: field:cleanup.purge.wizard.column,create_uid:0
+#: field:cleanup.purge.wizard.data,create_uid:0
+#: field:cleanup.purge.wizard.model,create_uid:0
+#: field:cleanup.purge.wizard.module,create_uid:0
+#: field:cleanup.purge.wizard.table,create_uid:0
+msgid "Created by"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,create_date:0
+#: field:cleanup.purge.line.data,create_date:0
+#: field:cleanup.purge.line.model,create_date:0
+#: field:cleanup.purge.line.module,create_date:0
+#: field:cleanup.purge.line.table,create_date:0
+#: field:cleanup.purge.wizard.column,create_date:0
+#: field:cleanup.purge.wizard.data,create_date:0
+#: field:cleanup.purge.wizard.model,create_date:0
+#: field:cleanup.purge.wizard.module,create_date:0
+#: field:cleanup.purge.wizard.table,create_date:0
+msgid "Created on"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.data,data_id:0
+msgid "Data entry"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.data,purge_line_ids:0
+msgid "Data to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_database_cleanup
+msgid "Database cleanup"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,id:0
+#: field:cleanup.purge.line.column,id:0
+#: field:cleanup.purge.line.data,id:0
+#: field:cleanup.purge.line.model,id:0
+#: field:cleanup.purge.line.module,id:0
+#: field:cleanup.purge.line.table,id:0
+#: field:cleanup.purge.wizard,id:0
+#: field:cleanup.purge.wizard.column,id:0
+#: field:cleanup.purge.wizard.data,id:0
+#: field:cleanup.purge.wizard.model,id:0
+#: field:cleanup.purge.wizard.module,id:0
+#: field:cleanup.purge.wizard.table,id:0
+msgid "ID"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,write_uid:0
+#: field:cleanup.purge.line.data,write_uid:0
+#: field:cleanup.purge.line.model,write_uid:0
+#: field:cleanup.purge.line.module,write_uid:0
+#: field:cleanup.purge.line.table,write_uid:0
+#: field:cleanup.purge.wizard.column,write_uid:0
+#: field:cleanup.purge.wizard.data,write_uid:0
+#: field:cleanup.purge.wizard.model,write_uid:0
+#: field:cleanup.purge.wizard.module,write_uid:0
+#: field:cleanup.purge.wizard.table,write_uid:0
+msgid "Last Updated by"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,write_date:0
+#: field:cleanup.purge.line.data,write_date:0
+#: field:cleanup.purge.line.model,write_date:0
+#: field:cleanup.purge.line.module,write_date:0
+#: field:cleanup.purge.line.table,write_date:0
+#: field:cleanup.purge.wizard.column,write_date:0
+#: field:cleanup.purge.wizard.data,write_date:0
+#: field:cleanup.purge.wizard.model,write_date:0
+#: field:cleanup.purge.wizard.module,write_date:0
+#: field:cleanup.purge.wizard.table,write_date:0
+msgid "Last Updated on"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model
+msgid "Models"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.model,purge_line_ids:0
+msgid "Models to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.module,purge_line_ids:0
+msgid "Modules to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,name:0
+#: field:cleanup.purge.line.column,name:0
+#: field:cleanup.purge.line.data,name:0
+#: field:cleanup.purge.line.model,name:0
+#: field:cleanup.purge.line.module,name:0
+#: field:cleanup.purge.line.table,name:0
+#: field:cleanup.purge.wizard,name:0
+#: field:cleanup.purge.wizard.column,name:0
+#: field:cleanup.purge.wizard.data,name:0
+#: field:cleanup.purge.wizard.model,name:0
+#: field:cleanup.purge.wizard.module,name:0
+#: field:cleanup.purge.wizard.table,name:0
+msgid "Name"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,wizard_id:0
+#: field:cleanup.purge.line.data,wizard_id:0
+#: field:cleanup.purge.line.model,wizard_id:0
+#: field:cleanup.purge.line.module,wizard_id:0
+#: field:cleanup.purge.line.table,wizard_id:0
+msgid "Purge Wizard"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+msgid "Purge all columns"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge all data"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+msgid "Purge all models"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+msgid "Purge all modules"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+msgid "Purge all tables"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_columns
+msgid "Purge columns"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge data"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_data
+msgid "Purge data entries that refer to missing resources"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_models
+msgid "Purge models"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_modules
+msgid "Purge modules"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_columns
+msgid "Purge obsolete columns"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_data
+msgid "Purge obsolete data entries"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_models
+msgid "Purge obsolete models"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_modules
+msgid "Purge obsolete modules"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
+msgid "Purge obsolete tables"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_tables
+msgid "Purge tables"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+msgid "Purge this column"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge this data"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+msgid "Purge this model"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+msgid "Purge this module"
+msgstr ""
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+msgid "Purge this table"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,purged:0
+#: field:cleanup.purge.line.column,purged:0
+#: field:cleanup.purge.line.data,purged:0
+#: field:cleanup.purge.line.model,purged:0
+#: field:cleanup.purge.line.module,purged:0
+#: field:cleanup.purge.line.table,purged:0
+msgid "Purged"
+msgstr ""
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.table,purge_line_ids:0
+msgid "Tables to purge"
+msgstr ""
+
diff --git a/database_cleanup/i18n/sl.po b/database_cleanup/i18n/sl.po
new file mode 100644
index 00000000000..78952666f35
--- /dev/null
+++ b/database_cleanup/i18n/sl.po
@@ -0,0 +1,271 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * database_cleanup
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-08-11 06:45+0000\n"
+"PO-Revision-Date: 2015-08-11 08:50+0200\n"
+"Last-Translator: Matjaz Mozetic \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"Language: sl\n"
+"X-Generator: Poedit 1.8.2\n"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.column,purge_line_ids:0
+msgid "Columns to purge"
+msgstr "Stolpci za očiščenje"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,create_uid:0
+#: field:cleanup.purge.line.data,create_uid:0
+#: field:cleanup.purge.line.model,create_uid:0
+#: field:cleanup.purge.line.module,create_uid:0
+#: field:cleanup.purge.line.table,create_uid:0
+#: field:cleanup.purge.wizard.column,create_uid:0
+#: field:cleanup.purge.wizard.data,create_uid:0
+#: field:cleanup.purge.wizard.model,create_uid:0
+#: field:cleanup.purge.wizard.module,create_uid:0
+#: field:cleanup.purge.wizard.table,create_uid:0
+msgid "Created by"
+msgstr "Ustvaril"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,create_date:0
+#: field:cleanup.purge.line.data,create_date:0
+#: field:cleanup.purge.line.model,create_date:0
+#: field:cleanup.purge.line.module,create_date:0
+#: field:cleanup.purge.line.table,create_date:0
+#: field:cleanup.purge.wizard.column,create_date:0
+#: field:cleanup.purge.wizard.data,create_date:0
+#: field:cleanup.purge.wizard.model,create_date:0
+#: field:cleanup.purge.wizard.module,create_date:0
+#: field:cleanup.purge.wizard.table,create_date:0
+msgid "Created on"
+msgstr "Ustvarjeno"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.data,data_id:0
+msgid "Data entry"
+msgstr "Podatkovni vnos"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.data,purge_line_ids:0
+msgid "Data to purge"
+msgstr "Podatki za očiščenje"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_database_cleanup
+msgid "Database cleanup"
+msgstr "Čiščenje podatkovne baze"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,id:0 field:cleanup.purge.line.column,id:0
+#: field:cleanup.purge.line.data,id:0 field:cleanup.purge.line.model,id:0
+#: field:cleanup.purge.line.module,id:0 field:cleanup.purge.line.table,id:0
+#: field:cleanup.purge.wizard,id:0 field:cleanup.purge.wizard.column,id:0
+#: field:cleanup.purge.wizard.data,id:0 field:cleanup.purge.wizard.model,id:0
+#: field:cleanup.purge.wizard.module,id:0
+#: field:cleanup.purge.wizard.table,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,write_uid:0
+#: field:cleanup.purge.line.data,write_uid:0
+#: field:cleanup.purge.line.model,write_uid:0
+#: field:cleanup.purge.line.module,write_uid:0
+#: field:cleanup.purge.line.table,write_uid:0
+#: field:cleanup.purge.wizard.column,write_uid:0
+#: field:cleanup.purge.wizard.data,write_uid:0
+#: field:cleanup.purge.wizard.model,write_uid:0
+#: field:cleanup.purge.wizard.module,write_uid:0
+#: field:cleanup.purge.wizard.table,write_uid:0
+msgid "Last Updated by"
+msgstr "Zadnjič posodobil"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,write_date:0
+#: field:cleanup.purge.line.data,write_date:0
+#: field:cleanup.purge.line.model,write_date:0
+#: field:cleanup.purge.line.module,write_date:0
+#: field:cleanup.purge.line.table,write_date:0
+#: field:cleanup.purge.wizard.column,write_date:0
+#: field:cleanup.purge.wizard.data,write_date:0
+#: field:cleanup.purge.wizard.model,write_date:0
+#: field:cleanup.purge.wizard.module,write_date:0
+#: field:cleanup.purge.wizard.table,write_date:0
+msgid "Last Updated on"
+msgstr "Zadnjič posodobljeno"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,model_id:0
+msgid "Model"
+msgstr "Model"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model
+msgid "Models"
+msgstr "Modeli"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.model,purge_line_ids:0
+msgid "Models to purge"
+msgstr "Modeli za očiščenje"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.module,purge_line_ids:0
+msgid "Modules to purge"
+msgstr "Moduli za očiščenje"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,name:0 field:cleanup.purge.line.column,name:0
+#: field:cleanup.purge.line.data,name:0 field:cleanup.purge.line.model,name:0
+#: field:cleanup.purge.line.module,name:0
+#: field:cleanup.purge.line.table,name:0 field:cleanup.purge.wizard,name:0
+#: field:cleanup.purge.wizard.column,name:0
+#: field:cleanup.purge.wizard.data,name:0
+#: field:cleanup.purge.wizard.model,name:0
+#: field:cleanup.purge.wizard.module,name:0
+#: field:cleanup.purge.wizard.table,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line.column,wizard_id:0
+#: field:cleanup.purge.line.data,wizard_id:0
+#: field:cleanup.purge.line.model,wizard_id:0
+#: field:cleanup.purge.line.module,wizard_id:0
+#: field:cleanup.purge.line.table,wizard_id:0
+msgid "Purge Wizard"
+msgstr "Čarovnik za očiščenje"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+msgid "Purge all columns"
+msgstr "Očiščenje vseh stolpcev"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge all data"
+msgstr "Očiščenje vseh podatkov"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+msgid "Purge all models"
+msgstr "Očiščenje vseh modelov"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+msgid "Purge all modules"
+msgstr "Očiščenje vseh modulov"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+msgid "Purge all tables"
+msgstr "Očiščenje vseh tabel"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_columns
+msgid "Purge columns"
+msgstr "Očiščenje stolpcev"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge data"
+msgstr "Očiščenje podatkov"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_data
+msgid "Purge data entries that refer to missing resources"
+msgstr "Očiščenje podatkovnih vnosov, ki se sklicujejo na manjkajoče vire"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_models
+msgid "Purge models"
+msgstr "Očiščenje modelov"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_modules
+msgid "Purge modules"
+msgstr "Očiščenje modulov"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_columns
+msgid "Purge obsolete columns"
+msgstr "Očiščenje opuščenih stolpcev"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_data
+msgid "Purge obsolete data entries"
+msgstr "Očiščenje opuščenih podatkovnih vnosov"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_models
+msgid "Purge obsolete models"
+msgstr "Očiščenje opuščenih modelov"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_modules
+msgid "Purge obsolete modules"
+msgstr "Očiščenje opuščenih modulov"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
+msgid "Purge obsolete tables"
+msgstr "Očiščenje opuščenih tabel"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_tables
+msgid "Purge tables"
+msgstr "Očiščenje tabel"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
+msgid "Purge this column"
+msgstr "Očisti ta stolpec"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+msgid "Purge this data"
+msgstr "Očisti ta podatek"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+msgid "Purge this model"
+msgstr "Očisti ta model"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
+msgid "Purge this module"
+msgstr "Očisti ta modul"
+
+#. module: database_cleanup
+#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+msgid "Purge this table"
+msgstr "Očisti to tabelo"
+
+#. module: database_cleanup
+#: field:cleanup.purge.line,purged:0 field:cleanup.purge.line.column,purged:0
+#: field:cleanup.purge.line.data,purged:0
+#: field:cleanup.purge.line.model,purged:0
+#: field:cleanup.purge.line.module,purged:0
+#: field:cleanup.purge.line.table,purged:0
+msgid "Purged"
+msgstr "Očiščeno"
+
+#. module: database_cleanup
+#: field:cleanup.purge.wizard.table,purge_line_ids:0
+msgid "Tables to purge"
+msgstr "Tabele za očiščenje"
From b8100d011fbee9666c4c7d9623e7583b9474f17a Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Fri, 28 Aug 2015 17:51:24 +0200
Subject: [PATCH 044/770] [ADD] allow to clean up menus
---
database_cleanup/__openerp__.py | 1 +
database_cleanup/model/__init__.py | 1 +
database_cleanup/model/purge_menus.py | 81 ++++++++++++++++++++++++++
database_cleanup/model/purge_wizard.py | 13 +++++
database_cleanup/view/menu.xml | 7 +++
database_cleanup/view/purge_menus.xml | 33 +++++++++++
6 files changed, 136 insertions(+)
create mode 100644 database_cleanup/model/purge_menus.py
create mode 100644 database_cleanup/view/purge_menus.xml
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index ef0bef0667b..8fbad587ca1 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -27,6 +27,7 @@
'license': 'AGPL-3',
'category': 'Tools',
'data': [
+ 'view/purge_menus.xml',
'view/purge_modules.xml',
'view/purge_models.xml',
'view/purge_columns.xml',
diff --git a/database_cleanup/model/__init__.py b/database_cleanup/model/__init__.py
index 77faf891cd5..004a4e3bbb6 100644
--- a/database_cleanup/model/__init__.py
+++ b/database_cleanup/model/__init__.py
@@ -4,3 +4,4 @@
from . import purge_columns
from . import purge_tables
from . import purge_data
+from . import purge_menus
diff --git a/database_cleanup/model/purge_menus.py b/database_cleanup/model/purge_menus.py
new file mode 100644
index 00000000000..a9a336fe9a8
--- /dev/null
+++ b/database_cleanup/model/purge_menus.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# This module copyright (C) 2015 Therp BV ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class CleanupPurgeLineMenu(orm.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.menu'
+
+ _columns = {
+ 'wizard_id': fields.many2one(
+ 'cleanup.purge.wizard.menu', 'Purge Wizard', readonly=True),
+ 'menu_id': fields.many2one('ir.ui.menu', 'Menu entry'),
+ }
+
+ def purge(self, cr, uid, ids, context=None):
+ self.pool['ir.ui.menu'].unlink(
+ cr, uid,
+ [this.menu_id.id for this in self.browse(cr, uid, ids,
+ context=context)],
+ context=context)
+ return self.write(cr, uid, ids, {'purged': True}, context=context)
+
+
+class CleanupPurgeWizardMenu(orm.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.menu'
+
+ def default_get(self, cr, uid, fields, context=None):
+ res = super(CleanupPurgeWizardMenu, self).default_get(
+ cr, uid, fields, context=context)
+ if 'name' in fields:
+ res['name'] = _('Purge menus')
+ return res
+
+ def find(self, cr, uid, context=None):
+ """
+ Search for models that cannot be instantiated.
+ """
+ res = []
+ for menu in self.pool['ir.ui.menu'].browse(
+ cr, uid, self.pool['ir.ui.menu'].search(
+ cr, uid, [], context=dict(
+ context or {}, active_test=False))):
+ if not menu.action or menu.action.type != 'ir.actions.act_window':
+ continue
+ if not self.pool.get(menu.action.res_model):
+ res.append((0, 0, {
+ 'name': menu.complete_name,
+ 'menu_id': menu.id,
+ }))
+ if not res:
+ raise orm.except_orm(
+ _('Nothing to do'),
+ _('No dangling menu entries found'))
+ return res
+
+ _columns = {
+ 'purge_line_ids': fields.one2many(
+ 'cleanup.purge.line.menu',
+ 'wizard_id', 'Menus to purge'),
+ }
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
index 8629eb0b3b4..ae9430b9044 100644
--- a/database_cleanup/model/purge_wizard.py
+++ b/database_cleanup/model/purge_wizard.py
@@ -60,6 +60,19 @@ def purge_all(self, cr, uid, ids, context=None):
context=context)
return True
+ def get_wizard_action(self, cr, uid, context=None):
+ wizard_id = self.create(cr, uid, {}, context=context)
+ return {
+ 'type': 'ir.actions.act_window',
+ 'views': [(False, 'form')],
+ 'res_model': self._name,
+ 'res_id': wizard_id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+ }
+
_columns = {
'name': fields.char('Name', size=64, readonly=True),
}
diff --git a/database_cleanup/view/menu.xml b/database_cleanup/view/menu.xml
index 9d770ea03b3..82577bdc964 100644
--- a/database_cleanup/view/menu.xml
+++ b/database_cleanup/view/menu.xml
@@ -44,5 +44,12 @@
+
+
diff --git a/database_cleanup/view/purge_menus.xml b/database_cleanup/view/purge_menus.xml
new file mode 100644
index 00000000000..fc9a5a2cc4b
--- /dev/null
+++ b/database_cleanup/view/purge_menus.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
From 04e0db9d8a80547c7553a7c34505b8683a802b72 Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Fri, 17 Jul 2015 12:15:42 +0200
Subject: [PATCH 045/770] [IMP] allow to select lines to purge in a tree view
[IMP] adaptto upstream changes
---
database_cleanup/model/purge_wizard.py | 9 ++++
database_cleanup/view/purge_columns.xml | 62 +++++++++++++++++--------
database_cleanup/view/purge_data.xml | 62 +++++++++++++++++--------
database_cleanup/view/purge_menus.xml | 48 ++++++++++++++++---
database_cleanup/view/purge_models.xml | 60 ++++++++++++++++--------
database_cleanup/view/purge_modules.xml | 60 ++++++++++++++++--------
database_cleanup/view/purge_tables.xml | 41 +++++++++++-----
7 files changed, 246 insertions(+), 96 deletions(-)
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
index ae9430b9044..f02f5dbc233 100644
--- a/database_cleanup/model/purge_wizard.py
+++ b/database_cleanup/model/purge_wizard.py
@@ -73,6 +73,15 @@ def get_wizard_action(self, cr, uid, context=None):
},
}
+ def select_lines(self, cr, uid, ids, context=None):
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Select lines to purge',
+ 'views': [(False, 'tree'), (False, 'form')],
+ 'res_model': self._columns['purge_line_ids']._obj,
+ 'domain': [('wizard_id', 'in', ids)],
+ }
+
_columns = {
'name': fields.char('Name', size=64, readonly=True),
}
diff --git a/database_cleanup/view/purge_columns.xml b/database_cleanup/view/purge_columns.xml
index 96aa1212ea4..0f335ea2863 100644
--- a/database_cleanup/view/purge_columns.xml
+++ b/database_cleanup/view/purge_columns.xml
@@ -11,15 +11,20 @@
+
-
-
-
-
-
-
+
@@ -30,20 +35,37 @@
ir.actions.server
code
-
-wizard_id = self.create(cr, uid, {}, context=context)
-action = {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': 'cleanup.purge.wizard.column',
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
-}
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.column
+
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.column
+
+
diff --git a/database_cleanup/view/purge_data.xml b/database_cleanup/view/purge_data.xml
index 890d0d45042..7fa361b909d 100644
--- a/database_cleanup/view/purge_data.xml
+++ b/database_cleanup/view/purge_data.xml
@@ -11,15 +11,20 @@
+
-
-
-
-
-
-
+
@@ -30,20 +35,37 @@
ir.actions.server
code
-
-wizard_id = self.create(cr, uid, {}, context=context)
-action = {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': 'cleanup.purge.wizard.data',
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
-}
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.data
+
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.data
+
+
diff --git a/database_cleanup/view/purge_menus.xml b/database_cleanup/view/purge_menus.xml
index fc9a5a2cc4b..23913cfe1b6 100644
--- a/database_cleanup/view/purge_menus.xml
+++ b/database_cleanup/view/purge_menus.xml
@@ -10,18 +10,24 @@
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/database_cleanup/view/purge_models.xml b/database_cleanup/view/purge_models.xml
index 2dc25c74c16..754666e6dba 100644
--- a/database_cleanup/view/purge_models.xml
+++ b/database_cleanup/view/purge_models.xml
@@ -11,14 +11,19 @@
+
-
-
-
-
-
+
@@ -29,20 +34,37 @@
ir.actions.server
code
-
-wizard_id = self.create(cr, uid, {}, context=context)
-action = {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': 'cleanup.purge.wizard.model',
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
-}
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.model
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.model
+
+
+
diff --git a/database_cleanup/view/purge_modules.xml b/database_cleanup/view/purge_modules.xml
index 65dd5473ab8..73429b517ed 100644
--- a/database_cleanup/view/purge_modules.xml
+++ b/database_cleanup/view/purge_modules.xml
@@ -11,14 +11,19 @@
+
-
-
-
-
-
+
@@ -29,20 +34,37 @@
ir.actions.server
code
-
-wizard_id = self.create(cr, uid, {}, context=context)
-action = {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': 'cleanup.purge.wizard.module',
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
-}
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.module
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.module
+
+
+
diff --git a/database_cleanup/view/purge_tables.xml b/database_cleanup/view/purge_tables.xml
index b963a2f02d9..66bd28cc1f6 100644
--- a/database_cleanup/view/purge_tables.xml
+++ b/database_cleanup/view/purge_tables.xml
@@ -11,6 +11,7 @@
+
@@ -29,20 +30,36 @@
ir.actions.server
code
-
-wizard_id = self.create(cr, uid, {}, context=context)
-action = {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': 'cleanup.purge.wizard.table',
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
-}
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.table
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.table
+
+
From b04ca1792e4b0961323eff900b367ead45cfc07d Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Wed, 29 Jun 2016 16:37:51 +0200
Subject: [PATCH 046/770] [ADD] migrate database_cleanup
[ADD] test purging modules
[ADD] test purging tables
---
database_cleanup/README.rst | 63 ++++++-
database_cleanup/__init__.py | 5 +-
database_cleanup/__openerp__.py | 42 ++---
database_cleanup/identifier_adapter.py | 23 +++
database_cleanup/model/purge_columns.py | 155 ------------------
database_cleanup/model/purge_data.py | 106 ------------
database_cleanup/model/purge_menus.py | 81 ---------
database_cleanup/model/purge_models.py | 155 ------------------
database_cleanup/model/purge_modules.py | 129 ---------------
database_cleanup/model/purge_tables.py | 138 ----------------
database_cleanup/model/purge_wizard.py | 87 ----------
.../{model => models}/__init__.py | 0
database_cleanup/models/purge_columns.py | 127 ++++++++++++++
database_cleanup/models/purge_data.py | 68 ++++++++
database_cleanup/models/purge_menus.py | 48 ++++++
database_cleanup/models/purge_models.py | 119 ++++++++++++++
database_cleanup/models/purge_modules.py | 81 +++++++++
database_cleanup/models/purge_tables.py | 106 ++++++++++++
database_cleanup/models/purge_wizard.py | 94 +++++++++++
database_cleanup/tests/__init__.py | 4 +
.../tests/test_database_cleanup.py | 74 +++++++++
database_cleanup/{view => views}/menu.xml | 0
.../{view => views}/purge_columns.xml | 39 +----
.../{view => views}/purge_data.xml | 39 +----
.../{view => views}/purge_menus.xml | 34 +---
.../{view => views}/purge_models.xml | 35 +---
.../{view => views}/purge_modules.xml | 35 +---
.../{view => views}/purge_tables.xml | 31 +---
database_cleanup/views/purge_wizard.xml | 41 +++++
29 files changed, 902 insertions(+), 1057 deletions(-)
create mode 100644 database_cleanup/identifier_adapter.py
delete mode 100644 database_cleanup/model/purge_columns.py
delete mode 100644 database_cleanup/model/purge_data.py
delete mode 100644 database_cleanup/model/purge_menus.py
delete mode 100644 database_cleanup/model/purge_models.py
delete mode 100644 database_cleanup/model/purge_modules.py
delete mode 100644 database_cleanup/model/purge_tables.py
delete mode 100644 database_cleanup/model/purge_wizard.py
rename database_cleanup/{model => models}/__init__.py (100%)
create mode 100644 database_cleanup/models/purge_columns.py
create mode 100644 database_cleanup/models/purge_data.py
create mode 100644 database_cleanup/models/purge_menus.py
create mode 100644 database_cleanup/models/purge_models.py
create mode 100644 database_cleanup/models/purge_modules.py
create mode 100644 database_cleanup/models/purge_tables.py
create mode 100644 database_cleanup/models/purge_wizard.py
create mode 100644 database_cleanup/tests/__init__.py
create mode 100644 database_cleanup/tests/test_database_cleanup.py
rename database_cleanup/{view => views}/menu.xml (100%)
rename database_cleanup/{view => views}/purge_columns.xml (54%)
rename database_cleanup/{view => views}/purge_data.xml (53%)
rename database_cleanup/{view => views}/purge_menus.xml (56%)
rename database_cleanup/{view => views}/purge_models.xml (54%)
rename database_cleanup/{view => views}/purge_modules.xml (54%)
rename database_cleanup/{view => views}/purge_tables.xml (57%)
create mode 100644 database_cleanup/views/purge_wizard.xml
diff --git a/database_cleanup/README.rst b/database_cleanup/README.rst
index 6456ff195a1..2adbf2b4a7f 100644
--- a/database_cleanup/README.rst
+++ b/database_cleanup/README.rst
@@ -1,15 +1,68 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+
+================
+Database cleanup
+================
+
Clean your OpenERP database from remnants of modules, models, columns and
tables left by uninstalled modules (prior to 7.0) or a homebrew database
upgrade to a new major version of OpenERP.
+Caution! This module is potentially harmful and can *easily* destroy the
+integrity of your data. Do not use if you are not entirely comfortable
+with the technical details of the OpenERP data model of *all* the modules
+that have ever been installed on your database, and do not purge any module,
+model, column or table if you do not know exactly what you are doing.
+
+Usage
+=====
+
After installation of this module, go to the Settings menu -> Technical ->
Database cleanup. Go through the modules, models, columns and tables
entries under this menu (in that order) and find out if there is orphaned data
in your database. You can either delete entries by line, or sweep all entries
in one big step (if you are *really* confident).
-Caution! This module is potentially harmful and can *easily* destroy the
-integrity of your data. Do not use if you are not entirely comfortable
-with the technical details of the OpenERP data model of *all* the modules
-that have ever been installed on your database, and do not purge any module,
-model, column or table if you do not know exactly what you are doing.
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/149/9.0
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
+
+Credits
+=======
+
+Images
+------
+
+* Odoo Community Association: `Icon `_.
+
+Contributors
+------------
+
+* Stefan Rijnhart
+* Holger Brunn
+
+Do not contact contributors directly about help with questions or problems concerning this addon, but use the `community mailing list `_ or the `appropriate specialized mailinglist `_ for help, and the bug tracker linked in `Bug Tracker`_ above for technical issues.
+
+Maintainer
+----------
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit https://odoo-community.org.
diff --git a/database_cleanup/__init__.py b/database_cleanup/__init__.py
index 9186ee3ad24..851a784633a 100644
--- a/database_cleanup/__init__.py
+++ b/database_cleanup/__init__.py
@@ -1 +1,4 @@
-from . import model
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from . import models
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index 8fbad587ca1..cf56734d38c 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -1,38 +1,22 @@
# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Database cleanup',
- 'version': '8.0.0.1.0',
+ 'version': '9.0.1.0.0',
'author': "Therp BV,Odoo Community Association (OCA)",
'depends': ['base'],
'license': 'AGPL-3',
'category': 'Tools',
'data': [
- 'view/purge_menus.xml',
- 'view/purge_modules.xml',
- 'view/purge_models.xml',
- 'view/purge_columns.xml',
- 'view/purge_tables.xml',
- 'view/purge_data.xml',
- 'view/menu.xml',
- ],
+ "views/purge_wizard.xml",
+ 'views/purge_menus.xml',
+ 'views/purge_modules.xml',
+ 'views/purge_models.xml',
+ 'views/purge_columns.xml',
+ 'views/purge_tables.xml',
+ 'views/purge_data.xml',
+ 'views/menu.xml',
+ ],
+ 'installable': True,
}
diff --git a/database_cleanup/identifier_adapter.py b/database_cleanup/identifier_adapter.py
new file mode 100644
index 00000000000..280fcd92048
--- /dev/null
+++ b/database_cleanup/identifier_adapter.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+# © 2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from psycopg2.extensions import ISQLQuote
+
+
+class IdentifierAdapter(ISQLQuote):
+ def __init__(self, identifier, quote=True):
+ self.quote = quote
+ self.identifier = identifier
+
+ def __conform__(self, protocol):
+ if protocol == ISQLQuote:
+ return self
+
+ def getquoted(self):
+ def is_identifier_char(c):
+ return c.isalnum() or c in ['_', '$']
+
+ format_string = '"%s"'
+ if not self.quote:
+ format_string = '%s'
+ return format_string % filter(is_identifier_char, self.identifier)
diff --git a/database_cleanup/model/purge_columns.py b/database_cleanup/model/purge_columns.py
deleted file mode 100644
index abcf1d2d4e4..00000000000
--- a/database_cleanup/model/purge_columns.py
+++ /dev/null
@@ -1,155 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp.osv import orm, fields
-from openerp.tools.translate import _
-
-
-class CleanupPurgeLineColumn(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.column'
-
- _columns = {
- 'model_id': fields.many2one(
- 'ir.model', 'Model',
- required=True, ondelete='CASCADE'),
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.column', 'Purge Wizard', readonly=True),
- }
-
- def purge(self, cr, uid, ids, context=None):
- """
- Unlink columns upon manual confirmation.
- """
- for line in self.browse(cr, uid, ids, context=context):
- if line.purged:
- continue
-
- model_pool = self.pool[line.model_id.model]
-
- # Check whether the column actually still exists.
- # Inheritance such as stock.picking.in from stock.picking
- # can lead to double attempts at removal
- cr.execute(
- 'SELECT count(attname) FROM pg_attribute '
- 'WHERE attrelid = '
- '( SELECT oid FROM pg_class WHERE relname = %s ) '
- 'AND attname = %s',
- (model_pool._table, line.name))
- if not cr.fetchone()[0]:
- continue
-
- self.logger.info(
- 'Dropping column %s from table %s',
- line.name, model_pool._table)
- cr.execute(
- """
- ALTER TABLE "%s" DROP COLUMN "%s"
- """ % (model_pool._table, line.name))
- line.write({'purged': True})
- cr.commit()
- return True
-
-
-class CleanupPurgeWizardColumn(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.column'
-
- # List of known columns in use without corresponding fields
- # Format: {table: [fields]}
- blacklist = {
- 'wkf_instance': ['uid'], # lp:1277899
- }
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardColumn, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge columns')
- return res
-
- def get_orphaned_columns(self, cr, uid, model_pools, context=None):
- """
- From openobject-server/openerp/osv/orm.py
- Iterate on the database columns to identify columns
- of fields which have been removed
- """
-
- columns = list(set([
- column for model_pool in model_pools
- for column in model_pool._columns
- if not (isinstance(model_pool._columns[column],
- fields.function) and
- not model_pool._columns[column].store)
- ]))
- columns += orm.MAGIC_COLUMNS
- columns += self.blacklist.get(model_pools[0]._table, [])
-
- cr.execute("SELECT a.attname"
- " FROM pg_class c, pg_attribute a"
- " WHERE c.relname=%s"
- " AND c.oid=a.attrelid"
- " AND a.attisdropped=%s"
- " AND pg_catalog.format_type(a.atttypid, a.atttypmod)"
- " NOT IN ('cid', 'tid', 'oid', 'xid')"
- " AND a.attname NOT IN %s",
- (model_pools[0]._table, False, tuple(columns))),
- return [column[0] for column in cr.fetchall()]
-
- def find(self, cr, uid, context=None):
- """
- Search for columns that are not in the corresponding model.
-
- Group models by table to prevent false positives for columns
- that are only in some of the models sharing the same table.
- Example of this is 'sale_id' not being a field of stock.picking.in
- """
- res = []
- model_pool = self.pool['ir.model']
- model_ids = model_pool.search(cr, uid, [], context=context)
-
- # mapping of tables to tuples (model id, [pool1, pool2, ...])
- table2model = {}
-
- for model in model_pool.browse(cr, uid, model_ids, context=context):
- model_pool = self.pool.get(model.model)
- if not model_pool or not model_pool._auto:
- continue
- table2model.setdefault(
- model_pool._table, (model.id, []))[1].append(model_pool)
-
- for table, model_spec in table2model.iteritems():
- for column in self.get_orphaned_columns(
- cr, uid, model_spec[1], context=context):
- res.append((0, 0, {
- 'name': column,
- 'model_id': model_spec[0]}))
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No orphaned columns found'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.column',
- 'wizard_id', 'Columns to purge'),
- }
diff --git a/database_cleanup/model/purge_data.py b/database_cleanup/model/purge_data.py
deleted file mode 100644
index f3e1b63cd40..00000000000
--- a/database_cleanup/model/purge_data.py
+++ /dev/null
@@ -1,106 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp.osv import orm, fields
-from openerp.tools.translate import _
-
-
-class CleanupPurgeLineData(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.data'
-
- _columns = {
- 'data_id': fields.many2one(
- 'ir.model.data', 'Data entry',
- ondelete='SET NULL'),
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.data', 'Purge Wizard', readonly=True),
- }
-
- def purge(self, cr, uid, ids, context=None):
- """
- Unlink data entries upon manual confirmation.
- """
- data_ids = []
- for line in self.browse(cr, uid, ids, context=context):
- if line.purged or not line.data_id:
- continue
- data_ids.append(line.data_id.id)
- self.logger.info('Purging data entry: %s', line.name)
- self.pool['ir.model.data'].unlink(cr, uid, data_ids, context=context)
- return self.write(cr, uid, ids, {'purged': True}, context=context)
-
-
-class CleanupPurgeWizardData(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.data'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardData, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge data')
- return res
-
- def find(self, cr, uid, context=None):
- """
- Collect all rows from ir_model_data that refer
- to a nonexisting model, or to a nonexisting
- row in the model's table.
- """
- res = []
- data_pool = self.pool['ir.model.data']
- data_ids = []
- unknown_models = []
- cr.execute("""SELECT DISTINCT(model) FROM ir_model_data""")
- for (model,) in cr.fetchall():
- if not model:
- continue
- if not self.pool.get(model):
- unknown_models.append(model)
- continue
- cr.execute(
- """
- SELECT id FROM ir_model_data
- WHERE model = %%s
- AND res_id IS NOT NULL
- AND NOT EXISTS (
- SELECT id FROM %s WHERE id=ir_model_data.res_id)
- """ % self.pool[model]._table, (model,))
- data_ids += [data_row[0] for data_row in cr.fetchall()]
- data_ids += data_pool.search(
- cr, uid, [('model', 'in', unknown_models)], context=context)
- for data in data_pool.browse(cr, uid, data_ids, context=context):
- res.append((0, 0, {
- 'data_id': data.id,
- 'name': "%s.%s, object of type %s" % (
- data.module, data.name, data.model)}))
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No orphaned data entries found'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.data',
- 'wizard_id', 'Data to purge'),
- }
diff --git a/database_cleanup/model/purge_menus.py b/database_cleanup/model/purge_menus.py
deleted file mode 100644
index a9a336fe9a8..00000000000
--- a/database_cleanup/model/purge_menus.py
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2015 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from openerp.osv import orm, fields
-from openerp.tools.translate import _
-
-
-class CleanupPurgeLineMenu(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.menu'
-
- _columns = {
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.menu', 'Purge Wizard', readonly=True),
- 'menu_id': fields.many2one('ir.ui.menu', 'Menu entry'),
- }
-
- def purge(self, cr, uid, ids, context=None):
- self.pool['ir.ui.menu'].unlink(
- cr, uid,
- [this.menu_id.id for this in self.browse(cr, uid, ids,
- context=context)],
- context=context)
- return self.write(cr, uid, ids, {'purged': True}, context=context)
-
-
-class CleanupPurgeWizardMenu(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.menu'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardMenu, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge menus')
- return res
-
- def find(self, cr, uid, context=None):
- """
- Search for models that cannot be instantiated.
- """
- res = []
- for menu in self.pool['ir.ui.menu'].browse(
- cr, uid, self.pool['ir.ui.menu'].search(
- cr, uid, [], context=dict(
- context or {}, active_test=False))):
- if not menu.action or menu.action.type != 'ir.actions.act_window':
- continue
- if not self.pool.get(menu.action.res_model):
- res.append((0, 0, {
- 'name': menu.complete_name,
- 'menu_id': menu.id,
- }))
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No dangling menu entries found'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.menu',
- 'wizard_id', 'Menus to purge'),
- }
diff --git a/database_cleanup/model/purge_models.py b/database_cleanup/model/purge_models.py
deleted file mode 100644
index 415f1048991..00000000000
--- a/database_cleanup/model/purge_models.py
+++ /dev/null
@@ -1,155 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp.osv import orm, fields
-from openerp.tools.translate import _
-from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
-
-
-class IrModel(orm.Model):
- _inherit = 'ir.model'
-
- def _drop_table(self, cr, uid, ids, context=None):
- # Allow to skip this step during model unlink
- # The super method crashes if the model cannot be instantiated
- if context and context.get('no_drop_table'):
- return True
- return super(IrModel, self)._drop_table(cr, uid, ids, context=context)
-
- def _inherited_models(self, cr, uid, ids, field_name, arg, context=None):
- """this function crashes for undefined models"""
- result = dict((i, []) for i in ids)
- existing_model_ids = [
- this.id for this in self.browse(cr, uid, ids, context=context)
- if self.pool.get(this.model)
- ]
- super_result = super(IrModel, self)._inherited_models(
- cr, uid, existing_model_ids, field_name, arg, context=context)
- result.update(super_result)
- return result
-
- def _register_hook(self, cr):
- # patch the function field instead of overwriting it
- if self._columns['inherited_model_ids']._fnct !=\
- self._inherited_models.__func__:
- self._columns['inherited_model_ids']._fnct =\
- self._inherited_models.__func__
- return super(IrModel, self)._register_hook(cr)
-
-
-class CleanupPurgeLineModel(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.model'
-
- _columns = {
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.model', 'Purge Wizard', readonly=True),
- }
-
- def purge(self, cr, uid, ids, context=None):
- """
- Unlink models upon manual confirmation.
- """
- model_pool = self.pool['ir.model']
- attachment_pool = self.pool['ir.attachment']
- constraint_pool = self.pool['ir.model.constraint']
- fields_pool = self.pool['ir.model.fields']
- relation_pool = self.pool['ir.model.relation']
-
- local_context = (context or {}).copy()
- local_context.update({
- MODULE_UNINSTALL_FLAG: True,
- 'no_drop_table': True,
- })
-
- for line in self.browse(cr, uid, ids, context=context):
- cr.execute(
- "SELECT id, model from ir_model WHERE model = %s",
- (line.name,))
- row = cr.fetchone()
- if row:
- self.logger.info('Purging model %s', row[1])
- attachment_ids = attachment_pool.search(
- cr, uid, [('res_model', '=', line.name)], context=context)
- if attachment_ids:
- cr.execute(
- "UPDATE ir_attachment SET res_model = FALSE "
- "WHERE id in %s",
- (tuple(attachment_ids), ))
- constraint_ids = constraint_pool.search(
- cr, uid, [('model', '=', line.name)], context=context)
- if constraint_ids:
- constraint_pool.unlink(
- cr, uid, constraint_ids, context=context)
- relation_ids = fields_pool.search(
- cr, uid, [('relation', '=', row[1])], context=context)
- for relation in relation_ids:
- try:
- # Fails if the model on the target side
- # cannot be instantiated
- fields_pool.unlink(cr, uid, [relation],
- context=local_context)
- except KeyError:
- pass
- except AttributeError:
- pass
- relation_ids = relation_pool.search(
- cr, uid, [('model', '=', line.name)], context=context)
- for relation in relation_ids:
- relation_pool.unlink(cr, uid, [relation],
- context=local_context)
- model_pool.unlink(cr, uid, [row[0]], context=local_context)
- line.write({'purged': True})
- cr.commit()
- return True
-
-
-class CleanupPurgeWizardModel(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.model'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardModel, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge models')
- return res
-
- def find(self, cr, uid, context=None):
- """
- Search for models that cannot be instantiated.
- """
- res = []
- cr.execute("SELECT model from ir_model")
- for (model,) in cr.fetchall():
- if not self.pool.get(model):
- res.append((0, 0, {'name': model}))
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No orphaned models found'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.model',
- 'wizard_id', 'Models to purge'),
- }
diff --git a/database_cleanup/model/purge_modules.py b/database_cleanup/model/purge_modules.py
deleted file mode 100644
index d371b5f0593..00000000000
--- a/database_cleanup/model/purge_modules.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp import pooler
-from openerp.osv import orm, fields
-from openerp.modules.module import get_module_path
-from openerp.tools.translate import _
-from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
-
-
-class IrModelConstraint(orm.Model):
- _inherit = 'ir.model.constraint'
-
- def _module_data_uninstall(self, cr, uid, ids, context=None):
- """this function crashes for constraints on undefined models"""
- for this in self.browse(cr, uid, ids, context=context):
- if not self.pool.get(this.model.model):
- ids.remove(this.id)
- this.unlink()
- return super(IrModelConstraint, self)._module_data_uninstall(
- cr, uid, ids, context=context)
-
-
-class IrModelData(orm.Model):
- _inherit = 'ir.model.data'
-
- def _module_data_uninstall(self, cr, uid, modules_to_remove, context=None):
- """this function crashes for xmlids on undefined models or fields
- referring to undefined models"""
- if context is None:
- context = {}
- ids = self.search(cr, uid, [('module', 'in', modules_to_remove)])
- for this in self.browse(cr, uid, ids, context=context):
- if this.model == 'ir.model.fields':
- ctx = context.copy()
- ctx[MODULE_UNINSTALL_FLAG] = True
- field = self.pool[this.model].browse(
- cr, uid, this.res_id, context=ctx)
- if not self.pool.get(field.model):
- this.unlink()
- continue
- if not self.pool.get(this.model):
- this.unlink()
- return super(IrModelData, self)._module_data_uninstall(
- cr, uid, modules_to_remove, context=context)
-
-
-class CleanupPurgeLineModule(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.module'
-
- _columns = {
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.module', 'Purge Wizard', readonly=True),
- }
-
- def purge(self, cr, uid, ids, context=None):
- """
- Uninstall modules upon manual confirmation, then reload
- the database.
- """
- module_pool = self.pool['ir.module.module']
- lines = self.browse(cr, uid, ids, context=context)
- module_names = [line.name for line in lines if not line.purged]
- module_ids = module_pool.search(
- cr, uid, [('name', 'in', module_names)], context=context)
- if not module_ids:
- return True
- self.logger.info('Purging modules %s', ', '.join(module_names))
- module_pool.write(
- cr, uid, module_ids, {'state': 'to remove'}, context=context)
- cr.commit()
- _db, _pool = pooler.restart_pool(cr.dbname, update_module=True)
- module_pool.unlink(cr, uid, module_ids, context=context)
- return self.write(cr, uid, ids, {'purged': True}, context=context)
-
-
-class CleanupPurgeWizardModule(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.module'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardModule, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge modules')
- return res
-
- def find(self, cr, uid, context=None):
- module_pool = self.pool['ir.module.module']
- module_ids = module_pool.search(cr, uid, [], context=context)
- res = []
- for module in module_pool.browse(cr, uid, module_ids, context=context):
- if get_module_path(module.name):
- continue
- if module.state == 'uninstalled':
- module_pool.unlink(cr, uid, module.id, context=context)
- continue
- res.append((0, 0, {'name': module.name}))
-
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No modules found to purge'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.module',
- 'wizard_id', 'Modules to purge'),
- }
diff --git a/database_cleanup/model/purge_tables.py b/database_cleanup/model/purge_tables.py
deleted file mode 100644
index 50bf3d8e624..00000000000
--- a/database_cleanup/model/purge_tables.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from openerp.osv import orm, fields
-from openerp.tools.translate import _
-
-
-class CleanupPurgeLineTable(orm.TransientModel):
- _inherit = 'cleanup.purge.line'
- _name = 'cleanup.purge.line.table'
-
- _columns = {
- 'wizard_id': fields.many2one(
- 'cleanup.purge.wizard.table', 'Purge Wizard', readonly=True),
- }
-
- def purge(self, cr, uid, ids, context=None):
- """
- Unlink tables upon manual confirmation.
- """
- lines = self.browse(cr, uid, ids, context=context)
- tables = [line.name for line in lines]
- for line in lines:
- if line.purged:
- continue
-
- # Retrieve constraints on the tables to be dropped
- # This query is referenced in numerous places
- # on the Internet but credits probably go to Tom Lane
- # in this post http://www.postgresql.org/\
- # message-id/22895.1226088573@sss.pgh.pa.us
- # Only using the constraint name and the source table,
- # but I'm leaving the rest in for easier debugging
- cr.execute(
- """
- SELECT conname, confrelid::regclass, af.attname AS fcol,
- conrelid::regclass, a.attname AS col
- FROM pg_attribute af, pg_attribute a,
- (SELECT conname, conrelid, confrelid,conkey[i] AS conkey,
- confkey[i] AS confkey
- FROM (select conname, conrelid, confrelid, conkey,
- confkey, generate_series(1,array_upper(conkey,1)) AS i
- FROM pg_constraint WHERE contype = 'f') ss) ss2
- WHERE af.attnum = confkey AND af.attrelid = confrelid AND
- a.attnum = conkey AND a.attrelid = conrelid
- AND confrelid::regclass = '%s'::regclass;
- """ % line.name)
-
- for constraint in cr.fetchall():
- if constraint[3] in tables:
- self.logger.info(
- 'Dropping constraint %s on table %s (to be dropped)',
- constraint[0], constraint[3])
- cr.execute(
- "ALTER TABLE %s DROP CONSTRAINT %s" % (
- constraint[3], constraint[0]))
-
- self.logger.info(
- 'Dropping table %s', line.name)
- cr.execute("DROP TABLE \"%s\"" % (line.name,))
- line.write({'purged': True})
- cr.commit()
- return True
-
-
-class CleanupPurgeWizardTable(orm.TransientModel):
- _inherit = 'cleanup.purge.wizard'
- _name = 'cleanup.purge.wizard.table'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(CleanupPurgeWizardTable, self).default_get(
- cr, uid, fields, context=context)
- if 'name' in fields:
- res['name'] = _('Purge tables')
- return res
-
- def find(self, cr, uid, context=None):
- """
- Search for tables that cannot be instantiated.
- Ignore views for now.
- """
- model_ids = self.pool['ir.model'].search(cr, uid, [], context=context)
- # Start out with known tables with no model
- known_tables = ['wkf_witm_trans']
- for model in self.pool['ir.model'].browse(
- cr, uid, model_ids, context=context):
-
- model_pool = self.pool.get(model.model)
- if not model_pool:
- continue
- known_tables.append(model_pool._table)
- known_tables += [
- column._sql_names(model_pool)[0]
- for column in model_pool._columns.values()
- if (column._type == 'many2many' and
- hasattr(column, '_rel')) # unstored function fields of
- # type m2m don't have _rel
- ]
-
- # Cannot pass table names as a psycopg argument
- known_tables_repr = ",".join(
- [("'%s'" % table) for table in known_tables])
- cr.execute(
- """
- SELECT table_name FROM information_schema.tables
- WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
- AND table_name NOT IN (%s)""" % known_tables_repr)
-
- res = [(0, 0, {'name': row[0]}) for row in cr.fetchall()]
- if not res:
- raise orm.except_orm(
- _('Nothing to do'),
- _('No orphaned tables found'))
- return res
-
- _columns = {
- 'purge_line_ids': fields.one2many(
- 'cleanup.purge.line.table',
- 'wizard_id', 'Tables to purge'),
- }
diff --git a/database_cleanup/model/purge_wizard.py b/database_cleanup/model/purge_wizard.py
deleted file mode 100644
index f02f5dbc233..00000000000
--- a/database_cleanup/model/purge_wizard.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# This module copyright (C) 2014 Therp BV ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import logging
-from openerp.osv import orm, fields
-
-
-class CleanupPurgeLine(orm.AbstractModel):
- """ Abstract base class for the purge wizard lines """
- _name = 'cleanup.purge.line'
- _order = 'name'
- _columns = {
- 'name': fields.char('Name', size=256, readonly=True),
- 'purged': fields.boolean('Purged', readonly=True),
- }
-
- logger = logging.getLogger('openerp.addons.database_cleanup')
-
- def purge(self, cr, uid, ids, context=None):
- raise NotImplementedError
-
-
-class PurgeWizard(orm.AbstractModel):
- """ Abstract base class for the purge wizards """
- _name = 'cleanup.purge.wizard'
-
- def default_get(self, cr, uid, fields, context=None):
- res = super(PurgeWizard, self).default_get(
- cr, uid, fields, context=context)
- if 'purge_line_ids' in fields:
- res['purge_line_ids'] = self.find(cr, uid, context=None)
- return res
-
- def find(self, cr, uid, ids, context=None):
- raise NotImplementedError
-
- def purge_all(self, cr, uid, ids, context=None):
- line_pool = self.pool[self._columns['purge_line_ids']._obj]
- for wizard in self.browse(cr, uid, ids, context=context):
- line_pool.purge(
- cr, uid, [line.id for line in wizard.purge_line_ids],
- context=context)
- return True
-
- def get_wizard_action(self, cr, uid, context=None):
- wizard_id = self.create(cr, uid, {}, context=context)
- return {
- 'type': 'ir.actions.act_window',
- 'views': [(False, 'form')],
- 'res_model': self._name,
- 'res_id': wizard_id,
- 'flags': {
- 'action_buttons': False,
- 'sidebar': False,
- },
- }
-
- def select_lines(self, cr, uid, ids, context=None):
- return {
- 'type': 'ir.actions.act_window',
- 'name': 'Select lines to purge',
- 'views': [(False, 'tree'), (False, 'form')],
- 'res_model': self._columns['purge_line_ids']._obj,
- 'domain': [('wizard_id', 'in', ids)],
- }
-
- _columns = {
- 'name': fields.char('Name', size=64, readonly=True),
- }
diff --git a/database_cleanup/model/__init__.py b/database_cleanup/models/__init__.py
similarity index 100%
rename from database_cleanup/model/__init__.py
rename to database_cleanup/models/__init__.py
diff --git a/database_cleanup/models/purge_columns.py b/database_cleanup/models/purge_columns.py
new file mode 100644
index 00000000000..3a3718c214b
--- /dev/null
+++ b/database_cleanup/models/purge_columns.py
@@ -0,0 +1,127 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import _, api, fields, models
+from openerp.exceptions import UserError
+from ..identifier_adapter import IdentifierAdapter
+
+
+class CleanupPurgeLineColumn(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.column'
+
+ model_id = fields.Many2one('ir.model', 'Model', required=True,
+ ondelete='CASCADE')
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.column', 'Purge Wizard', readonly=True)
+
+ @api.multi
+ def purge(self):
+ """
+ Unlink columns upon manual confirmation.
+ """
+ for line in self:
+ if line.purged:
+ continue
+ model_pool = self.env[line.model_id.model]
+ # Check whether the column actually still exists.
+ # Inheritance such as stock.picking.in from stock.picking
+ # can lead to double attempts at removal
+ self.env.cr.execute(
+ 'SELECT count(attname) FROM pg_attribute '
+ 'WHERE attrelid = '
+ '( SELECT oid FROM pg_class WHERE relname = %s ) '
+ 'AND attname = %s',
+ (model_pool._table, line.name))
+ if not self.env.cr.fetchone()[0]:
+ continue
+
+ self.logger.info(
+ 'Dropping column %s from table %s',
+ line.name, model_pool._table)
+ self.env.cr.execute(
+ 'ALTER TABLE %s DROP COLUMN %s',
+ (
+ IdentifierAdapter(model_pool._table),
+ IdentifierAdapter(line.name)
+ ))
+ line.write({'purged': True})
+ # we need this commit because the ORM will deadlock if
+ # we still have a pending transaction
+ self.env.cr.commit() # pylint: disable=invalid-commit
+ return True
+
+
+class CleanupPurgeWizardColumn(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.column'
+ _description = 'Purge columns'
+
+ # List of known columns in use without corresponding fields
+ # Format: {table: [fields]}
+ blacklist = {
+ 'wkf_instance': ['uid'], # lp:1277899
+ }
+
+ @api.model
+ def get_orphaned_columns(self, model_pools):
+ """
+ From openobject-server/openerp/osv/orm.py
+ Iterate on the database columns to identify columns
+ of fields which have been removed
+ """
+ columns = list(set([
+ column
+ for model_pool in model_pools
+ for column in model_pool._columns
+ if not (isinstance(model_pool._columns[column],
+ fields.fields.function) and
+ not model_pool._columns[column].store)
+ ]))
+ columns += models.MAGIC_COLUMNS
+ columns += self.blacklist.get(model_pools[0]._table, [])
+
+ self.env.cr.execute(
+ "SELECT a.attname FROM pg_class c, pg_attribute a "
+ "WHERE c.relname=%s AND c.oid=a.attrelid AND a.attisdropped=False "
+ "AND pg_catalog.format_type(a.atttypid, a.atttypmod) "
+ "NOT IN ('cid', 'tid', 'oid', 'xid') "
+ "AND a.attname NOT IN %s",
+ (model_pools[0]._table, tuple(columns)))
+ return [column for column, in self.env.cr.fetchall()]
+
+ @api.model
+ def find(self):
+ """
+ Search for columns that are not in the corresponding model.
+
+ Group models by table to prevent false positives for columns
+ that are only in some of the models sharing the same table.
+ Example of this is 'sale_id' not being a field of stock.picking.in
+ """
+ res = []
+
+ # mapping of tables to tuples (model id, [pool1, pool2, ...])
+ table2model = {}
+
+ for model in self.env['ir.model'].search([]):
+ if model.model not in self.env:
+ continue
+ model_pool = self.env[model.model]
+ if not model_pool._auto:
+ continue
+ table2model.setdefault(
+ model_pool._table, (model.id, [])
+ )[1].append(model_pool)
+
+ for table, model_spec in table2model.iteritems():
+ for column in self.get_orphaned_columns(model_spec[1]):
+ res.append((0, 0, {
+ 'name': column,
+ 'model_id': model_spec[0]}))
+ if not res:
+ raise UserError(_('No orphaned columns found'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.column', 'wizard_id', 'Columns to purge')
diff --git a/database_cleanup/models/purge_data.py b/database_cleanup/models/purge_data.py
new file mode 100644
index 00000000000..9e1817ff808
--- /dev/null
+++ b/database_cleanup/models/purge_data.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import _, api, fields, models
+from openerp.exceptions import UserError
+from ..identifier_adapter import IdentifierAdapter
+
+
+class CleanupPurgeLineData(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.data'
+
+ data_id = fields.Many2one('ir.model.data', 'Data entry')
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.data', 'Purge Wizard', readonly=True)
+
+ @api.multi
+ def purge(self):
+ """Unlink data entries upon manual confirmation."""
+ to_unlink = self.filtered(lambda x: not x.purged and x.data_id)
+ self.logger.info('Purging data entries: %s', to_unlink.mapped('name'))
+ to_unlink.mapped('data_id').unlink()
+ return self.write({'purged': True})
+
+
+class CleanupPurgeWizardData(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.data'
+ _description = 'Purge data'
+
+ @api.model
+ def find(self):
+ """Collect all rows from ir_model_data that refer
+ to a nonexisting model, or to a nonexisting
+ row in the model's table."""
+ res = []
+ data_ids = []
+ unknown_models = []
+ self.env.cr.execute("""SELECT DISTINCT(model) FROM ir_model_data""")
+ for model, in self.env.cr.fetchall():
+ if not model:
+ continue
+ if model not in self.env:
+ unknown_models.append(model)
+ continue
+ self.env.cr.execute(
+ """
+ SELECT id FROM ir_model_data
+ WHERE model = %s
+ AND res_id IS NOT NULL
+ AND NOT EXISTS (
+ SELECT id FROM %s WHERE id=ir_model_data.res_id)
+ """, (model, IdentifierAdapter(self.env[model]._table)))
+ data_ids.extend(data_row for data_row, in self.env.cr.fetchall())
+ data_ids += self.env['ir.model.data'].search([
+ ('model', 'in', unknown_models),
+ ]).ids
+ for data in self.env['ir.model.data'].browse(data_ids):
+ res.append((0, 0, {
+ 'data_id': data.id,
+ 'name': "%s.%s, object of type %s" % (
+ data.module, data.name, data.model)}))
+ if not res:
+ raise UserError(_('No orphaned data entries found'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.data', 'wizard_id', 'Data to purge')
diff --git a/database_cleanup/models/purge_menus.py b/database_cleanup/models/purge_menus.py
new file mode 100644
index 00000000000..bef098b2875
--- /dev/null
+++ b/database_cleanup/models/purge_menus.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import _, api, fields, models
+from openerp.exceptions import UserError
+
+
+class CleanupPurgeLineMenu(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.menu'
+
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.menu', 'Purge Wizard', readonly=True)
+ menu_id = fields.Many2one('ir.ui.menu', 'Menu entry')
+
+ @api.multi
+ def purge(self):
+ self.mapped('menu_id').unlink()
+ return self.write({'purged': True})
+
+
+class CleanupPurgeWizardMenu(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.menu'
+ _description = 'Purge menus'
+
+ @api.model
+ def find(self):
+ """
+ Search for models that cannot be instantiated.
+ """
+ res = []
+ for menu in self.env['ir.ui.menu'].with_context(active_test=False)\
+ .search([('action', '!=', False)]):
+ if menu.action.type != 'ir.actions.act_window':
+ continue
+ if menu.action.res_model not in self.env or\
+ menu.action.src_model not in self.env:
+ res.append((0, 0, {
+ 'name': menu.complete_name,
+ 'menu_id': menu.id,
+ }))
+ if not res:
+ raise UserError(_('No dangling menu entries found'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.menu', 'wizard_id', 'Menus to purge')
diff --git a/database_cleanup/models/purge_models.py b/database_cleanup/models/purge_models.py
new file mode 100644
index 00000000000..996cea61d77
--- /dev/null
+++ b/database_cleanup/models/purge_models.py
@@ -0,0 +1,119 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import _, api, models, fields
+from openerp.exceptions import UserError
+from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+
+
+class IrModel(models.Model):
+ _inherit = 'ir.model'
+
+ @api.multi
+ def _drop_table(self):
+ # Allow to skip this step during model unlink
+ # The super method crashes if the model cannot be instantiated
+ if self.env.context.get('no_drop_table'):
+ return True
+ return super(IrModel, self)._drop_table()
+
+ @api.multi
+ def _inherited_models(self, field_name, arg):
+ """this function crashes for undefined models"""
+ result = dict((i, []) for i in self.ids)
+ existing_model_ids = [
+ this.id for this in self if this.model in self.env
+ ]
+ super_result = super(IrModel, self.browse(existing_model_ids))\
+ ._inherited_models(field_name, arg)
+ result.update(super_result)
+ return result
+
+ def _register_hook(self, cr):
+ # patch the function field instead of overwriting it
+ if self._columns['inherited_model_ids']._fnct !=\
+ self._inherited_models.__func__:
+ self._columns['inherited_model_ids']._fnct =\
+ self._inherited_models.__func__
+ return super(IrModel, self)._register_hook(cr)
+
+
+class CleanupPurgeLineModel(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.model'
+ _description = 'Purge models'
+
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.model', 'Purge Wizard', readonly=True)
+
+ @api.multi
+ def purge(self):
+ """
+ Unlink models upon manual confirmation.
+ """
+ context_flags = {
+ MODULE_UNINSTALL_FLAG: True,
+ 'no_drop_table': True,
+ }
+
+ for line in self:
+ self.env.cr.execute(
+ "SELECT id, model from ir_model WHERE model = %s",
+ (line.name,))
+ row = self.env.cr.fetchone()
+ if not row:
+ continue
+ self.logger.info('Purging model %s', row[1])
+ attachments = self.env['ir.attachment'].search([
+ ('res_model', '=', line.name)
+ ])
+ if attachments:
+ self.env.cr.execute(
+ "UPDATE ir_attachment SET res_model = NULL "
+ "WHERE id in %s",
+ (tuple(attachments.ids), ))
+ self.env['ir.model.constraint'].search([
+ ('model', '=', line.name),
+ ]).unlink()
+ relations = self.env['ir.model.fields'].search([
+ ('relation', '=', row[1]),
+ ]).with_context(**context_flags)
+ for relation in relations:
+ try:
+ # Fails if the model on the target side
+ # cannot be instantiated
+ relation.unlink()
+ except KeyError:
+ pass
+ except AttributeError:
+ pass
+ self.env['ir.model.relation'].search([
+ ('model', '=', line.name)
+ ]).with_context(**context_flags).unlink()
+ self.env['ir.model'].browse([row[0]])\
+ .with_context(**context_flags).unlink()
+ line.write({'purged': True})
+ return True
+
+
+class CleanupPurgeWizardModel(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.model'
+ _description = 'Purge models'
+
+ @api.model
+ def find(self):
+ """
+ Search for models that cannot be instantiated.
+ """
+ res = []
+ self.env.cr.execute("SELECT model from ir_model")
+ for model, in self.env.cr.fetchall():
+ if model not in self.env:
+ res.append((0, 0, {'name': model}))
+ if not res:
+ raise UserError(_('No orphaned models found'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.model', 'wizard_id', 'Models to purge')
diff --git a/database_cleanup/models/purge_modules.py b/database_cleanup/models/purge_modules.py
new file mode 100644
index 00000000000..9664d1a219c
--- /dev/null
+++ b/database_cleanup/models/purge_modules.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import _, api, fields, models
+from openerp.exceptions import UserError
+from openerp.modules.registry import RegistryManager
+from openerp.modules.module import get_module_path
+from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+
+
+class IrModelData(models.Model):
+ _inherit = 'ir.model.data'
+
+ @api.model
+ def _module_data_uninstall(self, modules_to_remove):
+ """this function crashes for xmlids on undefined models or fields
+ referring to undefined models"""
+ for this in self.search([('module', 'in', modules_to_remove)]):
+ if this.model == 'ir.model.fields':
+ field = self.env[this.model].with_context(
+ **{MODULE_UNINSTALL_FLAG: True}).browse(this.res_id)
+ if field.model not in self.env:
+ this.unlink()
+ continue
+ if this.model not in self.env:
+ this.unlink()
+ return super(IrModelData, self)._module_data_uninstall(
+ modules_to_remove)
+
+
+class CleanupPurgeLineModule(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.module'
+
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.module', 'Purge Wizard', readonly=True)
+
+ @api.multi
+ def purge(self):
+ """
+ Uninstall modules upon manual confirmation, then reload
+ the database.
+ """
+ module_names = self.filtered(lambda x: not x.purged).mapped('name')
+ modules = self.env['ir.module.module'].search([
+ ('name', 'in', module_names)
+ ])
+ if not modules:
+ return True
+ self.logger.info('Purging modules %s', ', '.join(module_names))
+ modules.write({'state': 'to remove'})
+ # we need this commit because reloading the registry would roll back
+ # our changes
+ self.env.cr.commit() # pylint: disable=invalid-commit
+ RegistryManager.new(self.env.cr.dbname, update_module=True)
+ modules.unlink()
+ return self.write({'purged': True})
+
+
+class CleanupPurgeWizardModule(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.module'
+ _description = 'Purge modules'
+
+ @api.model
+ def find(self):
+ res = []
+ for module in self.env['ir.module.module'].search([]):
+ if get_module_path(module.name):
+ continue
+ if module.state == 'uninstalled':
+ module.unlink()
+ continue
+ res.append((0, 0, {'name': module.name}))
+
+ if not res:
+ raise UserError(_('No modules found to purge'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.module', 'wizard_id', 'Modules to purge')
diff --git a/database_cleanup/models/purge_tables.py b/database_cleanup/models/purge_tables.py
new file mode 100644
index 00000000000..62503f790a0
--- /dev/null
+++ b/database_cleanup/models/purge_tables.py
@@ -0,0 +1,106 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from openerp import api, fields, models, _
+from openerp.exceptions import UserError
+from ..identifier_adapter import IdentifierAdapter
+
+
+class CleanupPurgeLineTable(models.TransientModel):
+ _inherit = 'cleanup.purge.line'
+ _name = 'cleanup.purge.line.table'
+
+ wizard_id = fields.Many2one(
+ 'cleanup.purge.wizard.table', 'Purge Wizard', readonly=True)
+
+ @api.multi
+ def purge(self):
+ """
+ Unlink tables upon manual confirmation.
+ """
+ tables = self.mapped('name')
+ for line in self:
+ if line.purged:
+ continue
+
+ # Retrieve constraints on the tables to be dropped
+ # This query is referenced in numerous places
+ # on the Internet but credits probably go to Tom Lane
+ # in this post http://www.postgresql.org/\
+ # message-id/22895.1226088573@sss.pgh.pa.us
+ # Only using the constraint name and the source table,
+ # but I'm leaving the rest in for easier debugging
+ self.env.cr.execute(
+ """
+ SELECT conname, confrelid::regclass, af.attname AS fcol,
+ conrelid::regclass, a.attname AS col
+ FROM pg_attribute af, pg_attribute a,
+ (SELECT conname, conrelid, confrelid,conkey[i] AS conkey,
+ confkey[i] AS confkey
+ FROM (select conname, conrelid, confrelid, conkey,
+ confkey, generate_series(1,array_upper(conkey,1)) AS i
+ FROM pg_constraint WHERE contype = 'f') ss) ss2
+ WHERE af.attnum = confkey AND af.attrelid = confrelid AND
+ a.attnum = conkey AND a.attrelid = conrelid
+ AND confrelid::regclass = '%s'::regclass;
+ """, (IdentifierAdapter(line.name, quote=False),))
+
+ for constraint in self.env.cr.fetchall():
+ if constraint[3] in tables:
+ self.logger.info(
+ 'Dropping constraint %s on table %s (to be dropped)',
+ constraint[0], constraint[3])
+ self.env.cr.execute(
+ "ALTER TABLE %s DROP CONSTRAINT %s",
+ (
+ IdentifierAdapter(constraint[3]),
+ IdentifierAdapter(constraint[0])
+ ))
+
+ self.logger.info(
+ 'Dropping table %s', line.name)
+ self.env.cr.execute(
+ "DROP TABLE %s", (IdentifierAdapter(line.name),))
+ line.write({'purged': True})
+ return True
+
+
+class CleanupPurgeWizardTable(models.TransientModel):
+ _inherit = 'cleanup.purge.wizard'
+ _name = 'cleanup.purge.wizard.table'
+ _description = 'Purge tables'
+
+ @api.model
+ def find(self):
+ """
+ Search for tables that cannot be instantiated.
+ Ignore views for now.
+ """
+ # Start out with known tables with no model
+ known_tables = ['wkf_witm_trans']
+ for model in self.env['ir.model'].search([]):
+ if model.model not in self.env:
+ continue
+ model_pool = self.env[model.model]
+ known_tables.append(model_pool._table)
+ known_tables += [
+ column._sql_names(model_pool)[0]
+ for column in model_pool._columns.values()
+ if (column._type == 'many2many' and
+ hasattr(column, '_rel')) # unstored function fields of
+ # type m2m don't have _rel
+ ]
+
+ self.env.cr.execute(
+ """
+ SELECT table_name FROM information_schema.tables
+ WHERE table_schema = 'public' AND table_type = 'BASE TABLE'
+ AND table_name NOT IN %s""", (tuple(known_tables),))
+
+ res = [(0, 0, {'name': row[0]}) for row in self.env.cr.fetchall()]
+ if not res:
+ raise UserError(_('No orphaned tables found'))
+ return res
+
+ purge_line_ids = fields.One2many(
+ 'cleanup.purge.line.table', 'wizard_id', 'Tables to purge')
diff --git a/database_cleanup/models/purge_wizard.py b/database_cleanup/models/purge_wizard.py
new file mode 100644
index 00000000000..aa44ffe84e9
--- /dev/null
+++ b/database_cleanup/models/purge_wizard.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+# © 2014-2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+import logging
+from openerp import _, api, fields, models
+from openerp.exceptions import AccessDenied
+
+
+class CleanupPurgeLine(models.AbstractModel):
+ """ Abstract base class for the purge wizard lines """
+ _name = 'cleanup.purge.line'
+ _order = 'name'
+
+ name = fields.Char('Name', readonly=True)
+ purged = fields.Boolean('Purged', readonly=True)
+ wizard_id = fields.Many2one('cleanup.purge.wizard')
+
+ logger = logging.getLogger('openerp.addons.database_cleanup')
+
+ @api.multi
+ def purge(self):
+ raise NotImplementedError
+
+ @api.model
+ def create(self, values):
+ # make sure the user trying this is actually supposed to do it
+ if not self.env.ref('database_cleanup.menu_database_cleanup')\
+ .parent_id._filter_visible_menus():
+ raise AccessDenied
+ return super(CleanupPurgeLine, self).create(values)
+
+
+class PurgeWizard(models.AbstractModel):
+ """ Abstract base class for the purge wizards """
+ _name = 'cleanup.purge.wizard'
+ _description = 'Purge stuff'
+
+ @api.model
+ def default_get(self, fields_list):
+ res = super(PurgeWizard, self).default_get(fields_list)
+ if 'purge_line_ids' in fields_list:
+ res['purge_line_ids'] = self.find()
+ return res
+
+ @api.multi
+ def find(self):
+ raise NotImplementedError
+
+ @api.multi
+ def purge_all(self):
+ self.mapped('purge_line_ids').purge()
+ return True
+
+ @api.model
+ def get_wizard_action(self):
+ wizard = self.create({})
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': wizard.display_name,
+ 'views': [(False, 'form')],
+ 'res_model': self._name,
+ 'res_id': wizard.id,
+ 'flags': {
+ 'action_buttons': False,
+ 'sidebar': False,
+ },
+ }
+
+ @api.multi
+ def select_lines(self):
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': _('Select lines to purge'),
+ 'views': [(False, 'tree'), (False, 'form')],
+ 'res_model': self._fields['purge_line_ids'].comodel_name,
+ 'domain': [('wizard_id', 'in', self.ids)],
+ }
+
+ @api.multi
+ def name_get(self):
+ return [
+ (this.id, self._description)
+ for this in self
+ ]
+
+ @api.model
+ def create(self, values):
+ # make sure the user trying this is actually supposed to do it
+ if not self.env.ref('database_cleanup.menu_database_cleanup')\
+ .parent_id._filter_visible_menus():
+ raise AccessDenied
+ return super(PurgeWizard, self).create(values)
+
+ purge_line_ids = fields.One2many('cleanup.purge.line', 'wizard_id')
diff --git a/database_cleanup/tests/__init__.py b/database_cleanup/tests/__init__.py
new file mode 100644
index 00000000000..265497c3771
--- /dev/null
+++ b/database_cleanup/tests/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# © 2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from . import test_database_cleanup
diff --git a/database_cleanup/tests/test_database_cleanup.py b/database_cleanup/tests/test_database_cleanup.py
new file mode 100644
index 00000000000..f04609f1c17
--- /dev/null
+++ b/database_cleanup/tests/test_database_cleanup.py
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+# © 2016 Therp BV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from psycopg2 import ProgrammingError
+from openerp.tools import config
+from openerp.tests.common import TransactionCase
+
+
+class TestDatabaseCleanup(TransactionCase):
+ def test_database_cleanup(self):
+ # create an orphaned column
+ self.cr.execute(
+ 'alter table res_users add column database_cleanup_test int')
+ purge_columns = self.env['cleanup.purge.wizard.column'].create({})
+ purge_columns.purge_all()
+ # must be removed by the wizard
+ with self.assertRaises(ProgrammingError):
+ with self.registry.cursor() as cr:
+ cr.execute('select database_cleanup_test from res_users')
+
+ # create a data entry pointing nowhere
+ self.cr.execute('select max(id) + 1 from res_users')
+ self.env['ir.model.data'].create({
+ 'module': 'database_cleanup',
+ 'name': 'test_no_data_entry',
+ 'model': 'res.users',
+ 'res_id': self.cr.fetchone()[0],
+ })
+ purge_data = self.env['cleanup.purge.wizard.data'].create({})
+ purge_data.purge_all()
+ # must be removed by the wizard
+ with self.assertRaises(ValueError):
+ self.env.ref('database_cleanup.test_no_data_entry')
+
+ # create a nonexistent model
+ self.env['ir.model'].create({
+ 'name': 'Database cleanup test model',
+ 'model': 'x_database.cleanup.test.model',
+ })
+ self.env.cr.execute(
+ 'insert into ir_attachment (name, res_model, res_id, type) values '
+ "('test attachment', 'database.cleanup.test.model', 42, 'binary')")
+ self.registry.models.pop('x_database.cleanup.test.model')
+ self.registry._pure_function_fields.pop(
+ 'x_database.cleanup.test.model')
+ purge_models = self.env['cleanup.purge.wizard.model'].create({})
+ purge_models.purge_all()
+ # must be removed by the wizard
+ self.assertFalse(self.env['ir.model'].search([
+ ('model', '=', 'x_database.cleanup.test.model'),
+ ]))
+
+ # create a nonexistent module
+ self.env['ir.module.module'].create({
+ 'name': 'database_cleanup_test',
+ 'state': 'to upgrade',
+ })
+ purge_modules = self.env['cleanup.purge.wizard.module'].create({})
+ # this reloads our registry, and we don't want to run tests twice
+ config.options['test_enable'] = False
+ purge_modules.purge_all()
+ config.options['test_enable'] = True
+ # must be removed by the wizard
+ self.assertFalse(self.env['ir.module.module'].search([
+ ('name', '=', 'database_cleanup_test'),
+ ]))
+
+ # create an orphaned table
+ self.env.cr.execute('create table database_cleanup_test (test int)')
+ purge_tables = self.env['cleanup.purge.wizard.table'].create({})
+ purge_tables.purge_all()
+ with self.assertRaises(ProgrammingError):
+ with self.registry.cursor() as cr:
+ self.env.cr.execute('select * from database_cleanup_test')
diff --git a/database_cleanup/view/menu.xml b/database_cleanup/views/menu.xml
similarity index 100%
rename from database_cleanup/view/menu.xml
rename to database_cleanup/views/menu.xml
diff --git a/database_cleanup/view/purge_columns.xml b/database_cleanup/views/purge_columns.xml
similarity index 54%
rename from database_cleanup/view/purge_columns.xml
rename to database_cleanup/views/purge_columns.xml
index 0f335ea2863..1264a89072f 100644
--- a/database_cleanup/view/purge_columns.xml
+++ b/database_cleanup/views/purge_columns.xml
@@ -1,32 +1,14 @@
-
- Form view for purge columns wizard
cleanup.purge.wizard.column
+
+ primary
-
+
+
+
@@ -40,15 +22,12 @@
cleanup.purge.line.column
+
+ primary
-
-
+
-
-
-
+
diff --git a/database_cleanup/view/purge_data.xml b/database_cleanup/views/purge_data.xml
similarity index 53%
rename from database_cleanup/view/purge_data.xml
rename to database_cleanup/views/purge_data.xml
index 7fa361b909d..3f9988be3b2 100644
--- a/database_cleanup/view/purge_data.xml
+++ b/database_cleanup/views/purge_data.xml
@@ -1,32 +1,14 @@
-
- Form view for purge data wizard
cleanup.purge.wizard.data
+
+ primary
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -40,15 +22,12 @@
cleanup.purge.line.data
+
+ primary
-
-
+
-
-
-
+
diff --git a/database_cleanup/view/purge_menus.xml b/database_cleanup/views/purge_menus.xml
similarity index 56%
rename from database_cleanup/view/purge_menus.xml
rename to database_cleanup/views/purge_menus.xml
index 23913cfe1b6..0bec65143b2 100644
--- a/database_cleanup/view/purge_menus.xml
+++ b/database_cleanup/views/purge_menus.xml
@@ -2,29 +2,11 @@
@@ -38,14 +20,10 @@
diff --git a/database_cleanup/view/purge_models.xml b/database_cleanup/views/purge_models.xml
similarity index 54%
rename from database_cleanup/view/purge_models.xml
rename to database_cleanup/views/purge_models.xml
index 754666e6dba..5b9401bebf8 100644
--- a/database_cleanup/view/purge_models.xml
+++ b/database_cleanup/views/purge_models.xml
@@ -1,31 +1,12 @@
-
- Form view for purge models wizard
cleanup.purge.wizard.model
+
+ primary
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -39,14 +20,10 @@
cleanup.purge.line.model
+
+ primary
-
-
-
-
-
+
diff --git a/database_cleanup/view/purge_modules.xml b/database_cleanup/views/purge_modules.xml
similarity index 54%
rename from database_cleanup/view/purge_modules.xml
rename to database_cleanup/views/purge_modules.xml
index 73429b517ed..f5f6d2c4dc3 100644
--- a/database_cleanup/view/purge_modules.xml
+++ b/database_cleanup/views/purge_modules.xml
@@ -1,31 +1,12 @@
-
- Form view for purge modules wizard
cleanup.purge.wizard.module
+
+ primary
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -39,14 +20,10 @@
cleanup.purge.line.module
+
+ primary
-
-
-
-
-
+
diff --git a/database_cleanup/view/purge_tables.xml b/database_cleanup/views/purge_tables.xml
similarity index 57%
rename from database_cleanup/view/purge_tables.xml
rename to database_cleanup/views/purge_tables.xml
index 66bd28cc1f6..9cf603cb9cc 100644
--- a/database_cleanup/view/purge_tables.xml
+++ b/database_cleanup/views/purge_tables.xml
@@ -1,27 +1,12 @@
-
- Form view for purge tables wizard
cleanup.purge.wizard.table
+
+ primary
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -35,14 +20,10 @@
cleanup.purge.line.table
+
+ primary
-
-
-
-
-
+
diff --git a/database_cleanup/views/purge_wizard.xml b/database_cleanup/views/purge_wizard.xml
new file mode 100644
index 00000000000..40417f3a813
--- /dev/null
+++ b/database_cleanup/views/purge_wizard.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ cleanup.purge.wizard
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cleanup.purge.line
+
+
+
+
+
+
+
+
+
+
From 1a2492f32467420bd1f2301dadbd2a557da92460 Mon Sep 17 00:00:00 2001
From: Stefan Rijnhart
Date: Tue, 9 Aug 2016 07:57:31 +0200
Subject: [PATCH 047/770] [RFR] Explicit access rights so that tests can run
Fixes #505
---
database_cleanup/README.rst | 3 ++-
database_cleanup/models/purge_wizard.py | 8 ++++----
database_cleanup/views/menu.xml | 1 +
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/database_cleanup/README.rst b/database_cleanup/README.rst
index 2adbf2b4a7f..42222ae545c 100644
--- a/database_cleanup/README.rst
+++ b/database_cleanup/README.rst
@@ -20,7 +20,8 @@ Usage
=====
After installation of this module, go to the Settings menu -> Technical ->
-Database cleanup. Go through the modules, models, columns and tables
+Database cleanup. This menu is only available to members of the *Access Rights*
+group. Go through the modules, models, columns and tables
entries under this menu (in that order) and find out if there is orphaned data
in your database. You can either delete entries by line, or sweep all entries
in one big step (if you are *really* confident).
diff --git a/database_cleanup/models/purge_wizard.py b/database_cleanup/models/purge_wizard.py
index aa44ffe84e9..0e1645adc76 100644
--- a/database_cleanup/models/purge_wizard.py
+++ b/database_cleanup/models/purge_wizard.py
@@ -24,8 +24,8 @@ def purge(self):
@api.model
def create(self, values):
# make sure the user trying this is actually supposed to do it
- if not self.env.ref('database_cleanup.menu_database_cleanup')\
- .parent_id._filter_visible_menus():
+ if self.env.ref(
+ 'base.group_erp_manager') not in self.env.user.groups_id:
raise AccessDenied
return super(CleanupPurgeLine, self).create(values)
@@ -86,8 +86,8 @@ def name_get(self):
@api.model
def create(self, values):
# make sure the user trying this is actually supposed to do it
- if not self.env.ref('database_cleanup.menu_database_cleanup')\
- .parent_id._filter_visible_menus():
+ if self.env.ref(
+ 'base.group_erp_manager') not in self.env.user.groups_id:
raise AccessDenied
return super(PurgeWizard, self).create(values)
diff --git a/database_cleanup/views/menu.xml b/database_cleanup/views/menu.xml
index 82577bdc964..0796f907b07 100644
--- a/database_cleanup/views/menu.xml
+++ b/database_cleanup/views/menu.xml
@@ -7,6 +7,7 @@
+
+
+
+
+
diff --git a/database_cleanup/views/purge_properties.xml b/database_cleanup/views/purge_properties.xml
new file mode 100644
index 00000000000..cf9b8c456a3
--- /dev/null
+++ b/database_cleanup/views/purge_properties.xml
@@ -0,0 +1,49 @@
+
+
+
+
+ cleanup.purge.wizard.property
+
+ primary
+
+
+
+
+
+
+ Purge properties
+ ir.actions.server
+ code
+
+ action = self.get_wizard_action(cr, uid, context=context)
+
+
+
+ cleanup.purge.line.property
+
+ primary
+
+
+
+
+
+
+
+
+ Purge
+ ir.actions.server
+ code
+
+ self.purge(cr, uid, context.get('active_ids', []), context)
+
+
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.property
+
+
+
+
+
diff --git a/database_cleanup/views/purge_wizard.xml b/database_cleanup/views/purge_wizard.xml
index 40417f3a813..0fd88e793e2 100644
--- a/database_cleanup/views/purge_wizard.xml
+++ b/database_cleanup/views/purge_wizard.xml
@@ -9,7 +9,7 @@
-
+
@@ -22,13 +22,16 @@
+
+ Nothing found to clean up.
+
cleanup.purge.line
-
+
Date: Wed, 21 Jun 2017 14:05:52 +0200
Subject: [PATCH 056/770] [MIG] database_cleanup: Migration to version 10.0
Using new base model inheritance.
---
database_cleanup/README.rst | 8 +-
database_cleanup/__openerp__.py | 2 +-
database_cleanup/i18n/am.po | 2 +-
database_cleanup/i18n/ca.po | 147 +++++-------------
database_cleanup/i18n/database_cleanup.pot | 2 +-
database_cleanup/i18n/de.po | 2 +-
database_cleanup/i18n/el_GR.po | 2 +-
database_cleanup/i18n/es.po | 2 +-
database_cleanup/i18n/es_ES.po | 2 +-
database_cleanup/i18n/fi.po | 2 +-
database_cleanup/i18n/fr.po | 2 +-
database_cleanup/i18n/fr_CA.po | 2 +-
database_cleanup/i18n/gl.po | 2 +-
database_cleanup/i18n/hr.po | 2 +-
database_cleanup/i18n/hr_HR.po | 2 +-
database_cleanup/i18n/it.po | 2 +-
database_cleanup/i18n/nl.po | 2 +-
database_cleanup/i18n/pt.po | 2 +-
database_cleanup/i18n/pt_BR.po | 2 +-
database_cleanup/i18n/pt_PT.po | 2 +-
database_cleanup/i18n/ru.po | 2 +-
database_cleanup/i18n/sl.po | 2 +-
database_cleanup/i18n/tr.po | 2 +-
database_cleanup/i18n/zh_CN.po | 2 +-
database_cleanup/models/create_indexes.py | 8 +-
database_cleanup/models/purge_columns.py | 19 ++-
database_cleanup/models/purge_data.py | 13 +-
database_cleanup/models/purge_menus.py | 16 +-
database_cleanup/models/purge_models.py | 49 +++---
database_cleanup/models/purge_modules.py | 19 ++-
database_cleanup/models/purge_properties.py | 6 +-
database_cleanup/models/purge_tables.py | 22 +--
database_cleanup/models/purge_wizard.py | 6 +-
.../tests/test_database_cleanup.py | 32 ++--
database_cleanup/views/create_indexes.xml | 4 +-
database_cleanup/views/menu.xml | 118 +++++++-------
database_cleanup/views/purge_columns.xml | 88 ++++++-----
database_cleanup/views/purge_data.xml | 88 ++++++-----
database_cleanup/views/purge_menus.xml | 85 +++++-----
database_cleanup/views/purge_models.xml | 85 +++++-----
database_cleanup/views/purge_modules.xml | 85 +++++-----
database_cleanup/views/purge_properties.xml | 82 +++++-----
database_cleanup/views/purge_tables.xml | 84 +++++-----
database_cleanup/views/purge_wizard.xml | 84 +++++-----
44 files changed, 580 insertions(+), 612 deletions(-)
diff --git a/database_cleanup/README.rst b/database_cleanup/README.rst
index 42222ae545c..72611c6e4e9 100644
--- a/database_cleanup/README.rst
+++ b/database_cleanup/README.rst
@@ -6,13 +6,13 @@
Database cleanup
================
-Clean your OpenERP database from remnants of modules, models, columns and
+Clean your Odoo database from remnants of modules, models, columns and
tables left by uninstalled modules (prior to 7.0) or a homebrew database
-upgrade to a new major version of OpenERP.
+upgrade to a new major version of Odoo.
Caution! This module is potentially harmful and can *easily* destroy the
integrity of your data. Do not use if you are not entirely comfortable
-with the technical details of the OpenERP data model of *all* the modules
+with the technical details of the Odoo data model of *all* the modules
that have ever been installed on your database, and do not purge any module,
model, column or table if you do not know exactly what you are doing.
@@ -28,7 +28,7 @@ in one big step (if you are *really* confident).
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/149/9.0
+ :target: https://runbot.odoo-community.org/runbot/149/10.0
Bug Tracker
===========
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index 8230ab70c80..f3cc470014a 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -3,7 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Database cleanup',
- 'version': '9.0.1.0.0',
+ 'version': '10.0.1.0.0',
'author': "Therp BV,Odoo Community Association (OCA)",
'depends': ['base'],
'license': 'AGPL-3',
diff --git a/database_cleanup/i18n/am.po b/database_cleanup/i18n/am.po
index ae4d4a2cb2c..92f41b9f6eb 100644
--- a/database_cleanup/i18n/am.po
+++ b/database_cleanup/i18n/am.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/ca.po b/database_cleanup/i18n/ca.po
index 439534d4ab6..f1c85795a42 100644
--- a/database_cleanup/i18n/ca.po
+++ b/database_cleanup/i18n/ca.po
@@ -1,4 +1,3 @@
-# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
#
@@ -7,7 +6,7 @@
# Marc Tormo i Bochaca , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
@@ -22,7 +21,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
msgid "Columns to purge"
-msgstr ""
+msgstr "Columnes a purgar"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_line_action
@@ -99,17 +98,17 @@ msgstr "Creat el"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_data_id
msgid "Data entry"
-msgstr ""
+msgstr "Entrada de dades"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_purge_line_ids
msgid "Data to purge"
-msgstr ""
+msgstr "Dades a purgar"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_database_cleanup
msgid "Database cleanup"
-msgstr ""
+msgstr "Neteja de la base de dades"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_display_name
@@ -131,12 +130,7 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_display_name
msgid "Display Name"
-msgstr "Veure el nom"
-
-#. module: database_cleanup
-#: selection:cleanup.purge.line.property,reason:0
-msgid "Duplicated property"
-msgstr ""
+msgstr "Nom a mostrar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
@@ -235,32 +229,32 @@ msgstr "Darrera Actualització el"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_menu_id
msgid "Menu entry"
-msgstr ""
+msgstr "Entrada de menú"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_purge_line_ids
msgid "Menus to purge"
-msgstr ""
+msgstr "Menús a purgar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
msgid "Models"
-msgstr "Models "
+msgstr "Models"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_purge_line_ids
msgid "Models to purge"
-msgstr ""
+msgstr "Models a purgar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_purge_line_ids
msgid "Modules to purge"
-msgstr ""
+msgstr "Mòduls a purgar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_name
@@ -279,37 +273,37 @@ msgstr "Nom"
#: code:addons/database_cleanup/models/purge_menus.py:46
#, python-format
msgid "No dangling menu entries found"
-msgstr ""
+msgstr "No s'han trobat entrades de menú penjades"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_modules.py:79
#, python-format
msgid "No modules found to purge"
-msgstr ""
+msgstr "No s'han trobat mòduls per purgar"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_columns.py:123
#, python-format
msgid "No orphaned columns found"
-msgstr ""
+msgstr "No s'han trobat columnes orfes"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_data.py:64
#, python-format
msgid "No orphaned data entries found"
-msgstr ""
+msgstr "No s'han trobat entrades de dades orfes"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_models.py:116
#, python-format
msgid "No orphaned models found"
-msgstr ""
+msgstr "No s'han trobat models orfes"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_tables.py:102
#, python-format
msgid "No orphaned tables found"
-msgstr ""
+msgstr "No s'han trobat taules orfes"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
@@ -336,7 +330,7 @@ msgstr ""
#: model:ir.actions.server,name:database_cleanup.action_purge_table_line
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Purge"
-msgstr ""
+msgstr "Purgar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
@@ -347,40 +341,34 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_wizard_id
msgid "Purge Wizard"
-msgstr ""
+msgstr "Assistent de purga"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Purge all"
-msgstr ""
+msgstr "Purgar tot"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_columns
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_column
msgid "Purge columns"
-msgstr ""
+msgstr "Purgar columnes"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_data
msgid "Purge data"
-msgstr ""
+msgstr "Purgar dades"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_data
msgid "Purge data entries that refer to missing resources"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
+msgstr "Purgar entrades de dades que fan referència a recursos perduts"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
msgid "Purge menus"
-msgstr ""
+msgstr "Purgar menús"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_models
@@ -388,38 +376,38 @@ msgstr ""
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_model
#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
msgid "Purge models"
-msgstr ""
+msgstr "Purgar models"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_modules
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_module
msgid "Purge modules"
-msgstr ""
+msgstr "Purgar mòduls"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_columns
msgid "Purge obsolete columns"
-msgstr ""
+msgstr "Purgar columnes obsoletes"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_data
msgid "Purge obsolete data entries"
-msgstr ""
+msgstr "Purgar entrades de dades obsoletes"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_menus
msgid "Purge obsolete menu entries"
-msgstr ""
+msgstr "Purgar entrades de menú obsoletes"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_models
msgid "Purge obsolete models"
-msgstr ""
+msgstr "Purgar models obsolets"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_modules
msgid "Purge obsolete modules"
-msgstr ""
+msgstr "Purgar mòduls obsolets"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_property
@@ -429,30 +417,18 @@ msgstr ""
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
msgid "Purge obsolete tables"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.actions.server,name:database_cleanup.action_purge_property
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_property
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_property
-msgid "Purge properties"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard
-msgid "Purge stuff"
-msgstr ""
+msgstr "Purgar taules obsoletes"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_tables
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_table
msgid "Purge tables"
-msgstr ""
+msgstr "Purgar taules"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
msgid "Purge this model"
-msgstr ""
+msgstr "Purgar aquest model"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_purged
@@ -464,7 +440,7 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_purged
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_purged
msgid "Purged"
-msgstr ""
+msgstr "Purgat"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_reason
@@ -479,61 +455,16 @@ msgstr ""
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Select lines"
-msgstr ""
+msgstr "Seleccionar línies"
#. module: database_cleanup
#: code:addons/database_cleanup/models/purge_wizard.py:73
#, python-format
msgid "Select lines to purge"
-msgstr ""
+msgstr "Seleccionar línies a purgar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_purge_line_ids
msgid "Tables to purge"
-msgstr ""
+msgstr "Taules a purgar"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
-msgid "cleanup.create_indexes.line"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
-msgid "cleanup.purge.line"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_column
-msgid "cleanup.purge.line.column"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_data
-msgid "cleanup.purge.line.data"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_menu
-msgid "cleanup.purge.line.menu"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_module
-msgid "cleanup.purge.line.module"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_table
-msgid "cleanup.purge.line.table"
-msgstr ""
-
-#. module: database_cleanup
-#: model:ir.model,name:database_cleanup.model_ir_model_data
-msgid "ir.model.data"
-msgstr ""
diff --git a/database_cleanup/i18n/database_cleanup.pot b/database_cleanup/i18n/database_cleanup.pot
index 1dbecdeebab..237f7a21b14 100644
--- a/database_cleanup/i18n/database_cleanup.pot
+++ b/database_cleanup/i18n/database_cleanup.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 8.0\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-11 06:45+0000\n"
"PO-Revision-Date: 2015-08-11 06:45+0000\n"
diff --git a/database_cleanup/i18n/de.po b/database_cleanup/i18n/de.po
index d2e4f57072d..527e9b8d6de 100644
--- a/database_cleanup/i18n/de.po
+++ b/database_cleanup/i18n/de.po
@@ -7,7 +7,7 @@
# Rudolf Schnapka , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/el_GR.po b/database_cleanup/i18n/el_GR.po
index a5901fcba9e..55cd32982c2 100644
--- a/database_cleanup/i18n/el_GR.po
+++ b/database_cleanup/i18n/el_GR.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/es.po b/database_cleanup/i18n/es.po
index fe0441bc758..49dd14f5d13 100644
--- a/database_cleanup/i18n/es.po
+++ b/database_cleanup/i18n/es.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/es_ES.po b/database_cleanup/i18n/es_ES.po
index 3a890958f93..cb8da34cb43 100644
--- a/database_cleanup/i18n/es_ES.po
+++ b/database_cleanup/i18n/es_ES.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/fi.po b/database_cleanup/i18n/fi.po
index 69bf22a1ccb..6d701267faf 100644
--- a/database_cleanup/i18n/fi.po
+++ b/database_cleanup/i18n/fi.po
@@ -7,7 +7,7 @@
# Jarmo Kortetjärvi , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/fr.po b/database_cleanup/i18n/fr.po
index 43890a7c30e..0dabcb01144 100644
--- a/database_cleanup/i18n/fr.po
+++ b/database_cleanup/i18n/fr.po
@@ -8,7 +8,7 @@
# dglucose , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/fr_CA.po b/database_cleanup/i18n/fr_CA.po
index 9c494a8bfc5..f9f7cf5836f 100644
--- a/database_cleanup/i18n/fr_CA.po
+++ b/database_cleanup/i18n/fr_CA.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/gl.po b/database_cleanup/i18n/gl.po
index 16a606183bf..3356048ad0f 100644
--- a/database_cleanup/i18n/gl.po
+++ b/database_cleanup/i18n/gl.po
@@ -7,7 +7,7 @@
# César Castro Cruz , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/hr.po b/database_cleanup/i18n/hr.po
index 69a013e9f13..a3da7c52c6e 100644
--- a/database_cleanup/i18n/hr.po
+++ b/database_cleanup/i18n/hr.po
@@ -7,7 +7,7 @@
# Ana-Maria Olujić , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/hr_HR.po b/database_cleanup/i18n/hr_HR.po
index a8ba2823b10..e8334ad8b1a 100644
--- a/database_cleanup/i18n/hr_HR.po
+++ b/database_cleanup/i18n/hr_HR.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/it.po b/database_cleanup/i18n/it.po
index d8a0a761d53..e7c7c51e19e 100644
--- a/database_cleanup/i18n/it.po
+++ b/database_cleanup/i18n/it.po
@@ -7,7 +7,7 @@
# Paolo Valier , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/nl.po b/database_cleanup/i18n/nl.po
index d579c755525..4d5b28b8f88 100644
--- a/database_cleanup/i18n/nl.po
+++ b/database_cleanup/i18n/nl.po
@@ -8,7 +8,7 @@
# Erwin van der Ploeg , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/pt.po b/database_cleanup/i18n/pt.po
index f7f60ce259a..8f45c217c7b 100644
--- a/database_cleanup/i18n/pt.po
+++ b/database_cleanup/i18n/pt.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/pt_BR.po b/database_cleanup/i18n/pt_BR.po
index 138ae5470de..d8608f27e05 100644
--- a/database_cleanup/i18n/pt_BR.po
+++ b/database_cleanup/i18n/pt_BR.po
@@ -7,7 +7,7 @@
# danimaribeiro , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/pt_PT.po b/database_cleanup/i18n/pt_PT.po
index a123d2237a6..3a4b873c980 100644
--- a/database_cleanup/i18n/pt_PT.po
+++ b/database_cleanup/i18n/pt_PT.po
@@ -7,7 +7,7 @@
# Pedro Castro Silva , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/ru.po b/database_cleanup/i18n/ru.po
index b6bc82f40a8..9a0ec657dd3 100644
--- a/database_cleanup/i18n/ru.po
+++ b/database_cleanup/i18n/ru.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/sl.po b/database_cleanup/i18n/sl.po
index d265901002b..534dab0bd63 100644
--- a/database_cleanup/i18n/sl.po
+++ b/database_cleanup/i18n/sl.po
@@ -7,7 +7,7 @@
# Matjaž Mozetič , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/tr.po b/database_cleanup/i18n/tr.po
index 2d907328a14..00934948f52 100644
--- a/database_cleanup/i18n/tr.po
+++ b/database_cleanup/i18n/tr.po
@@ -7,7 +7,7 @@
# Ahmet Altinisik , 2017
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/i18n/zh_CN.po b/database_cleanup/i18n/zh_CN.po
index 90a54fd3e8f..a2dc4d5f4d0 100644
--- a/database_cleanup/i18n/zh_CN.po
+++ b/database_cleanup/i18n/zh_CN.po
@@ -6,7 +6,7 @@
# OCA Transbot , 2016
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
diff --git a/database_cleanup/models/create_indexes.py b/database_cleanup/models/create_indexes.py
index ab98d5c2aa2..8aa072f68cf 100644
--- a/database_cleanup/models/create_indexes.py
+++ b/database_cleanup/models/create_indexes.py
@@ -2,7 +2,7 @@
# © 2017 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from ..identifier_adapter import IdentifierAdapter
-from openerp import api, fields, models
+from odoo import api, fields, models
class CreateIndexesLine(models.TransientModel):
@@ -48,6 +48,7 @@ class CreateIndexesWizard(models.TransientModel):
@api.multi
def find(self):
+ res = list()
for field in self.env['ir.model.fields'].search([
('index', '=', True),
]):
@@ -74,7 +75,8 @@ def find(self):
if not self.env.cr.rowcount:
continue
- yield (0, 0, {
+ res.append((0, 0, {
'name': '%s.%s' % (field.model, field.name),
'field_id': field.id,
- })
+ }))
+ return res
diff --git a/database_cleanup/models/purge_columns.py b/database_cleanup/models/purge_columns.py
index 3a3718c214b..be291891330 100644
--- a/database_cleanup/models/purge_columns.py
+++ b/database_cleanup/models/purge_columns.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import _, api, fields, models
-from openerp.exceptions import UserError
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
from ..identifier_adapter import IdentifierAdapter
@@ -20,7 +20,12 @@ def purge(self):
"""
Unlink columns upon manual confirmation.
"""
- for line in self:
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.column']\
+ .browse(self._context.get('active_ids'))
+ for line in objs:
if line.purged:
continue
model_pool = self.env[line.model_id.model]
@@ -71,12 +76,10 @@ def get_orphaned_columns(self, model_pools):
of fields which have been removed
"""
columns = list(set([
- column
+ column.name
for model_pool in model_pools
- for column in model_pool._columns
- if not (isinstance(model_pool._columns[column],
- fields.fields.function) and
- not model_pool._columns[column].store)
+ for column in model_pool._fields.values()
+ if not (column.compute is not None and not column.store)
]))
columns += models.MAGIC_COLUMNS
columns += self.blacklist.get(model_pools[0]._table, [])
diff --git a/database_cleanup/models/purge_data.py b/database_cleanup/models/purge_data.py
index 9e1817ff808..f7ca49dee9b 100644
--- a/database_cleanup/models/purge_data.py
+++ b/database_cleanup/models/purge_data.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import _, api, fields, models
-from openerp.exceptions import UserError
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
from ..identifier_adapter import IdentifierAdapter
@@ -17,10 +17,15 @@ class CleanupPurgeLineData(models.TransientModel):
@api.multi
def purge(self):
"""Unlink data entries upon manual confirmation."""
- to_unlink = self.filtered(lambda x: not x.purged and x.data_id)
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.data']\
+ .browse(self._context.get('active_ids'))
+ to_unlink = objs.filtered(lambda x: not x.purged and x.data_id)
self.logger.info('Purging data entries: %s', to_unlink.mapped('name'))
to_unlink.mapped('data_id').unlink()
- return self.write({'purged': True})
+ return to_unlink.write({'purged': True})
class CleanupPurgeWizardData(models.TransientModel):
diff --git a/database_cleanup/models/purge_menus.py b/database_cleanup/models/purge_menus.py
index 02716493365..bd6f3c8cb12 100644
--- a/database_cleanup/models/purge_menus.py
+++ b/database_cleanup/models/purge_menus.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import _, api, fields, models
-from openerp.exceptions import UserError
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
class CleanupPurgeLineMenu(models.TransientModel):
@@ -15,8 +15,16 @@ class CleanupPurgeLineMenu(models.TransientModel):
@api.multi
def purge(self):
- self.mapped('menu_id').unlink()
- return self.write({'purged': True})
+ """Unlink menu entries upon manual confirmation."""
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.menu']\
+ .browse(self._context.get('active_ids'))
+ to_unlink = objs.filtered(lambda x: not x.purged and x.menu_id)
+ self.logger.info('Purging menu entries: %s', to_unlink.mapped('name'))
+ to_unlink.mapped('menu_id').unlink()
+ return to_unlink.write({'purged': True})
class CleanupPurgeWizardMenu(models.TransientModel):
diff --git a/database_cleanup/models/purge_models.py b/database_cleanup/models/purge_models.py
index 181ccd10167..5adcf4787d2 100644
--- a/database_cleanup/models/purge_models.py
+++ b/database_cleanup/models/purge_models.py
@@ -1,15 +1,14 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import _, api, models, fields
-from openerp.exceptions import UserError
-from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+from odoo import _, api, models, fields
+from odoo.exceptions import UserError
+from odoo.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
class IrModel(models.Model):
_inherit = 'ir.model'
- @api.multi
def _drop_table(self):
# Allow to skip this step during model unlink
# The super method crashes if the model cannot be instantiated
@@ -17,25 +16,23 @@ def _drop_table(self):
return True
return super(IrModel, self)._drop_table()
- @api.multi
- def _inherited_models(self, field_name, arg):
+ @api.depends()
+ def _inherited_models(self):
"""this function crashes for undefined models"""
- result = dict((i, []) for i in self.ids)
- existing_model_ids = [
- this.id for this in self if this.model in self.env
- ]
- super_result = super(IrModel, self.browse(existing_model_ids))\
- ._inherited_models(field_name, arg)
- result.update(super_result)
- return result
-
- def _register_hook(self, cr):
- # patch the function field instead of overwriting it
- if self._columns['inherited_model_ids']._fnct !=\
- self._inherited_models.__func__:
- self._columns['inherited_model_ids']._fnct =\
- self._inherited_models.__func__
- return super(IrModel, self)._register_hook(cr)
+ existing_model_ids = self.filtered(lambda x: x.model in self.env)
+ super(IrModel, existing_model_ids)._inherited_models()
+
+
+class IrModelFields(models.Model):
+ _inherit = 'ir.model.fields'
+
+ @api.multi
+ def _prepare_update(self):
+ # Allow to skip this step during model unlink
+ # The super method crashes if the model cannot be instantiated
+ if self.env.context.get('no_prepare_update'):
+ return True
+ return super(IrModelFields, self)._prepare_update()
class CleanupPurgeLineModel(models.TransientModel):
@@ -55,9 +52,15 @@ def purge(self):
MODULE_UNINSTALL_FLAG: True,
'no_drop_table': True,
'purge': True,
+ 'no_prepare_update': True,
}
- for line in self:
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.model']\
+ .browse(self._context.get('active_ids'))
+ for line in objs:
self.env.cr.execute(
"SELECT id, model from ir_model WHERE model = %s",
(line.name,))
diff --git a/database_cleanup/models/purge_modules.py b/database_cleanup/models/purge_modules.py
index 6b20b9a6fee..bdfe3fcfa49 100644
--- a/database_cleanup/models/purge_modules.py
+++ b/database_cleanup/models/purge_modules.py
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import _, api, fields, models
-from openerp.exceptions import UserError
-from openerp.modules.registry import RegistryManager
-from openerp.modules.module import get_module_path
-from openerp.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
+from odoo.modules.registry import RegistryManager
+from odoo.modules.module import get_module_path
+from odoo.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
class IrModelData(models.Model):
@@ -41,7 +41,12 @@ def purge(self):
Uninstall modules upon manual confirmation, then reload
the database.
"""
- module_names = self.filtered(lambda x: not x.purged).mapped('name')
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.module']\
+ .browse(self._context.get('active_ids'))
+ module_names = objs.filtered(lambda x: not x.purged).mapped('name')
modules = self.env['ir.module.module'].search([
('name', 'in', module_names)
])
@@ -54,7 +59,7 @@ def purge(self):
self.env.cr.commit() # pylint: disable=invalid-commit
RegistryManager.new(self.env.cr.dbname, update_module=True)
modules.unlink()
- return self.write({'purged': True})
+ return objs.write({'purged': True})
class CleanupPurgeWizardModule(models.TransientModel):
diff --git a/database_cleanup/models/purge_properties.py b/database_cleanup/models/purge_properties.py
index bd1f44ac321..7adbf440b99 100644
--- a/database_cleanup/models/purge_properties.py
+++ b/database_cleanup/models/purge_properties.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import api, models, fields
+from odoo import api, models, fields
REASON_DUPLICATE = 1
REASON_DEFAULT = 2
@@ -76,7 +76,7 @@ def find(self):
for redundant_property in self.env['ir.property'].search(domain):
result.append({
'name': '%s@%s: %s' % (
- prop.name, prop.res_id, prop.get_by_record(prop)
+ prop.name, prop.res_id, prop.get_by_record()
),
'property_id': redundant_property.id,
'reason': REASON_DEFAULT,
@@ -98,7 +98,7 @@ def find(self):
])[1:]:
result.append({
'name': '%s@%s: %s' % (
- prop.name, prop.res_id, prop.get_by_record(prop)
+ prop.name, prop.res_id, prop.get_by_record()
),
'property_id': prop.id,
'reason': REASON_DUPLICATE,
diff --git a/database_cleanup/models/purge_tables.py b/database_cleanup/models/purge_tables.py
index 62503f790a0..3ed41c81d12 100644
--- a/database_cleanup/models/purge_tables.py
+++ b/database_cleanup/models/purge_tables.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-from openerp import api, fields, models, _
-from openerp.exceptions import UserError
+from odoo import api, fields, models, _
+from odoo.exceptions import UserError
from ..identifier_adapter import IdentifierAdapter
@@ -18,8 +18,13 @@ def purge(self):
"""
Unlink tables upon manual confirmation.
"""
- tables = self.mapped('name')
- for line in self:
+ if self:
+ objs = self
+ else:
+ objs = self.env['cleanup.purge.line.table']\
+ .browse(self._context.get('active_ids'))
+ tables = objs.mapped('name')
+ for line in objs:
if line.purged:
continue
@@ -84,11 +89,10 @@ def find(self):
model_pool = self.env[model.model]
known_tables.append(model_pool._table)
known_tables += [
- column._sql_names(model_pool)[0]
- for column in model_pool._columns.values()
- if (column._type == 'many2many' and
- hasattr(column, '_rel')) # unstored function fields of
- # type m2m don't have _rel
+ column.relation
+ for column in model_pool._fields.values()
+ if column.type == 'many2many' and
+ (column.compute is None or column.store)
]
self.env.cr.execute(
diff --git a/database_cleanup/models/purge_wizard.py b/database_cleanup/models/purge_wizard.py
index 0e1645adc76..d678645b4f6 100644
--- a/database_cleanup/models/purge_wizard.py
+++ b/database_cleanup/models/purge_wizard.py
@@ -2,8 +2,8 @@
# © 2014-2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
-from openerp import _, api, fields, models
-from openerp.exceptions import AccessDenied
+from odoo import _, api, fields, models
+from odoo.exceptions import AccessDenied
class CleanupPurgeLine(models.AbstractModel):
@@ -15,7 +15,7 @@ class CleanupPurgeLine(models.AbstractModel):
purged = fields.Boolean('Purged', readonly=True)
wizard_id = fields.Many2one('cleanup.purge.wizard')
- logger = logging.getLogger('openerp.addons.database_cleanup')
+ logger = logging.getLogger('odoo.addons.database_cleanup')
@api.multi
def purge(self):
diff --git a/database_cleanup/tests/test_database_cleanup.py b/database_cleanup/tests/test_database_cleanup.py
index a886210e6dc..04fc8e06f43 100644
--- a/database_cleanup/tests/test_database_cleanup.py
+++ b/database_cleanup/tests/test_database_cleanup.py
@@ -2,9 +2,9 @@
# © 2016 Therp BV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from psycopg2 import ProgrammingError
-from openerp.modules.registry import RegistryManager
-from openerp.tools import config
-from openerp.tests.common import TransactionCase, at_install, post_install
+from odoo.modules.registry import Registry
+from odoo.tools import config
+from odoo.tests.common import TransactionCase, at_install, post_install
# Use post_install to get all models loaded more info: odoo/odoo#13458
@@ -15,6 +15,12 @@ def setUp(self):
super(TestDatabaseCleanup, self).setUp()
self.module = None
self.model = None
+ # Create one property for tests
+ self.env['ir.property'].create({
+ 'fields_id': self.env.ref('base.field_res_partner_name').id,
+ 'type': 'char',
+ 'value_text': 'My default partner name',
+ })
def test_database_cleanup(self):
# delete some index and check if our module recreated it
@@ -33,7 +39,7 @@ def test_database_cleanup(self):
purge_property.purge_all()
self.assertFalse(duplicate_property.exists())
# create an orphaned column
- self.cr.execute(
+ self.env.cr.execute(
'alter table res_partner add column database_cleanup_test int')
# We need use a model that is not blocked (Avoid use res.users)
partner_model = self.env['ir.model'].search([
@@ -45,16 +51,16 @@ def test_database_cleanup(self):
purge_columns.purge_all()
# must be removed by the wizard
with self.assertRaises(ProgrammingError):
- with self.registry.cursor() as cr:
+ with self.env.registry.cursor() as cr:
cr.execute('select database_cleanup_test from res_partner')
# create a data entry pointing nowhere
- self.cr.execute('select max(id) + 1 from res_users')
+ self.env.cr.execute('select max(id) + 1 from res_users')
self.env['ir.model.data'].create({
'module': 'database_cleanup',
'name': 'test_no_data_entry',
'model': 'res.users',
- 'res_id': self.cr.fetchone()[0],
+ 'res_id': self.env.cr.fetchone()[0],
})
purge_data = self.env['cleanup.purge.wizard.data'].create({})
purge_data.purge_all()
@@ -70,8 +76,8 @@ def test_database_cleanup(self):
self.env.cr.execute(
'insert into ir_attachment (name, res_model, res_id, type) values '
"('test attachment', 'database.cleanup.test.model', 42, 'binary')")
- self.registry.models.pop('x_database.cleanup.test.model')
- self.registry._pure_function_fields.pop(
+ self.env.registry.models.pop('x_database.cleanup.test.model')
+ self.env.registry._fields_by_model.pop(
'x_database.cleanup.test.model')
purge_models = self.env['cleanup.purge.wizard.model'].create({})
purge_models.purge_all()
@@ -89,7 +95,7 @@ def test_database_cleanup(self):
# this reloads our registry, and we don't want to run tests twice
# we also need the original registry for further tests, so save a
# reference to it
- original_registry = RegistryManager.registries[self.env.cr.dbname]
+ original_registry = Registry.registries[self.env.cr.dbname]
config.options['test_enable'] = False
purge_modules.purge_all()
config.options['test_enable'] = True
@@ -98,15 +104,15 @@ def test_database_cleanup(self):
('name', '=', 'database_cleanup_test'),
]))
# reset afterwards
- RegistryManager.registries[self.env.cr.dbname] = original_registry
+ Registry.registries[self.env.cr.dbname] = original_registry
# create an orphaned table
self.env.cr.execute('create table database_cleanup_test (test int)')
purge_tables = self.env['cleanup.purge.wizard.table'].create({})
purge_tables.purge_all()
with self.assertRaises(ProgrammingError):
- with self.registry.cursor() as cr:
- self.env.cr.execute('select * from database_cleanup_test')
+ with self.env.registry.cursor() as cr:
+ cr.execute('select * from database_cleanup_test')
def tearDown(self):
super(TestDatabaseCleanup, self).tearDown()
diff --git a/database_cleanup/views/create_indexes.xml b/database_cleanup/views/create_indexes.xml
index b89c3993a86..714db354acf 100644
--- a/database_cleanup/views/create_indexes.xml
+++ b/database_cleanup/views/create_indexes.xml
@@ -19,7 +19,7 @@
ir.actions.server
code
- action = self.get_wizard_action(cr, uid, context=context)
+ action = env.get('cleanup.create_indexes.wizard').get_wizard_action()
@@ -39,7 +39,7 @@
ir.actions.server
code
- self.purge(cr, uid, context.get('active_ids', []), context)
+ env.get('cleanup.create_indexes.line').purge()
diff --git a/database_cleanup/views/menu.xml b/database_cleanup/views/menu.xml
index c669ddfb875..fcaebbe71fb 100644
--- a/database_cleanup/views/menu.xml
+++ b/database_cleanup/views/menu.xml
@@ -1,70 +1,66 @@
-
-
+
+
-
+
-
+
-
+
+ Purge obsolete columns
+
+
+
+
-
- Purge obsolete columns
-
-
-
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
diff --git a/database_cleanup/views/purge_columns.xml b/database_cleanup/views/purge_columns.xml
index 1264a89072f..23eefaaef35 100644
--- a/database_cleanup/views/purge_columns.xml
+++ b/database_cleanup/views/purge_columns.xml
@@ -1,50 +1,52 @@
-
-
-
- cleanup.purge.wizard.column
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.column
+
+ primary
+
+
+
-
+
+
-
- Purge columns
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge columns
+ ir.actions.server
+ code
+
+
+ action = env.get('cleanup.purge.wizard.column').get_wizard_action()
+
+
-
- cleanup.purge.line.column
-
- primary
-
-
-
-
+
+ cleanup.purge.line.column
+
+ primary
+
+
+
-
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+
+ env.get('cleanup.purge.line.column').purge()
+
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.column
-
-
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.column
+
+
+
diff --git a/database_cleanup/views/purge_data.xml b/database_cleanup/views/purge_data.xml
index 3f9988be3b2..c6804a38aaa 100644
--- a/database_cleanup/views/purge_data.xml
+++ b/database_cleanup/views/purge_data.xml
@@ -1,50 +1,52 @@
-
-
-
- cleanup.purge.wizard.data
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.data
+
+ primary
+
+
+
-
+
+
-
- Purge data entries that refer to missing resources
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge data entries that refer to missing resources
+ ir.actions.server
+ code
+
+
+ action = env.get('cleanup.purge.wizard.data').get_wizard_action()
+
+
-
- cleanup.purge.line.data
-
- primary
-
-
-
-
+
+ cleanup.purge.line.data
+
+ primary
+
+
+
-
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+
+ env.get('cleanup.purge.line.data').purge()
+
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.data
-
-
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.data
+
+
+
diff --git a/database_cleanup/views/purge_menus.xml b/database_cleanup/views/purge_menus.xml
index 0bec65143b2..0757088d42f 100644
--- a/database_cleanup/views/purge_menus.xml
+++ b/database_cleanup/views/purge_menus.xml
@@ -1,47 +1,48 @@
-
-
-
+
+
-
+
-
+
-
+
-
-
-
-
+
+
diff --git a/database_cleanup/views/purge_models.xml b/database_cleanup/views/purge_models.xml
index 5b9401bebf8..b0dfa7e0d96 100644
--- a/database_cleanup/views/purge_models.xml
+++ b/database_cleanup/views/purge_models.xml
@@ -1,47 +1,48 @@
-
-
-
- cleanup.purge.wizard.model
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.model
+
+ primary
+
+
+
+
-
- Purge models
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge models
+ ir.actions.server
+ code
+
+
+ action = env.get('cleanup.purge.wizard.model').get_wizard_action()
+
+
-
- cleanup.purge.line.model
-
- primary
-
-
-
-
+
+ cleanup.purge.line.model
+
+ primary
+
+
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+
+ env.get('cleanup.purge.line.model').purge()
+
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.model
-
-
-
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.model
+
+
+
diff --git a/database_cleanup/views/purge_modules.xml b/database_cleanup/views/purge_modules.xml
index f5f6d2c4dc3..549563a9639 100644
--- a/database_cleanup/views/purge_modules.xml
+++ b/database_cleanup/views/purge_modules.xml
@@ -1,47 +1,48 @@
-
-
-
- cleanup.purge.wizard.module
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.module
+
+ primary
+
+
+
+
-
- Purge modules
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge modules
+ ir.actions.server
+ code
+
+
+ action = env.get('cleanup.purge.wizard.module').get_wizard_action()
+
+
-
- cleanup.purge.line.module
-
- primary
-
-
-
-
+
+ cleanup.purge.line.module
+
+ primary
+
+
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+
+ env.get('cleanup.purge.line.module').purge()
+
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.module
-
-
-
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.module
+
+
+
diff --git a/database_cleanup/views/purge_properties.xml b/database_cleanup/views/purge_properties.xml
index cf9b8c456a3..f1a47229335 100644
--- a/database_cleanup/views/purge_properties.xml
+++ b/database_cleanup/views/purge_properties.xml
@@ -1,49 +1,47 @@
-
-
-
- cleanup.purge.wizard.property
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.property
+
+ primary
+
+
+
+
-
- Purge properties
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge properties
+ ir.actions.server
+ code
+
+ action = env.get('cleanup.purge.wizard.property').get_wizard_action()
+
-
- cleanup.purge.line.property
-
- primary
-
-
-
-
+
+ cleanup.purge.line.property
+
+ primary
+
+
+
-
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+ env.get('cleanup.purge.line.property').purge()
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.property
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.property
+
+
-
-
+
diff --git a/database_cleanup/views/purge_tables.xml b/database_cleanup/views/purge_tables.xml
index 9cf603cb9cc..d7d5a849fef 100644
--- a/database_cleanup/views/purge_tables.xml
+++ b/database_cleanup/views/purge_tables.xml
@@ -1,46 +1,48 @@
-
-
-
- cleanup.purge.wizard.table
-
- primary
-
-
-
-
+
+
+ cleanup.purge.wizard.table
+
+ primary
+
+
+
+
-
- Purge tables
- ir.actions.server
- code
-
- action = self.get_wizard_action(cr, uid, context=context)
-
+
+ Purge tables
+ ir.actions.server
+ code
+
+
+ action = env.get('cleanup.purge.wizard.table').get_wizard_action()
+
+
-
- cleanup.purge.line.table
-
- primary
-
-
-
-
+
+ cleanup.purge.line.table
+
+ primary
+
+
+
+
-
- Purge
- ir.actions.server
- code
-
- self.purge(cr, uid, context.get('active_ids', []), context)
-
+
+ Purge
+ ir.actions.server
+ code
+
+
+ env.get('cleanup.purge.line.table').purge()
+
+
-
- Purge
- action
- client_action_multi
- cleanup.purge.line.table
-
-
-
-
+
+ Purge
+ action
+ client_action_multi
+ cleanup.purge.line.table
+
+
+
diff --git a/database_cleanup/views/purge_wizard.xml b/database_cleanup/views/purge_wizard.xml
index 0fd88e793e2..74fcb9008a6 100644
--- a/database_cleanup/views/purge_wizard.xml
+++ b/database_cleanup/views/purge_wizard.xml
@@ -1,44 +1,42 @@
-
-
-
- cleanup.purge.wizard
-
-
-
-
-
-
-
-
-
-
-
-
-
- Nothing found to clean up.
-
-
-
-
-
- cleanup.purge.line
-
-
-
-
-
-
-
-
-
-
+
+
+ cleanup.purge.wizard
+
+
+
+
+ Nothing found to clean up.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cleanup.purge.line
+
+
+
+
+
+
+
+
+
From e6ca976c3cdddd12b951ae7018cc33e6478ff3c1 Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Wed, 2 Aug 2017 01:44:08 +0200
Subject: [PATCH 057/770] [FIX] really uninstall modules and avoid a crash on
cached data
[FIX] don't try to uninstall uninstalled modules
[DEL] weird code
[FIX] actually cleanup where we can
---
database_cleanup/models/purge_models.py | 18 ++++++------------
database_cleanup/models/purge_modules.py | 19 ++++++-------------
2 files changed, 12 insertions(+), 25 deletions(-)
diff --git a/database_cleanup/models/purge_models.py b/database_cleanup/models/purge_models.py
index 5adcf4787d2..36e9e281218 100644
--- a/database_cleanup/models/purge_models.py
+++ b/database_cleanup/models/purge_models.py
@@ -10,11 +10,9 @@ class IrModel(models.Model):
_inherit = 'ir.model'
def _drop_table(self):
- # Allow to skip this step during model unlink
- # The super method crashes if the model cannot be instantiated
- if self.env.context.get('no_drop_table'):
- return True
- return super(IrModel, self)._drop_table()
+ """this function crashes for undefined models"""
+ existing_model_ids = self.filtered(lambda x: x.model in self.env)
+ return super(IrModel, existing_model_ids)._drop_table()
@api.depends()
def _inherited_models(self):
@@ -28,11 +26,9 @@ class IrModelFields(models.Model):
@api.multi
def _prepare_update(self):
- # Allow to skip this step during model unlink
- # The super method crashes if the model cannot be instantiated
- if self.env.context.get('no_prepare_update'):
- return True
- return super(IrModelFields, self)._prepare_update()
+ """this function crashes for undefined models"""
+ existing = self.filtered(lambda x: x.model in self.env)
+ return super(IrModelFields, existing)._prepare_update()
class CleanupPurgeLineModel(models.TransientModel):
@@ -50,9 +46,7 @@ def purge(self):
"""
context_flags = {
MODULE_UNINSTALL_FLAG: True,
- 'no_drop_table': True,
'purge': True,
- 'no_prepare_update': True,
}
if self:
diff --git a/database_cleanup/models/purge_modules.py b/database_cleanup/models/purge_modules.py
index bdfe3fcfa49..40776f68e21 100644
--- a/database_cleanup/models/purge_modules.py
+++ b/database_cleanup/models/purge_modules.py
@@ -3,7 +3,6 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import _, api, fields, models
from odoo.exceptions import UserError
-from odoo.modules.registry import RegistryManager
from odoo.modules.module import get_module_path
from odoo.addons.base.ir.ir_model import MODULE_UNINSTALL_FLAG
@@ -41,25 +40,19 @@ def purge(self):
Uninstall modules upon manual confirmation, then reload
the database.
"""
- if self:
- objs = self
- else:
- objs = self.env['cleanup.purge.line.module']\
- .browse(self._context.get('active_ids'))
- module_names = objs.filtered(lambda x: not x.purged).mapped('name')
+ module_names = self.filtered(lambda x: not x.purged).mapped('name')
modules = self.env['ir.module.module'].search([
('name', 'in', module_names)
])
if not modules:
return True
self.logger.info('Purging modules %s', ', '.join(module_names))
- modules.button_uninstall()
- # we need this commit because reloading the registry would roll back
- # our changes
- self.env.cr.commit() # pylint: disable=invalid-commit
- RegistryManager.new(self.env.cr.dbname, update_module=True)
+ modules.filtered(
+ lambda x: x.state not in ('uninstallable', 'uninstalled')
+ ).button_immediate_uninstall()
+ modules.refresh()
modules.unlink()
- return objs.write({'purged': True})
+ return self.write({'purged': True})
class CleanupPurgeWizardModule(models.TransientModel):
From 94ecde2ddfcce385889a6bb1153018553e6a5279 Mon Sep 17 00:00:00 2001
From: Holger Brunn
Date: Tue, 3 Oct 2017 17:26:19 +0200
Subject: [PATCH 058/770] [ADD] [database_cleanup] migrate to 11.0
---
database_cleanup/__openerp__.py | 2 +-
database_cleanup/i18n/am.po | 34 +-
database_cleanup/i18n/ar.po | 52 +-
database_cleanup/i18n/bg.po | 34 +-
database_cleanup/i18n/bs.po | 37 +-
database_cleanup/i18n/ca.po | 102 +++-
database_cleanup/i18n/cs.po | 34 +-
database_cleanup/i18n/cs_CZ.po | 539 ++++++++++++++++++
database_cleanup/i18n/da.po | 34 +-
database_cleanup/i18n/database_cleanup.pot | 481 ++++++++++++----
database_cleanup/i18n/de.po | 49 +-
database_cleanup/i18n/el_GR.po | 49 +-
database_cleanup/i18n/en.po | 160 +++++-
database_cleanup/i18n/en_GB.po | 37 +-
database_cleanup/i18n/es.po | 65 +--
database_cleanup/i18n/es_AR.po | 37 +-
database_cleanup/i18n/es_CL.po | 37 +-
database_cleanup/i18n/es_CO.po | 37 +-
database_cleanup/i18n/es_CR.po | 37 +-
database_cleanup/i18n/es_DO.po | 37 +-
database_cleanup/i18n/es_EC.po | 37 +-
database_cleanup/i18n/es_ES.po | 37 +-
database_cleanup/i18n/es_MX.po | 49 +-
database_cleanup/i18n/es_PE.po | 37 +-
database_cleanup/i18n/es_PY.po | 37 +-
database_cleanup/i18n/es_VE.po | 37 +-
database_cleanup/i18n/et.po | 34 +-
database_cleanup/i18n/eu.po | 34 +-
database_cleanup/i18n/fa.po | 34 +-
database_cleanup/i18n/fi.po | 47 +-
database_cleanup/i18n/fr.po | 77 ++-
database_cleanup/i18n/fr_CA.po | 40 +-
database_cleanup/i18n/fr_CH.po | 37 +-
database_cleanup/i18n/gl.po | 47 +-
database_cleanup/i18n/gl_ES.po | 37 +-
database_cleanup/i18n/he.po | 34 +-
database_cleanup/i18n/hr.po | 50 +-
database_cleanup/i18n/hr_HR.po | 40 +-
database_cleanup/i18n/hu.po | 46 +-
database_cleanup/i18n/id.po | 34 +-
database_cleanup/i18n/it.po | 47 +-
database_cleanup/i18n/ja.po | 34 +-
database_cleanup/i18n/ko.po | 34 +-
database_cleanup/i18n/lt.po | 37 +-
database_cleanup/i18n/lt_LT.po | 40 +-
database_cleanup/i18n/lv.po | 37 +-
database_cleanup/i18n/mk.po | 34 +-
database_cleanup/i18n/mn.po | 34 +-
database_cleanup/i18n/nb.po | 37 +-
database_cleanup/i18n/nb_NO.po | 37 +-
database_cleanup/i18n/nl.po | 50 +-
database_cleanup/i18n/nl_BE.po | 37 +-
database_cleanup/i18n/nl_NL.po | 61 +-
database_cleanup/i18n/pl.po | 38 +-
database_cleanup/i18n/pt.po | 37 +-
database_cleanup/i18n/pt_BR.po | 50 +-
database_cleanup/i18n/pt_PT.po | 40 +-
database_cleanup/i18n/ro.po | 53 +-
database_cleanup/i18n/ru.po | 50 +-
database_cleanup/i18n/sk.po | 34 +-
database_cleanup/i18n/sl.po | 50 +-
database_cleanup/i18n/sr.po | 37 +-
database_cleanup/i18n/sr@latin.po | 40 +-
database_cleanup/i18n/sv.po | 34 +-
database_cleanup/i18n/th.po | 34 +-
database_cleanup/i18n/tr.po | 47 +-
database_cleanup/i18n/tr_TR.po | 52 +-
database_cleanup/i18n/uk.po | 37 +-
database_cleanup/i18n/vi.po | 34 +-
database_cleanup/i18n/vi_VN.po | 49 +-
database_cleanup/i18n/zh_CN.po | 41 +-
database_cleanup/i18n/zh_TW.po | 37 +-
database_cleanup/identifier_adapter.py | 4 +-
database_cleanup/models/__init__.py | 1 -
database_cleanup/models/ir_model_fields.py | 17 -
database_cleanup/models/purge_columns.py | 2 +-
database_cleanup/models/purge_tables.py | 3 +-
.../tests/test_database_cleanup.py | 10 +-
database_cleanup/views/create_indexes.xml | 11 +-
database_cleanup/views/purge_columns.xml | 13 +-
database_cleanup/views/purge_data.xml | 13 +-
database_cleanup/views/purge_menus.xml | 13 +-
database_cleanup/views/purge_models.xml | 13 +-
database_cleanup/views/purge_modules.xml | 13 +-
database_cleanup/views/purge_properties.xml | 12 +-
database_cleanup/views/purge_tables.xml | 13 +-
86 files changed, 2560 insertions(+), 1610 deletions(-)
create mode 100644 database_cleanup/i18n/cs_CZ.po
delete mode 100644 database_cleanup/models/ir_model_fields.py
diff --git a/database_cleanup/__openerp__.py b/database_cleanup/__openerp__.py
index f3cc470014a..192483da0db 100644
--- a/database_cleanup/__openerp__.py
+++ b/database_cleanup/__openerp__.py
@@ -3,7 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Database cleanup',
- 'version': '10.0.1.0.0',
+ 'version': '11.0.1.0.0',
'author': "Therp BV,Odoo Community Association (OCA)",
'depends': ['base'],
'license': 'AGPL-3',
diff --git a/database_cleanup/i18n/am.po b/database_cleanup/i18n/am.po
index 92f41b9f6eb..c53baf4ebb9 100644
--- a/database_cleanup/i18n/am.po
+++ b/database_cleanup/i18n/am.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n"
+"Language: am\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: am\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ar.po b/database_cleanup/i18n/ar.po
index bb2913fc179..640e903f7a5 100644
--- a/database_cleanup/i18n/ar.po
+++ b/database_cleanup/i18n/ar.po
@@ -1,23 +1,23 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# SaFi J. , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: SaFi J. , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n"
+"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ar\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -140,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "الحقل"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -245,7 +245,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "النموذج"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -276,37 +276,37 @@ msgid "Name"
msgstr "الاسم"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/bg.po b/database_cleanup/i18n/bg.po
index 5014b71a0a7..49ec98f71c7 100644
--- a/database_cleanup/i18n/bg.po
+++ b/database_cleanup/i18n/bg.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Bulgarian (https://www.transifex.com/oca/teams/23907/bg/)\n"
+"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Име"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/bs.po b/database_cleanup/i18n/bs.po
index 8f055849815..bcbcde94d0a 100644
--- a/database_cleanup/i18n/bs.po
+++ b/database_cleanup/i18n/bs.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Bosnian (https://www.transifex.com/oca/teams/23907/bs/)\n"
+"Language: bs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: bs\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Ime"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ca.po b/database_cleanup/i18n/ca.po
index f1c85795a42..d10adb5eee1 100644
--- a/database_cleanup/i18n/ca.po
+++ b/database_cleanup/i18n/ca.po
@@ -1,21 +1,21 @@
+# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Marc Tormo i Bochaca , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Marc Tormo i Bochaca , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
+"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -133,10 +133,15 @@ msgid "Display Name"
msgstr "Nom a mostrar"
#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Duplicated property"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
+msgid "Field"
+msgstr "Camp"
+
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
msgid "Fields"
@@ -270,37 +275,37 @@ msgid "Name"
msgstr "Nom"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "No s'han trobat entrades de menú penjades"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr "No s'han trobat mòduls per purgar"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "No s'han trobat columnes orfes"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "No s'han trobat entrades de dades orfes"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "No s'han trobat models orfes"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "No s'han trobat taules orfes"
@@ -317,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -332,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr "Purgar"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -419,6 +430,18 @@ msgstr ""
msgid "Purge obsolete tables"
msgstr "Purgar taules obsoletes"
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_property
+msgid "Purge properties"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard
+msgid "Purge stuff"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_tables
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_table
@@ -468,3 +491,48 @@ msgstr "Seleccionar línies a purgar"
msgid "Tables to purge"
msgstr "Taules a purgar"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
+msgid "Wizard"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
+msgid "cleanup.create_indexes.line"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
+msgid "cleanup.purge.line"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_column
+msgid "cleanup.purge.line.column"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_data
+msgid "cleanup.purge.line.data"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_menu
+msgid "cleanup.purge.line.menu"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_module
+msgid "cleanup.purge.line.module"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_table
+msgid "cleanup.purge.line.table"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_data
+msgid "ir.model.data"
+msgstr ""
diff --git a/database_cleanup/i18n/cs.po b/database_cleanup/i18n/cs.po
index 1a06ccfa4a2..08142263e57 100644
--- a/database_cleanup/i18n/cs.po
+++ b/database_cleanup/i18n/cs.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Czech (https://www.transifex.com/oca/teams/23907/cs/)\n"
+"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Název"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/cs_CZ.po b/database_cleanup/i18n/cs_CZ.po
new file mode 100644
index 00000000000..0bb650fb911
--- /dev/null
+++ b/database_cleanup/i18n/cs_CZ.po
@@ -0,0 +1,539 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * database_cleanup
+#
+# Translators:
+# Lukáš Spurný , 2018
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: Lukáš Spurný , 2018\n"
+"Language-Team: Czech (Czech Republic) (https://www.transifex.com/oca/"
+"teams/23907/cs_CZ/)\n"
+"Language: cs_CZ\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
+msgid "Columns to purge"
+msgstr "Sloupky, které chcete očistit"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_line_action
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+msgid "Create"
+msgstr "Vytvořit"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+msgid "Create all"
+msgstr "Vytvořit vše"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_wizard
+msgid "Create indexes"
+msgstr "Vytvořit indexy"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_wizard_action
+#: model:ir.ui.menu,name:database_cleanup.menu_create_indexes
+msgid "Create missing indexes"
+msgstr "Vytvořit chybějící indexy"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_line_view_tree
+msgid "Create this index"
+msgstr "Vytvořit tento index"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_purged
+msgid "Created"
+msgstr "Vytvořeno"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_uid
+msgid "Created by"
+msgstr "Vytvořil"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_date
+msgid "Created on"
+msgstr "Vytvořeno"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_data_id
+msgid "Data entry"
+msgstr "Vstup dat"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_purge_line_ids
+msgid "Data to purge"
+msgstr "Údaje, které chcete vyčistit"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_database_cleanup
+msgid "Database cleanup"
+msgstr "Vyčištění databáze"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_display_name
+msgid "Display Name"
+msgstr "Zobrazit název"
+
+#. module: database_cleanup
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Duplicated property"
+msgstr "Duplikovaná vlastnost"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
+msgid "Field"
+msgstr "Pole"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_fields
+msgid "Fields"
+msgstr "Pole"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_id
+msgid "ID"
+msgstr "ID"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table___last_update
+msgid "Last Modified on"
+msgstr "Poslední změna dne"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_uid
+msgid "Last Updated by"
+msgstr "Naposledy aktualizováno"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_date
+msgid "Last Updated on"
+msgstr "Poslední aktualizace dne"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_menu_id
+msgid "Menu entry"
+msgstr "Zadání nabídky"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_purge_line_ids
+msgid "Menus to purge"
+msgstr "Nabídky, které chcete vyčistit"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
+msgid "Model"
+msgstr "Model"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model
+msgid "Models"
+msgstr "Modely"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_purge_line_ids
+msgid "Models to purge"
+msgstr "Modely pro čištění"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_purge_line_ids
+msgid "Modules to purge"
+msgstr "Moduly pro čištění"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
+msgid "Name"
+msgstr "Název"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_menus.py:54
+#, python-format
+msgid "No dangling menu entries found"
+msgstr "Nebyly nalezeny žádné položky s náznaky"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_modules.py:77
+#, python-format
+msgid "No modules found to purge"
+msgstr "Žádná moduly nebyla odstraněna"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_columns.py:126
+#, python-format
+msgid "No orphaned columns found"
+msgstr "Nebyly nalezeny žádné osamocené sloupce"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_data.py:69
+#, python-format
+msgid "No orphaned data entries found"
+msgstr "Nebyly nalezeny žádné záznamy o osiřelých datech"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_models.py:113
+#, python-format
+msgid "No orphaned models found"
+msgstr "Nebyly nalezeny žádné osiřelé modely"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_tables.py:105
+#, python-format
+msgid "No orphaned tables found"
+msgstr "Nebyly nalezeny žádné osamocené stoly"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Nothing found to clean up."
+msgstr "Nic nenalezlo, aby vyčistilo."
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_purge_line_ids
+msgid "Properties to purge"
+msgstr "Vlastnosti pro čištění"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
+msgid "Property"
+msgstr "Vlastnictví"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_column_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_data_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_menu_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_model_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_module_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_property_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_table_line
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Purge"
+msgstr "Očistit"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr "Čistící linka"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_wizard_id
+msgid "Purge Wizard"
+msgstr "Čistící průvodce"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Purge all"
+msgstr "Vyčistěte vše"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_columns
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_column
+msgid "Purge columns"
+msgstr "Vyčistěte sloupce"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_data
+msgid "Purge data"
+msgstr "Vyčistěte data"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_data
+msgid "Purge data entries that refer to missing resources"
+msgstr "Vyčistěte položky dat, které odkazují na chybějící zdroje"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_menus
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
+msgid "Purge menus"
+msgstr "Vyčistěte nabídky"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_models
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_model
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_model
+#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
+msgid "Purge models"
+msgstr "Vyčistěte modely"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_modules
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_module
+msgid "Purge modules"
+msgstr "Vyčištění modulů"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_columns
+msgid "Purge obsolete columns"
+msgstr "Vyčistěte zastaralé sloupce"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_data
+msgid "Purge obsolete data entries"
+msgstr "Vyčistěte zastaralé údaje"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_menus
+msgid "Purge obsolete menu entries"
+msgstr "Odstraňte zastaralé položky v menu"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_models
+msgid "Purge obsolete models"
+msgstr "Vyčistit zastaralé modely"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_modules
+msgid "Purge obsolete modules"
+msgstr "Vyčistěte zastaralé moduly"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_property
+msgid "Purge obsolete properties"
+msgstr "Vyčistit zastaralé vlastnosti"
+
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
+msgid "Purge obsolete tables"
+msgstr "Vyčistěte zastaralé tabulky"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_property
+msgid "Purge properties"
+msgstr "Vlastnosti čištění"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard
+msgid "Purge stuff"
+msgstr "Vyčistit věci"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_tables
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_table
+msgid "Purge tables"
+msgstr "Vyčištění tabulek"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
+msgid "Purge this model"
+msgstr "Vyčistěte tento model"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_purged
+msgid "Purged"
+msgstr "Očištěný"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_reason
+msgid "Reason"
+msgstr "Důvod"
+
+#. module: database_cleanup
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Same value as default"
+msgstr "Stejná hodnota jako výchozí"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Select lines"
+msgstr "Vyberte řádky"
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_wizard.py:73
+#, python-format
+msgid "Select lines to purge"
+msgstr "Vyberte řádky, které chcete vyčistit"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_purge_line_ids
+msgid "Tables to purge"
+msgstr "Tabulky k čištění"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
+msgid "Wizard"
+msgstr "Čaroděj"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
+msgid "cleanup.create_indexes.line"
+msgstr "cleanup.create_indexes.line"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
+msgid "cleanup.purge.line"
+msgstr "cleanup.purge.line"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_column
+msgid "cleanup.purge.line.column"
+msgstr "cleanup.purge.line.column"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_data
+msgid "cleanup.purge.line.data"
+msgstr "cleanup.purge.line.data"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_menu
+msgid "cleanup.purge.line.menu"
+msgstr "cleanup.purge.line.menu"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_module
+msgid "cleanup.purge.line.module"
+msgstr "cleanup.purge.line.module"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_table
+msgid "cleanup.purge.line.table"
+msgstr "cleanup.purge.line.table"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_data
+msgid "ir.model.data"
+msgstr "ir.model.data"
diff --git a/database_cleanup/i18n/da.po b/database_cleanup/i18n/da.po
index 948617776d0..3f19af199f6 100644
--- a/database_cleanup/i18n/da.po
+++ b/database_cleanup/i18n/da.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Danish (https://www.transifex.com/oca/teams/23907/da/)\n"
+"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Navn"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/database_cleanup.pot b/database_cleanup/i18n/database_cleanup.pot
index 237f7a21b14..7fbf10c6bcc 100644
--- a/database_cleanup/i18n/database_cleanup.pot
+++ b/database_cleanup/i18n/database_cleanup.pot
@@ -4,10 +4,8 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-08-11 06:45+0000\n"
-"PO-Revision-Date: 2015-08-11 06:45+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,45 +14,89 @@ msgstr ""
"Plural-Forms: \n"
#. module: database_cleanup
-#: field:cleanup.purge.wizard.column,purge_line_ids:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
msgid "Columns to purge"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,create_uid:0
-#: field:cleanup.purge.line.data,create_uid:0
-#: field:cleanup.purge.line.model,create_uid:0
-#: field:cleanup.purge.line.module,create_uid:0
-#: field:cleanup.purge.line.table,create_uid:0
-#: field:cleanup.purge.wizard.column,create_uid:0
-#: field:cleanup.purge.wizard.data,create_uid:0
-#: field:cleanup.purge.wizard.model,create_uid:0
-#: field:cleanup.purge.wizard.module,create_uid:0
-#: field:cleanup.purge.wizard.table,create_uid:0
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_line_action
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+msgid "Create"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+msgid "Create all"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_wizard
+msgid "Create indexes"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_wizard_action
+#: model:ir.ui.menu,name:database_cleanup.menu_create_indexes
+msgid "Create missing indexes"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_line_view_tree
+msgid "Create this index"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_purged
+msgid "Created"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_uid
msgid "Created by"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,create_date:0
-#: field:cleanup.purge.line.data,create_date:0
-#: field:cleanup.purge.line.model,create_date:0
-#: field:cleanup.purge.line.module,create_date:0
-#: field:cleanup.purge.line.table,create_date:0
-#: field:cleanup.purge.wizard.column,create_date:0
-#: field:cleanup.purge.wizard.data,create_date:0
-#: field:cleanup.purge.wizard.model,create_date:0
-#: field:cleanup.purge.wizard.module,create_date:0
-#: field:cleanup.purge.wizard.table,create_date:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_date
msgid "Created on"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.data,data_id:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_data_id
msgid "Data entry"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.wizard.data,purge_line_ids:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_purge_line_ids
msgid "Data to purge"
msgstr ""
@@ -64,51 +106,138 @@ msgid "Database cleanup"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line,id:0
-#: field:cleanup.purge.line.column,id:0
-#: field:cleanup.purge.line.data,id:0
-#: field:cleanup.purge.line.model,id:0
-#: field:cleanup.purge.line.module,id:0
-#: field:cleanup.purge.line.table,id:0
-#: field:cleanup.purge.wizard,id:0
-#: field:cleanup.purge.wizard.column,id:0
-#: field:cleanup.purge.wizard.data,id:0
-#: field:cleanup.purge.wizard.model,id:0
-#: field:cleanup.purge.wizard.module,id:0
-#: field:cleanup.purge.wizard.table,id:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: database_cleanup
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Duplicated property"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
+msgid "Field"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_fields
+msgid "Fields"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_id
msgid "ID"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,write_uid:0
-#: field:cleanup.purge.line.data,write_uid:0
-#: field:cleanup.purge.line.model,write_uid:0
-#: field:cleanup.purge.line.module,write_uid:0
-#: field:cleanup.purge.line.table,write_uid:0
-#: field:cleanup.purge.wizard.column,write_uid:0
-#: field:cleanup.purge.wizard.data,write_uid:0
-#: field:cleanup.purge.wizard.model,write_uid:0
-#: field:cleanup.purge.wizard.module,write_uid:0
-#: field:cleanup.purge.wizard.table,write_uid:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_uid
msgid "Last Updated by"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,write_date:0
-#: field:cleanup.purge.line.data,write_date:0
-#: field:cleanup.purge.line.model,write_date:0
-#: field:cleanup.purge.line.module,write_date:0
-#: field:cleanup.purge.line.table,write_date:0
-#: field:cleanup.purge.wizard.column,write_date:0
-#: field:cleanup.purge.wizard.data,write_date:0
-#: field:cleanup.purge.wizard.model,write_date:0
-#: field:cleanup.purge.wizard.module,write_date:0
-#: field:cleanup.purge.wizard.table,write_date:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_date
msgid "Last Updated on"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,model_id:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_menu_id
+msgid "Menu entry"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_purge_line_ids
+msgid "Menus to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
msgstr ""
@@ -118,91 +247,146 @@ msgid "Models"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.wizard.model,purge_line_ids:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_purge_line_ids
msgid "Models to purge"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.wizard.module,purge_line_ids:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_purge_line_ids
msgid "Modules to purge"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line,name:0
-#: field:cleanup.purge.line.column,name:0
-#: field:cleanup.purge.line.data,name:0
-#: field:cleanup.purge.line.model,name:0
-#: field:cleanup.purge.line.module,name:0
-#: field:cleanup.purge.line.table,name:0
-#: field:cleanup.purge.wizard,name:0
-#: field:cleanup.purge.wizard.column,name:0
-#: field:cleanup.purge.wizard.data,name:0
-#: field:cleanup.purge.wizard.model,name:0
-#: field:cleanup.purge.wizard.module,name:0
-#: field:cleanup.purge.wizard.table,name:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line.column,wizard_id:0
-#: field:cleanup.purge.line.data,wizard_id:0
-#: field:cleanup.purge.line.model,wizard_id:0
-#: field:cleanup.purge.line.module,wizard_id:0
-#: field:cleanup.purge.line.table,wizard_id:0
-msgid "Purge Wizard"
+#: code:addons/database_cleanup/models/purge_menus.py:54
+#, python-format
+msgid "No dangling menu entries found"
+msgstr ""
+
+#. module: database_cleanup
+#: code:addons/database_cleanup/models/purge_modules.py:77
+#, python-format
+msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
-msgid "Purge all columns"
+#: code:addons/database_cleanup/models/purge_columns.py:126
+#, python-format
+msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
-msgid "Purge all data"
+#: code:addons/database_cleanup/models/purge_data.py:68
+#, python-format
+msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
-msgid "Purge all models"
+#: code:addons/database_cleanup/models/purge_models.py:113
+#, python-format
+msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
-msgid "Purge all modules"
+#: code:addons/database_cleanup/models/purge_tables.py:105
+#, python-format
+msgid "No orphaned tables found"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
-msgid "Purge all tables"
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Nothing found to clean up."
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_purge_line_ids
+msgid "Properties to purge"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
+msgid "Property"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_column_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_data_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_menu_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_model_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_module_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_property_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_table_line
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Purge"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_wizard_id
+msgid "Purge Wizard"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Purge all"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
#: model:ir.actions.server,name:database_cleanup.action_purge_columns
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_column
msgid "Purge columns"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_data
msgid "Purge data"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
#: model:ir.actions.server,name:database_cleanup.action_purge_data
msgid "Purge data entries that refer to missing resources"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_menus
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
+msgid "Purge menus"
+msgstr ""
+
+#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_models
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_model
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_model
+#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
msgid "Purge models"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
#: model:ir.actions.server,name:database_cleanup.action_purge_modules
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_module
msgid "Purge modules"
msgstr ""
@@ -216,6 +400,11 @@ msgstr ""
msgid "Purge obsolete data entries"
msgstr ""
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_menus
+msgid "Purge obsolete menu entries"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_models
msgid "Purge obsolete models"
@@ -226,54 +415,120 @@ msgstr ""
msgid "Purge obsolete modules"
msgstr ""
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_property
+msgid "Purge obsolete properties"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
msgid "Purge obsolete tables"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
+#: model:ir.actions.server,name:database_cleanup.action_purge_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_property
+msgid "Purge properties"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard
+msgid "Purge stuff"
+msgstr ""
+
+#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_tables
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_table
msgid "Purge tables"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.column:database_cleanup.purge_columns_view
-msgid "Purge this column"
+#: model:ir.ui.view,arch_db:database_cleanup.tree_purge_line
+msgid "Purge this model"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.data:database_cleanup.purge_data_view
-msgid "Purge this data"
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_purged
+msgid "Purged"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.model:database_cleanup.purge_models_view
-msgid "Purge this model"
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_reason
+msgid "Reason"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.module:database_cleanup.purge_modules_view
-msgid "Purge this module"
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Same value as default"
msgstr ""
#. module: database_cleanup
-#: view:cleanup.purge.wizard.table:database_cleanup.purge_tables_view
-msgid "Purge this table"
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Select lines"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.line,purged:0
-#: field:cleanup.purge.line.column,purged:0
-#: field:cleanup.purge.line.data,purged:0
-#: field:cleanup.purge.line.model,purged:0
-#: field:cleanup.purge.line.module,purged:0
-#: field:cleanup.purge.line.table,purged:0
-msgid "Purged"
+#: code:addons/database_cleanup/models/purge_wizard.py:74
+#, python-format
+msgid "Select lines to purge"
msgstr ""
#. module: database_cleanup
-#: field:cleanup.purge.wizard.table,purge_line_ids:0
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_purge_line_ids
msgid "Tables to purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
+msgid "Wizard"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
+msgid "cleanup.create_indexes.line"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
+msgid "cleanup.purge.line"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_column
+msgid "cleanup.purge.line.column"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_data
+msgid "cleanup.purge.line.data"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_menu
+msgid "cleanup.purge.line.menu"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_module
+msgid "cleanup.purge.line.module"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_table
+msgid "cleanup.purge.line.table"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_data
+msgid "ir.model.data"
+msgstr ""
+
diff --git a/database_cleanup/i18n/de.po b/database_cleanup/i18n/de.po
index 527e9b8d6de..3388112284a 100644
--- a/database_cleanup/i18n/de.po
+++ b/database_cleanup/i18n/de.po
@@ -1,22 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Rudolf Schnapka , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Rudolf Schnapka , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,8 +139,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Feld"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +275,37 @@ msgid "Name"
msgstr "Name"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "Keine ungentuzten Menüeinträge gefunden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr "Keine zu löschenden Module gefunden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "Keine verwaisten Spalten gefunden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "Keine verwaisten Einträge gefunden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "Keine verwaisten Modelle gefunden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "Keine verwaisten Tabellen gefunden"
@@ -323,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr "Löschen"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +375,6 @@ msgstr "Lösche Daten"
msgid "Purge data entries that refer to missing resources"
msgstr "Lösche Einträge, die sich auf fehlende Ressourcen beziehen"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,8 +494,8 @@ msgstr "Zu löschende Tabelle"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
-msgstr "Assistent-ID"
+msgid "Wizard"
+msgstr ""
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
diff --git a/database_cleanup/i18n/el_GR.po b/database_cleanup/i18n/el_GR.po
index 55cd32982c2..4a4a4ed841f 100644
--- a/database_cleanup/i18n/el_GR.po
+++ b/database_cleanup/i18n/el_GR.po
@@ -1,21 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
+"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/"
+"el_GR/)\n"
+"Language: el_GR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -272,40 +273,40 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
-msgstr ""
+msgstr "Ονομασία"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/en.po b/database_cleanup/i18n/en.po
index d58c5f8a99d..c60a2d85b0b 100644
--- a/database_cleanup/i18n/en.po
+++ b/database_cleanup/i18n/en.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
@@ -10,6 +10,7 @@ msgstr ""
"PO-Revision-Date: 2016-07-09 10:34+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
@@ -21,33 +22,78 @@ msgid "Columns to purge"
msgstr "Columns to purge"
#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_line_action
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+#, fuzzy
+msgid "Create"
+msgstr "Created by"
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
+#, fuzzy
+msgid "Create all"
+msgstr "Created by"
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_wizard
+#, fuzzy
+msgid "Create indexes"
+msgstr "Created on"
+
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_wizard_action
+#: model:ir.ui.menu,name:database_cleanup.menu_create_indexes
+msgid "Create missing indexes"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_line_view_tree
+#, fuzzy
+msgid "Create this index"
+msgstr "Purge this model"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_purged
+#, fuzzy
+msgid "Created"
+msgstr "Created by"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_uid
msgid "Created by"
msgstr "Created by"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_create_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_date
msgid "Created on"
msgstr "Created on"
@@ -68,12 +114,15 @@ msgid "Database cleanup"
msgstr "Database cleanup"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_display_name
@@ -81,17 +130,36 @@ msgstr "Database cleanup"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_display_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_display_name
msgid "Display Name"
msgstr "Display Name"
#. module: database_cleanup
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Duplicated property"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
+msgid "Field"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_ir_model_fields
+msgid "Fields"
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_id
@@ -99,17 +167,21 @@ msgstr "Display Name"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_id
msgid "ID"
msgstr "ID"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column___last_update
@@ -117,38 +189,47 @@ msgstr "ID"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module___last_update
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property___last_update
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table___last_update
msgid "Last Modified on"
msgstr "Last Modified on"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_uid
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_uid
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_write_date
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_date
msgid "Last Updated on"
msgstr "Last Updated on"
@@ -184,18 +265,20 @@ msgid "Modules to purge"
msgstr "Modules to purge"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_name
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
msgstr "Name"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:44
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "No dangling menu entries found"
@@ -207,46 +290,71 @@ msgid "No modules found to purge"
msgstr "No modules found to purge"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "No orphaned columns found"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "No orphaned data entries found"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:115
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "No orphaned models found"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "No orphaned tables found"
+#. module: database_cleanup
+#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
+msgid "Nothing found to clean up."
+msgstr ""
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_purge_line_ids
+#, fuzzy
+msgid "Properties to purge"
+msgstr "Models to purge"
+
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
+msgid "Property"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_column_line
#: model:ir.actions.server,name:database_cleanup.action_purge_data_line
#: model:ir.actions.server,name:database_cleanup.action_purge_menu_line
#: model:ir.actions.server,name:database_cleanup.action_purge_model_line
#: model:ir.actions.server,name:database_cleanup.action_purge_module_line
+#: model:ir.actions.server,name:database_cleanup.action_purge_property_line
#: model:ir.actions.server,name:database_cleanup.action_purge_table_line
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Purge"
msgstr "Purge"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+#, fuzzy
+msgid "Purge Line"
+msgstr "Purge line ids"
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_wizard_id
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_wizard_id
msgid "Purge Wizard"
msgstr "Purge Wizard"
@@ -272,11 +380,6 @@ msgstr "Purge data"
msgid "Purge data entries that refer to missing resources"
msgstr "Purge data entries that refer to missing resources"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr "Purge line ids"
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -322,11 +425,25 @@ msgstr "Purge obsolete models"
msgid "Purge obsolete modules"
msgstr "Purge obsolete modules"
+#. module: database_cleanup
+#: model:ir.ui.menu,name:database_cleanup.menu_purge_property
+#, fuzzy
+msgid "Purge obsolete properties"
+msgstr "Purge obsolete models"
+
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_purge_tables
msgid "Purge obsolete tables"
msgstr "Purge obsolete tables"
+#. module: database_cleanup
+#: model:ir.actions.server,name:database_cleanup.action_purge_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_line_property
+#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_property
+#, fuzzy
+msgid "Purge properties"
+msgstr "Purge models"
+
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard
msgid "Purge stuff"
@@ -349,11 +466,22 @@ msgstr "Purge this model"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_purged
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_model_purged
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_module_purged
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_purged
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_purged
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_purged
msgid "Purged"
msgstr "Purged"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_reason
+msgid "Reason"
+msgstr ""
+
+#. module: database_cleanup
+#: selection:cleanup.purge.line.property,reason:0
+msgid "Same value as default"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Select lines"
@@ -371,10 +499,18 @@ msgid "Tables to purge"
msgstr "Tables to purge"
#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+#, fuzzy
+msgid "Wizard"
msgstr "Wizard id"
+#. module: database_cleanup
+#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
+#, fuzzy
+msgid "cleanup.create_indexes.line"
+msgstr "cleanup.purge.line"
+
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
msgid "cleanup.purge.line"
diff --git a/database_cleanup/i18n/en_GB.po b/database_cleanup/i18n/en_GB.po
index e1ccfdc9655..bd3b1b3027e 100644
--- a/database_cleanup/i18n/en_GB.po
+++ b/database_cleanup/i18n/en_GB.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: English (United Kingdom) (https://www.transifex.com/oca/teams/23907/en_GB/)\n"
+"Language-Team: English (United Kingdom) (https://www.transifex.com/oca/"
+"teams/23907/en_GB/)\n"
+"Language: en_GB\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Name"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es.po b/database_cleanup/i18n/es.po
index 49dd14f5d13..458a75fe672 100644
--- a/database_cleanup/i18n/es.po
+++ b/database_cleanup/i18n/es.po
@@ -1,21 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
+# enjolras , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: enjolras , 2018\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -32,23 +33,23 @@ msgstr "Crear"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
msgid "Create all"
-msgstr ""
+msgstr "Crear todos"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_wizard
msgid "Create indexes"
-msgstr ""
+msgstr "Crear índices"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_wizard_action
#: model:ir.ui.menu,name:database_cleanup.menu_create_indexes
msgid "Create missing indexes"
-msgstr ""
+msgstr "Crear índices faltantes"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_line_view_tree
msgid "Create this index"
-msgstr ""
+msgstr "Crear este índice"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_purged
@@ -135,12 +136,12 @@ msgstr "Nombre mostrado"
#. module: database_cleanup
#: selection:cleanup.purge.line.property,reason:0
msgid "Duplicated property"
-msgstr ""
+msgstr "Propiedad duplicada"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Campo"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "No se han encontrado entradas de menú colgantes"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr "No se han encontrado módulos a limpiar"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "No se han encontrado columnas huérfanas"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "No se han encontrado entradas de datos huérfanos"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "No se han encontrado modelos huérfanos"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "No se han encontrado tablas huérfanas"
@@ -313,7 +314,7 @@ msgstr "No se han encontrado tablas huérfanas"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
msgid "Nothing found to clean up."
-msgstr ""
+msgstr "No hay nada que limpiar."
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_purge_line_ids
@@ -322,8 +323,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
-msgstr ""
+msgid "Property"
+msgstr "Propiedad"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_column_line
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr "Limpiar"
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr "Limpiar datos"
msgid "Purge data entries that refer to missing resources"
msgstr "Limpiar entradas de datos que se refieren a recursos ausentes"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr "Líneas de limpiado"
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -473,7 +474,7 @@ msgstr "Razón"
#. module: database_cleanup
#: selection:cleanup.purge.line.property,reason:0
msgid "Same value as default"
-msgstr ""
+msgstr "Mismo valor como predeterminado"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.form_purge_wizard
@@ -494,13 +495,13 @@ msgstr "Tablas a limpiar"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr "Asistente"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
msgid "cleanup.create_indexes.line"
-msgstr ""
+msgstr "cleanup.create_indexes.line"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_purge_line
diff --git a/database_cleanup/i18n/es_AR.po b/database_cleanup/i18n/es_AR.po
index 25a9628e493..2388c74d770 100644
--- a/database_cleanup/i18n/es_AR.po
+++ b/database_cleanup/i18n/es_AR.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Argentina) (https://www.transifex.com/oca/teams/23907/es_AR/)\n"
+"Language-Team: Spanish (Argentina) (https://www.transifex.com/oca/"
+"teams/23907/es_AR/)\n"
+"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_AR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_CL.po b/database_cleanup/i18n/es_CL.po
index 1b6ab6de546..10c0a648ae7 100644
--- a/database_cleanup/i18n/es_CL.po
+++ b/database_cleanup/i18n/es_CL.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Chile) (https://www.transifex.com/oca/teams/23907/es_CL/)\n"
+"Language-Team: Spanish (Chile) (https://www.transifex.com/oca/teams/23907/"
+"es_CL/)\n"
+"Language: es_CL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_CL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_CO.po b/database_cleanup/i18n/es_CO.po
index 5a84c074374..94653c34b30 100644
--- a/database_cleanup/i18n/es_CO.po
+++ b/database_cleanup/i18n/es_CO.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Colombia) (https://www.transifex.com/oca/teams/23907/es_CO/)\n"
+"Language-Team: Spanish (Colombia) (https://www.transifex.com/oca/teams/23907/"
+"es_CO/)\n"
+"Language: es_CO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_CO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_CR.po b/database_cleanup/i18n/es_CR.po
index 259716ef8bc..8ca67b55e53 100644
--- a/database_cleanup/i18n/es_CR.po
+++ b/database_cleanup/i18n/es_CR.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Costa Rica) (https://www.transifex.com/oca/teams/23907/es_CR/)\n"
+"Language-Team: Spanish (Costa Rica) (https://www.transifex.com/oca/"
+"teams/23907/es_CR/)\n"
+"Language: es_CR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_CR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_DO.po b/database_cleanup/i18n/es_DO.po
index 8b8d0fad6dd..7ffbc0fd752 100644
--- a/database_cleanup/i18n/es_DO.po
+++ b/database_cleanup/i18n/es_DO.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/oca/teams/23907/es_DO/)\n"
+"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/oca/"
+"teams/23907/es_DO/)\n"
+"Language: es_DO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_DO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_EC.po b/database_cleanup/i18n/es_EC.po
index d2c81741f00..f36533361af 100644
--- a/database_cleanup/i18n/es_EC.po
+++ b/database_cleanup/i18n/es_EC.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Ecuador) (https://www.transifex.com/oca/teams/23907/es_EC/)\n"
+"Language-Team: Spanish (Ecuador) (https://www.transifex.com/oca/teams/23907/"
+"es_EC/)\n"
+"Language: es_EC\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_EC\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_ES.po b/database_cleanup/i18n/es_ES.po
index cb8da34cb43..4e0e00b43dc 100644
--- a/database_cleanup/i18n/es_ES.po
+++ b/database_cleanup/i18n/es_ES.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/es_ES/)\n"
+"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/"
+"es_ES/)\n"
+"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_MX.po b/database_cleanup/i18n/es_MX.po
index 59e30f73eaa..75ace8bb215 100644
--- a/database_cleanup/i18n/es_MX.po
+++ b/database_cleanup/i18n/es_MX.po
@@ -1,21 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/es_MX/)\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
+"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/"
+"es_MX/)\n"
+"Language: es_MX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_MX\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -244,7 +245,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Modelo"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_PE.po b/database_cleanup/i18n/es_PE.po
index 12326d78f09..c910b45ef79 100644
--- a/database_cleanup/i18n/es_PE.po
+++ b/database_cleanup/i18n/es_PE.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Peru) (https://www.transifex.com/oca/teams/23907/es_PE/)\n"
+"Language-Team: Spanish (Peru) (https://www.transifex.com/oca/teams/23907/"
+"es_PE/)\n"
+"Language: es_PE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_PE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_PY.po b/database_cleanup/i18n/es_PY.po
index 3da34557236..85e895ab7c5 100644
--- a/database_cleanup/i18n/es_PY.po
+++ b/database_cleanup/i18n/es_PY.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Paraguay) (https://www.transifex.com/oca/teams/23907/es_PY/)\n"
+"Language-Team: Spanish (Paraguay) (https://www.transifex.com/oca/teams/23907/"
+"es_PY/)\n"
+"Language: es_PY\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_PY\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/es_VE.po b/database_cleanup/i18n/es_VE.po
index 6edf1606ab8..de3091b58b3 100644
--- a/database_cleanup/i18n/es_VE.po
+++ b/database_cleanup/i18n/es_VE.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Spanish (Venezuela) (https://www.transifex.com/oca/teams/23907/es_VE/)\n"
+"Language-Team: Spanish (Venezuela) (https://www.transifex.com/oca/"
+"teams/23907/es_VE/)\n"
+"Language: es_VE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: es_VE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nombre"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/et.po b/database_cleanup/i18n/et.po
index 0361c2d04ed..52e457b76f4 100644
--- a/database_cleanup/i18n/et.po
+++ b/database_cleanup/i18n/et.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Estonian (https://www.transifex.com/oca/teams/23907/et/)\n"
+"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Nimi"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/eu.po b/database_cleanup/i18n/eu.po
index 4a08405025b..45d32d7ba0c 100644
--- a/database_cleanup/i18n/eu.po
+++ b/database_cleanup/i18n/eu.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Basque (https://www.transifex.com/oca/teams/23907/eu/)\n"
+"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Izena"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/fa.po b/database_cleanup/i18n/fa.po
index cdb711a9c89..e848e397469 100644
--- a/database_cleanup/i18n/fa.po
+++ b/database_cleanup/i18n/fa.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Persian (https://www.transifex.com/oca/teams/23907/fa/)\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "نام"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/fi.po b/database_cleanup/i18n/fi.po
index 6d701267faf..120eae0552e 100644
--- a/database_cleanup/i18n/fi.po
+++ b/database_cleanup/i18n/fi.po
@@ -1,22 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Jarmo Kortetjärvi , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Jarmo Kortetjärvi , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
+"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,8 +139,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Kenttä"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +275,37 @@ msgid "Name"
msgstr "Nimi"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/fr.po b/database_cleanup/i18n/fr.po
index 0dabcb01144..cad3036da4f 100644
--- a/database_cleanup/i18n/fr.po
+++ b/database_cleanup/i18n/fr.po
@@ -1,29 +1,28 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Sébastien Alix , 2017
-# dglucose , 2017
+# OCA Transbot , 2018
+# Quentin THEURET , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: dglucose , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: Quentin THEURET , 2018\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
msgid "Columns to purge"
-msgstr ""
+msgstr "Colonnes à purger"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_line_action
@@ -34,23 +33,23 @@ msgstr "Créer"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_wizard_view_form
msgid "Create all"
-msgstr ""
+msgstr "Tous les créer"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_wizard
msgid "Create indexes"
-msgstr ""
+msgstr "Créer les index"
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.cleanup_create_indexes_wizard_action
#: model:ir.ui.menu,name:database_cleanup.menu_create_indexes
msgid "Create missing indexes"
-msgstr ""
+msgstr "Créer les index manquants"
#. module: database_cleanup
#: model:ir.ui.view,arch_db:database_cleanup.cleanup_create_indexes_line_view_tree
msgid "Create this index"
-msgstr ""
+msgstr "Créer cet index"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_purged
@@ -100,17 +99,17 @@ msgstr "Date"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_data_id
msgid "Data entry"
-msgstr ""
+msgstr "Donnée saisie"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_data_purge_line_ids
msgid "Data to purge"
-msgstr ""
+msgstr "Données à purger"
#. module: database_cleanup
#: model:ir.ui.menu,name:database_cleanup.menu_database_cleanup
msgid "Database cleanup"
-msgstr ""
+msgstr "Nettoyage de la base de données"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_display_name
@@ -137,12 +136,12 @@ msgstr "Nom à afficher"
#. module: database_cleanup
#: selection:cleanup.purge.line.property,reason:0
msgid "Duplicated property"
-msgstr ""
+msgstr "Propriété dupliquée"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Champ"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -236,12 +235,12 @@ msgstr "Dernière mise à jour le"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_menu_id
msgid "Menu entry"
-msgstr ""
+msgstr "Entrée de menu"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_menu_purge_line_ids
msgid "Menus to purge"
-msgstr ""
+msgstr "Menus à purger"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
@@ -256,12 +255,12 @@ msgstr "Modèles"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_model_purge_line_ids
msgid "Models to purge"
-msgstr ""
+msgstr "Modèles à purger"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module_purge_line_ids
msgid "Modules to purge"
-msgstr ""
+msgstr "Modules à purger"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_name
@@ -277,37 +276,37 @@ msgid "Name"
msgstr "Nom"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -324,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -339,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -371,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -496,8 +495,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
-msgstr "Wizard id"
+msgid "Wizard"
+msgstr ""
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
diff --git a/database_cleanup/i18n/fr_CA.po b/database_cleanup/i18n/fr_CA.po
index f9f7cf5836f..e84bf4f351c 100644
--- a/database_cleanup/i18n/fr_CA.po
+++ b/database_cleanup/i18n/fr_CA.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/fr_CA/)\n"
+"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/"
+"fr_CA/)\n"
+"Language: fr_CA\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fr_CA\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: database_cleanup
@@ -139,8 +140,9 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+#, fuzzy
+msgid "Field"
+msgstr "Champs"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -275,37 +277,37 @@ msgid "Name"
msgstr "Nom"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/fr_CH.po b/database_cleanup/i18n/fr_CH.po
index ffded413512..9622eb20f1b 100644
--- a/database_cleanup/i18n/fr_CH.po
+++ b/database_cleanup/i18n/fr_CH.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: French (Switzerland) (https://www.transifex.com/oca/teams/23907/fr_CH/)\n"
+"Language-Team: French (Switzerland) (https://www.transifex.com/oca/"
+"teams/23907/fr_CH/)\n"
+"Language: fr_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: fr_CH\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/gl.po b/database_cleanup/i18n/gl.po
index 3356048ad0f..d09fbf44f17 100644
--- a/database_cleanup/i18n/gl.po
+++ b/database_cleanup/i18n/gl.po
@@ -1,22 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# César Castro Cruz , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: César Castro Cruz , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n"
+"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -273,40 +272,40 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
-msgstr ""
+msgstr "Nome"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/gl_ES.po b/database_cleanup/i18n/gl_ES.po
index ff062018d37..b47a6f79f7a 100644
--- a/database_cleanup/i18n/gl_ES.po
+++ b/database_cleanup/i18n/gl_ES.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Galician (Spain) (https://www.transifex.com/oca/teams/23907/gl_ES/)\n"
+"Language-Team: Galician (Spain) (https://www.transifex.com/oca/teams/23907/"
+"gl_ES/)\n"
+"Language: gl_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: gl_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/he.po b/database_cleanup/i18n/he.po
index 118d2f57377..d06b550ea80 100644
--- a/database_cleanup/i18n/he.po
+++ b/database_cleanup/i18n/he.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Hebrew (https://www.transifex.com/oca/teams/23907/he/)\n"
+"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "שם"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/hr.po b/database_cleanup/i18n/hr.po
index a3da7c52c6e..65241f1288c 100644
--- a/database_cleanup/i18n/hr.po
+++ b/database_cleanup/i18n/hr.po
@@ -1,23 +1,23 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Ana-Maria Olujić , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Ana-Maria Olujić , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
+"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: hr\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -140,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Polje"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +276,37 @@ msgid "Name"
msgstr "Ime"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/hr_HR.po b/database_cleanup/i18n/hr_HR.po
index e8334ad8b1a..727457d7ff5 100644
--- a/database_cleanup/i18n/hr_HR.po
+++ b/database_cleanup/i18n/hr_HR.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,12 +11,14 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/hr_HR/)\n"
+"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/"
+"hr_HR/)\n"
+"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: hr_HR\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +141,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +277,37 @@ msgid "Name"
msgstr "Naziv"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/hu.po b/database_cleanup/i18n/hu.po
index e2560ccb57a..408a396f596 100644
--- a/database_cleanup/i18n/hu.po
+++ b/database_cleanup/i18n/hu.po
@@ -1,21 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Hungarian (https://www.transifex.com/oca/teams/23907/hu/)\n"
+"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -244,7 +244,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Modell, minta"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Név"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/id.po b/database_cleanup/i18n/id.po
index 938046efc80..af839842b0c 100644
--- a/database_cleanup/i18n/id.po
+++ b/database_cleanup/i18n/id.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Indonesian (https://www.transifex.com/oca/teams/23907/id/)\n"
+"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Nama"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/it.po b/database_cleanup/i18n/it.po
index e7c7c51e19e..695de1a3800 100644
--- a/database_cleanup/i18n/it.po
+++ b/database_cleanup/i18n/it.po
@@ -1,22 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Paolo Valier , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Paolo Valier , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,8 +139,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Campo"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +275,37 @@ msgid "Name"
msgstr "Nome"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ja.po b/database_cleanup/i18n/ja.po
index 5a5c22615f0..f1ebe038966 100644
--- a/database_cleanup/i18n/ja.po
+++ b/database_cleanup/i18n/ja.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Japanese (https://www.transifex.com/oca/teams/23907/ja/)\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "名称"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ko.po b/database_cleanup/i18n/ko.po
index 04b85d75289..a297158f0c4 100644
--- a/database_cleanup/i18n/ko.po
+++ b/database_cleanup/i18n/ko.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Korean (https://www.transifex.com/oca/teams/23907/ko/)\n"
+"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "이름"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/lt.po b/database_cleanup/i18n/lt.po
index 929d2feb288..08a21af9d5e 100644
--- a/database_cleanup/i18n/lt.po
+++ b/database_cleanup/i18n/lt.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Lithuanian (https://www.transifex.com/oca/teams/23907/lt/)\n"
+"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: lt\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Pavadinimas"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/lt_LT.po b/database_cleanup/i18n/lt_LT.po
index 53b3448cc4c..8748269eff8 100644
--- a/database_cleanup/i18n/lt_LT.po
+++ b/database_cleanup/i18n/lt_LT.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,12 +11,14 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/oca/teams/23907/lt_LT/)\n"
+"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/oca/"
+"teams/23907/lt_LT/)\n"
+"Language: lt_LT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: lt_LT\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +141,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +277,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/lv.po b/database_cleanup/i18n/lv.po
index fcf7c0e33ef..253371e3019 100644
--- a/database_cleanup/i18n/lv.po
+++ b/database_cleanup/i18n/lv.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Latvian (https://www.transifex.com/oca/teams/23907/lv/)\n"
+"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: lv\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nosaukums"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/mk.po b/database_cleanup/i18n/mk.po
index 217c35c95a4..a9ec516ecf7 100644
--- a/database_cleanup/i18n/mk.po
+++ b/database_cleanup/i18n/mk.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Macedonian (https://www.transifex.com/oca/teams/23907/mk/)\n"
+"Language: mk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Име"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/mn.po b/database_cleanup/i18n/mn.po
index 9ed1f9b7115..91833631a54 100644
--- a/database_cleanup/i18n/mn.po
+++ b/database_cleanup/i18n/mn.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Mongolian (https://www.transifex.com/oca/teams/23907/mn/)\n"
+"Language: mn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: mn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Нэр"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/nb.po b/database_cleanup/i18n/nb.po
index 50953b2ea0a..9a552a649e8 100644
--- a/database_cleanup/i18n/nb.po
+++ b/database_cleanup/i18n/nb.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Norwegian Bokmål (https://www.transifex.com/oca/teams/23907/nb/)\n"
+"Language-Team: Norwegian Bokmål (https://www.transifex.com/oca/teams/23907/"
+"nb/)\n"
+"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Navn"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/nb_NO.po b/database_cleanup/i18n/nb_NO.po
index 392ddec144b..81617882905 100644
--- a/database_cleanup/i18n/nb_NO.po
+++ b/database_cleanup/i18n/nb_NO.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
# Imre Kristoffer Eilertsen , 2017
@@ -12,11 +12,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: Imre Kristoffer Eilertsen , 2017\n"
-"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/teams/23907/nb_NO/)\n"
+"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/"
+"teams/23907/nb_NO/)\n"
+"Language: nb_NO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: nb_NO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,7 +141,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -276,37 +277,37 @@ msgid "Name"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/nl.po b/database_cleanup/i18n/nl.po
index 4d5b28b8f88..12dc6ff98b5 100644
--- a/database_cleanup/i18n/nl.po
+++ b/database_cleanup/i18n/nl.po
@@ -1,23 +1,21 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# lfreeke , 2017
-# Erwin van der Ploeg , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Erwin van der Ploeg , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -141,8 +139,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Veld"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -246,7 +244,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -277,37 +275,37 @@ msgid "Name"
msgstr "Naam"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -324,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -339,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -371,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -496,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/nl_BE.po b/database_cleanup/i18n/nl_BE.po
index 8486d51e451..2692a48015f 100644
--- a/database_cleanup/i18n/nl_BE.po
+++ b/database_cleanup/i18n/nl_BE.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Dutch (Belgium) (https://www.transifex.com/oca/teams/23907/nl_BE/)\n"
+"Language-Team: Dutch (Belgium) (https://www.transifex.com/oca/teams/23907/"
+"nl_BE/)\n"
+"Language: nl_BE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: nl_BE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Naam:"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/nl_NL.po b/database_cleanup/i18n/nl_NL.po
index 9d880a82922..b38e3e98ef4 100644
--- a/database_cleanup/i18n/nl_NL.po
+++ b/database_cleanup/i18n/nl_NL.po
@@ -1,21 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# Peter Hageman , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-06-24 08:50+0000\n"
-"PO-Revision-Date: 2017-06-24 08:50+0000\n"
-"Last-Translator: Peter Hageman , 2017\n"
-"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
+"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/"
+"teams/23907/nl_NL/)\n"
+"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -73,7 +74,7 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_uid
msgid "Created by"
-msgstr ""
+msgstr "Aangemaakt door"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_create_date
@@ -93,7 +94,7 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_create_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_create_date
msgid "Created on"
-msgstr ""
+msgstr "Aangemaakt op"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_data_id
@@ -139,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Veld"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -209,7 +210,7 @@ msgstr "Laatst gewijzigd op"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_uid
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Laatst bijgewerkt door"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_write_date
@@ -229,7 +230,7 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_property_write_date
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table_write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Laatst bijgewerkt op"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_menu_menu_id
@@ -244,7 +245,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -272,40 +273,40 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
-msgstr ""
+msgstr "Naam"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/pl.po b/database_cleanup/i18n/pl.po
index fdb179b8713..cdf0c96a170 100644
--- a/database_cleanup/i18n/pl.po
+++ b/database_cleanup/i18n/pl.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,11 +12,13 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Polish (https://www.transifex.com/oca/teams/23907/pl/)\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pl\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
+"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +141,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +277,37 @@ msgid "Name"
msgstr "Nazwa"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/pt.po b/database_cleanup/i18n/pt.po
index 8f45c217c7b..c24bb4ebf1d 100644
--- a/database_cleanup/i18n/pt.po
+++ b/database_cleanup/i18n/pt.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n"
+"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -139,8 +139,9 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+#, fuzzy
+msgid "Field"
+msgstr "Campos"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Nome"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/pt_BR.po b/database_cleanup/i18n/pt_BR.po
index d8608f27e05..971cb066939 100644
--- a/database_cleanup/i18n/pt_BR.po
+++ b/database_cleanup/i18n/pt_BR.po
@@ -1,22 +1,22 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# danimaribeiro , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: danimaribeiro , 2017\n"
-"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
+"teams/23907/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: database_cleanup
@@ -140,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Campo"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +276,37 @@ msgid "Name"
msgstr "Nome"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "Nenhuma entrada de menu pendente encontrada"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr "Nenhum módulo encontrado para excluir"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "Nenhuma coluna orfã encontrada"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "Nenhuma entrada de dados orfã encontrada"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "Nenhum modelo orfão encontrado"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "Nenhuma tabela orfã encontrada"
@@ -323,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +376,6 @@ msgstr "Excluir dados"
msgid "Purge data entries that refer to missing resources"
msgstr "Excluir entrada de dados que se referem a recursos faltantes"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +495,7 @@ msgstr "Tabelas para excluir"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/pt_PT.po b/database_cleanup/i18n/pt_PT.po
index 3a4b873c980..795c2429ca7 100644
--- a/database_cleanup/i18n/pt_PT.po
+++ b/database_cleanup/i18n/pt_PT.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
# Pedro Castro Silva , 2017
@@ -12,11 +12,12 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: Pedro Castro Silva , 2017\n"
-"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/pt_PT/)\n"
+"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/"
+"teams/23907/pt_PT/)\n"
+"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: database_cleanup
@@ -140,8 +141,9 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+#, fuzzy
+msgid "Field"
+msgstr "Campos"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +278,37 @@ msgid "Name"
msgstr "Nome"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -323,7 +325,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +340,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +378,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +497,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ro.po b/database_cleanup/i18n/ro.po
index 99dcb05741e..3f076d8aa2f 100644
--- a/database_cleanup/i18n/ro.po
+++ b/database_cleanup/i18n/ro.po
@@ -1,22 +1,23 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 9.0c\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n"
+"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ro\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Columna"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -244,7 +245,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_model_id
msgid "Model"
-msgstr ""
+msgstr "Model"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model
@@ -272,40 +273,40 @@ msgstr ""
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_table_name
msgid "Name"
-msgstr ""
+msgstr "Nume"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/ru.po b/database_cleanup/i18n/ru.po
index 9a0ec657dd3..41e41c32757 100644
--- a/database_cleanup/i18n/ru.po
+++ b/database_cleanup/i18n/ru.po
@@ -1,22 +1,24 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: OCA Transbot , 2016\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: ru\n"
-"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,8 +141,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Поле"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -275,37 +277,37 @@ msgid "Name"
msgstr "Название"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/sk.po b/database_cleanup/i18n/sk.po
index 1343b86394b..64a921bf04c 100644
--- a/database_cleanup/i18n/sk.po
+++ b/database_cleanup/i18n/sk.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Slovak (https://www.transifex.com/oca/teams/23907/sk/)\n"
+"Language: sk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: sk\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: database_cleanup
@@ -139,7 +139,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +275,37 @@ msgid "Name"
msgstr "Meno"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +322,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +337,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +375,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +494,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/sl.po b/database_cleanup/i18n/sl.po
index 534dab0bd63..34309b59b2f 100644
--- a/database_cleanup/i18n/sl.po
+++ b/database_cleanup/i18n/sl.po
@@ -1,23 +1,23 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
-# OCA Transbot , 2016
-# Matjaž Mozetič , 2017
+# OCA Transbot , 2018
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-04-19 18:00+0000\n"
-"PO-Revision-Date: 2017-04-19 18:00+0000\n"
-"Last-Translator: Matjaž Mozetič , 2017\n"
+"POT-Creation-Date: 2018-03-03 10:08+0000\n"
+"PO-Revision-Date: 2018-03-03 10:08+0000\n"
+"Last-Translator: OCA Transbot , 2018\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
+"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: sl\n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
+"%100==4 ? 2 : 3);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -140,8 +140,8 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
-msgstr ""
+msgid "Field"
+msgstr "Polje"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_ir_model_fields
@@ -276,37 +276,37 @@ msgid "Name"
msgstr "Naziv"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr "Noben odvečen meni ni najden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr "Ni najdenih modulov za očiščenje"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr "Noben opuščen stolpec ni najden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr "Noben opuščen podatkovni vnos ni najden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr "Noben opuščen model ni najden"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr "Nobena opuščena tabela ni najdena"
@@ -323,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -338,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -370,12 +376,6 @@ msgstr "Očiščenje podatkov"
msgid "Purge data entries that refer to missing resources"
msgstr "Očiščenje podatkovnih vnosov, ki se sklicujejo na manjkajoče vire"
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -495,7 +495,7 @@ msgstr "Tabele za očiščenje"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/sr.po b/database_cleanup/i18n/sr.po
index 9758a4af907..450494224ed 100644
--- a/database_cleanup/i18n/sr.po
+++ b/database_cleanup/i18n/sr.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
"Language-Team: Serbian (https://www.transifex.com/oca/teams/23907/sr/)\n"
+"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: sr\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +140,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +276,37 @@ msgid "Name"
msgstr "Ime"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +323,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +338,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +376,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +495,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/sr@latin.po b/database_cleanup/i18n/sr@latin.po
index d47d30eec90..bea0c4e6b52 100644
--- a/database_cleanup/i18n/sr@latin.po
+++ b/database_cleanup/i18n/sr@latin.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -11,12 +11,14 @@ msgstr ""
"POT-Creation-Date: 2017-04-19 18:00+0000\n"
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot , 2016\n"
-"Language-Team: Serbian (Latin) (https://www.transifex.com/oca/teams/23907/sr@latin/)\n"
+"Language-Team: Serbian (Latin) (https://www.transifex.com/oca/teams/23907/"
+"sr@latin/)\n"
+"Language: sr@latin\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Language: sr@latin\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_column_purge_line_ids
@@ -139,7 +141,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_field_id
-msgid "Field id"
+msgid "Field"
msgstr ""
#. module: database_cleanup
@@ -275,37 +277,37 @@ msgid "Name"
msgstr "Ime:"
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_menus.py:46
+#: code:addons/database_cleanup/models/purge_menus.py:54
#, python-format
msgid "No dangling menu entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_modules.py:79
+#: code:addons/database_cleanup/models/purge_modules.py:77
#, python-format
msgid "No modules found to purge"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_columns.py:123
+#: code:addons/database_cleanup/models/purge_columns.py:126
#, python-format
msgid "No orphaned columns found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_data.py:64
+#: code:addons/database_cleanup/models/purge_data.py:69
#, python-format
msgid "No orphaned data entries found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_models.py:116
+#: code:addons/database_cleanup/models/purge_models.py:113
#, python-format
msgid "No orphaned models found"
msgstr ""
#. module: database_cleanup
-#: code:addons/database_cleanup/models/purge_tables.py:102
+#: code:addons/database_cleanup/models/purge_tables.py:105
#, python-format
msgid "No orphaned tables found"
msgstr ""
@@ -322,7 +324,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_property_property_id
-msgid "Property id"
+msgid "Property"
msgstr ""
#. module: database_cleanup
@@ -337,6 +339,12 @@ msgstr ""
msgid "Purge"
msgstr ""
+#. module: database_cleanup
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
+#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
+msgid "Purge Line"
+msgstr ""
+
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_column_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_data_wizard_id
@@ -369,12 +377,6 @@ msgstr ""
msgid "Purge data entries that refer to missing resources"
msgstr ""
-#. module: database_cleanup
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_wizard_purge_line_ids
-#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_purge_line_ids
-msgid "Purge line ids"
-msgstr ""
-
#. module: database_cleanup
#: model:ir.actions.server,name:database_cleanup.action_purge_menus
#: model:ir.model,name:database_cleanup.model_cleanup_purge_wizard_menu
@@ -494,7 +496,7 @@ msgstr ""
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line_wizard_id
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_line_wizard_id
-msgid "Wizard id"
+msgid "Wizard"
msgstr ""
#. module: database_cleanup
diff --git a/database_cleanup/i18n/sv.po b/database_cleanup/i18n/sv.po
index d9d456fef85..55bf62312ba 100644
--- a/database_cleanup/i18n/sv.po
+++ b/database_cleanup/i18n/sv.po
@@ -1,7 +1,7 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * database_cleanup
-#
+#
# Translators:
# OCA Transbot , 2016
msgid ""
@@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-Date: 2017-04-19 18:00+0000\n"
"Last-Translator: OCA Transbot