From 687966d57ab6ab11270dbff340f7ed736a214fb5 Mon Sep 17 00:00:00 2001 From: Carlos Incaser Date: Fri, 4 Dec 2015 19:12:24 +0100 Subject: [PATCH 01/17] [ADD][8.0] base_custom_info: Init develop --- base_custom_info/README.rst | 53 ++++++++++++++ base_custom_info/__init__.py | 6 ++ base_custom_info/__openerp__.py | 21 ++++++ base_custom_info/models/__init__.py | 6 ++ .../models/custom_info_template.py | 69 ++++++++++++++++++ .../views/custom_info_template_view.xml | 71 +++++++++++++++++++ 6 files changed, 226 insertions(+) create mode 100644 base_custom_info/README.rst create mode 100644 base_custom_info/__init__.py create mode 100644 base_custom_info/__openerp__.py create mode 100644 base_custom_info/models/__init__.py create mode 100644 base_custom_info/models/custom_info_template.py create mode 100644 base_custom_info/views/custom_info_template_view.xml diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst new file mode 100644 index 000000000..5604e2a88 --- /dev/null +++ b/base_custom_info/README.rst @@ -0,0 +1,53 @@ +.. 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 + +================ +Base Custom Info +================ + +This module allow create custom fields in models without alter models +structures. + +Usage +===== + +To use this module, you need to: + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/186 + +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 +`here `_. + +Credits +======= + +Contributors +------------ + +* Rafael Blasco +* Carlos Dauden +* Sergio Teruel + +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 http://odoo-community.org. diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py new file mode 100644 index 000000000..7fffa6f51 --- /dev/null +++ b/base_custom_info/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel +# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import models \ No newline at end of file diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__openerp__.py new file mode 100644 index 000000000..f9b4f68f4 --- /dev/null +++ b/base_custom_info/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel +# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + 'name': "Base Custom Info", + 'summary': "Add custom field in models", + 'category': 'Customize', + 'version': '8.0.1.0.0', + 'depends': [ + 'base', + ], + 'data': [ + ], + 'author': 'Antiun Ingeniería S.L., ' + 'Incaser Informatica S.L., ', + 'website': 'http://www.antiun.com', + 'license': 'AGPL-3', + 'installable': True, +} diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py new file mode 100644 index 000000000..f523517ad --- /dev/null +++ b/base_custom_info/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel +# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import custom_info_template diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py new file mode 100644 index 000000000..37fb7fc45 --- /dev/null +++ b/base_custom_info/models/custom_info_template.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel +# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from openerp import api, fields, models, _ + + +class CustomInfoTemplate(models.Model): + _name = "custom.info.template" + + name = fields.Char() + model_id = fields.Many2one(comodel_name='ir.model', string='Data Model') + info_ids = fields.One2many( + comodel_name='custom.info.template.line', + inverse_name='template_id', + string='Info') + + +class CustomInfoTemplateLine(models.Model): + _name = "custom.info.template.line" + + name = fields.Char() + template_id = fields.Many2one( + comodel_name='custom.info.template', + string='Template') + info_value_ids = fields.One2many( + comodel_name="custom.info.value", + inverse_name="custom_info_name_id", + string="Info Values") + + +class CustomInfoValue(models.Model): + _name = "custom.info.value" + _rec_name = 'value' + + model = fields.Char(select=True) + res_id = fields.Integer(select=True) + custom_info_name_id = fields.Many2one( + comodel_name='custom.info.template.line', + string='Info Name') + value = fields.Char() + + +class CustomInfo(models.AbstractModel): + _name = "custom.info" + + custom_info_template_id = fields.Many2one( + comodel_name='custom.info.template', + string='Info Template') + custom_info_ids = fields.One2many( + comodel_name='custom.info.value', + inverse_name='res_id', + domain=lambda self: [('model', '=', self._name)], + auto_join=True, + string='Custom Info') + + @api.onchange('custom_info_template_id') + def _onchange_custom_info_template_id(self): + if not self.custom_info_template_id: + self.custom_info_ids = False + else: + info_list = self.custom_info_ids.mapped('custom_info_name_id') + for info_name in self.custom_info_template_id.info_ids: + if info_name not in info_list: + self.custom_info_ids |= self.custom_info_ids.new({ + 'model': self._name, + 'custom_info_name_id': info_name.id, + }) diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml new file mode 100644 index 000000000..660577421 --- /dev/null +++ b/base_custom_info/views/custom_info_template_view.xml @@ -0,0 +1,71 @@ + + + + + + base.custom.info.template.form + base.custom.info.template + +
+ + + + + + + + + + + + + +
+
+
+ + + base.custom.info.template.tree + base.custom.info.template + + + + + + + + + + + base.custom.info.template.line.form + base.custom.info.template.line + +
+ + + + + + + + + +
+
+
+ + + base.custom.info.value.tree + base.custom.info.value + + + + + + + + + + +
+
From 9dad67ac3f849fce6a54da1cdac9a5797650d40b Mon Sep 17 00:00:00 2001 From: Carlos Incaser Date: Fri, 11 Dec 2015 02:41:01 +0100 Subject: [PATCH 02/17] [IMP][8.0] base_custom_info: Actions and menus. Refactor strings Info to Property --- base_custom_info/__openerp__.py | 1 + .../models/custom_info_template.py | 10 +-- .../views/custom_info_template_view.xml | 81 ++++++++++++++++--- 3 files changed, 78 insertions(+), 14 deletions(-) diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__openerp__.py index f9b4f68f4..7bcc581bf 100644 --- a/base_custom_info/__openerp__.py +++ b/base_custom_info/__openerp__.py @@ -12,6 +12,7 @@ 'base', ], 'data': [ + 'views/custom_info_template_view.xml' ], 'author': 'Antiun Ingeniería S.L., ' 'Incaser Informatica S.L., ', diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py index 37fb7fc45..505166abb 100644 --- a/base_custom_info/models/custom_info_template.py +++ b/base_custom_info/models/custom_info_template.py @@ -14,7 +14,7 @@ class CustomInfoTemplate(models.Model): info_ids = fields.One2many( comodel_name='custom.info.template.line', inverse_name='template_id', - string='Info') + string='Properties') class CustomInfoTemplateLine(models.Model): @@ -27,7 +27,7 @@ class CustomInfoTemplateLine(models.Model): info_value_ids = fields.One2many( comodel_name="custom.info.value", inverse_name="custom_info_name_id", - string="Info Values") + string="Property Values") class CustomInfoValue(models.Model): @@ -38,7 +38,7 @@ class CustomInfoValue(models.Model): res_id = fields.Integer(select=True) custom_info_name_id = fields.Many2one( comodel_name='custom.info.template.line', - string='Info Name') + string='Property Name') value = fields.Char() @@ -47,13 +47,13 @@ class CustomInfo(models.AbstractModel): custom_info_template_id = fields.Many2one( comodel_name='custom.info.template', - string='Info Template') + string='Property Template') custom_info_ids = fields.One2many( comodel_name='custom.info.value', inverse_name='res_id', domain=lambda self: [('model', '=', self._name)], auto_join=True, - string='Custom Info') + string='Custom Properties') @api.onchange('custom_info_template_id') def _onchange_custom_info_template_id(self): diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index 660577421..e432e5336 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -2,15 +2,29 @@ + + + + base.custom.info.template.tree + custom.info.template + + + + + + + + + base.custom.info.template.form - base.custom.info.template + custom.info.template
- + @@ -24,21 +38,46 @@ - - base.custom.info.template.tree - base.custom.info.template + + Templates + ir.actions.act_window + custom.info.template + tree,form + form + + + +

+ Click to define a new custom info template. +

+ You must define a custom info template for every different + product properties group. +

+
+
+ + + + + + + + + base.custom.info.template.line.tree + custom.info.template.line - - + base.custom.info.template.line.form - base.custom.info.template.line + custom.info.template.line @@ -54,9 +93,22 @@ + + Properties + ir.actions.act_window + custom.info.template.line + tree,form + form + + + + + + base.custom.info.value.tree - base.custom.info.value + custom.info.value @@ -67,5 +119,16 @@ + + Values + ir.actions.act_window + custom.info.value + tree,form + form + + + + From f06b40e4f3c8095c127f9737bca60a9f0f9e2d58 Mon Sep 17 00:00:00 2001 From: Carlos Incaser Date: Fri, 11 Dec 2015 18:18:53 +0100 Subject: [PATCH 03/17] [FIX][8.0] base_custom_info: Minor fix and security --- base_custom_info/__openerp__.py | 6 +- base_custom_info/models/__init__.py | 2 +- ...custom_info_template.py => custom_info.py} | 18 ++++- base_custom_info/security/ir.model.access.csv | 7 ++ .../views/custom_info_template_line_view.xml | 43 +++++++++++ .../views/custom_info_template_view.xml | 76 ------------------- .../views/custom_info_value_view.xml | 27 +++++++ base_custom_info/views/menu.xml | 22 ++++++ 8 files changed, 121 insertions(+), 80 deletions(-) rename base_custom_info/models/{custom_info_template.py => custom_info.py} (78%) create mode 100644 base_custom_info/security/ir.model.access.csv create mode 100644 base_custom_info/views/custom_info_template_line_view.xml create mode 100644 base_custom_info/views/custom_info_value_view.xml create mode 100644 base_custom_info/views/menu.xml diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__openerp__.py index 7bcc581bf..9b4521191 100644 --- a/base_custom_info/__openerp__.py +++ b/base_custom_info/__openerp__.py @@ -12,7 +12,11 @@ 'base', ], 'data': [ - 'views/custom_info_template_view.xml' + 'views/custom_info_template_view.xml', + 'views/custom_info_template_line_view.xml', + 'views/custom_info_value_view.xml', + 'views/menu.xml', + 'security/ir.model.access.csv', ], 'author': 'Antiun Ingeniería S.L., ' 'Incaser Informatica S.L., ', diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index f523517ad..c7f3fd66c 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -3,4 +3,4 @@ # (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from . import custom_info_template +from . import custom_info diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info.py similarity index 78% rename from base_custom_info/models/custom_info_template.py rename to base_custom_info/models/custom_info.py index 505166abb..3001ae6bd 100644 --- a/base_custom_info/models/custom_info_template.py +++ b/base_custom_info/models/custom_info.py @@ -8,6 +8,7 @@ from openerp import api, fields, models, _ class CustomInfoTemplate(models.Model): _name = "custom.info.template" + _description = "Template of properties" name = fields.Char() model_id = fields.Many2one(comodel_name='ir.model', string='Data Model') @@ -19,6 +20,7 @@ class CustomInfoTemplate(models.Model): class CustomInfoTemplateLine(models.Model): _name = "custom.info.template.line" + _description = "Properties" name = fields.Char() template_id = fields.Many2one( @@ -32,18 +34,22 @@ class CustomInfoTemplateLine(models.Model): class CustomInfoValue(models.Model): _name = "custom.info.value" + _description = "Values of properties" _rec_name = 'value' - model = fields.Char(select=True) - res_id = fields.Integer(select=True) + model = fields.Char(index=True, required=True) + res_id = fields.Integer(index=True, required=True) custom_info_name_id = fields.Many2one( comodel_name='custom.info.template.line', + required=True, string='Property Name') + name = fields.Char(related='custom_info_name_id.name') value = fields.Char() class CustomInfo(models.AbstractModel): _name = "custom.info" + _description = "Abstract model from inherit to add info in any model" custom_info_template_id = fields.Many2one( comodel_name='custom.info.template', @@ -67,3 +73,11 @@ class CustomInfo(models.AbstractModel): 'model': self._name, 'custom_info_name_id': info_name.id, }) + + @api.multi + def unlink(self): + info_values = self.mapped('custom_info_ids') + res = super(CustomInfo, self).unlink() + if res: + info_values.unlink() + return res diff --git a/base_custom_info/security/ir.model.access.csv b/base_custom_info/security/ir.model.access.csv new file mode 100644 index 000000000..388445929 --- /dev/null +++ b/base_custom_info/security/ir.model.access.csv @@ -0,0 +1,7 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_custom_info_template_user,custom.info.template.user,model_custom_info_template,base.group_user,1,0,0,0 +access_custom_info_template_line_user,custom.info.template.line.user,model_custom_info_template_line,base.group_user,1,0,0,0 +access_custom_info_value_user,custom.info.value.user,model_custom_info_value,base.group_user,1,0,0,0 +access_custom_info_template_sale_manager,custom.info.template.salemanager,model_custom_info_template,base.group_sale_manager,1,1,1,1 +access_custom_info_template_line_sale_manager,custom.info.template.line.salemanager,model_custom_info_template_line,base.group_sale_manager,1,1,1,1 +access_custom_info_value_sale_manager,custom.info.value.salemanager,model_custom_info_value,base.group_sale_manager,1,1,1,1 diff --git a/base_custom_info/views/custom_info_template_line_view.xml b/base_custom_info/views/custom_info_template_line_view.xml new file mode 100644 index 000000000..d682499fe --- /dev/null +++ b/base_custom_info/views/custom_info_template_line_view.xml @@ -0,0 +1,43 @@ + + + + + + base.custom.info.template.line.tree + custom.info.template.line + + + + + + + + + + base.custom.info.template.line.form + custom.info.template.line + + + + + + + + + + + + + + + + + Properties + ir.actions.act_window + custom.info.template.line + tree,form + form + + + + diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index e432e5336..60f4e8e40 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -2,8 +2,6 @@ - - base.custom.info.template.tree custom.info.template @@ -56,79 +54,5 @@
- - - - - - - - base.custom.info.template.line.tree - custom.info.template.line - - - - - - - - - - base.custom.info.template.line.form - custom.info.template.line - -
- - - - - - - - - -
-
-
- - - Properties - ir.actions.act_window - custom.info.template.line - tree,form - form - - - - - - - - base.custom.info.value.tree - custom.info.value - - - - - - - - - - - - Values - ir.actions.act_window - custom.info.value - tree,form - form - - - -
diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml new file mode 100644 index 000000000..5a08a9c5d --- /dev/null +++ b/base_custom_info/views/custom_info_value_view.xml @@ -0,0 +1,27 @@ + + + + + + base.custom.info.value.tree + custom.info.value + + + + + + + + + + + + Values + ir.actions.act_window + custom.info.value + tree,form + form + + + + diff --git a/base_custom_info/views/menu.xml b/base_custom_info/views/menu.xml new file mode 100644 index 000000000..d23ef5fc8 --- /dev/null +++ b/base_custom_info/views/menu.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + From db238eb87676ddb0333ed8224c804017ef2c6818 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 15 Dec 2015 17:16:06 +0100 Subject: [PATCH 04/17] Fix many bugs and styling, and prepare for OCA. --- base_custom_info/README.rst | 60 +++++- base_custom_info/__init__.py | 6 +- base_custom_info/__openerp__.py | 18 +- base_custom_info/i18n/de.po | 202 +++++++++++++++++ base_custom_info/i18n/en.po | 202 +++++++++++++++++ base_custom_info/i18n/es.po | 202 +++++++++++++++++ base_custom_info/i18n/fi.po | 202 +++++++++++++++++ base_custom_info/i18n/fr.po | 202 +++++++++++++++++ base_custom_info/i18n/fr_CA.po | 202 +++++++++++++++++ base_custom_info/i18n/it.po | 203 ++++++++++++++++++ base_custom_info/i18n/pt_BR.po | 202 +++++++++++++++++ base_custom_info/i18n/ru.po | 202 +++++++++++++++++ base_custom_info/i18n/sl.po | 203 ++++++++++++++++++ base_custom_info/i18n/tr.po | 202 +++++++++++++++++ base_custom_info/images/menu.png | Bin 0 -> 3542 bytes base_custom_info/images/properties.png | Bin 0 -> 21669 bytes base_custom_info/images/templates.png | Bin 0 -> 19551 bytes base_custom_info/images/values.png | Bin 0 -> 14824 bytes base_custom_info/models/__init__.py | 4 +- base_custom_info/models/custom_info.py | 96 ++++++--- base_custom_info/security/ir.model.access.csv | 14 +- ...view.xml => custom_info_property_view.xml} | 12 +- .../views/custom_info_template_view.xml | 4 +- .../views/custom_info_value_view.xml | 6 +- base_custom_info/views/menu.xml | 9 +- 25 files changed, 2387 insertions(+), 66 deletions(-) create mode 100644 base_custom_info/i18n/de.po create mode 100644 base_custom_info/i18n/en.po create mode 100644 base_custom_info/i18n/es.po create mode 100644 base_custom_info/i18n/fi.po create mode 100644 base_custom_info/i18n/fr.po create mode 100644 base_custom_info/i18n/fr_CA.po create mode 100644 base_custom_info/i18n/it.po create mode 100644 base_custom_info/i18n/pt_BR.po create mode 100644 base_custom_info/i18n/ru.po create mode 100644 base_custom_info/i18n/sl.po create mode 100644 base_custom_info/i18n/tr.po create mode 100644 base_custom_info/images/menu.png create mode 100644 base_custom_info/images/properties.png create mode 100644 base_custom_info/images/templates.png create mode 100644 base_custom_info/images/values.png rename base_custom_info/views/{custom_info_template_line_view.xml => custom_info_property_view.xml} (73%) diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 5604e2a88..14f3b5a90 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -6,26 +6,67 @@ Base Custom Info ================ -This module allow create custom fields in models without alter models -structures. +This module allows to create custom fields in models without altering model's +structure. + +Installation +============ + +This module serves as a base for other modules that implement this behavior in +concrete models. + +This module is a technical dependency and is to be installed in parallel to +other modules. Usage ===== -To use this module, you need to: +This module defines *Custom Info Templates* that define what properties are +expected for a given record. + +To define a template, you need to: + +* Go to *Settings > Custom Info > Templates*. +* Create one. +* Add some *Properties* to it. + +All database records with that template enabled will automatically fill those +properties. + +To manage the properties, you need to: +* Go to *Settings > Custom Info > Properties*. + +To manage their values, you need to: + +* Go to *Settings > Custom Info > Values*. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/186 + :target: https://runbot.odoo-community.org/runbot/135/8.0 + +Development +=========== + +To create a module that supports custom information, just depend on this module +and inherit from the ``custom.info`` model. + +Known issues / Roadmap +====================== + +* All data types of custom information values are text strings. 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 -`here `_. +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 ======= @@ -36,6 +77,7 @@ Contributors * Rafael Blasco * Carlos Dauden * Sergio Teruel +* Jairo Llopis Maintainer ---------- @@ -50,4 +92,4 @@ 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 http://odoo-community.org. +To contribute to this module, please visit https://odoo-community.org. diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py index 7fffa6f51..5faa0139b 100644 --- a/base_custom_info/__init__.py +++ b/base_custom_info/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel -# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Sergio Teruel +# © 2015 Antiun Ingeniería S.L. - Carlos Dauden # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from . import models \ No newline at end of file +from . import models diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__openerp__.py index 9b4521191..79982b965 100644 --- a/base_custom_info/__openerp__.py +++ b/base_custom_info/__openerp__.py @@ -1,25 +1,33 @@ # -*- coding: utf-8 -*- -# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel -# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Sergio Teruel +# © 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { 'name': "Base Custom Info", 'summary': "Add custom field in models", - 'category': 'Customize', + 'category': 'Tools', 'version': '8.0.1.0.0', 'depends': [ 'base', ], 'data': [ 'views/custom_info_template_view.xml', - 'views/custom_info_template_line_view.xml', + 'views/custom_info_property_view.xml', 'views/custom_info_value_view.xml', 'views/menu.xml', 'security/ir.model.access.csv', ], + "images": [ + "images/menu.png", + "images/properties.png", + "images/templates.png", + "images/values.png", + ], 'author': 'Antiun Ingeniería S.L., ' - 'Incaser Informatica S.L., ', + 'Incaser Informatica S.L., ' + 'Odoo Community Association (OCA)', 'website': 'http://www.antiun.com', 'license': 'AGPL-3', 'installable': True, diff --git a/base_custom_info/i18n/de.po b/base_custom_info/i18n/de.po new file mode 100644 index 000000000..0db26c59b --- /dev/null +++ b/base_custom_info/i18n/de.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Erstellt von" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Erstellt am:" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modell" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Name" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "Ressourcen-ID" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Werte" diff --git a/base_custom_info/i18n/en.po b/base_custom_info/i18n/en.po new file mode 100644 index 000000000..30e591066 --- /dev/null +++ b/base_custom_info/i18n/en.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: English (http://www.transifex.com/oca/OCA-server-tools-8-0/language/en/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "

\n Click to define a new custom info template.\n

\n You must define a custom info template for each\n product properties group.\n

\n " + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "A model that gets its ``ir.model`` computed" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "Another property with that name exists for that resource." + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "Another property with that name exists for that template." + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "Another template with that name exists for that model." + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Created by" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Created on" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "Custom Info" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "Custom Info Template" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "Custom Info Template Properties" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "Custom Info Templates" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "Custom Information Template" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "Custom Properties" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "Custom Property Values" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "Custom information property" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "Custom information template" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "Custom information value" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "Info Lines" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "Inheritable abstract model to add custom info in any model" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Model" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Name" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "Properties" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "Property" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "Property Values" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "Resource ID" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "Template" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "Templates" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Value" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Values" diff --git a/base_custom_info/i18n/es.po b/base_custom_info/i18n/es.po new file mode 100644 index 000000000..6e3c0a769 --- /dev/null +++ b/base_custom_info/i18n/es.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "

\nPulsa para definir una nueva plantilla de información personalizada.\n

\nDebe definir una plantilla de información personalizada para cada diferente grupo de propiedades.\n

" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "Ya existe otra propiedad con ese nombre para ese recurso." + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "Ya existe otra propiedad con ese nombre en esa plantilla." + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "Ya existe otra plantilla con ese nombre para ese modelo." + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Creado el" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "Información personalizada" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "Plantilla de información personalizada" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "Propiedades de la plantilla de información personalizada" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "Plantillas de información personalizada" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "Plantilla de información personalizada" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "Propiedades personalizadas" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "Valores de las propiedades personalizadas" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "Propiedad de información personalizada" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "Plantilla de información personalizada" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "Valor de información personalizada" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "Líneas de información" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "Modelo abstracto que se puede heredar para añadir información personalizada a cualquier modelo" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modelo" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "Propiedades" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "Propiedad" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "Valor de la propiedad" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "ID del recurso" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "Plantilla" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "Plantillas" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Valor" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Valores" diff --git a/base_custom_info/i18n/fi.po b/base_custom_info/i18n/fi.po new file mode 100644 index 000000000..4c404ba11 --- /dev/null +++ b/base_custom_info/i18n/fi.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: Finnish (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Luonut" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Luotu" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Viimeksi päivittänyt" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Viimeksi päivitetty" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Mall" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" diff --git a/base_custom_info/i18n/fr.po b/base_custom_info/i18n/fr.po new file mode 100644 index 000000000..a9a880d84 --- /dev/null +++ b/base_custom_info/i18n/fr.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Créé par" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Créé le" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Mis à jour par" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Mis à jour le" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modèle" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nom" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "ID de l'enregistrement" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Valeur" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Valeurs" diff --git a/base_custom_info/i18n/fr_CA.po b/base_custom_info/i18n/fr_CA.po new file mode 100644 index 000000000..e41811dc5 --- /dev/null +++ b/base_custom_info/i18n/fr_CA.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (Canada) (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modèle" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nom" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" diff --git a/base_custom_info/i18n/it.po b/base_custom_info/i18n/it.po new file mode 100644 index 000000000..5defde91c --- /dev/null +++ b/base_custom_info/i18n/it.po @@ -0,0 +1,203 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# Paolo Valier, 2016 +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-17 15:36+0000\n" +"PO-Revision-Date: 2016-03-13 09:02+0000\n" +"Last-Translator: Paolo Valier\n" +"Language-Team: Italian (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Creato da" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Creato il" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "Informazioni personalizzate" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "Proprietà personalizzate" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "Valori della Proprietà personalizzata" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "Valore dell'informazione personalizzata" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Ultimo aggiornamento da" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modello" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nome" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "Proprietà" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "Proprietà" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "Valori della Proprietà" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "ID Risorsa" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "Modello" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "Modelli" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Valore" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Valori" diff --git a/base_custom_info/i18n/pt_BR.po b/base_custom_info/i18n/pt_BR.po new file mode 100644 index 000000000..855d905ac --- /dev/null +++ b/base_custom_info/i18n/pt_BR.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-tools-8-0/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: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Criado em" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "Identificação" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Modelo" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Nome" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "Identificação do Recurso" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Valor" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Valores" diff --git a/base_custom_info/i18n/ru.po b/base_custom_info/i18n/ru.po new file mode 100644 index 000000000..59c5b24bf --- /dev/null +++ b/base_custom_info/i18n/ru.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: Russian (http://www.transifex.com/oca/OCA-server-tools-8-0/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" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Модель" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Название" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" diff --git a/base_custom_info/i18n/sl.po b/base_custom_info/i18n/sl.po new file mode 100644 index 000000000..6ef622f64 --- /dev/null +++ b/base_custom_info/i18n/sl.po @@ -0,0 +1,203 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# Matjaž Mozetič , 2016 +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-11 10:31+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-8-0/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" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "

\n Določi novo predlogo informacij po meri.\n

\n Določiti morate predlogo informacij po meri za vsako\n skupino lastnosti proizvodov.\n

\n " + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "Model, katerega ``ir.model`` se obdela" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "Za ta vir obstaja druga lastnost z istim nazivom." + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "Za to predlogo obstaja druga lastnost z istim nazivom." + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "Za ta model obstaja druga predloga z istim nazivom." + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Ustvaril" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "Informacije po meri" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "Predloga informacij po meri" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "Lastnosti predloge informacij po meri" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "Predloge informacij po meri" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "Predloga informacij po meri" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "Lastnosti po meri" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "Vrednosti lastnosti po meri" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "Lastnosi informacij po meri" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "Predloga informacij po meri" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "Vrednost informacij po meri" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "Postavke informacij" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "Deden abstraktni model za dodajanje informacij po meri kateremukoli modelu." + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Model" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Naziv" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "Lastnosti" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "Lastnost" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "Vrednosti lastnosti" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "ID vira" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "Predloga" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "Predloge" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Vrednost" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Vrednosti" diff --git a/base_custom_info/i18n/tr.po b/base_custom_info/i18n/tr.po new file mode 100644 index 000000000..b8c73f2ee --- /dev/null +++ b/base_custom_info/i18n/tr.po @@ -0,0 +1,202 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-12 02:05+0000\n" +"PO-Revision-Date: 2016-03-10 18:17+0000\n" +"Last-Translator: <>\n" +"Language-Team: Turkish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"

\n" +" Click to define a new custom info template.\n" +"

\n" +" You must define a custom info template for each\n" +" product properties group.\n" +"

\n" +" " +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,create_uid:0 +#: field:custom.info.template,create_uid:0 +#: field:custom.info.value,create_uid:0 +msgid "Created by" +msgstr "Oluşturan" + +#. module: base_custom_info +#: field:custom.info.property,create_date:0 +#: field:custom.info.template,create_date:0 +#: field:custom.info.value,create_date:0 +msgid "Created on" +msgstr "Oluşturuldu" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree +#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_template_id:0 +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,custom_info_ids:0 +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: field:custom.info,id:0 field:custom.info.model_link,id:0 +#: field:custom.info.property,id:0 field:custom.info.template,id:0 +#: field:custom.info.value,id:0 +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: view:custom.info.template:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,write_uid:0 +#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +msgid "Last Updated by" +msgstr "Son güncelleyen" + +#. module: base_custom_info +#: field:custom.info.property,write_date:0 +#: field:custom.info.template,write_date:0 +#: field:custom.info.value,write_date:0 +msgid "Last Updated on" +msgstr "Son güncellenme" + +#. module: base_custom_info +#: field:custom.info.model_link,model:0 +#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 +#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 +#: field:custom.info.value,model_id:0 +msgid "Model" +msgstr "Model" + +#. module: base_custom_info +#: field:custom.info.property,name:0 field:custom.info.template,name:0 +msgid "Name" +msgstr "Adı" + +#. module: base_custom_info +#: field:custom.info.template,info_ids:0 +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,property_id:0 +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.property,info_value_ids:0 +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,res_id:0 +msgid "Resource ID" +msgstr "Kaynak ID" + +#. module: base_custom_info +#: field:custom.info.property,template_id:0 +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: field:custom.info.value,value:0 +msgid "Value" +msgstr "Değer" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "Değerler" diff --git a/base_custom_info/images/menu.png b/base_custom_info/images/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..08fb7905087b8c5c935ee0483d1ea2a63eb4584c GIT binary patch literal 3542 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 literal 0 HcmV?d00001 diff --git a/base_custom_info/images/properties.png b/base_custom_info/images/properties.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ae74d00a9055506c9aa19684d01655db5d19c0 GIT binary patch literal 21669 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 Lu6{1-oD!MHO(f&XX^5XM^v& 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 UE0N!YQw;pSq{98|dj>xL2cSLFlK=n! literal 0 HcmV?d00001 diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index c7f3fd66c..278faf2ff 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel -# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Sergio Teruel +# © 2015 Antiun Ingeniería S.L. - Carlos Dauden # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from . import custom_info diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 3001ae6bd..883a4055c 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -1,77 +1,119 @@ # -*- coding: utf-8 -*- -# (c) 2015 Antiun Ingeniería S.L. - Sergio Teruel -# (c) 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Sergio Teruel +# © 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from openerp import api, fields, models, _ +from openerp import api, fields, models + + +class CustomInfoModelLink(models.AbstractModel): + _description = "A model that gets its ``ir.model`` computed" + _name = "custom.info.model_link" + + model = fields.Char( + index=True, + readonly=True, + required=True) + model_id = fields.Many2one( + 'ir.model', + 'Model', + compute="_compute_model_id", + store=True) + + @api.multi + @api.depends("model") + def _compute_model_id(self): + """Get a related model from its name, for better UI.""" + for s in self: + s.model_id = self.env["ir.model"].search([("model", "=", s.model)]) class CustomInfoTemplate(models.Model): + """Defines custom properties expected for a given database object.""" + _description = "Custom information template" _name = "custom.info.template" - _description = "Template of properties" + _inherit = "custom.info.model_link" + _sql_constraints = [ + ("name_model", + "UNIQUE (name, model)", + "Another template with that name exists for that model."), + ] - name = fields.Char() - model_id = fields.Many2one(comodel_name='ir.model', string='Data Model') + name = fields.Char(required=True, translate=True) info_ids = fields.One2many( - comodel_name='custom.info.template.line', - inverse_name='template_id', - string='Properties') + 'custom.info.property', + 'template_id', + 'Properties') -class CustomInfoTemplateLine(models.Model): - _name = "custom.info.template.line" - _description = "Properties" +class CustomInfoProperty(models.Model): + """Name of the custom information property.""" + _description = "Custom information property" + _name = "custom.info.property" + _sql_constraints = [ + ("name_template", + "UNIQUE (name, template_id)", + "Another property with that name exists for that template."), + ] - name = fields.Char() + name = fields.Char(translate=True) template_id = fields.Many2one( comodel_name='custom.info.template', string='Template') info_value_ids = fields.One2many( comodel_name="custom.info.value", - inverse_name="custom_info_name_id", + inverse_name="property_id", string="Property Values") class CustomInfoValue(models.Model): + _description = "Custom information value" _name = "custom.info.value" - _description = "Values of properties" + _inherit = "custom.info.model_link" _rec_name = 'value' + _sql_constraints = [ + ("property_model_res", + "UNIQUE (property_id, model, res_id)", + "Another property with that name exists for that resource."), + ] - model = fields.Char(index=True, required=True) - res_id = fields.Integer(index=True, required=True) - custom_info_name_id = fields.Many2one( - comodel_name='custom.info.template.line', + res_id = fields.Integer("Resource ID", index=True, required=True) + property_id = fields.Many2one( + comodel_name='custom.info.property', required=True, - string='Property Name') - name = fields.Char(related='custom_info_name_id.name') - value = fields.Char() + string='Property') + name = fields.Char(related='property_id.name') + value = fields.Char(translate=True) class CustomInfo(models.AbstractModel): + _description = "Inheritable abstract model to add custom info in any model" _name = "custom.info" - _description = "Abstract model from inherit to add info in any model" custom_info_template_id = fields.Many2one( comodel_name='custom.info.template', - string='Property Template') + string='Custom Information Template') custom_info_ids = fields.One2many( comodel_name='custom.info.value', inverse_name='res_id', - domain=lambda self: [('model', '=', self._name)], + domain=lambda self: [("model", "=", self._name)], auto_join=True, string='Custom Properties') + @api.multi @api.onchange('custom_info_template_id') def _onchange_custom_info_template_id(self): if not self.custom_info_template_id: self.custom_info_ids = False else: - info_list = self.custom_info_ids.mapped('custom_info_name_id') + info_list = self.custom_info_ids.mapped('property_id') for info_name in self.custom_info_template_id.info_ids: if info_name not in info_list: self.custom_info_ids |= self.custom_info_ids.new({ 'model': self._name, - 'custom_info_name_id': info_name.id, + 'property_id': info_name.id, + "res_id": self.id, }) @api.multi diff --git a/base_custom_info/security/ir.model.access.csv b/base_custom_info/security/ir.model.access.csv index 388445929..d285e7021 100644 --- a/base_custom_info/security/ir.model.access.csv +++ b/base_custom_info/security/ir.model.access.csv @@ -1,7 +1,7 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_custom_info_template_user,custom.info.template.user,model_custom_info_template,base.group_user,1,0,0,0 -access_custom_info_template_line_user,custom.info.template.line.user,model_custom_info_template_line,base.group_user,1,0,0,0 -access_custom_info_value_user,custom.info.value.user,model_custom_info_value,base.group_user,1,0,0,0 -access_custom_info_template_sale_manager,custom.info.template.salemanager,model_custom_info_template,base.group_sale_manager,1,1,1,1 -access_custom_info_template_line_sale_manager,custom.info.template.line.salemanager,model_custom_info_template_line,base.group_sale_manager,1,1,1,1 -access_custom_info_value_sale_manager,custom.info.value.salemanager,model_custom_info_value,base.group_sale_manager,1,1,1,1 +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_custom_info_template_user","custom.info.template.user","model_custom_info_template","base.group_user",1,0,0,0 +"access_custom_info_property_user","custom.info.template.line.user","model_custom_info_property","base.group_user",1,0,0,0 +"access_custom_info_value_user","custom.info.value.user","model_custom_info_value","base.group_user",1,0,0,0 +"access_custom_info_template_sale_manager","custom.info.template.salemanager","model_custom_info_template","base.group_system",1,1,1,1 +"access_custom_info_property_sale_manager","custom.info.template.line.salemanager","model_custom_info_property","base.group_system",1,1,1,1 +"access_custom_info_value_sale_manager","custom.info.value.salemanager","model_custom_info_value","base.group_system",1,1,1,1 diff --git a/base_custom_info/views/custom_info_template_line_view.xml b/base_custom_info/views/custom_info_property_view.xml similarity index 73% rename from base_custom_info/views/custom_info_template_line_view.xml rename to base_custom_info/views/custom_info_property_view.xml index d682499fe..81fcf0bc5 100644 --- a/base_custom_info/views/custom_info_template_line_view.xml +++ b/base_custom_info/views/custom_info_property_view.xml @@ -3,8 +3,8 @@ - base.custom.info.template.line.tree - custom.info.template.line + base.custom.info.property.tree + custom.info.property @@ -14,10 +14,10 @@ - base.custom.info.template.line.form - custom.info.template.line + base.custom.info.property.form + custom.info.property -

+ @@ -34,7 +34,7 @@ Properties ir.actions.act_window - custom.info.template.line + custom.info.property tree,form form diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index 60f4e8e40..ef81b7008 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -8,6 +8,7 @@ + @@ -22,6 +23,7 @@ + @@ -48,7 +50,7 @@

Click to define a new custom info template.

- You must define a custom info template for every different + You must define a custom info template for each product properties group.

diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index 5a08a9c5d..2c3c6f8a3 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -6,10 +6,10 @@ base.custom.info.value.tree custom.info.value - - + + - + diff --git a/base_custom_info/views/menu.xml b/base_custom_info/views/menu.xml index d23ef5fc8..5cb61a2f3 100644 --- a/base_custom_info/views/menu.xml +++ b/base_custom_info/views/menu.xml @@ -7,15 +7,18 @@ parent="base.menu_administration" sequence="45"/> - - - From 6ce2c6f1cd4541569d45dff18bad9ab43c4125cc Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Thu, 26 May 2016 16:33:03 +0200 Subject: [PATCH 05/17] [9.0][MIG][base_custom_info] Migration. Mostly no changes from 8.0 after all. --- base_custom_info/README.rst | 8 +- base_custom_info/__openerp__.py | 5 +- base_custom_info/i18n/de.po | 126 ++++++---- base_custom_info/i18n/en.po | 131 ++++++---- base_custom_info/i18n/es.po | 130 ++++++---- base_custom_info/i18n/fi.po | 126 ++++++---- base_custom_info/i18n/fr.po | 126 ++++++---- base_custom_info/i18n/fr_CA.po | 126 ++++++---- base_custom_info/i18n/hr.po | 228 ++++++++++++++++++ base_custom_info/i18n/hr_HR.po | 228 ++++++++++++++++++ base_custom_info/i18n/it.po | 127 ++++++---- base_custom_info/i18n/pt_BR.po | 126 ++++++---- base_custom_info/i18n/ru.po | 126 ++++++---- base_custom_info/i18n/sl.po | 130 ++++++---- base_custom_info/i18n/tr.po | 126 ++++++---- base_custom_info/i18n/zh_CN.po | 228 ++++++++++++++++++ base_custom_info/models/custom_info.py | 9 +- .../views/custom_info_property_view.xml | 2 - .../views/custom_info_template_view.xml | 2 - .../views/custom_info_value_view.xml | 2 - base_custom_info/views/menu.xml | 2 - 21 files changed, 1537 insertions(+), 577 deletions(-) create mode 100644 base_custom_info/i18n/hr.po create mode 100644 base_custom_info/i18n/hr_HR.po create mode 100644 base_custom_info/i18n/zh_CN.po diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 14f3b5a90..005080fa4 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -43,7 +43,7 @@ To manage their values, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/135/8.0 + :target: https://runbot.odoo-community.org/runbot/135/9.0 Development =========== @@ -62,11 +62,7 @@ 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 -`_. +help us smashing it by providing a detailed and welcomed feedback. Credits ======= diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__openerp__.py index 79982b965..603362e2f 100644 --- a/base_custom_info/__openerp__.py +++ b/base_custom_info/__openerp__.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- # © 2015 Antiun Ingeniería S.L. - Sergio Teruel # © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# © 2015-2016 Jairo Llopis # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { 'name': "Base Custom Info", 'summary': "Add custom field in models", 'category': 'Tools', - 'version': '8.0.1.0.0', + 'version': '9.0.1.0.0', 'depends': [ 'base', ], @@ -27,6 +27,7 @@ ], 'author': 'Antiun Ingeniería S.L., ' 'Incaser Informatica S.L., ' + 'Tecnativa, ' 'Odoo Community Association (OCA)', 'website': 'http://www.antiun.com', 'license': 'AGPL-3', diff --git a/base_custom_info/i18n/de.po b/base_custom_info/i18n/de.po index 0db26c59b..daf94b8fb 100644 --- a/base_custom_info/i18n/de.po +++ b/base_custom_info/i18n/de.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-8-0/language/de/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Erstellt von" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Erstellt am:" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Zuletzt aktualisiert von" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Zuletzt aktualisiert am" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modell" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Name" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Ressourcen-ID" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" @@ -200,3 +219,10 @@ msgstr "" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Werte" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/en.po b/base_custom_info/i18n/en.po index 30e591066..c7c7821f6 100644 --- a/base_custom_info/i18n/en.po +++ b/base_custom_info/i18n/en.po @@ -2,32 +2,18 @@ # This file contains the translation of the following modules: # * base_custom_info # -# Translators: msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: English (http://www.transifex.com/oca/OCA-server-tools-8-0/language/en/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+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" -"Language: en\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "

\n Click to define a new custom info template.\n

\n You must define a custom info template for each\n product properties group.\n

\n " +"Plural-Forms: \n" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link @@ -50,16 +36,21 @@ msgid "Another template with that name exists for that model." msgstr "Another template with that name exists for that model." #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "Click to define a new custom info template." + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Created by" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Created on" @@ -69,33 +60,33 @@ msgid "Custom Info" msgstr "Custom Info" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "Custom Info Template" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "Custom Info Template Properties" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "Custom Info Templates" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "Custom Information Template" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "Custom Properties" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "Custom Property Values" @@ -115,14 +106,25 @@ msgid "Custom information value" msgstr "Custom information value" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "Display Name" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "Info Lines" @@ -132,55 +134,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "Inheritable abstract model to add custom info in any model" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "Last Modified on" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Last Updated by" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Last Updated on" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Model" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Name" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "Properties" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "Property" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "Property Values" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Resource ID" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "Template" @@ -191,7 +207,7 @@ msgid "Templates" msgstr "Templates" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Value" @@ -200,3 +216,12 @@ msgstr "Value" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Values" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" +"You must define a custom info template for each\n" +" product properties group." diff --git a/base_custom_info/i18n/es.po b/base_custom_info/i18n/es.po index 6e3c0a769..d34c0c5dc 100644 --- a/base_custom_info/i18n/es.po +++ b/base_custom_info/i18n/es.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "

\nPulsa para definir una nueva plantilla de información personalizada.\n

\nDebe definir una plantilla de información personalizada para cada diferente grupo de propiedades.\n

" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "Ya existe otra plantilla con ese nombre para ese modelo." #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Creado por" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Creado el" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "Información personalizada" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "Plantilla de información personalizada" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "Propiedades de la plantilla de información personalizada" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "Plantillas de información personalizada" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "Plantilla de información personalizada" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "Propiedades personalizadas" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "Valores de las propiedades personalizadas" @@ -115,72 +109,99 @@ msgid "Custom information value" msgstr "Valor de información personalizada" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "Líneas de información" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info msgid "Inheritable abstract model to add custom info in any model" -msgstr "Modelo abstracto que se puede heredar para añadir información personalizada a cualquier modelo" +msgstr "" +"Modelo abstracto que se puede heredar para añadir información personalizada " +"a cualquier modelo" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Última actualización por" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Última actualización el" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modelo" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nombre" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "Propiedades" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "Propiedad" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "Valor de la propiedad" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID del recurso" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "Plantilla" @@ -191,7 +212,7 @@ msgid "Templates" msgstr "Plantillas" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valor" @@ -200,3 +221,10 @@ msgstr "Valor" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valores" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/fi.po b/base_custom_info/i18n/fi.po index 4c404ba11..1dc8d09e5 100644 --- a/base_custom_info/i18n/fi.po +++ b/base_custom_info/i18n/fi.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: Finnish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fi/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Luonut" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Luotu" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Viimeksi päivittänyt" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Viimeksi päivitetty" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Mall" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nimi" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" @@ -200,3 +219,10 @@ msgstr "" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/fr.po b/base_custom_info/i18n/fr.po index a9a880d84..95c53c7e2 100644 --- a/base_custom_info/i18n/fr.po +++ b/base_custom_info/i18n/fr.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: French (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Créé par" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Créé le" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Mis à jour par" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Mis à jour le" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modèle" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nom" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID de l'enregistrement" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valeur" @@ -200,3 +219,10 @@ msgstr "Valeur" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valeurs" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/fr_CA.po b/base_custom_info/i18n/fr_CA.po index e41811dc5..82ef79055 100644 --- a/base_custom_info/i18n/fr_CA.po +++ b/base_custom_info/i18n/fr_CA.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: French (Canada) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr_CA/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modèle" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nom" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" @@ -200,3 +219,10 @@ msgstr "" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/hr.po b/base_custom_info/i18n/hr.po new file mode 100644 index 000000000..a4ddb5b56 --- /dev/null +++ b/base_custom_info/i18n/hr.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/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" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "Naziv " + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "Ime" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/hr_HR.po b/base_custom_info/i18n/hr_HR.po new file mode 100644 index 000000000..ca23d1e6c --- /dev/null +++ b/base_custom_info/i18n/hr_HR.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/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" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "Naziv" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Zadnje ažurirao" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "Naziv" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/it.po b/base_custom_info/i18n/it.po index 5defde91c..822e751fa 100644 --- a/base_custom_info/i18n/it.po +++ b/base_custom_info/i18n/it.po @@ -3,33 +3,21 @@ # * base_custom_info # # Translators: -# Paolo Valier, 2016 +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-17 15:36+0000\n" -"PO-Revision-Date: 2016-03-13 09:02+0000\n" -"Last-Translator: Paolo Valier\n" -"Language-Team: Italian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/it/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -51,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Creato da" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Creato il" @@ -70,33 +63,33 @@ msgid "Custom Info" msgstr "Informazioni personalizzate" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "Proprietà personalizzate" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "Valori della Proprietà personalizzata" @@ -116,14 +109,25 @@ msgid "Custom information value" msgstr "Valore dell'informazione personalizzata" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -133,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Ultimo aggiornamento da" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Ultimo aggiornamento il" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modello" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nome" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "Proprietà" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "Proprietà" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "Valori della Proprietà" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID Risorsa" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "Modello" @@ -192,7 +210,7 @@ msgid "Templates" msgstr "Modelli" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valore" @@ -201,3 +219,10 @@ msgstr "Valore" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valori" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/pt_BR.po b/base_custom_info/i18n/pt_BR.po index 855d905ac..73f37413f 100644 --- a/base_custom_info/i18n/pt_BR.po +++ b/base_custom_info/i18n/pt_BR.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/pt_BR/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/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: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Criado por" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Criado em" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "Identificação" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Última atualização por" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Última atualização em" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Modelo" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Nome" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Identificação do Recurso" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valor" @@ -200,3 +219,10 @@ msgstr "Valor" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valores" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/ru.po b/base_custom_info/i18n/ru.po index 59c5b24bf..701b44e2f 100644 --- a/base_custom_info/i18n/ru.po +++ b/base_custom_info/i18n/ru.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: Russian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/ru/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/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" -#. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Модель" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Название" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" @@ -200,3 +219,10 @@ msgstr "" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/sl.po b/base_custom_info/i18n/sl.po index 6ef622f64..c92328c00 100644 --- a/base_custom_info/i18n/sl.po +++ b/base_custom_info/i18n/sl.po @@ -3,33 +3,21 @@ # * base_custom_info # # Translators: -# Matjaž Mozetič , 2016 +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-11 10:31+0000\n" -"Last-Translator: Matjaž Mozetič \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/sl/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/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" -#. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "

\n Določi novo predlogo informacij po meri.\n

\n Določiti morate predlogo informacij po meri za vsako\n skupino lastnosti proizvodov.\n

\n " - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -51,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "Za ta model obstaja druga predloga z istim nazivom." #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Ustvaril" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Ustvarjeno" @@ -70,33 +63,33 @@ msgid "Custom Info" msgstr "Informacije po meri" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "Predloga informacij po meri" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "Lastnosti predloge informacij po meri" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "Predloge informacij po meri" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "Predloga informacij po meri" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "Lastnosti po meri" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "Vrednosti lastnosti po meri" @@ -116,72 +109,98 @@ msgid "Custom information value" msgstr "Vrednost informacij po meri" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "Postavke informacij" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info msgid "Inheritable abstract model to add custom info in any model" -msgstr "Deden abstraktni model za dodajanje informacij po meri kateremukoli modelu." +msgstr "" +"Deden abstraktni model za dodajanje informacij po meri kateremukoli modelu." + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Zadnji posodobil" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Zadnjič posodobljeno" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Model" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Naziv" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "Lastnosti" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "Lastnost" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "Vrednosti lastnosti" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID vira" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "Predloga" @@ -192,7 +211,7 @@ msgid "Templates" msgstr "Predloge" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Vrednost" @@ -201,3 +220,10 @@ msgstr "Vrednost" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Vrednosti" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/tr.po b/base_custom_info/i18n/tr.po index b8c73f2ee..1aa5be2b5 100644 --- a/base_custom_info/i18n/tr.po +++ b/base_custom_info/i18n/tr.po @@ -3,32 +3,21 @@ # * base_custom_info # # Translators: +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: server-tools (8.0)\n" +"Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-03-12 02:05+0000\n" -"PO-Revision-Date: 2016-03-10 18:17+0000\n" -"Last-Translator: <>\n" -"Language-Team: Turkish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/tr/)\n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"

\n" -" Click to define a new custom info template.\n" -"

\n" -" You must define a custom info template for each\n" -" product properties group.\n" -"

\n" -" " -msgstr "" - #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" @@ -50,16 +39,21 @@ msgid "Another template with that name exists for that model." msgstr "" #. module: base_custom_info -#: field:custom.info.property,create_uid:0 -#: field:custom.info.template,create_uid:0 -#: field:custom.info.value,create_uid:0 +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" msgstr "Oluşturan" #. module: base_custom_info -#: field:custom.info.property,create_date:0 -#: field:custom.info.template,create_date:0 -#: field:custom.info.value,create_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" msgstr "Oluşturuldu" @@ -69,33 +63,33 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.property:base_custom_info.base_custom_info_template_line_tree -#: view:custom.info.template:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info -#: field:custom.info,custom_info_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: view:custom.info.value:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -115,14 +109,25 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info -#: field:custom.info,id:0 field:custom.info.model_link,id:0 -#: field:custom.info.property,id:0 field:custom.info.template,id:0 -#: field:custom.info.value,id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" msgstr "ID" #. module: base_custom_info -#: view:custom.info.template:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" msgstr "" @@ -132,55 +137,69 @@ msgid "Inheritable abstract model to add custom info in any model" msgstr "" #. module: base_custom_info -#: field:custom.info.property,write_uid:0 -#: field:custom.info.template,write_uid:0 field:custom.info.value,write_uid:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" msgstr "Son güncelleyen" #. module: base_custom_info -#: field:custom.info.property,write_date:0 -#: field:custom.info.template,write_date:0 -#: field:custom.info.value,write_date:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" msgstr "Son güncellenme" #. module: base_custom_info -#: field:custom.info.model_link,model:0 -#: field:custom.info.model_link,model_id:0 field:custom.info.template,model:0 -#: field:custom.info.template,model_id:0 field:custom.info.value,model:0 -#: field:custom.info.value,model_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" msgstr "Model" #. module: base_custom_info -#: field:custom.info.property,name:0 field:custom.info.template,name:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" msgstr "Adı" #. module: base_custom_info -#: field:custom.info.template,info_ids:0 #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" msgstr "" #. module: base_custom_info -#: field:custom.info.value,property_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" msgstr "" #. module: base_custom_info -#: field:custom.info.property,info_value_ids:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" msgstr "" #. module: base_custom_info -#: field:custom.info.value,res_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Kaynak ID" #. module: base_custom_info -#: field:custom.info.property,template_id:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" msgstr "" @@ -191,7 +210,7 @@ msgid "Templates" msgstr "" #. module: base_custom_info -#: field:custom.info.value,value:0 +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Değer" @@ -200,3 +219,10 @@ msgstr "Değer" #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Değerler" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/zh_CN.po b/base_custom_info/i18n/zh_CN.po new file mode 100644 index 000000000..c915c247e --- /dev/null +++ b/base_custom_info/i18n/zh_CN.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-30 00:58+0000\n" +"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 883a4055c..ed353cce2 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -57,10 +57,11 @@ class CustomInfoProperty(models.Model): "Another property with that name exists for that template."), ] - name = fields.Char(translate=True) + name = fields.Char(required=True, translate=True) template_id = fields.Many2one( comodel_name='custom.info.template', - string='Template') + string='Template', + required=True) info_value_ids = fields.One2many( comodel_name="custom.info.value", inverse_name="property_id", @@ -83,8 +84,8 @@ class CustomInfoValue(models.Model): comodel_name='custom.info.property', required=True, string='Property') - name = fields.Char(related='property_id.name') - value = fields.Char(translate=True) + name = fields.Char(related='property_id.name', readonly=True) + value = fields.Char(translate=True, index=True) class CustomInfo(models.AbstractModel): diff --git a/base_custom_info/views/custom_info_property_view.xml b/base_custom_info/views/custom_info_property_view.xml index 81fcf0bc5..72bda5437 100644 --- a/base_custom_info/views/custom_info_property_view.xml +++ b/base_custom_info/views/custom_info_property_view.xml @@ -1,6 +1,5 @@ - base.custom.info.property.tree @@ -39,5 +38,4 @@ form - diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index ef81b7008..3e9ff7cbd 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -1,6 +1,5 @@ - base.custom.info.template.tree @@ -56,5 +55,4 @@
- diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index 2c3c6f8a3..53ed922dd 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -1,6 +1,5 @@ - base.custom.info.value.tree @@ -23,5 +22,4 @@ form - diff --git a/base_custom_info/views/menu.xml b/base_custom_info/views/menu.xml index 5cb61a2f3..8f4b2220c 100644 --- a/base_custom_info/views/menu.xml +++ b/base_custom_info/views/menu.xml @@ -1,6 +1,5 @@ - - From f60e9b464b3e4f9c54bdb3d15d4719c73a90deaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Mon, 15 Aug 2016 22:15:16 +0200 Subject: [PATCH 06/17] [FIX] remove en.po that was erroneously created by transbot --- base_custom_info/i18n/{en.po => am.po} | 81 ++++----- base_custom_info/i18n/ca.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/de.po | 11 +- base_custom_info/i18n/el_GR.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/es.po | 8 +- base_custom_info/i18n/es_ES.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/fi.po | 11 +- base_custom_info/i18n/fr.po | 8 +- base_custom_info/i18n/gl.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/nl.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/pt.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/pt_PT.po | 228 +++++++++++++++++++++++++ base_custom_info/i18n/sl.po | 8 +- base_custom_info/i18n/zh_CN.po | 52 +++--- 14 files changed, 1687 insertions(+), 88 deletions(-) rename base_custom_info/i18n/{en.po => am.po} (86%) create mode 100644 base_custom_info/i18n/ca.po create mode 100644 base_custom_info/i18n/el_GR.po create mode 100644 base_custom_info/i18n/es_ES.po create mode 100644 base_custom_info/i18n/gl.po create mode 100644 base_custom_info/i18n/nl.po create mode 100644 base_custom_info/i18n/pt.po create mode 100644 base_custom_info/i18n/pt_PT.po diff --git a/base_custom_info/i18n/en.po b/base_custom_info/i18n/am.po similarity index 86% rename from base_custom_info/i18n/en.po rename to base_custom_info/i18n/am.po index c7c7821f6..ac4922974 100644 --- a/base_custom_info/i18n/en.po +++ b/base_custom_info/i18n/am.po @@ -2,108 +2,111 @@ # This file contains the translation of the following modules: # * base_custom_info # +# Translators: +# OCA Transbot , 2016 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Language: am\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_model_link msgid "A model that gets its ``ir.model`` computed" -msgstr "A model that gets its ``ir.model`` computed" +msgstr "" #. module: base_custom_info #: sql_constraint:custom.info.value:0 msgid "Another property with that name exists for that resource." -msgstr "Another property with that name exists for that resource." +msgstr "" #. module: base_custom_info #: sql_constraint:custom.info.property:0 msgid "Another property with that name exists for that template." -msgstr "Another property with that name exists for that template." +msgstr "" #. module: base_custom_info #: sql_constraint:custom.info.template:0 msgid "Another template with that name exists for that model." -msgstr "Another template with that name exists for that model." +msgstr "" #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." -msgstr "Click to define a new custom info template." +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" -msgstr "Created by" +msgstr "Creado por" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" -msgstr "Created on" +msgstr "Creado en" #. module: base_custom_info #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info msgid "Custom Info" -msgstr "Custom Info" +msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" -msgstr "Custom Info Template" +msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" -msgstr "Custom Info Template Properties" +msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" -msgstr "Custom Info Templates" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" -msgstr "Custom Information Template" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" -msgstr "Custom Properties" +msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" -msgstr "Custom Property Values" +msgstr "" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_property msgid "Custom information property" -msgstr "Custom information property" +msgstr "" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_template msgid "Custom information template" -msgstr "Custom information template" +msgstr "" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_value msgid "Custom information value" -msgstr "Custom information value" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name @@ -112,7 +115,7 @@ msgstr "Custom information value" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "Display Name" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -126,12 +129,12 @@ msgstr "ID" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Info Lines" -msgstr "Info Lines" +msgstr "" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info msgid "Inheritable abstract model to add custom info in any model" -msgstr "Inheritable abstract model to add custom info in any model" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update @@ -140,21 +143,21 @@ msgstr "Inheritable abstract model to add custom info in any model" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "Last Modified on" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" -msgstr "Last Updated by" +msgstr "Última actualización por" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" -msgstr "Last Updated on" +msgstr "Última actualización en" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model @@ -164,58 +167,58 @@ msgstr "Last Updated on" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" -msgstr "Model" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" -msgstr "Name" +msgstr "" #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" -msgstr "Properties" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" -msgstr "Property" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" -msgstr "Property Values" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" -msgstr "Resource ID" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" -msgstr "Template" +msgstr "" #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template msgid "Templates" -msgstr "Templates" +msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" -msgstr "Value" +msgstr "" #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" -msgstr "Values" +msgstr "" #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action @@ -223,5 +226,3 @@ msgid "" "You must define a custom info template for each\n" " product properties group." msgstr "" -"You must define a custom info template for each\n" -" product properties group." diff --git a/base_custom_info/i18n/ca.po b/base_custom_info/i18n/ca.po new file mode 100644 index 000000000..e26f37ca1 --- /dev/null +++ b/base_custom_info/i18n/ca.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Creat el" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Darrera Actualització per" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Darrera Actualització el" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/de.po b/base_custom_info/i18n/de.po index daf94b8fb..921acfc97 100644 --- a/base_custom_info/i18n/de.po +++ b/base_custom_info/i18n/de.po @@ -4,13 +4,14 @@ # # Translators: # OCA Transbot , 2016 +# Ermin Trevisan , 2016 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" -"Last-Translator: OCA Transbot , 2016\n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: Ermin Trevisan , 2016\n" "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -115,7 +116,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "Anzeigename" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -143,7 +144,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "Zuletzt geändert am" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid diff --git a/base_custom_info/i18n/el_GR.po b/base_custom_info/i18n/el_GR.po new file mode 100644 index 000000000..f9bba3bab --- /dev/null +++ b/base_custom_info/i18n/el_GR.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Δημιουργήθηκε από " + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Δημιουργήθηκε στις" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "Κωδικός" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Τελευταία ενημέρωση από" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Τελευταία ενημέρωση στις" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/es.po b/base_custom_info/i18n/es.po index d34c0c5dc..adab6ff19 100644 --- a/base_custom_info/i18n/es.po +++ b/base_custom_info/i18n/es.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" @@ -115,7 +115,7 @@ msgstr "Valor de información personalizada" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "Nombre mostrado" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -145,7 +145,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "Última modificación en" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid diff --git a/base_custom_info/i18n/es_ES.po b/base_custom_info/i18n/es_ES.po new file mode 100644 index 000000000..0176cab3a --- /dev/null +++ b/base_custom_info/i18n/es_ES.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/fi.po b/base_custom_info/i18n/fi.po index 1dc8d09e5..2a27ca8b6 100644 --- a/base_custom_info/i18n/fi.po +++ b/base_custom_info/i18n/fi.po @@ -4,13 +4,14 @@ # # Translators: # OCA Transbot , 2016 +# Jarmo Kortetjärvi , 2016 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" -"Last-Translator: OCA Transbot , 2016\n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: Jarmo Kortetjärvi , 2016\n" "Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -115,7 +116,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "Nimi" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -143,7 +144,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "Viimeksi muokattu" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid diff --git a/base_custom_info/i18n/fr.po b/base_custom_info/i18n/fr.po index 95c53c7e2..aa41d533a 100644 --- a/base_custom_info/i18n/fr.po +++ b/base_custom_info/i18n/fr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "MIME-Version: 1.0\n" @@ -115,7 +115,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "Nom à afficher" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -143,7 +143,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "Dernière modification le" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid diff --git a/base_custom_info/i18n/gl.po b/base_custom_info/i18n/gl.po new file mode 100644 index 000000000..6f8619334 --- /dev/null +++ b/base_custom_info/i18n/gl.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "ültima actualización por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/nl.po b/base_custom_info/i18n/nl.po new file mode 100644 index 000000000..fe30a4377 --- /dev/null +++ b/base_custom_info/i18n/nl.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "Te tonen naam" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "Laatst bijgewerkt op" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "Naam" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "Eigenschappen" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/pt.po b/base_custom_info/i18n/pt.po new file mode 100644 index 000000000..8769bbf2a --- /dev/null +++ b/base_custom_info/i18n/pt.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Atualizado pela última vez por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Atualizado pela última vez em" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/pt_PT.po b/base_custom_info/i18n/pt_PT.po new file mode 100644 index 000000000..5946c03e4 --- /dev/null +++ b/base_custom_info/i18n/pt_PT.po @@ -0,0 +1,228 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/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: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_model_link +msgid "A model that gets its ``ir.model`` computed" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "ID" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +msgid "Info Lines" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "Atualizado pela última vez por" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "Atualizado pela última vez em" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "" +"You must define a custom info template for each\n" +" product properties group." +msgstr "" diff --git a/base_custom_info/i18n/sl.po b/base_custom_info/i18n/sl.po index c92328c00..280819754 100644 --- a/base_custom_info/i18n/sl.po +++ b/base_custom_info/i18n/sl.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" +"POT-Creation-Date: 2016-09-10 02:52+0000\n" +"PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "MIME-Version: 1.0\n" @@ -115,7 +115,7 @@ msgstr "Vrednost informacij po meri" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "Prikazni naziv" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -144,7 +144,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "Zadnjič spremenjeno" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid diff --git a/base_custom_info/i18n/zh_CN.po b/base_custom_info/i18n/zh_CN.po index c915c247e..69ad4992e 100644 --- a/base_custom_info/i18n/zh_CN.po +++ b/base_custom_info/i18n/zh_CN.po @@ -3,14 +3,14 @@ # * base_custom_info # # Translators: -# OCA Transbot , 2016 +# Jeffery Chenn , 2016 msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-30 00:58+0000\n" -"PO-Revision-Date: 2016-07-30 00:58+0000\n" -"Last-Translator: OCA Transbot , 2016\n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: Jeffery Chenn , 2016\n" "Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -48,65 +48,65 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid msgid "Created by" -msgstr "" +msgstr "创建人" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" -msgstr "" +msgstr "创建时间" #. module: base_custom_info #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info msgid "Custom Info" -msgstr "" +msgstr "定制信息" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form msgid "Custom Info Template" -msgstr "" +msgstr "定制信息模板" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form msgid "Custom Info Template Properties" -msgstr "" +msgstr "定制信息模板属性" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree msgid "Custom Info Templates" -msgstr "" +msgstr "定制信息模板" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id msgid "Custom Information Template" -msgstr "" +msgstr "定制信息模板" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids msgid "Custom Properties" -msgstr "" +msgstr "定制属性" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree msgid "Custom Property Values" -msgstr "" +msgstr "定制属性值" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_property msgid "Custom information property" -msgstr "" +msgstr "定制信息属性" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_template msgid "Custom information template" -msgstr "" +msgstr "定制信息模板" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_value msgid "Custom information value" -msgstr "" +msgstr "定制信息值" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name @@ -115,7 +115,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name msgid "Display Name" -msgstr "" +msgstr "显示名称" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id @@ -124,7 +124,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" -msgstr "ID" +msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form @@ -143,7 +143,7 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update msgid "Last Modified on" -msgstr "" +msgstr "最后修改时间" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid @@ -167,31 +167,31 @@ msgstr "" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id msgid "Model" -msgstr "" +msgstr "模型" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name msgid "Name" -msgstr "" +msgstr "名称" #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line msgid "Properties" -msgstr "" +msgstr "属性" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id msgid "Property" -msgstr "" +msgstr "属性" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids msgid "Property Values" -msgstr "" +msgstr "属性值" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id @@ -201,13 +201,13 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id msgid "Template" -msgstr "" +msgstr "模板" #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template msgid "Templates" -msgstr "" +msgstr "模板" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value From 03b2905d3f83f3b9198d706de4533fdd5be38b84 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:08:19 +0200 Subject: [PATCH 07/17] [MIG] Make modules uninstallable --- base_custom_info/{__openerp__.py => __manifest__.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename base_custom_info/{__openerp__.py => __manifest__.py} (97%) diff --git a/base_custom_info/__openerp__.py b/base_custom_info/__manifest__.py similarity index 97% rename from base_custom_info/__openerp__.py rename to base_custom_info/__manifest__.py index 603362e2f..b64308e55 100644 --- a/base_custom_info/__openerp__.py +++ b/base_custom_info/__manifest__.py @@ -31,5 +31,5 @@ 'Odoo Community Association (OCA)', 'website': 'http://www.antiun.com', 'license': 'AGPL-3', - 'installable': True, + 'installable': False, } From 498f2f4f8c1144c3fb40311962900ccc2878d48a Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 3 Aug 2016 13:00:30 +0200 Subject: [PATCH 08/17] [CHG] base_custom_info: Relicense to LGPL with all authors' consent # Conflicts: # base_custom_info/__manifest__.py --- base_custom_info/README.rst | 6 +++--- base_custom_info/__init__.py | 2 +- base_custom_info/__manifest__.py | 2 +- base_custom_info/models/__init__.py | 2 +- base_custom_info/models/custom_info.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 005080fa4..60eecd504 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -1,6 +1,6 @@ -.. 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 +.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 ================ Base Custom Info diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py index 5faa0139b..cc6e9affa 100644 --- a/base_custom_info/__init__.py +++ b/base_custom_info/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # © 2015 Antiun Ingeniería S.L. - Sergio Teruel # © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from . import models diff --git a/base_custom_info/__manifest__.py b/base_custom_info/__manifest__.py index b64308e55..603362e2f 100644 --- a/base_custom_info/__manifest__.py +++ b/base_custom_info/__manifest__.py @@ -31,5 +31,5 @@ 'Odoo Community Association (OCA)', 'website': 'http://www.antiun.com', 'license': 'AGPL-3', - 'installable': False, + 'installable': True, } diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index 278faf2ff..4ce49af98 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # © 2015 Antiun Ingeniería S.L. - Sergio Teruel # © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from . import custom_info diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index ed353cce2..297a25ade 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -2,7 +2,7 @@ # © 2015 Antiun Ingeniería S.L. - Sergio Teruel # © 2015 Antiun Ingeniería S.L. - Carlos Dauden # © 2015 Antiun Ingeniería S.L. - Jairo Llopis -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from openerp import api, fields, models From 5878212db5cf8d987f4e6f8a0fd95f2f876661d3 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 3 Aug 2016 17:18:46 +0200 Subject: [PATCH 09/17] [IMP]base_custom_info: New types and access rules system. * Now you can define properties types, and access rules are inherited from the model/record linked to the custom info record. * Simplified version of computed value. * Implement for res.partner. * Add tests and fix bugs discovered in the meantime. * Allow to disable partner custom info tab, and custom info menu. * All of it can be set within general settings. * Now, by default, this module does not display custom info for partners unless in demo mode. Better fit for a base module. * You can disable the top menu entry too if it disturbs you, or enable it for everybody. * Give a special form when editing in partner custom info tab. * Sortable properties. * Sort values at onchange time. * Improve performance in onchange. * Split in several model files. --- base_custom_info/README.rst | 184 +++++- base_custom_info/__init__.py | 2 +- base_custom_info/__manifest__.py | 26 +- .../demo/custom.info.category.csv | 3 + base_custom_info/demo/custom.info.option.csv | 10 + .../demo/custom.info.property.csv | 8 + .../demo/custom.info.template.csv | 3 + .../demo/custom_info_property_defaults.yml | 6 + base_custom_info/demo/res_groups.xml | 12 + base_custom_info/i18n/es.po | 577 ++++++++++++++++-- .../images/customizations-everywhere.jpg | Bin 0 -> 122500 bytes base_custom_info/images/templateception.jpg | Bin 0 -> 57934 bytes .../migrations/9.0.2.0.0/pre-migrate.py | 10 + base_custom_info/models/__init__.py | 11 +- base_custom_info/models/custom_info.py | 169 +++-- .../models/custom_info_category.py | 34 ++ base_custom_info/models/custom_info_option.py | 45 ++ .../models/custom_info_property.py | 113 ++++ .../models/custom_info_template.py | 76 +++ base_custom_info/models/custom_info_value.py | 241 ++++++++ base_custom_info/models/res_partner.py | 19 + base_custom_info/security/ir.model.access.csv | 13 +- base_custom_info/security/res_groups.xml | 31 + base_custom_info/static/description/icon.png | Bin 0 -> 4075 bytes base_custom_info/static/description/icon.svg | 82 +++ base_custom_info/tests/__init__.py | 5 + base_custom_info/tests/test_partner.py | 164 +++++ .../tests/test_value_conversion.py | 128 ++++ .../views/custom_info_category_view.xml | 50 ++ .../views/custom_info_option_view.xml | 79 +++ .../views/custom_info_property_view.xml | 134 ++-- .../views/custom_info_template_view.xml | 118 ++-- .../views/custom_info_value_view.xml | 129 +++- base_custom_info/views/menu.xml | 56 +- base_custom_info/views/res_partner_view.xml | 32 + base_custom_info/wizard/__init__.py | 6 + .../wizard/base_config_settings.py | 20 + .../wizard/base_config_settings_view.xml | 33 + 38 files changed, 2326 insertions(+), 303 deletions(-) create mode 100644 base_custom_info/demo/custom.info.category.csv create mode 100644 base_custom_info/demo/custom.info.option.csv create mode 100644 base_custom_info/demo/custom.info.property.csv create mode 100644 base_custom_info/demo/custom.info.template.csv create mode 100644 base_custom_info/demo/custom_info_property_defaults.yml create mode 100644 base_custom_info/demo/res_groups.xml create mode 100644 base_custom_info/images/customizations-everywhere.jpg create mode 100644 base_custom_info/images/templateception.jpg create mode 100644 base_custom_info/migrations/9.0.2.0.0/pre-migrate.py create mode 100644 base_custom_info/models/custom_info_category.py create mode 100644 base_custom_info/models/custom_info_option.py create mode 100644 base_custom_info/models/custom_info_property.py create mode 100644 base_custom_info/models/custom_info_template.py create mode 100644 base_custom_info/models/custom_info_value.py create mode 100644 base_custom_info/models/res_partner.py create mode 100644 base_custom_info/security/res_groups.xml create mode 100644 base_custom_info/static/description/icon.png create mode 100644 base_custom_info/static/description/icon.svg create mode 100644 base_custom_info/tests/__init__.py create mode 100644 base_custom_info/tests/test_partner.py create mode 100644 base_custom_info/tests/test_value_conversion.py create mode 100644 base_custom_info/views/custom_info_category_view.xml create mode 100644 base_custom_info/views/custom_info_option_view.xml create mode 100644 base_custom_info/views/res_partner_view.xml create mode 100644 base_custom_info/wizard/__init__.py create mode 100644 base_custom_info/wizard/base_config_settings.py create mode 100644 base_custom_info/wizard/base_config_settings_view.xml diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 60eecd504..2871256ed 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -6,8 +6,149 @@ Base Custom Info ================ -This module allows to create custom fields in models without altering model's -structure. +This module allows you to attach custom information to records without the need +to alter the database structure too much. + +Definitions +=========== + +This module defines several concepts that you have to understand. + +Templates +--------- + +A *template* is a collection of *properties* that a record should have. +*Templates* always apply to a given model, and then you can choose among the +current templates for the model you are using when you edit a record of that +model. + +I.e., This addon includes a demo template called "Smart partners", that applies +to the model ``res.partner``, so if you edit any partner, you can choose that +template and get its properties autofilled. + +Properties +---------- + +A *property* is the "name" of the field. *Templates* can have any amount of +*properties*, and when you apply a *template* to a record, it automatically +gets all of its *properties* filled, empty (unless they have a *Default +value*), ready to assign *values*. + +You can set a property to as *required* to force it have a value, although you +should keep in mind that for yes/no properties, this would mean that only *yes* +can be selected, and for numeric properties, zero would be forbidden. + +Also you can set *Minimum* and *Maximum* limits for every *property*, but those +limits are only used when the data type is text (to constrain its length) or +number. To skip this constraint, just set a maximum smaller than the minimum. + +*Properties* always belong to a template, and as such, to a model. + +*Properties* define the data type (text, number, yes/no...), and when the type +is "Selection", then you can define what *options* are available. + +I.e., the "Smart partners" *template* has the following *properties*: + +- Name of his/her teacher +- Amount of people that hates him/her for being so smart +- Average note on all subjects +- Does he/she believe he/she is the smartest person on earth? +- What weaknesses does he/she have? + +When you set that template to any partner, you will then be able to fill these +*properties* with *values*. + +Categories +---------- + +*Properties* can also belong to a *category*, which allows you to sort them in +a logical way, and makes further development easier. + +For example, the ``website_sale_custom_info`` addon uses these to display a +technical datasheet per product in your online shop, sorted and separated by +category. + +You are not required to give a *category* to every *property*. + +Options +------- + +When a *property*'s type is "Selection", then you define the *options* +available, so the *value* must be one of these *options*. + +I.e., the "What weaknesses does he/she have?" *property* has some options: + +- Loves junk food +- Needs videogames +- Huge glasses + +The *value* will always be one of these. + +Recursive templates using options +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Oh dear customization lovers! Options can be used to customize the custom +information template! + +.. figure:: /base_custom_info/static/description/customizations-everywhere.jpg + :alt: Customizations Everywhere + +If you assign an *additional template* to an option, and while using the owner +form you choose that option, you can then press *reload custom information +templates* to make the owner update itself to include all the properties in all +the involved templates. If you do not press the button, anyway the reloading +will be performed when saving the owner record. + +.. figure:: /base_custom_info/static/description/templateception.jpg + :alt: Templateception + +I.e., if you select the option "Needs videogames" for the property "What +weaknesses does he/she have?" of a smart partner and press *reload custom +information templates*, you will get 2 new properties to fill: "Favourite +videogames genre" and "Favourite videogame". + +Value +----- + +When you assign a *template* to a partner, and then you get the *properties* it +should have, you still have to set a *value* for each property. + +*Values* can be of different types (whole numbers, constrained selection, +booleans...), depending on how the *property* was defined. However, there is +always the ``value`` field, that is a text string, and converts automatically +to/from the correct type. + +Why would I need this? +~~~~~~~~~~~~~~~~~~~~~~ + +Imagine you have some partners that are foreign, and that for those partners +you need some extra information that is not needed for others, and you do not +want to fill the partners model with a lot of fields that will be empty most of +the time. + +In this case, you could define a *template* called "Foreign partners", which +will be applied to ``res.partner`` objects, and defines some *properties* that +these are expected to have. + +Then you could assign that *template* to a partner, and automatically you will +get a subtable of all the properties it should have, with tools to fill their +*values* correctly. + +Does this work with any model? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Yes and no. + +Yes, because this is a base module that provides the tools to make this work +with any model. + +No, because, although the tools are provided, they are only applied to the +``res.partner`` model. This is by design, because different models can have +different needs, and we don't want to depend on every possible model. + +So, if you want to apply this to other models, you will have to develop a +little additional addon that depends on this one. If you are a developer, refer +to the *Development* section below. Installation ============ @@ -18,6 +159,17 @@ concrete models. This module is a technical dependency and is to be installed in parallel to other modules. +Configuration +============= + +To enable the main *Custom Info* menu: + +#. Enable *Settings > General Settings > Manage custom information*. + +To enable partner's custom info tab: + +#. Enable *Settings > General Settings > Edit custom information in partners*. + Usage ===== @@ -26,7 +178,7 @@ expected for a given record. To define a template, you need to: -* Go to *Settings > Custom Info > Templates*. +* Go to *Custom Info > Templates*. * Create one. * Add some *Properties* to it. @@ -35,11 +187,19 @@ properties. To manage the properties, you need to: -* Go to *Settings > Custom Info > Properties*. +* Go to *Custom Info > Properties*. + +To manage the property categories, you need to: + +* Go to *Custom Info > Categories*. + +Some properties can have a number of options to choose, to manage them: + +* Go to *Custom Info > Options*. To manage their values, you need to: -* Go to *Settings > Custom Info > Values*. +* Go to *Custom Info > Values*. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -51,10 +211,13 @@ Development To create a module that supports custom information, just depend on this module and inherit from the ``custom.info`` model. +See an example in the ``product_custom_info`` addon. + Known issues / Roadmap ====================== -* All data types of custom information values are text strings. +* Custom properties cannot be shared among templates. +* Required attributes are for now only set in the UI, not in the ORM itself. Bug Tracker =========== @@ -70,10 +233,11 @@ Credits Contributors ------------ -* Rafael Blasco -* Carlos Dauden -* Sergio Teruel -* Jairo Llopis +* Rafael Blasco +* Carlos Dauden +* Sergio Teruel +* Jairo Llopis +* Pedro M. Baeza Maintainer ---------- diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py index cc6e9affa..a518dce55 100644 --- a/base_custom_info/__init__.py +++ b/base_custom_info/__init__.py @@ -3,4 +3,4 @@ # © 2015 Antiun Ingeniería S.L. - Carlos Dauden # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from . import models +from . import models, wizard diff --git a/base_custom_info/__manifest__.py b/base_custom_info/__manifest__.py index 603362e2f..5afe440f9 100644 --- a/base_custom_info/__manifest__.py +++ b/base_custom_info/__manifest__.py @@ -8,16 +8,29 @@ 'name': "Base Custom Info", 'summary': "Add custom field in models", 'category': 'Tools', - 'version': '9.0.1.0.0', + 'version': '9.0.2.0.0', 'depends': [ - 'base', + 'base_setup', ], 'data': [ + 'security/ir.model.access.csv', + 'security/res_groups.xml', + 'views/custom_info_category_view.xml', + 'views/custom_info_option_view.xml', 'views/custom_info_template_view.xml', 'views/custom_info_property_view.xml', 'views/custom_info_value_view.xml', 'views/menu.xml', - 'security/ir.model.access.csv', + 'views/res_partner_view.xml', + 'wizard/base_config_settings_view.xml', + ], + 'demo': [ + 'demo/custom.info.category.csv', + 'demo/custom.info.template.csv', + 'demo/custom.info.property.csv', + 'demo/custom.info.option.csv', + 'demo/custom_info_property_defaults.yml', + 'demo/res_groups.xml', ], "images": [ "images/menu.png", @@ -25,11 +38,10 @@ "images/templates.png", "images/values.png", ], - 'author': 'Antiun Ingeniería S.L., ' - 'Incaser Informatica S.L., ' - 'Tecnativa, ' + 'author': 'Tecnativa, ' 'Odoo Community Association (OCA)', - 'website': 'http://www.antiun.com', + 'website': 'https://www.tecnativa.com', 'license': 'AGPL-3', + 'application': True, 'installable': True, } diff --git a/base_custom_info/demo/custom.info.category.csv b/base_custom_info/demo/custom.info.category.csv new file mode 100644 index 000000000..4c64ccb09 --- /dev/null +++ b/base_custom_info/demo/custom.info.category.csv @@ -0,0 +1,3 @@ +id,name,sequence +cat_statics,Statistics,50 +cat_gaming,Gaming,100 diff --git a/base_custom_info/demo/custom.info.option.csv b/base_custom_info/demo/custom.info.option.csv new file mode 100644 index 000000000..46f2c65bb --- /dev/null +++ b/base_custom_info/demo/custom.info.option.csv @@ -0,0 +1,10 @@ +id,name,property_ids:id,template_id:id +opt_food,Loves junk food,prop_weaknesses, +opt_videogames,Needs videogames,prop_weaknesses,tpl_gamer +opt_glasses,Huge glasses,prop_weaknesses, +opt_shooter,Shooter,prop_fav_genre, +opt_platforms,Platforms,prop_fav_genre, +opt_cars,Cars,prop_fav_genre, +opt_rpg,RPG,prop_fav_genre, +opt_strategy,Strategy,prop_fav_genre, +opt_graphical_adventure,Graphical adventure,prop_fav_genre, diff --git a/base_custom_info/demo/custom.info.property.csv b/base_custom_info/demo/custom.info.property.csv new file mode 100644 index 000000000..724562f7a --- /dev/null +++ b/base_custom_info/demo/custom.info.property.csv @@ -0,0 +1,8 @@ +id,name,template_id:id,field_type,required,minimum,maximum,category_id:id,sequence +prop_teacher,Name of his/her teacher,tpl_smart,str,,1,30,,100 +prop_haters,Amount of people that hates him/her for being so smart,tpl_smart,int,,0,99999,cat_statics,200 +prop_avg_note,Average note on all subjects,tpl_smart,float,True,0,10,cat_statics,300 +prop_smartypants,Does he/she believe he/she is the smartest person on earth?,tpl_smart,bool,,0,-1,,400 +prop_weaknesses,What weaknesses does he/she have?,tpl_smart,id,,0,-1,,500 +prop_fav_genre,Favourite videogames genre,tpl_gamer,id,,0,-1,cat_gaming,600 +prop_fav_game,Favourite videogame,tpl_gamer,str,,0,-1,cat_gaming,700 diff --git a/base_custom_info/demo/custom.info.template.csv b/base_custom_info/demo/custom.info.template.csv new file mode 100644 index 000000000..d6d96e0cc --- /dev/null +++ b/base_custom_info/demo/custom.info.template.csv @@ -0,0 +1,3 @@ +id,name,model +tpl_smart,Smart partners,res.partner +tpl_gamer,Gamers,res.partner diff --git a/base_custom_info/demo/custom_info_property_defaults.yml b/base_custom_info/demo/custom_info_property_defaults.yml new file mode 100644 index 000000000..592efa6dd --- /dev/null +++ b/base_custom_info/demo/custom_info_property_defaults.yml @@ -0,0 +1,6 @@ +# Copyright 2016 Jairo Llopis +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +- Setting default values after loading custom.info.option.csv + +- !record {model: custom.info.property, id: prop_weaknesses}: + default_value: Huge glasses diff --git a/base_custom_info/demo/res_groups.xml b/base_custom_info/demo/res_groups.xml new file mode 100644 index 000000000..be6dcbc2f --- /dev/null +++ b/base_custom_info/demo/res_groups.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/base_custom_info/i18n/es.po b/base_custom_info/i18n/es.po index adab6ff19..3587f3576 100644 --- a/base_custom_info/i18n/es.po +++ b/base_custom_info/i18n/es.po @@ -1,27 +1,61 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_custom_info -# -# Translators: -# OCA Transbot , 2016 +# * base_custom_info +# msgid "" msgstr "" "Project-Id-Version: Odoo Server 9.0c\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-10 02:52+0000\n" -"PO-Revision-Date: 2016-09-10 02:52+0000\n" -"Last-Translator: OCA Transbot , 2016\n" -"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"POT-Creation-Date: 2017-02-13 00:39+0000\n" +"PO-Revision-Date: 2017-02-13 00:39+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" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: \n" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" -msgstr "" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "Warning!\n" +" You might see no changes in parent form until you save it." +msgstr "¡Aviso!\n" +" Puede no ver cambios en el formulario padre hasta que guarde." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "Añade una pestaña en el formulario de empresas para editar su inf. personalizada." + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "Plantilla adicional" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "Additional template to be applied to the owner if this option is chosen." +msgstr "Plantilla adicional a ser aplicada al propietario si esta opción se escoge." + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "Avanzado" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "Gestión avanzada" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "Permitir a todos los empleados gestionar inf. personalizada." + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" +msgstr "Cantidad de gente que lo odia por ser tan listo" #. module: base_custom_info #: sql_constraint:custom.info.value:0 @@ -38,12 +72,58 @@ msgstr "Ya existe otra propiedad con ese nombre en esa plantilla." msgid "Another template with that name exists for that model." msgstr "Ya existe otra plantilla con ese nombre para ese modelo." +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "Opciones disponibles para una propiedad personalizada" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "Nota media en todas las materias" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "Básico" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "Gestión básica" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "Coches" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "Categorías" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "Categorizar las propiedades de inf. personalizada" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "Categoría" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." -msgstr "" +msgstr "Pulse para definir una nueva plantilla de inf. personalizada." #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,66 +131,115 @@ msgid "Created by" msgstr "Creado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date msgid "Created on" -msgstr "Creado el" +msgstr "Creado en" #. module: base_custom_info #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info msgid "Custom Info" -msgstr "Información personalizada" +msgstr "Inf. personalizada" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "Categorías de inf. personalizada" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "Opciones de inf. personalizada" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "Propiedades de inf. personalizada" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" -msgstr "Plantilla de información personalizada" +msgstr "Plantilla de inf. personalizada" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" -msgstr "Propiedades de la plantilla de información personalizada" +msgstr "Propiedades de la plantilla de inf. personalizada" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" -msgstr "Plantillas de información personalizada" +msgstr "Plantillas de inf. personalizada" + +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "Inf. personalizada" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id msgid "Custom Information Template" -msgstr "Plantilla de información personalizada" +msgstr "Plantilla de inf. personalizada" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids msgid "Custom Properties" msgstr "Propiedades personalizadas" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "Valores de las propiedades personalizadas" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_property msgid "Custom information property" -msgstr "Propiedad de información personalizada" +msgstr "Propiedad de inf. personalizada" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_template msgid "Custom information template" -msgstr "Plantilla de información personalizada" +msgstr "Plantilla de inf. personalizada" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info_value msgid "Custom information value" -msgstr "Valor de información personalizada" +msgstr "Valor de inf. personalizada" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "Número decimal" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "Valor del número decimal" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "Valor por defecto" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:101 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "El valor por defecto %s no se puede convertir al tipo %s." #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,29 +247,110 @@ msgid "Display Name" msgstr "Nombre mostrado" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "Mostrar en el formulario de empresas" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "¿Se cree la persona más lista de la Tierra?" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "Editar inf. personalizada en empresas" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "Videojuego favorito" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "Género de videojuegos favorito" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "Nombre del campo" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "Tipo del campo" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "For numeric fields, it means the maximum possible value; for text fields, it means the maximum possible length. If it is smaller than the minimum, then this check is skipped" +msgstr "Para campos numéricos, significa el valor máximo permitido; para campos de texto, significa la longitud máxima permitida. Si es menor que el mínimo, entonces esta comprobación se omite." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "For numeric fields, it means the minimum possible value; for text fields, it means the minimum possible length. If it is bigger than the maximum, then this check is skipped" +msgstr "Para campos numéricos, significa el valor mínimo permitido; para campos de texto, significa la longitud mínima permitida. Si es mayor que el máximo, entonces esta comprobación se omite." + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "Jugadores" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "Juego" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "Aventura gráfica" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "Agrupar por" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "Gafas gigantes" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id msgid "ID" -msgstr "ID" +msgstr "ID (identificación)" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" -msgstr "Líneas de información" +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "Si requiere un campo Sí/No, sólo podrá escoger Sí." + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:114 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." +msgstr "Si requiere un campo numérico, no podrá ponerlo a cero." #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info msgid "Inheritable abstract model to add custom info in any model" -msgstr "" -"Modelo abstracto que se puede heredar para añadir información personalizada " -"a cualquier modelo" +msgstr "Modelo abstracto que se puede heredar para añadir inf. personalizada a cualquier modelo" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -148,30 +358,65 @@ msgid "Last Modified on" msgstr "Última modificación en" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid msgid "Last Updated by" -msgstr "Última actualización por" +msgstr "Última actualización de" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date msgid "Last Updated on" -msgstr "Última actualización el" +msgstr "Última actualización en" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:152 +#, python-format +msgid "Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "La longitud de %(prop)s es %(val)s, pero debería estar entre %(min)d y %(max)d." + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "Le encanta la comida basura" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "Gestionar inf. personalizada" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "Máximo" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "Mínimo" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modelo" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "Nombre técnico del modelo" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -179,14 +424,69 @@ msgid "Name" msgstr "Nombre" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "Nombre de su profesor" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "Necesita videojuegos" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:215 +#, python-format +msgid "No" +msgstr "No" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "Options" +msgstr "Opciones" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "Propietario" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "Plataformas" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Properties" msgstr "Propiedades" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "Propiedades en esta categoría." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "Propiedades en las que esta opción está disponible." + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "Propiedad" @@ -195,13 +495,79 @@ msgstr "Propiedad" msgid "Property Values" msgstr "Valor de la propiedad" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "RPG" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "Registro que posee este valor personalizado." + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "Requerido" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" -msgstr "ID del recurso" +msgstr "ID del Recurso" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "Select one of the existing options or create a new one clicking on 'Add an item'" +msgstr "Seleccione una de la opciones existentes o cree una nueva pulsando en 'Añadir un elemento'" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "Selección" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "Valor de selección" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "Shooter" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "Gente lista" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statics" +msgstr "Statics" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "Estrategia" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "Nombre técnico del campo donde se guarda este valor" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "Plantilla" @@ -211,20 +577,125 @@ msgstr "Plantilla" msgid "Templates" msgstr "Plantillas" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "Texto" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "Valor de texto" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "El usuario tendrá acceso a una gestión avanzada de la inf. personalizada." + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "El usuario tendrá acceso a una gestión básica de la inf. personalizada." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "Tipo de información que se puede almacenar en esta propiedad." + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valor" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:158 +#, python-format +msgid "Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "El valor de %(prop)s es %(val)s, pero debería estar entre %(min)d y %(max)d." + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:162 +#, python-format +msgid "Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "El valor de %(prop)s es %(val)s, pero debería estar entre %(min)f y %(max)f." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "Valor, siempre convertido del/al campo tipado." + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valores" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "Valores que han escogido esta opción." + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "¿Qué debilidades tiene?" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "Cuando el tipo de campo es 'selección', escoja las opciones disponibles aquí." + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "Número entero" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "Valor del número entero" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "Podrá editar inf. personalizada en el formulario de empresa." + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value +msgid "Will be applied by default to all custom values of this property. This is a char field, so you have to enter some value that can be converted to the field type you choose." +msgstr "Se aplicará por defecto a todos los valores personalizados de esta propiedad. Este campo es de texto, así que tiene que introducir un valor que se pueda convertir al tipo de campo que ha escogido." + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "Sí" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "Sí/No" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "Valor sí/no" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "No puede cambiar el modelo porque ya se está usando." + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action -msgid "" -"You must define a custom info template for each\n" -" product properties group." -msgstr "" +msgid "You must define a custom info template for each properties group." +msgstr "Debe definir una plantilla de inf. personalizada por cada grupo de propiedades." + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" +msgstr "base.config.settings" + diff --git a/base_custom_info/images/customizations-everywhere.jpg b/base_custom_info/images/customizations-everywhere.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12dc888504479e23d649187789aa044ea501c666 GIT binary patch literal 122500 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۳W1AzYH!zF(-z41@ik}W9fxTK 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

cBsweQ5Afy$mLvb54Q z$*;UYV`qNz=z8|0t29!@D z3w1w)UMu*yqFs30_+L|>!M_u)J{)+b$NCR}{vv9yOW^dpi&pUsjhryvq?)#?ZK~h> zzD+{o;)e;Gd1=S7^y}BJr=>=WrGWCI8RLN8{8f8X<6KWHVH^z@xZ<&Rm`XKTar)$O zN$c#nm0EJf&BnA`d7`;x2YE_fBs?<1I*xM8>ra~pm*FZ#bexpFqbv)(y|RO)S~v=E zmL74MjHKrpp6nwJ(r*)f)Sea9{xbYwi^V^*Hl?ZjF7TK96AMN7b8n(*-x9n>dEjY2 zH~7E78mzu7k6Y2MHEDEz6MRX#?bh4;LpPU019}o;h)8u z--uJ(HoGm}rQvO3Shu~@G}yHp*yqx%f3iO+n5f`JpL-n+d-u=z`c#pX!5a{P)9-id z{9Wn8j&Zno!ldx9todgP&a|a8r$+%F-OhC9$@|XZ|yN_MA)jA_bL>t+-E>?ziz?QcUKs73QaRQ|6{QEHr>1^SurGRMVQufk9GC6|fy zAC6xWehz7W4*X57_%`F=e}}Z+iW*V)`|(T09~HC#r|O;`xA6QnS}(*;_>@hp_)o<5 zKNPO5{3+mQHJ=u0J}4G8aOafFit6Ii1 z-_NZRt7*On@e~#?#E?hlg7$) zXv(}Gs7{=tJXJ|WNh)<0#J;Zhk^5LbjQ$3G)3?44_?@MEKi9u#U)xLJUB-u|{2JGO zC3rsj#GefOKj5{C;vT2r4O_*!H-Y{pMd7a(_}|0V`u4G^{{Us^65Z*3DxXb^ojUSC zH`Tg#?N#s`{?UK5hMjxy3&VPipTrN@3-)sGAN(hJkB$B!Xr3Rp@&1nvw>QKu3HaOM zPs14`_>1Aoje6P*5E=CQgs~~RdBGx#+2tM+Eb$XRbQY7_Q~+g zzs1jwe-Jbui602`dk=+wum{ASg`NfR*TXLxd~ETDhxIRs_Oa_a*TcOhM)-^Ir^7xR z*8E@M>s!rM-py}xTi+3Hne?kE^`miMwzixf?Azl10D)f&z8Uxn;>W~)+EZ20zA9OK zZ_+$t@jp-a&G9$(v+-V~;++pk@UMZi4Hs7MCxiYId`0laqw!PXcC%^WeJjIo+xX+e z+Mk59Z5vCswblGN7l!Qa?e&k2g2o2X5@Y@ZG5Ihbomxw1WX@17++$&7>({yT#VGOZ zYM7dJ-U`t6)$6)3#5gI+tqd&+Zf>1AaFpnK3&wJ%B{96tmJ)bXn727$ zaClXSmJ$_Z2vNjhaTTLYR;yBQr;7U5Ea}3u9XV2j;XYKUudn=B@mJxOjeZON0KrLo z38{Y4Ixm8>pBsMG8jr+32+J>vJZBbz?D@mq7SSq(`WHKk*isu6ViZd`WZT+wCT8GSg6&Egt?$O&3R>TaWVH ztl&|Q8-ACeNe-FGxZ61Z{hGPI);iA> zOBm?MR>R>Vgu^IeCkj}2{Ys_|q^VQnY7TC2uDM!poi!e5Md|BO;MxDryxl&z(t5ooPzZlzs2i?IZTA_!}4PFXLNHL*ho6 zs>kA=_$FWM>+qjg@x|ASJbP_rrF>{_7JOIM{AuBzh@TOB2Xg-a5xh64>-ufKg%`#i zGt+e&oqI>Nx6&_f9&{07&b$fxSNIQ9{jq!pEPob06?k*uufyNj$H(6Z^W3kr1-w~;m)6~d`9@S;e8KO@ig8I)~}}2mg7j&{7+${KCPh}&0kNONrD|a z^VUe?Dn`IMbSw{F_o}~>AEEyMzMua9imyxkcE$TXPpVPoSd1njGxm+QEHc8ms*S8v#@YNhPu zPNh1Y#xqf+%;LCD59s?|E(Oa)ADOfj-WX%T{HLe)-_-vAwMBf6BM|H2E7$j< z?W)wPY0uitdr7%kRUBgKNncsGrzfjdXWiiNal+wnxNqIh>hvhl=7m3F341zp;msN` Rl$9vECZMGy6{2p)|Jjn(X$k-U literal 0 HcmV?d00001 diff --git a/base_custom_info/images/templateception.jpg b/base_custom_info/images/templateception.jpg new file mode 100644 index 0000000000000000000000000000000000000000..268c29da001d1b0673b4be6d01acd53e4f9f67fe GIT binary patch literal 57934 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 +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +# pragma: no-cover + + +def migrate(cr, version): + """Update database from previous versions, before updating module.""" + cr.execute( + "ALTER TABLE custom_info_value RENAME COLUMN value TO value_str") diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index 4ce49af98..e0593f285 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -1,6 +1,15 @@ # -*- coding: utf-8 -*- # © 2015 Antiun Ingeniería S.L. - Sergio Teruel # © 2015 Antiun Ingeniería S.L. - Carlos Dauden +# © 2016 Jairo Llopis # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from . import custom_info +from . import ( + custom_info_template, + custom_info_property, + custom_info_category, + custom_info_option, + custom_info_value, + custom_info, + res_partner, +) diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 297a25ade..96617453a 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -1,126 +1,97 @@ # -*- coding: utf-8 -*- -# © 2015 Antiun Ingeniería S.L. - Sergio Teruel -# © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# Copyright 2015 Sergio Teruel +# Copyright 2015 Carlos Dauden +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from openerp import api, fields, models -class CustomInfoModelLink(models.AbstractModel): - _description = "A model that gets its ``ir.model`` computed" - _name = "custom.info.model_link" - - model = fields.Char( - index=True, - readonly=True, - required=True) - model_id = fields.Many2one( - 'ir.model', - 'Model', - compute="_compute_model_id", - store=True) - - @api.multi - @api.depends("model") - def _compute_model_id(self): - """Get a related model from its name, for better UI.""" - for s in self: - s.model_id = self.env["ir.model"].search([("model", "=", s.model)]) - - -class CustomInfoTemplate(models.Model): - """Defines custom properties expected for a given database object.""" - _description = "Custom information template" - _name = "custom.info.template" - _inherit = "custom.info.model_link" - _sql_constraints = [ - ("name_model", - "UNIQUE (name, model)", - "Another template with that name exists for that model."), - ] - - name = fields.Char(required=True, translate=True) - info_ids = fields.One2many( - 'custom.info.property', - 'template_id', - 'Properties') - - -class CustomInfoProperty(models.Model): - """Name of the custom information property.""" - _description = "Custom information property" - _name = "custom.info.property" - _sql_constraints = [ - ("name_template", - "UNIQUE (name, template_id)", - "Another property with that name exists for that template."), - ] - - name = fields.Char(required=True, translate=True) - template_id = fields.Many2one( - comodel_name='custom.info.template', - string='Template', - required=True) - info_value_ids = fields.One2many( - comodel_name="custom.info.value", - inverse_name="property_id", - string="Property Values") - - -class CustomInfoValue(models.Model): - _description = "Custom information value" - _name = "custom.info.value" - _inherit = "custom.info.model_link" - _rec_name = 'value' - _sql_constraints = [ - ("property_model_res", - "UNIQUE (property_id, model, res_id)", - "Another property with that name exists for that resource."), - ] - - res_id = fields.Integer("Resource ID", index=True, required=True) - property_id = fields.Many2one( - comodel_name='custom.info.property', - required=True, - string='Property') - name = fields.Char(related='property_id.name', readonly=True) - value = fields.Char(translate=True, index=True) +class CustomInfo(models.AbstractModel): + """Models that inherit from this one will get custom information for free! + They will probably want to declare a default model in the context of the + :attr:`custom_info_template_id` field. -class CustomInfo(models.AbstractModel): + See example in :mod:`res_partner`. + """ _description = "Inheritable abstract model to add custom info in any model" _name = "custom.info" custom_info_template_id = fields.Many2one( comodel_name='custom.info.template', - string='Custom Information Template') + domain=lambda self: [("model", "=", self._name)], + string='Custom Information Template', + ) custom_info_ids = fields.One2many( - comodel_name='custom.info.value', - inverse_name='res_id', + comodel_name='custom.info.value', inverse_name='res_id', domain=lambda self: [("model", "=", self._name)], - auto_join=True, - string='Custom Properties') + auto_join=True, string='Custom Properties', + ) + # HACK: Until https://github.com/odoo/odoo/pull/10557 is merged + # https://github.com/OCA/server-tools/pull/492#issuecomment-237594285 @api.multi + def onchange(self, values, field_name, field_onchange): # pragma: no cover + x2many_field = 'custom_info_ids' + if x2many_field in field_onchange: + subfields = getattr(self, x2many_field)._fields.keys() + for subfield in subfields: + field_onchange.setdefault( + "{}.{}".format(x2many_field, subfield), u"", + ) + return super(CustomInfo, self).onchange( + values, field_name, field_onchange, + ) + @api.onchange('custom_info_template_id') def _onchange_custom_info_template_id(self): - if not self.custom_info_template_id: - self.custom_info_ids = False - else: - info_list = self.custom_info_ids.mapped('property_id') - for info_name in self.custom_info_template_id.info_ids: - if info_name not in info_list: - self.custom_info_ids |= self.custom_info_ids.new({ - 'model': self._name, - 'property_id': info_name.id, - "res_id": self.id, - }) + tmpls = self.all_custom_info_templates() + props_good = tmpls.mapped("property_ids") + props_enabled = self.mapped("custom_info_ids.property_id") + to_add = props_good - props_enabled + to_remove = props_enabled - props_good + values = self.custom_info_ids + values = values.filtered(lambda r: r.property_id not in to_remove) + for prop in to_add.sorted(): + newvalue = self.custom_info_ids.new({ + "property_id": prop.id, + "res_id": self.id, + "value": prop.default_value, + }) + # HACK https://github.com/odoo/odoo/issues/13076 + newvalue._inverse_value() + newvalue._compute_value() + values += newvalue + self.custom_info_ids = values + # Default values implied new templates? Then this is recursive + if self.all_custom_info_templates() != tmpls: + self._onchange_custom_info_template_id() @api.multi def unlink(self): + """Remove linked custom info this way, as can't be handled + automatically. + """ info_values = self.mapped('custom_info_ids') res = super(CustomInfo, self).unlink() if res: info_values.unlink() return res + + @api.multi + @api.returns("custom.info.value") + def get_custom_info_value(self, properties): + """Get ``custom.info.value`` records for the given property.""" + return self.env["custom.info.value"].search([ + ("model", "=", self._name), + ("res_id", "in", self.ids), + ("property_id", "in", properties.ids), + ]) + + @api.multi + def all_custom_info_templates(self): + """Get all custom info templates involved in these owners.""" + return (self.mapped("custom_info_template_id") | + self.mapped("custom_info_ids.value_id.template_id")) diff --git a/base_custom_info/models/custom_info_category.py b/base_custom_info/models/custom_info_category.py new file mode 100644 index 000000000..f48551471 --- /dev/null +++ b/base_custom_info/models/custom_info_category.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# © 2016 Jairo Llopis +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import api, fields, models + + +class CustomInfoCategory(models.Model): + _description = "Categorize custom info properties" + _name = "custom.info.category" + _order = "sequence, name" + + name = fields.Char(index=True, translate=True, required=True) + sequence = fields.Integer(index=True) + property_ids = fields.One2many( + comodel_name="custom.info.property", + inverse_name="category_id", + string="Properties", + help="Properties in this category.", + ) + + @api.multi + def check_access_rule(self, operation): + """You access a category if you access at least one property.""" + last = None + for prop in self.mapped("property_ids"): + try: + prop.check_access_rule(operation) + return + except Exception as last: + pass + if last: + raise last + return super(CustomInfoCategory, self).check_access_rule(operation) diff --git a/base_custom_info/models/custom_info_option.py b/base_custom_info/models/custom_info_option.py new file mode 100644 index 000000000..a8ad2e95e --- /dev/null +++ b/base_custom_info/models/custom_info_option.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import api, fields, models + + +class CustomInfoOption(models.Model): + _description = "Available options for a custom property" + _name = "custom.info.option" + _order = "name" + + name = fields.Char(index=True, translate=True, required=True) + property_ids = fields.Many2many( + comodel_name="custom.info.property", + string="Properties", + help="Properties where this option is enabled.", + ) + value_ids = fields.One2many( + comodel_name="custom.info.value", + inverse_name="value_id", + string="Values", + help="Values that have set this option.", + ) + template_id = fields.Many2one( + comodel_name="custom.info.template", + string="Additional template", + help="Additional template to be applied to the owner if this option " + "is chosen.", + ) + + @api.multi + def check_access_rule(self, operation): + """You access an option if you access at least one property.""" + last = None + for prop in self.mapped("property_ids"): + try: + prop.check_access_rule(operation) + return + except Exception as last: + pass + if last: + raise last + return super(CustomInfoOption, self).check_access_rule(operation) diff --git a/base_custom_info/models/custom_info_property.py b/base_custom_info/models/custom_info_property.py new file mode 100644 index 000000000..a05b4d8a2 --- /dev/null +++ b/base_custom_info/models/custom_info_property.py @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import _, api, fields, models +from openerp.exceptions import UserError, ValidationError + + +class CustomInfoProperty(models.Model): + """Name of the custom information property.""" + _description = "Custom information property" + _name = "custom.info.property" + _order = "template_id, category_sequence, category_id, sequence, id" + _sql_constraints = [ + ("name_template", + "UNIQUE (name, template_id)", + "Another property with that name exists for that template."), + ] + + name = fields.Char(required=True, translate=True) + sequence = fields.Integer(index=True) + category_id = fields.Many2one( + comodel_name="custom.info.category", + string="Category", + ) + category_sequence = fields.Integer( + related="category_id.sequence", + store=True, + readonly=True, + ) + template_id = fields.Many2one( + comodel_name='custom.info.template', string='Template', + required=True, ondelete="cascade", + ) + model = fields.Char( + related="template_id.model", readonly=True, auto_join=True, + ) + info_value_ids = fields.One2many( + comodel_name="custom.info.value", + inverse_name="property_id", + string="Property Values") + default_value = fields.Char( + translate=True, + help="Will be applied by default to all custom values of this " + "property. This is a char field, so you have to enter some value " + "that can be converted to the field type you choose.", + ) + required = fields.Boolean() + minimum = fields.Float( + help="For numeric fields, it means the minimum possible value; " + "for text fields, it means the minimum possible length. " + "If it is bigger than the maximum, then this check is skipped", + ) + maximum = fields.Float( + default=-1, + help="For numeric fields, it means the maximum possible value; " + "for text fields, it means the maximum possible length. " + "If it is smaller than the minimum, then this check is skipped", + ) + field_type = fields.Selection( + selection=[ + ("str", "Text"), + ("int", "Whole number"), + ("float", "Decimal number"), + ("bool", "Yes/No"), + ("id", "Selection"), + ], + default="str", + required=True, + help="Type of information that can be stored in the property.", + ) + option_ids = fields.Many2many( + comodel_name="custom.info.option", + string="Options", + help="When the field type is 'selection', choose the available " + "options here.", + ) + + @api.multi + def check_access_rule(self, operation): + """You access a property if you access its template.""" + self.mapped("template_id").check_access_rule(operation) + return super(CustomInfoProperty, self).check_access_rule(operation) + + @api.one + @api.constrains("default_value", "field_type") + def _check_default_value(self): + """Ensure the default value is valid.""" + if self.default_value: + try: + self.env["custom.info.value"]._transform_value( + self.default_value, self.field_type, self) + except ValueError: + selection = dict( + self._fields["field_type"].get_description(self.env) + ["selection"]) + raise ValidationError( + _("Default value %s cannot be converted to type %s.") % + (self.default_value, selection[self.field_type])) + + @api.multi + @api.onchange("required", "field_type") + def _onchange_required_warn(self): + """Warn if the required flag implies a possible weird behavior.""" + if self.required: + if self.field_type == "bool": + raise UserError( + _("If you require a Yes/No field, you can only set Yes.")) + if self.field_type in {"int", "float"}: + raise UserError( + _("If you require a numeric field, you cannot set it to " + "zero.")) diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py new file mode 100644 index 000000000..57ece627f --- /dev/null +++ b/base_custom_info/models/custom_info_template.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import _, api, fields, models +from openerp.exceptions import ValidationError + + +class CustomInfoTemplate(models.Model): + """Defines custom properties expected for a given database object.""" + _description = "Custom information template" + _name = "custom.info.template" + _order = "model_id, name" + _sql_constraints = [ + ("name_model", + "UNIQUE (name, model_id)", + "Another template with that name exists for that model."), + ] + + name = fields.Char(required=True, translate=True) + model = fields.Char( + string="Model technical name", inverse="_inverse_model", + compute="_compute_model", search="_search_model" + ) + model_id = fields.Many2one( + comodel_name='ir.model', string='Model', ondelete="restrict", + required=True, auto_join=True, + ) + property_ids = fields.One2many( + comodel_name='custom.info.property', inverse_name='template_id', + string='Properties', oldname="info_ids", + ) + + @api.multi + @api.depends("model_id") + def _compute_model(self): + for r in self: + r.model = r.model_id.model + + @api.multi + def _inverse_model(self): + for r in self: + r.model_id = self.env["ir.model"].search([("model", "=", r.model)]) + + @api.model + def _search_model(self, operator, value): + models = self.env['ir.model'].search([('model', operator, value)]) + return [('model_id', 'in', models.ids)] + + @api.onchange('model') + def _onchange_model(self): + self._inverse_model() + + @api.multi + @api.constrains("model_id") + def _check_model(self): + """Avoid error when updating base module and a submodule extends a + model that falls out of this one's dependency graph. + """ + for record in self: + with self.env.norecompute(): + oldmodels = record.mapped("property_ids.info_value_ids.model") + if oldmodels and record.model not in oldmodels: + raise ValidationError( + _("You cannot change the model because it is in use.") + ) + + @api.multi + def check_access_rule(self, operation): + """You access a template if you access its model.""" + for record in self: + model = self.env[record.model_id.model or record.model] + model.check_access_rights(operation) + model.check_access_rule(operation) + return super(CustomInfoTemplate, self).check_access_rule(operation) diff --git a/base_custom_info/models/custom_info_value.py b/base_custom_info/models/custom_info_value.py new file mode 100644 index 000000000..b09d4c993 --- /dev/null +++ b/base_custom_info/models/custom_info_value.py @@ -0,0 +1,241 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html +from openerp import _, api, fields, models, SUPERUSER_ID +from openerp.exceptions import ValidationError +from openerp.tools.safe_eval import safe_eval + + +class CustomInfoValue(models.Model): + _description = "Custom information value" + _name = "custom.info.value" + _rec_name = 'value' + _order = ("model, res_id, category_sequence, category_id, " + "property_sequence, property_id") + _sql_constraints = [ + ("property_owner", + "UNIQUE (property_id, model, res_id)", + "Another property with that name exists for that resource."), + ] + + model = fields.Char( + related="property_id.model", index=True, readonly=True, + auto_join=True, store=True, + ) + owner_id = fields.Reference( + selection="_selection_owner_id", string="Owner", + compute="_compute_owner_id", inverse="_inverse_owner_id", + help="Record that owns this custom value.", + ) + res_id = fields.Integer( + string="Resource ID", required=True, index=True, store=True, + ondelete="cascade", + ) + property_id = fields.Many2one( + comodel_name='custom.info.property', required=True, string='Property', + readonly=True, + ) + property_sequence = fields.Integer( + related="property_id.sequence", store=True, index=True, readonly=True, + ) + category_sequence = fields.Integer( + related="property_id.category_id.sequence", store=True, readonly=True, + ) + category_id = fields.Many2one( + related="property_id.category_id", store=True, readonly=True, + ) + name = fields.Char(related='property_id.name', readonly=True) + field_type = fields.Selection( + related="property_id.field_type", readonly=True, + ) + field_name = fields.Char( + compute="_compute_field_name", + help="Technical name of the field where the value is stored.", + ) + required = fields.Boolean(related="property_id.required", readonly=True) + value = fields.Char( + compute="_compute_value", inverse="_inverse_value", + search="_search_value", + help="Value, always converted to/from the typed field.", + ) + value_str = fields.Char(string="Text value", translate=True, index=True) + value_int = fields.Integer(string="Whole number value", index=True) + value_float = fields.Float(string="Decimal number value", index=True) + value_bool = fields.Boolean(string="Yes/No value", index=True) + value_id = fields.Many2one( + comodel_name="custom.info.option", string="Selection value", + ondelete="cascade", domain="[('property_ids', 'in', [property_id])]", + ) + + @api.multi + def check_access_rule(self, operation): + """You access a value if you access its owner record.""" + if self.env.uid != SUPERUSER_ID: + for record in self.filtered('owner_id'): + record.owner_id.check_access_rights(operation) + record.owner_id.check_access_rule(operation) + return super(CustomInfoValue, self).check_access_rule(operation) + + @api.model + def _selection_owner_id(self): + """You can choose among models linked to a template.""" + models = self.env["ir.model.fields"].search([ + ("ttype", "=", "many2one"), + ("relation", "=", "custom.info.template"), + ("model_id.transient", "=", False), + "!", ("model", "=like", "custom.info.%"), + ]).mapped("model_id") + models = models.search([("id", "in", models.ids)], order="name") + return [(m.model, m.name) for m in models + if m.model in self.env and self.env[m.model]._auto] + + @api.multi + @api.depends("property_id.field_type") + def _compute_field_name(self): + """Get the technical name where the real typed value is stored.""" + for s in self: + s.field_name = "value_{!s}".format(s.property_id.field_type) + + @api.multi + @api.depends("res_id", "model") + def _compute_owner_id(self): + """Get the id from the linked record.""" + for record in self: + record.owner_id = "{},{}".format(record.model, record.res_id) + + @api.multi + def _inverse_owner_id(self): + """Store the owner according to the model and ID.""" + for record in self.filtered('owner_id'): + record.model = record.owner_id._name + record.res_id = record.owner_id.id + + @api.multi + @api.depends("property_id.field_type", "field_name", "value_str", + "value_int", "value_float", "value_bool", "value_id") + def _compute_value(self): + """Get the value as a string, from the original field.""" + for s in self: + if s.field_type == "id": + s.value = s.value_id.display_name + elif s.field_type == "bool": + s.value = _("Yes") if s.value_bool else _("No") + else: + s.value = getattr(s, s.field_name, False) + + @api.multi + def _inverse_value(self): + """Write the value correctly converted in the typed field.""" + for record in self: + if (record.field_type == "id" and + record.value == record.value_id.display_name): + # Avoid another search that can return a different value + continue + record[record.field_name] = self._transform_value( + record.value, record.field_type, record.property_id, + ) + + @api.one + @api.constrains("property_id", "value_str", "value_int", "value_float") + def _check_min_max_limits(self): + """Ensure value falls inside the property's stablished limits.""" + minimum, maximum = self.property_id.minimum, self.property_id.maximum + if minimum <= maximum: + value = self[self.field_name] + if not value: + # This is a job for :meth:`.~_check_required` + return + if self.field_type == "str": + number = len(self.value_str) + message = _( + "Length for %(prop)s is %(val)s, but it should be " + "between %(min)d and %(max)d.") + elif self.field_type in {"int", "float"}: + number = value + if self.field_type == "int": + message = _( + "Value for %(prop)s is %(val)s, but it should be " + "between %(min)d and %(max)d.") + else: + message = _( + "Value for %(prop)s is %(val)s, but it should be " + "between %(min)f and %(max)f.") + else: + return + if not minimum <= number <= maximum: + raise ValidationError(message % { + "prop": self.property_id.display_name, + "val": number, + "min": minimum, + "max": maximum, + }) + + @api.multi + @api.onchange("property_id") + def _onchange_property_set_default_value(self): + """Load default value for this property.""" + for record in self: + if not record.value and record.property_id.default_value: + record.value = record.property_id.default_value + + @api.onchange('value') + def _onchange_value(self): + """Inverse function is not launched after writing, so we need to + trigger it right now.""" + self._inverse_value() + + @api.model + def _transform_value(self, value, format_, properties=None): + """Transforms a text value to the expected format. + + :param str/bool value: + Custom value in raw string. + + :param str format_: + Target conversion format for the value. Must be available among + ``custom.info.property`` options. + + :param recordset properties: + Useful when :param:`format_` is ``id``, as it helps to ensure the + option is available in these properties. If :param:`format_` is + ``id`` and :param:`properties` is ``None``, no transformation will + be made for :param:`value`. + """ + if not value: + value = False + elif format_ == "id" and properties: + value = self.env["custom.info.option"].search([ + ("property_ids", "in", properties.ids), + ("name", "ilike", u"%{}%".format(value)), + ], limit=1) + elif format_ == "bool": + value = value.strip().lower() not in { + "0", "false", "", "no", "off", _("No").lower()} + elif format_ not in {"str", "id"}: + value = safe_eval("{!s}({!r})".format(format_, value)) + return value + + @api.model + def _search_value(self, operator, value): + """Search from the stored field directly.""" + options = ( + o[0] for o in + self.property_id._fields["field_type"] + .get_description(self.env)["selection"]) + domain = [] + for fmt in options: + try: + _value = (self._transform_value(value, fmt) + if not isinstance(value, list) else + [self._transform_value(v, fmt) for v in value]) + except ValueError: + # If you are searching something that cannot be casted, then + # your property is probably from another type + continue + domain += [ + "&", + ("field_type", "=", fmt), + ("value_" + fmt, operator, _value), + ] + return ["|"] * (len(domain) / 3 - 1) + domain diff --git a/base_custom_info/models/res_partner.py b/base_custom_info/models/res_partner.py new file mode 100644 index 000000000..1f0a562b6 --- /dev/null +++ b/base_custom_info/models/res_partner.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# Copyright 2017 Pedro M. Baeza +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import fields, models + + +class ResPartner(models.Model): + """Implement custom information for partners. + + Besides adding some visible feature to the module, this is useful for + testing and example purposes. + """ + _name = "res.partner" + _inherit = [_name, "custom.info"] + + custom_info_template_id = fields.Many2one(context={"default_model": _name}) + custom_info_ids = fields.One2many(context={"default_model": _name}) diff --git a/base_custom_info/security/ir.model.access.csv b/base_custom_info/security/ir.model.access.csv index d285e7021..ee65f8e15 100644 --- a/base_custom_info/security/ir.model.access.csv +++ b/base_custom_info/security/ir.model.access.csv @@ -1,7 +1,6 @@ -"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_custom_info_template_user","custom.info.template.user","model_custom_info_template","base.group_user",1,0,0,0 -"access_custom_info_property_user","custom.info.template.line.user","model_custom_info_property","base.group_user",1,0,0,0 -"access_custom_info_value_user","custom.info.value.user","model_custom_info_value","base.group_user",1,0,0,0 -"access_custom_info_template_sale_manager","custom.info.template.salemanager","model_custom_info_template","base.group_system",1,1,1,1 -"access_custom_info_property_sale_manager","custom.info.template.line.salemanager","model_custom_info_property","base.group_system",1,1,1,1 -"access_custom_info_value_sale_manager","custom.info.value.salemanager","model_custom_info_value","base.group_system",1,1,1,1 +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_template,Access custom info templates,model_custom_info_template,,1,1,1,1 +access_property,Access custom info properties,model_custom_info_property,,1,1,1,1 +access_value,Access custom info values,model_custom_info_value,,1,1,1,1 +access_option,Access custom info options,model_custom_info_option,,1,1,1,1 +access_category,Access custom info categories,model_custom_info_category,,1,1,1,1 diff --git a/base_custom_info/security/res_groups.xml b/base_custom_info/security/res_groups.xml new file mode 100644 index 000000000..684c141c8 --- /dev/null +++ b/base_custom_info/security/res_groups.xml @@ -0,0 +1,31 @@ + + + + + + + Custom Information + + + + Display in partner form + + Will be able to edit custom information from partner's form. + + + + Basic management + + The user will be able to manage basic custom information. + + + + Advanced management + + The user will be able to manage advanced custom information. + + + + + diff --git a/base_custom_info/static/description/icon.png b/base_custom_info/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cc64c001a82d7f7128de843860f8f57b1f39aef6 GIT binary patch literal 4075 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 G5&S + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/base_custom_info/tests/__init__.py b/base_custom_info/tests/__init__.py new file mode 100644 index 000000000..18f016dd7 --- /dev/null +++ b/base_custom_info/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +from . import test_partner, test_value_conversion diff --git a/base_custom_info/tests/test_partner.py b/base_custom_info/tests/test_partner.py new file mode 100644 index 000000000..21cfafb3a --- /dev/null +++ b/base_custom_info/tests/test_partner.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +from openerp.exceptions import AccessError, ValidationError +from openerp.tests.common import TransactionCase + + +class PartnerCase(TransactionCase): + def setUp(self, *args, **kwargs): + super(PartnerCase, self).setUp(*args, **kwargs) + self.agrolait = self.env.ref("base.res_partner_2") + self.tpl = self.env.ref("base_custom_info.tpl_smart") + self.demouser = self.env.ref("base.user_demo") + + def set_custom_info_for_agrolait(self): + """Used when you need to use some created custom info.""" + self.agrolait.custom_info_template_id = self.tpl + self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_haters")).value_int = 5 + + def test_access_granted(self): + """Access to the model implies access to custom info.""" + # Demo user has contact creation permissions by default + agrolait = self.agrolait.sudo(self.demouser) + agrolait.custom_info_template_id = self.tpl + prop_weaknesses = agrolait.env.ref("base_custom_info.prop_weaknesses") + val_weaknesses = agrolait.get_custom_info_value(prop_weaknesses) + opt_food = agrolait.env.ref("base_custom_info.opt_food") + val_weaknesses.value_id = opt_food + agrolait.custom_info_template_id.name = "Changed template name" + opt_food.name = "Changed option name" + prop_weaknesses.name = "Changed property name" + + def test_access_denied(self): + """Forbidden access to the model forbids it to custom info.""" + # Remove permissions to demo user + self.demouser.groups_id = self.env.ref("base.group_portal") + + agrolait = self.agrolait.sudo(self.demouser) + with self.assertRaises(AccessError): + agrolait.custom_info_template_id = self.tpl + + with self.assertRaises(AccessError): + agrolait.env["custom.info.value"].create({ + "res_id": agrolait.id, + "property_id": + agrolait.env.ref("base_custom_info.prop_weaknesses").id, + "value_id": agrolait.env.ref("base_custom_info.opt_food").id, + }) + + with self.assertRaises(AccessError): + agrolait.custom_info_template_id.property_ids[0].name = "Changed!" + + with self.assertRaises(AccessError): + agrolait.env.ref("base_custom_info.opt_food").name = "Changed!" + + def test_apply_unapply_template(self): + """(Un)apply a template to a owner and it gets filled.""" + # Applying a template autofills the values + self.agrolait.custom_info_template_id = self.tpl + self.assertEqual( + len(self.agrolait.custom_info_ids), + len(self.tpl.property_ids)) + self.assertEqual( + self.agrolait.custom_info_ids.mapped("property_id"), + self.tpl.property_ids) + + # Unapplying a template empties the values + self.agrolait.custom_info_template_id = False + self.assertFalse(self.agrolait.custom_info_template_id) + self.assertFalse(self.agrolait.custom_info_ids) + + def test_template_model_and_model_id_match(self): + """Template's model and model_id fields match.""" + self.assertEqual(self.tpl.model, self.tpl.model_id.model) + self.tpl.model = "res.users" + self.assertEqual(self.tpl.model, self.tpl.model_id.model) + + def test_template_model_must_exist(self): + """Cannot create templates for unexisting models.""" + with self.assertRaises(ValidationError): + self.tpl.model = "yabadabaduu" + + def test_change_used_model_fails(self): + """If a template's model is already used, you cannot change it.""" + self.set_custom_info_for_agrolait() + with self.assertRaises(ValidationError): + self.tpl.model = "res.users" + + def test_owners_selection(self): + """Owners selection includes only the required matches.""" + choices = dict(self.env["custom.info.value"]._selection_owner_id()) + self.assertIn("res.partner", choices) + self.assertNotIn("ir.model", choices) + self.assertNotIn("custom.info.property", choices) + self.assertNotIn("custom.info", choices) + + def test_owner_id(self): + """Check the computed owner id for a value.""" + self.set_custom_info_for_agrolait() + self.assertEqual( + self.agrolait.mapped("custom_info_ids.owner_id"), self.agrolait) + + def test_get_custom_info_value(self): + """Check the custom info getter helper works fine.""" + self.set_custom_info_for_agrolait() + result = self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_haters")) + self.assertEqual(result.field_type, "int") + self.assertEqual(result.field_name, "value_int") + self.assertEqual(result[result.field_name], 5) + self.assertEqual(result.value_int, 5) + self.assertEqual(result.value, "5") + + def test_default_values(self): + """Default values get applied.""" + self.agrolait.custom_info_template_id = self.tpl + val_weaknesses = self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_weaknesses")) + opt_glasses = self.env.ref("base_custom_info.opt_glasses") + self.assertEqual(val_weaknesses.value_id, opt_glasses) + self.assertEqual(val_weaknesses.value, opt_glasses.name) + + def test_recursive_templates(self): + """Recursive templates get loaded when required.""" + self.set_custom_info_for_agrolait() + prop_weaknesses = self.env.ref("base_custom_info.prop_weaknesses") + val_weaknesses = self.agrolait.get_custom_info_value(prop_weaknesses) + val_weaknesses.value = "Needs videogames" + tpl_gamer = self.env.ref("base_custom_info.tpl_gamer") + self.agrolait.invalidate_cache() + self.assertIn(tpl_gamer, self.agrolait.all_custom_info_templates()) + self.assertTrue( + tpl_gamer.property_ids < + self.agrolait.mapped("custom_info_ids.property_id")) + cat_gaming = self.env.ref("base_custom_info.cat_gaming") + self.assertIn( + cat_gaming, self.agrolait.mapped("custom_info_ids.category_id")) + + def test_long_teacher_name(self): + """Wow, your teacher cannot have such a long name!""" + self.set_custom_info_for_agrolait() + val = self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_teacher")) + with self.assertRaises(ValidationError): + val.value = (u"Don Walter Antonio José de la Cruz Hëisenberg de " + u"Borbón Westley Jordy López Manuélez") + + def test_low_average_note(self): + """Come on, you are supposed to be smart!""" + self.set_custom_info_for_agrolait() + val = self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_avg_note")) + with self.assertRaises(ValidationError): + val.value = "-1" + + def test_high_average_note(self): + """Too smart!""" + self.set_custom_info_for_agrolait() + val = self.agrolait.get_custom_info_value( + self.env.ref("base_custom_info.prop_avg_note")) + with self.assertRaises(ValidationError): + val.value = "11" diff --git a/base_custom_info/tests/test_value_conversion.py b/base_custom_info/tests/test_value_conversion.py new file mode 100644 index 000000000..8f3de8a86 --- /dev/null +++ b/base_custom_info/tests/test_value_conversion.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +import logging + +from openerp.tests.common import TransactionCase + +_logger = logging.getLogger(__name__) + + +class ValueConversionCase(TransactionCase): + def setUp(self): + super(ValueConversionCase, self).setUp() + self.agrolait = self.env.ref("base.res_partner_2") + self.tpl = self.env.ref("base_custom_info.tpl_smart") + self.prop_str = self.env.ref("base_custom_info.prop_teacher") + self.prop_int = self.env.ref("base_custom_info.prop_haters") + self.prop_float = self.env.ref("base_custom_info.prop_avg_note") + self.prop_bool = self.env.ref("base_custom_info.prop_smartypants") + self.prop_id = self.env.ref("base_custom_info.prop_weaknesses") + + def fill_value(self, prop, value, field="value"): + """Create a custom info value.""" + _logger.info( + "Creating. prop: %s; value: %s; field: %s", prop, value, field) + self.agrolait.custom_info_template_id = self.tpl + if field == "value": + value = str(value) + self.value = self.agrolait.get_custom_info_value(prop) + self.value[field] = value + + def creation_found(self, value): + """Ensure you can search what you just created.""" + prop = self.value.property_id + _logger.info( + "Searching. prop: %s; value: %s", prop, value) + self.assertEqual( + self.value.search([ + ("property_id", "=", prop.id), + ("value", "=", value)]), + self.value) + self.assertEqual( + self.value.search([ + ("property_id", "=", prop.id), + ("value", "in", [value])]), + self.value) + self.assertIs( + self.value.search([ + ("property_id", "=", prop.id), + ("value", "not in", [value])]).id, + False) + + def test_to_str(self): + """Conversion to text.""" + self.fill_value(self.prop_str, "Mr. Einstein") + self.creation_found("Mr. Einstein") + self.assertEqual(self.value.value, self.value.value_str) + + def test_from_str(self): + """Conversion from text.""" + self.fill_value(self.prop_str, "Mr. Einstein", "value_str") + self.creation_found("Mr. Einstein") + self.assertEqual(self.value.value, self.value.value_str) + + def test_to_int(self): + """Conversion to whole number.""" + self.fill_value(self.prop_int, 5) + self.creation_found("5") + self.assertEqual(int(self.value.value), self.value.value_int) + + def test_from_int(self): + """Conversion from whole number.""" + self.fill_value(self.prop_int, 5, "value_int") + self.creation_found("5") + self.assertEqual(int(self.value.value), self.value.value_int) + + def test_to_float(self): + """Conversion to decimal number.""" + self.fill_value(self.prop_float, 9.5) + self.creation_found("9.5") + self.assertEqual(float(self.value.value), self.value.value_float) + + def test_from_float(self): + """Conversion from decimal number.""" + self.fill_value(self.prop_float, 9.5, "value_float") + self.creation_found("9.5") + self.assertEqual(float(self.value.value), self.value.value_float) + + def test_to_bool_true(self): + """Conversion to yes.""" + self.fill_value(self.prop_bool, "True") + self.creation_found("True") + self.assertEqual(self.value.with_context(lang="en_US").value, "Yes") + self.assertIs(self.value.value_bool, True) + + def test_from_bool_true(self): + """Conversion from yes.""" + self.fill_value(self.prop_bool, "True", "value_bool") + self.creation_found("True") + self.assertEqual(self.value.with_context(lang="en_US").value, "Yes") + self.assertIs(self.value.value_bool, True) + + def test_to_bool_false(self): + """Conversion to no.""" + self.fill_value(self.prop_bool, "False") + self.assertEqual(self.value.with_context(lang="en_US").value, "No") + self.assertIs(self.value.value_bool, False) + + def test_from_bool_false(self): + """Conversion from no.""" + self.fill_value(self.prop_bool, False, "value_bool") + self.assertEqual(self.value.with_context(lang="en_US").value, "No") + self.assertIs(self.value.value_bool, False) + + def test_to_id(self): + """Conversion to selection.""" + self.fill_value(self.prop_id, "Needs videogames") + self.creation_found("Needs videogames") + self.assertEqual(self.value.value, self.value.value_id.name) + + def test_from_id(self): + """Conversion from selection.""" + self.fill_value( + self.prop_id, + self.env.ref("base_custom_info.opt_videogames").id, + "value_id") + self.creation_found("Needs videogames") + self.assertEqual(self.value.value, self.value.value_id.name) diff --git a/base_custom_info/views/custom_info_category_view.xml b/base_custom_info/views/custom_info_category_view.xml new file mode 100644 index 000000000..3c601d9bb --- /dev/null +++ b/base_custom_info/views/custom_info_category_view.xml @@ -0,0 +1,50 @@ + + + + + + custom.info.category + + + + + + + + + + + custom.info.category + + + + + + + + + + + + + + + custom.info.category + + + + + + + + + + Categories + ir.actions.act_window + custom.info.category + tree,form + form + + + diff --git a/base_custom_info/views/custom_info_option_view.xml b/base_custom_info/views/custom_info_option_view.xml new file mode 100644 index 000000000..ca204523f --- /dev/null +++ b/base_custom_info/views/custom_info_option_view.xml @@ -0,0 +1,79 @@ + + + + + + custom.info.option + + + + + + + + + + + + custom.info.option + + primary + + + + + + + + + + + + custom.info.option + + +

+ + + + + + + + +
+ + + + custom.info.option + + primary + + + + + + + + + + custom.info.option + + + + + + + + + + Options + ir.actions.act_window + custom.info.option + tree,form + form + + + diff --git a/base_custom_info/views/custom_info_property_view.xml b/base_custom_info/views/custom_info_property_view.xml index 72bda5437..39d446f6d 100644 --- a/base_custom_info/views/custom_info_property_view.xml +++ b/base_custom_info/views/custom_info_property_view.xml @@ -1,41 +1,105 @@ - + + - - base.custom.info.property.tree - custom.info.property - - - - - - - + + custom.info.property + + + + + + + + + + + + - - base.custom.info.property.form - custom.info.property - -
- - - - - - - + + custom.info.property + + primary + + + + + + + + + custom.info.property + + + + + + + + + + + + + + + + + + + + + + custom.info.property + + primary + + + + + + + + + custom.info.property + + + + + + + + + + + -
- -
-
+ + + - - Properties - ir.actions.act_window - custom.info.property - tree,form - form - + + Properties + ir.actions.act_window + custom.info.property + tree,form + form + -
+ diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index 3e9ff7cbd..4805471b4 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -1,58 +1,72 @@ - + + - - base.custom.info.template.tree - custom.info.template - - - - - - - - - + + custom.info.template + + + + + + + + + - - base.custom.info.template.form - custom.info.template - -
- - - - - - - - - - - - + + custom.info.template + + + + + + + + + + + + + + + + + + custom.info.template + + + + + + + -
- -
-
+ + + - - Templates - ir.actions.act_window - custom.info.template - tree,form - form - - - -

- Click to define a new custom info template. -

- You must define a custom info template for each - product properties group. -

-
-
+ + Templates + ir.actions.act_window + custom.info.template + tree,form + form + + + +

+ Click to define a new custom info template. +

+

+ You must define a custom info template for each properties group. +

+
+
-
+ diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index 53ed922dd..41355c7fa 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -1,25 +1,112 @@ - + + - - base.custom.info.value.tree - custom.info.value - - - - - - - - - + + custom.info.value + + + + + + + + + + - - Values - ir.actions.act_window - custom.info.value - tree,form - form - + + custom.info.value + + primary + + + + bottom + + + + + + + - + + custom.info.value + +
+ + + + + + + + + + + + + + + +
+ Warning! + You might see no changes in parent form until you save it. +
+
+
+
+
+ + + custom.info.value + + + + + + + + + + + + + + + + + + Values + ir.actions.act_window + custom.info.value + tree,form + form + + + diff --git a/base_custom_info/views/menu.xml b/base_custom_info/views/menu.xml index 8f4b2220c..233a32947 100644 --- a/base_custom_info/views/menu.xml +++ b/base_custom_info/views/menu.xml @@ -1,23 +1,45 @@ - + + - - + + - - + - - + - - + - + + + + + + + + + diff --git a/base_custom_info/views/res_partner_view.xml b/base_custom_info/views/res_partner_view.xml new file mode 100644 index 000000000..4a8c17c9f --- /dev/null +++ b/base_custom_info/views/res_partner_view.xml @@ -0,0 +1,32 @@ + + + + + + res.partner + + + + + + + + + + + + + + + + diff --git a/base_custom_info/wizard/__init__.py b/base_custom_info/wizard/__init__.py new file mode 100644 index 000000000..d3a343ecb --- /dev/null +++ b/base_custom_info/wizard/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015 Antiun Ingeniería S.L. - Sergio Teruel +# © 2015 Antiun Ingeniería S.L. - Carlos Dauden +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from . import base_config_settings diff --git a/base_custom_info/wizard/base_config_settings.py b/base_custom_info/wizard/base_config_settings.py new file mode 100644 index 000000000..6d78f1209 --- /dev/null +++ b/base_custom_info/wizard/base_config_settings.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Jairo Llopis +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html + +from openerp import fields, models + + +class BaseConfigSettings(models.TransientModel): + _inherit = "base.config.settings" + + group_custom_info_manager = fields.Boolean( + string="Manage custom information", + implied_group="base_custom_info.group_basic", + help="Allow all employees to manage custom information", + ) + group_custom_info_partner = fields.Boolean( + string="Edit custom information in partners", + implied_group="base_custom_info.group_partner", + help="Add a tab in the partners form to edit custom information", + ) diff --git a/base_custom_info/wizard/base_config_settings_view.xml b/base_custom_info/wizard/base_config_settings_view.xml new file mode 100644 index 000000000..095b60943 --- /dev/null +++ b/base_custom_info/wizard/base_config_settings_view.xml @@ -0,0 +1,33 @@ + + + + + + Allow to enable partners custom info + base.config.settings + + + + + + + + + + + + From 1dc94c6a56048c5b4b17236ecc2acc673a49e8a8 Mon Sep 17 00:00:00 2001 From: Sergio Teruel Albert Date: Mon, 3 Apr 2017 09:16:04 +0200 Subject: [PATCH 10/17] [FIX] base_custom_info: fix demo template csv --- base_custom_info/demo/custom.info.template.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/base_custom_info/demo/custom.info.template.csv b/base_custom_info/demo/custom.info.template.csv index d6d96e0cc..91dc85be7 100644 --- a/base_custom_info/demo/custom.info.template.csv +++ b/base_custom_info/demo/custom.info.template.csv @@ -1,3 +1,3 @@ -id,name,model -tpl_smart,Smart partners,res.partner -tpl_gamer,Gamers,res.partner +id,name,model,model_id:id +tpl_smart,Smart partners,res.partner,base.model_res_partner +tpl_gamer,Gamers,res.partner,base.model_res_partner From 3fe97bb72c6619f7eb3c49761de99df8d6ad3aa1 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Mon, 29 May 2017 18:15:25 +0200 Subject: [PATCH 11/17] [FIX][base_custom_info] Make tests work --- base_custom_info/models/custom_info.py | 2 +- base_custom_info/tests/test_partner.py | 9 ++++++++- base_custom_info/tests/test_value_conversion.py | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 96617453a..7222d0951 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -39,7 +39,7 @@ class CustomInfo(models.AbstractModel): subfields = getattr(self, x2many_field)._fields.keys() for subfield in subfields: field_onchange.setdefault( - "{}.{}".format(x2many_field, subfield), u"", + u"{}.{}".format(x2many_field, subfield), u"", ) return super(CustomInfo, self).onchange( values, field_name, field_onchange, diff --git a/base_custom_info/tests/test_partner.py b/base_custom_info/tests/test_partner.py index 21cfafb3a..576f683a2 100644 --- a/base_custom_info/tests/test_partner.py +++ b/base_custom_info/tests/test_partner.py @@ -2,6 +2,7 @@ # Copyright 2016 Jairo Llopis # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). +from psycopg2 import IntegrityError from openerp.exceptions import AccessError, ValidationError from openerp.tests.common import TransactionCase @@ -16,6 +17,7 @@ class PartnerCase(TransactionCase): def set_custom_info_for_agrolait(self): """Used when you need to use some created custom info.""" self.agrolait.custom_info_template_id = self.tpl + self.agrolait._onchange_custom_info_template_id() self.agrolait.get_custom_info_value( self.env.ref("base_custom_info.prop_haters")).value_int = 5 @@ -24,6 +26,7 @@ class PartnerCase(TransactionCase): # Demo user has contact creation permissions by default agrolait = self.agrolait.sudo(self.demouser) agrolait.custom_info_template_id = self.tpl + agrolait._onchange_custom_info_template_id() prop_weaknesses = agrolait.env.ref("base_custom_info.prop_weaknesses") val_weaknesses = agrolait.get_custom_info_value(prop_weaknesses) opt_food = agrolait.env.ref("base_custom_info.opt_food") @@ -59,6 +62,7 @@ class PartnerCase(TransactionCase): """(Un)apply a template to a owner and it gets filled.""" # Applying a template autofills the values self.agrolait.custom_info_template_id = self.tpl + self.agrolait._onchange_custom_info_template_id() self.assertEqual( len(self.agrolait.custom_info_ids), len(self.tpl.property_ids)) @@ -68,6 +72,7 @@ class PartnerCase(TransactionCase): # Unapplying a template empties the values self.agrolait.custom_info_template_id = False + self.agrolait._onchange_custom_info_template_id() self.assertFalse(self.agrolait.custom_info_template_id) self.assertFalse(self.agrolait.custom_info_ids) @@ -79,7 +84,7 @@ class PartnerCase(TransactionCase): def test_template_model_must_exist(self): """Cannot create templates for unexisting models.""" - with self.assertRaises(ValidationError): + with self.assertRaises(IntegrityError): self.tpl.model = "yabadabaduu" def test_change_used_model_fails(self): @@ -116,6 +121,7 @@ class PartnerCase(TransactionCase): def test_default_values(self): """Default values get applied.""" self.agrolait.custom_info_template_id = self.tpl + self.agrolait._onchange_custom_info_template_id() val_weaknesses = self.agrolait.get_custom_info_value( self.env.ref("base_custom_info.prop_weaknesses")) opt_glasses = self.env.ref("base_custom_info.opt_glasses") @@ -131,6 +137,7 @@ class PartnerCase(TransactionCase): tpl_gamer = self.env.ref("base_custom_info.tpl_gamer") self.agrolait.invalidate_cache() self.assertIn(tpl_gamer, self.agrolait.all_custom_info_templates()) + self.agrolait._onchange_custom_info_template_id() self.assertTrue( tpl_gamer.property_ids < self.agrolait.mapped("custom_info_ids.property_id")) diff --git a/base_custom_info/tests/test_value_conversion.py b/base_custom_info/tests/test_value_conversion.py index 8f3de8a86..542ae44a5 100644 --- a/base_custom_info/tests/test_value_conversion.py +++ b/base_custom_info/tests/test_value_conversion.py @@ -24,6 +24,7 @@ class ValueConversionCase(TransactionCase): _logger.info( "Creating. prop: %s; value: %s; field: %s", prop, value, field) self.agrolait.custom_info_template_id = self.tpl + self.agrolait._onchange_custom_info_template_id() if field == "value": value = str(value) self.value = self.agrolait.get_custom_info_value(prop) From bb3fc27297fc947a0c0a69022efa9d62f2317e13 Mon Sep 17 00:00:00 2001 From: Fanha Giang Date: Tue, 30 May 2017 03:00:48 +0700 Subject: [PATCH 12/17] [MIG] [10.0] base custom info --- base_custom_info/README.rst | 2 +- base_custom_info/__init__.py | 4 +- base_custom_info/__manifest__.py | 14 +- base_custom_info/i18n/am.po | 541 +++++++++++++- base_custom_info/i18n/base_custom_info.pot | 698 ++++++++++++++++++ base_custom_info/i18n/ca.po | 541 +++++++++++++- base_custom_info/i18n/de.po | 541 +++++++++++++- base_custom_info/i18n/el_GR.po | 544 +++++++++++++- base_custom_info/i18n/es.po | 121 ++- base_custom_info/i18n/es_ES.po | 544 +++++++++++++- base_custom_info/i18n/fi.po | 541 +++++++++++++- base_custom_info/i18n/fr.po | 541 +++++++++++++- base_custom_info/i18n/fr_CA.po | 544 +++++++++++++- base_custom_info/i18n/gl.po | 541 +++++++++++++- base_custom_info/i18n/hr.po | 544 +++++++++++++- base_custom_info/i18n/hr_HR.po | 547 +++++++++++++- base_custom_info/i18n/it.po | 548 +++++++++++++- base_custom_info/i18n/nl.po | 542 +++++++++++++- base_custom_info/i18n/pt.po | 541 +++++++++++++- base_custom_info/i18n/pt_BR.po | 544 +++++++++++++- base_custom_info/i18n/pt_PT.po | 544 +++++++++++++- base_custom_info/i18n/ru.po | 545 +++++++++++++- base_custom_info/i18n/sl.po | 562 +++++++++++++- base_custom_info/i18n/tr.po | 541 +++++++++++++- base_custom_info/i18n/zh_CN.po | 552 +++++++++++++- base_custom_info/models/__init__.py | 6 +- base_custom_info/models/custom_info.py | 2 +- .../models/custom_info_category.py | 4 +- base_custom_info/models/custom_info_option.py | 2 +- .../models/custom_info_property.py | 5 +- .../models/custom_info_template.py | 4 +- base_custom_info/models/custom_info_value.py | 6 +- base_custom_info/models/res_partner.py | 2 +- base_custom_info/tests/test_partner.py | 4 +- .../tests/test_value_conversion.py | 2 +- .../views/custom_info_property_view.xml | 2 +- .../views/custom_info_template_view.xml | 2 +- base_custom_info/wizard/__init__.py | 4 +- .../wizard/base_config_settings.py | 2 +- 39 files changed, 11189 insertions(+), 585 deletions(-) create mode 100644 base_custom_info/i18n/base_custom_info.pot diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 2871256ed..78598f9d1 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -203,7 +203,7 @@ To manage their values, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/135/9.0 + :target: https://runbot.odoo-community.org/runbot/135/10.0 Development =========== diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py index a518dce55..95ffd47c5 100644 --- a/base_custom_info/__init__.py +++ b/base_custom_info/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# © 2015 Antiun Ingeniería S.L. - Sergio Teruel -# © 2015 Antiun Ingeniería S.L. - Carlos Dauden +# Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel +# Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from . import models, wizard diff --git a/base_custom_info/__manifest__.py b/base_custom_info/__manifest__.py index 5afe440f9..4ec2709f1 100644 --- a/base_custom_info/__manifest__.py +++ b/base_custom_info/__manifest__.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- -# © 2015 Antiun Ingeniería S.L. - Sergio Teruel -# © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# © 2015-2016 Jairo Llopis -# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +# Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel +# Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden +# Copyright 2015-2016 Jairo Llopis +# License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html { 'name': "Base Custom Info", 'summary': "Add custom field in models", 'category': 'Tools', - 'version': '9.0.2.0.0', + 'version': '10.0.1.0.0', 'depends': [ 'base_setup', ], @@ -40,8 +40,8 @@ ], 'author': 'Tecnativa, ' 'Odoo Community Association (OCA)', - 'website': 'https://www.tecnativa.com', - 'license': 'AGPL-3', + 'website': 'https://github.com/OCA/server-tools', + 'license': 'LGPL-3', 'application': True, 'installable': True, } diff --git a/base_custom_info/i18n/am.po b/base_custom_info/i18n/am.po index ac4922974..631985b61 100644 --- a/base_custom_info/i18n/am.po +++ b/base_custom_info/i18n/am.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Creado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "Última actualización por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Última actualización en" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/base_custom_info.pot b/base_custom_info/i18n/base_custom_info.pot new file mode 100644 index 000000000..ffcd552fd --- /dev/null +++ b/base_custom_info/i18n/base_custom_info.pot @@ -0,0 +1,698 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_custom_info +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \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: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "Warning!\n" +" You might see no changes in parent form until you save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.value:0 +msgid "Another property with that name exists for that resource." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.property:0 +msgid "Another property with that name exists for that template." +msgstr "" + +#. module: base_custom_info +#: sql_constraint:custom.info.template:0 +msgid "Another template with that name exists for that model." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "Click to define a new custom info template." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid +msgid "Created by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date +msgid "Created on" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info +msgid "Custom Info" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form +msgid "Custom Info Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "Custom Info Template Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree +msgid "Custom Info Templates" +msgstr "" + +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id +msgid "Custom Information Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids +msgid "Custom Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree +msgid "Custom Property Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_property +msgid "Custom information property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_template +msgid "Custom information template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_value +msgid "Custom information value" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name +msgid "Display Name" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "For numeric fields, it means the maximum possible value; for text fields, it means the maximum possible length. If it is smaller than the minimum, then this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "For numeric fields, it means the minimum possible value; for text fields, it means the minimum possible length. If it is bigger than the maximum, then this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id +msgid "ID" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info +msgid "Inheritable abstract model to add custom info in any model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +msgid "Model" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name +msgid "Name" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property +msgid "Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Property" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_info_value_ids +msgid "Property Values" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id +msgid "Resource ID" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "Select one of the existing options or create a new one clicking on 'Add an item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +msgid "Template" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_action +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template +msgid "Templates" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value +msgid "Value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids +#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value +msgid "Values" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value +msgid "Will be applied by default to all custom values of this property. This is a char field, so you have to enter some value that can be converted to the field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" +msgstr "" + diff --git a/base_custom_info/i18n/ca.po b/base_custom_info/i18n/ca.po index e26f37ca1..bb8fea708 100644 --- a/base_custom_info/i18n/ca.po +++ b/base_custom_info/i18n/ca.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Creat per" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "Darrera Actualització per" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Darrera Actualització el" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/de.po b/base_custom_info/i18n/de.po index 921acfc97..5dccfba1a 100644 --- a/base_custom_info/i18n/de.po +++ b/base_custom_info/i18n/de.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 # Ermin Trevisan , 2016 @@ -13,15 +13,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: Ermin Trevisan , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -39,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -52,6 +137,8 @@ msgid "Created by" msgstr "Erstellt von" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -64,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -110,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -119,8 +255,89 @@ msgid "Display Name" msgstr "Anzeigename" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -128,8 +345,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -139,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -147,6 +372,8 @@ msgid "Last Modified on" msgstr "Zuletzt geändert am" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -154,6 +381,8 @@ msgid "Last Updated by" msgstr "Zuletzt aktualisiert von" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -161,16 +390,48 @@ msgid "Last Updated on" msgstr "Zuletzt aktualisiert am" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modell" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -178,14 +439,67 @@ msgid "Name" msgstr "Name" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -194,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Ressourcen-ID" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -210,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Werte" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/el_GR.po b/base_custom_info/i18n/el_GR.po index f9bba3bab..7ea8d9992 100644 --- a/base_custom_info/i18n/el_GR.po +++ b/base_custom_info/i18n/el_GR.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -11,16 +11,56 @@ msgstr "" "POT-Creation-Date: 2016-09-10 02:52+0000\n" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\n" -"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Δημιουργήθηκε από " #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "Κωδικός" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "Τελευταία ενημέρωση από" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "Τελευταία ενημέρωση στις" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/es.po b/base_custom_info/i18n/es.po index 3587f3576..640c54022 100644 --- a/base_custom_info/i18n/es.po +++ b/base_custom_info/i18n/es.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * base_custom_info +# * base_custom_info # msgid "" msgstr "" @@ -10,6 +10,7 @@ msgstr "" "PO-Revision-Date: 2017-02-13 00:39+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" @@ -17,15 +18,21 @@ msgstr "" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form -msgid "Warning!\n" -" You might see no changes in parent form until you save it." -msgstr "¡Aviso!\n" -" Puede no ver cambios en el formulario padre hasta que guarde." +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" +"¡Aviso!\n" +" Puede no ver cambios en el formulario padre hasta " +"que guarde." #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner msgid "Add a tab in the partners form to edit custom information" -msgstr "Añade una pestaña en el formulario de empresas para editar su inf. personalizada." +msgstr "" +"Añade una pestaña en el formulario de empresas para editar su inf. " +"personalizada." #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id @@ -34,8 +41,10 @@ msgstr "Plantilla adicional" #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id -msgid "Additional template to be applied to the owner if this option is chosen." -msgstr "Plantilla adicional a ser aplicada al propietario si esta opción se escoge." +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" +"Plantilla adicional a ser aplicada al propietario si esta opción se escoge." #. module: base_custom_info #: model:ir.ui.menu,name:base_custom_info.menu_advanced @@ -186,12 +195,14 @@ msgstr "Inf. personalizada" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "Plantilla de inf. personalizada" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids #: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "Propiedades personalizadas" @@ -231,7 +242,7 @@ msgid "Default value" msgstr "Valor por defecto" #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_property.py:101 +#: code:addons/base_custom_info/models/custom_info_property.py:98 #, python-format msgid "Default value %s cannot be converted to type %s." msgstr "El valor por defecto %s no se puede convertir al tipo %s." @@ -284,13 +295,25 @@ msgstr "Tipo del campo" #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum -msgid "For numeric fields, it means the maximum possible value; for text fields, it means the maximum possible length. If it is smaller than the minimum, then this check is skipped" -msgstr "Para campos numéricos, significa el valor máximo permitido; para campos de texto, significa la longitud máxima permitida. Si es menor que el mínimo, entonces esta comprobación se omite." +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" +"Para campos numéricos, significa el valor máximo permitido; para campos de " +"texto, significa la longitud máxima permitida. Si es menor que el mínimo, " +"entonces esta comprobación se omite." #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum -msgid "For numeric fields, it means the minimum possible value; for text fields, it means the minimum possible length. If it is bigger than the maximum, then this check is skipped" -msgstr "Para campos numéricos, significa el valor mínimo permitido; para campos de texto, significa la longitud mínima permitida. Si es mayor que el máximo, entonces esta comprobación se omite." +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" +"Para campos numéricos, significa el valor mínimo permitido; para campos de " +"texto, significa la longitud mínima permitida. Si es mayor que el máximo, " +"entonces esta comprobación se omite." #. module: base_custom_info #: model:custom.info.template,name:base_custom_info.tpl_gamer @@ -331,13 +354,13 @@ msgid "ID" msgstr "ID (identificación)" #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_property.py:111 +#: code:addons/base_custom_info/models/custom_info_property.py:108 #, python-format msgid "If you require a Yes/No field, you can only set Yes." msgstr "Si requiere un campo Sí/No, sólo podrá escoger Sí." #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_property.py:114 +#: code:addons/base_custom_info/models/custom_info_property.py:111 #, python-format msgid "If you require a numeric field, you cannot set it to zero." msgstr "Si requiere un campo numérico, no podrá ponerlo a cero." @@ -345,7 +368,9 @@ msgstr "Si requiere un campo numérico, no podrá ponerlo a cero." #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info msgid "Inheritable abstract model to add custom info in any model" -msgstr "Modelo abstracto que se puede heredar para añadir inf. personalizada a cualquier modelo" +msgstr "" +"Modelo abstracto que se puede heredar para añadir inf. personalizada a " +"cualquier modelo" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update @@ -376,10 +401,13 @@ msgid "Last Updated on" msgstr "Última actualización en" #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_value.py:152 +#: code:addons/base_custom_info/models/custom_info_value.py:151 #, python-format -msgid "Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." -msgstr "La longitud de %(prop)s es %(val)s, pero debería estar entre %(min)d y %(max)d." +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" +"La longitud de %(prop)s es %(val)s, pero debería estar entre %(min)d y " +"%(max)d." #. module: base_custom_info #: model:custom.info.option,name:base_custom_info.opt_food @@ -435,7 +463,7 @@ msgstr "Necesita videojuegos" #. module: base_custom_info #: code:addons/base_custom_info/models/custom_info_value.py:123 -#: code:addons/base_custom_info/models/custom_info_value.py:215 +#: code:addons/base_custom_info/models/custom_info_value.py:214 #, python-format msgid "No" msgstr "No" @@ -444,7 +472,6 @@ msgstr "No" #: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids #: model:ir.ui.menu,name:base_custom_info.menu_option -#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Options" msgstr "Opciones" @@ -470,7 +497,6 @@ msgstr "Plataformas" #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids #: model:ir.ui.menu,name:base_custom_info.menu_property -#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Properties" msgstr "Propiedades" @@ -518,8 +544,12 @@ msgstr "ID del Recurso" #. module: base_custom_info #: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form -msgid "Select one of the existing options or create a new one clicking on 'Add an item'" -msgstr "Seleccione una de la opciones existentes o cree una nueva pulsando en 'Añadir un elemento'" +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" +"Seleccione una de la opciones existentes o cree una nueva pulsando en " +"'Añadir un elemento'" #. module: base_custom_info #: selection:custom.info.property,field_type:0 @@ -552,7 +582,8 @@ msgstr "Gente lista" #. module: base_custom_info #: model:custom.info.category,name:base_custom_info.cat_statics -msgid "Statics" +#, fuzzy +msgid "Statistics" msgstr "Statics" #. module: base_custom_info @@ -590,12 +621,14 @@ msgstr "Valor de texto" #. module: base_custom_info #: model:res.groups,comment:base_custom_info.group_advanced msgid "The user will be able to manage advanced custom information." -msgstr "El usuario tendrá acceso a una gestión avanzada de la inf. personalizada." +msgstr "" +"El usuario tendrá acceso a una gestión avanzada de la inf. personalizada." #. module: base_custom_info #: model:res.groups,comment:base_custom_info.group_basic msgid "The user will be able to manage basic custom information." -msgstr "El usuario tendrá acceso a una gestión básica de la inf. personalizada." +msgstr "" +"El usuario tendrá acceso a una gestión básica de la inf. personalizada." #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type @@ -609,16 +642,20 @@ msgid "Value" msgstr "Valor" #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_value.py:158 +#: code:addons/base_custom_info/models/custom_info_value.py:157 #, python-format -msgid "Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." -msgstr "El valor de %(prop)s es %(val)s, pero debería estar entre %(min)d y %(max)d." +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" +"El valor de %(prop)s es %(val)s, pero debería estar entre %(min)d y %(max)d." #. module: base_custom_info -#: code:addons/base_custom_info/models/custom_info_value.py:162 +#: code:addons/base_custom_info/models/custom_info_value.py:161 #, python-format -msgid "Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." -msgstr "El valor de %(prop)s es %(val)s, pero debería estar entre %(min)f y %(max)f." +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" +"El valor de %(prop)s es %(val)s, pero debería estar entre %(min)f y %(max)f." #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value @@ -645,7 +682,8 @@ msgstr "¿Qué debilidades tiene?" #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids msgid "When the field type is 'selection', choose the available options here." -msgstr "Cuando el tipo de campo es 'selección', escoja las opciones disponibles aquí." +msgstr "" +"Cuando el tipo de campo es 'selección', escoja las opciones disponibles aquí." #. module: base_custom_info #: selection:custom.info.property,field_type:0 @@ -664,8 +702,14 @@ msgstr "Podrá editar inf. personalizada en el formulario de empresa." #. module: base_custom_info #: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value -msgid "Will be applied by default to all custom values of this property. This is a char field, so you have to enter some value that can be converted to the field type you choose." -msgstr "Se aplicará por defecto a todos los valores personalizados de esta propiedad. Este campo es de texto, así que tiene que introducir un valor que se pueda convertir al tipo de campo que ha escogido." +msgid "" +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" +"Se aplicará por defecto a todos los valores personalizados de esta " +"propiedad. Este campo es de texto, así que tiene que introducir un valor que " +"se pueda convertir al tipo de campo que ha escogido." #. module: base_custom_info #: code:addons/base_custom_info/models/custom_info_value.py:123 @@ -692,10 +736,11 @@ msgstr "No puede cambiar el modelo porque ya se está usando." #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "You must define a custom info template for each properties group." -msgstr "Debe definir una plantilla de inf. personalizada por cada grupo de propiedades." +msgstr "" +"Debe definir una plantilla de inf. personalizada por cada grupo de " +"propiedades." #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_base_config_settings msgid "base.config.settings" msgstr "base.config.settings" - diff --git a/base_custom_info/i18n/es_ES.po b/base_custom_info/i18n/es_ES.po index 0176cab3a..5fd13dfca 100644 --- a/base_custom_info/i18n/es_ES.po +++ b/base_custom_info/i18n/es_ES.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -11,16 +11,56 @@ msgstr "" "POT-Creation-Date: 2016-09-10 02:52+0000\n" "PO-Revision-Date: 2016-09-10 02:52+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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Creado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "Última actualización por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "Última actualización en" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/fi.po b/base_custom_info/i18n/fi.po index 2a27ca8b6..ccc6c4b67 100644 --- a/base_custom_info/i18n/fi.po +++ b/base_custom_info/i18n/fi.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 # Jarmo Kortetjärvi , 2016 @@ -13,15 +13,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: Jarmo Kortetjärvi , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -39,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -52,6 +137,8 @@ msgid "Created by" msgstr "Luonut" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -64,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -110,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -119,8 +255,89 @@ msgid "Display Name" msgstr "Nimi" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -128,8 +345,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -139,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -147,6 +372,8 @@ msgid "Last Modified on" msgstr "Viimeksi muokattu" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -154,6 +381,8 @@ msgid "Last Updated by" msgstr "Viimeksi päivittänyt" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -161,16 +390,48 @@ msgid "Last Updated on" msgstr "Viimeksi päivitetty" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Mall" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -178,14 +439,67 @@ msgid "Name" msgstr "Nimi" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -194,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -210,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/fr.po b/base_custom_info/i18n/fr.po index aa41d533a..539478fec 100644 --- a/base_custom_info/i18n/fr.po +++ b/base_custom_info/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Créé par" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "Nom à afficher" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "Dernière modification le" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "Mis à jour par" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Mis à jour le" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modèle" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "Nom" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID de l'enregistrement" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valeur" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valeurs" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/fr_CA.po b/base_custom_info/i18n/fr_CA.po index 82ef79055..22201dc9f 100644 --- a/base_custom_info/i18n/fr_CA.po +++ b/base_custom_info/i18n/fr_CA.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -11,16 +11,56 @@ msgstr "" "POT-Creation-Date: 2016-07-30 00:58+0000\n" "PO-Revision-Date: 2016-07-30 00:58+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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modèle" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "Nom" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/gl.po b/base_custom_info/i18n/gl.po index 6f8619334..427fbf09b 100644 --- a/base_custom_info/i18n/gl.po +++ b/base_custom_info/i18n/gl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Creado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "ültima actualización por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Última actualización en" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/hr.po b/base_custom_info/i18n/hr.po index a4ddb5b56..fbf0af753 100644 --- a/base_custom_info/i18n/hr.po +++ b/base_custom_info/i18n/hr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # Bole , 2016 msgid "" @@ -12,15 +12,55 @@ msgstr "" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: Bole , 2016\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: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Kreirao" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "Naziv " #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "Zadnje modificirano" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "Ime" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/hr_HR.po b/base_custom_info/i18n/hr_HR.po index ca23d1e6c..29c4f3c60 100644 --- a/base_custom_info/i18n/hr_HR.po +++ b/base_custom_info/i18n/hr_HR.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # Bole , 2016 msgid "" @@ -11,16 +11,57 @@ msgstr "" "POT-Creation-Date: 2016-07-30 00:58+0000\n" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: Bole , 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: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +79,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +138,8 @@ msgid "Created by" msgstr "Kreirao" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +152,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +225,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +256,89 @@ msgid "Display Name" msgstr "Naziv" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +346,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +364,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +373,8 @@ msgid "Last Modified on" msgstr "Zadnje modificirano" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +382,8 @@ msgid "Last Updated by" msgstr "Zadnje ažurirao" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +391,48 @@ msgid "Last Updated on" msgstr "Zadnje ažurirano" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +440,67 @@ msgid "Name" msgstr "Naziv" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +509,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +593,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/it.po b/base_custom_info/i18n/it.po index 822e751fa..e6b0a3de3 100644 --- a/base_custom_info/i18n/it.po +++ b/base_custom_info/i18n/it.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,59 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +#, fuzzy +msgid "Categorize custom info properties" +msgstr "Proprietà personalizzate" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Creato da" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,64 @@ msgid "Custom Info" msgstr "Informazioni personalizzate" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +#, fuzzy +msgid "Custom Info Categories" +msgstr "Informazioni personalizzate" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +#, fuzzy +msgid "Custom Info Options" +msgstr "Informazioni personalizzate" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +#, fuzzy +msgid "Custom Info Properties" +msgstr "Proprietà personalizzate" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +#, fuzzy +msgid "Custom Information" +msgstr "Valore dell'informazione personalizzata" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "Proprietà personalizzate" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "Valori della Proprietà personalizzata" @@ -109,8 +228,30 @@ msgid "Custom information value" msgstr "Valore dell'informazione personalizzata" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +259,90 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +#, fuzzy +msgid "Edit custom information in partners" +msgstr "Valore dell'informazione personalizzata" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +350,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +368,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +377,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +386,8 @@ msgid "Last Updated by" msgstr "Ultimo aggiornamento da" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +395,49 @@ msgid "Last Updated on" msgstr "Ultimo aggiornamento il" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +#, fuzzy +msgid "Manage custom information" +msgstr "Valore dell'informazione personalizzata" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modello" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +445,67 @@ msgid "Name" msgstr "Nome" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "Proprietà" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "Proprietà" @@ -193,13 +514,81 @@ msgstr "Proprietà" msgid "Property Values" msgstr "Valori della Proprietà" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID Risorsa" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "Modello" @@ -209,20 +598,129 @@ msgstr "Modello" msgid "Templates" msgstr "Modelli" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valore" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valori" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/nl.po b/base_custom_info/i18n/nl.po index fe30a4377..ec89c6519 100644 --- a/base_custom_info/i18n/nl.po +++ b/base_custom_info/i18n/nl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,61 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +#, fuzzy +msgid "Custom Info Properties" +msgstr "Eigenschappen" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "Te tonen naam" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "Laatst bijgewerkt op" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "Naam" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "Eigenschappen" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/pt.po b/base_custom_info/i18n/pt.po index 8769bbf2a..f0cfb7dff 100644 --- a/base_custom_info/i18n/pt.po +++ b/base_custom_info/i18n/pt.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Criado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "Atualizado pela última vez por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Atualizado pela última vez em" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/pt_BR.po b/base_custom_info/i18n/pt_BR.po index 73f37413f..f70e0e075 100644 --- a/base_custom_info/i18n/pt_BR.po +++ b/base_custom_info/i18n/pt_BR.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -11,16 +11,56 @@ msgstr "" "POT-Creation-Date: 2016-07-30 00:58+0000\n" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: OCA Transbot , 2016\n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Criado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "Identificação" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "Última atualização por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "Última atualização em" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Modelo" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "Nome" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Identificação do Recurso" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Valor" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Valores" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/pt_PT.po b/base_custom_info/i18n/pt_PT.po index 5946c03e4..632256b2c 100644 --- a/base_custom_info/i18n/pt_PT.po +++ b/base_custom_info/i18n/pt_PT.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -11,16 +11,56 @@ msgstr "" "POT-Creation-Date: 2016-09-10 02:52+0000\n" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +78,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +137,8 @@ msgid "Created by" msgstr "Criado por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +151,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +224,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +255,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +345,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +363,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +372,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +381,8 @@ msgid "Last Updated by" msgstr "Atualizado pela última vez por" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +390,48 @@ msgid "Last Updated on" msgstr "Atualizado pela última vez em" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +439,67 @@ msgid "Name" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +508,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +592,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/ru.po b/base_custom_info/i18n/ru.po index 701b44e2f..c32ecb9ff 100644 --- a/base_custom_info/i18n/ru.po +++ b/base_custom_info/i18n/ru.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,56 @@ msgstr "" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +79,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +138,8 @@ msgid "Created by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +152,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +225,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +256,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +346,15 @@ msgid "ID" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +364,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +373,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +382,8 @@ msgid "Last Updated by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +391,48 @@ msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Модель" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +440,67 @@ msgid "Name" msgstr "Название" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +509,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +593,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/sl.po b/base_custom_info/i18n/sl.po index 280819754..85d559407 100644 --- a/base_custom_info/i18n/sl.po +++ b/base_custom_info/i18n/sl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,16 +12,57 @@ msgstr "" "PO-Revision-Date: 2016-09-10 02:52+0000\n" "Last-Translator: OCA Transbot , 2016\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: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" -msgstr "Model, katerega ``ir.model`` se obdela" +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +#, fuzzy +msgid "Additional template" +msgstr "Predloga informacij po meri" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" +msgstr "" #. module: base_custom_info #: sql_constraint:custom.info.value:0 @@ -38,12 +79,59 @@ msgstr "Za to predlogo obstaja druga lastnost z istim nazivom." msgid "Another template with that name exists for that model." msgstr "Za ta model obstaja druga predloga z istim nazivom." +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +#, fuzzy +msgid "Categorize custom info properties" +msgstr "Lastnosti predloge informacij po meri" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +139,8 @@ msgid "Created by" msgstr "Ustvaril" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +153,64 @@ msgid "Custom Info" msgstr "Informacije po meri" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +#, fuzzy +msgid "Custom Info Categories" +msgstr "Lastnosti predloge informacij po meri" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +#, fuzzy +msgid "Custom Info Options" +msgstr "Predloge informacij po meri" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +#, fuzzy +msgid "Custom Info Properties" +msgstr "Lastnosti po meri" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "Predloga informacij po meri" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "Lastnosti predloge informacij po meri" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "Predloge informacij po meri" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +#, fuzzy +msgid "Custom Information" +msgstr "Vrednost informacij po meri" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "Predloga informacij po meri" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "Lastnosti po meri" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "Vrednosti lastnosti po meri" @@ -109,8 +230,30 @@ msgid "Custom information value" msgstr "Vrednost informacij po meri" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +261,90 @@ msgid "Display Name" msgstr "Prikazni naziv" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +#, fuzzy +msgid "Edit custom information in partners" +msgstr "Lastnosi informacij po meri" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,9 +352,16 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" -msgstr "Postavke informacij" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." +msgstr "" #. module: base_custom_info #: model:ir.model,name:base_custom_info.model_custom_info @@ -139,7 +371,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -147,6 +380,8 @@ msgid "Last Modified on" msgstr "Zadnjič spremenjeno" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -154,6 +389,8 @@ msgid "Last Updated by" msgstr "Zadnji posodobil" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -161,16 +398,49 @@ msgid "Last Updated on" msgstr "Zadnjič posodobljeno" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +#, fuzzy +msgid "Manage custom information" +msgstr "Vrednost informacij po meri" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Model" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -178,14 +448,67 @@ msgid "Name" msgstr "Naziv" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "Lastnosti" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "Lastnost" @@ -194,13 +517,81 @@ msgstr "Lastnost" msgid "Property Values" msgstr "Vrednosti lastnosti" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "ID vira" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "Predloga" @@ -210,20 +601,135 @@ msgstr "Predloga" msgid "Templates" msgstr "Predloge" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Vrednost" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Vrednosti" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" +msgstr "" + +#~ msgid "A model that gets its ``ir.model`` computed" +#~ msgstr "Model, katerega ``ir.model`` se obdela" + +#~ msgid "Info Lines" +#~ msgstr "Postavke informacij" diff --git a/base_custom_info/i18n/tr.po b/base_custom_info/i18n/tr.po index 1aa5be2b5..90e937d65 100644 --- a/base_custom_info/i18n/tr.po +++ b/base_custom_info/i18n/tr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # OCA Transbot , 2016 msgid "" @@ -12,15 +12,54 @@ msgstr "" "PO-Revision-Date: 2016-07-30 00:58+0000\n" "Last-Translator: OCA Transbot , 2016\n" "Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +msgid "Additional template" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +77,58 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +msgid "Categorize custom info properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +136,8 @@ msgid "Created by" msgstr "Oluşturan" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +150,60 @@ msgid "Custom Info" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +msgid "Custom Info Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +msgid "Custom Info Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +msgid "Custom Info Properties" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +msgid "Custom Information" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "" @@ -109,8 +223,30 @@ msgid "Custom information value" msgstr "" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +254,89 @@ msgid "Display Name" msgstr "" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Edit custom information in partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +344,15 @@ msgid "ID" msgstr "ID" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +362,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +371,8 @@ msgid "Last Modified on" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +380,8 @@ msgid "Last Updated by" msgstr "Son güncelleyen" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +389,48 @@ msgid "Last Updated on" msgstr "Son güncellenme" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "Model" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +438,67 @@ msgid "Name" msgstr "Adı" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "" @@ -193,13 +507,81 @@ msgstr "" msgid "Property Values" msgstr "" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "Kaynak ID" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "" @@ -209,20 +591,129 @@ msgstr "" msgid "Templates" msgstr "" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "Değer" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "Değerler" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/i18n/zh_CN.po b/base_custom_info/i18n/zh_CN.po index 69ad4992e..b017cbd52 100644 --- a/base_custom_info/i18n/zh_CN.po +++ b/base_custom_info/i18n/zh_CN.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * base_custom_info -# +# # Translators: # Jeffery Chenn , 2016 msgid "" @@ -11,16 +11,57 @@ msgstr "" "POT-Creation-Date: 2016-08-31 11:58+0000\n" "PO-Revision-Date: 2016-08-31 11:58+0000\n" "Last-Translator: Jeffery Chenn , 2016\n" -"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #. module: base_custom_info -#: model:ir.model,name:base_custom_info.model_custom_info_model_link -msgid "A model that gets its ``ir.model`` computed" +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_form +msgid "" +"Warning!\n" +" You might see no changes in parent form until you " +"save it." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_partner +msgid "Add a tab in the partners form to edit custom information" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_template_id +#, fuzzy +msgid "Additional template" +msgstr "定制信息模板" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_template_id +msgid "" +"Additional template to be applied to the owner if this option is chosen." +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_advanced +msgid "Advanced" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_advanced +msgid "Advanced management" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_base_config_settings_group_custom_info_manager +msgid "Allow all employees to manage custom information" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_haters +msgid "Amount of people that hates him/her for being so smart" msgstr "" #. module: base_custom_info @@ -38,12 +79,59 @@ msgstr "" msgid "Another template with that name exists for that model." msgstr "" +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_option +msgid "Available options for a custom property" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_avg_note +msgid "Average note on all subjects" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.menu,name:base_custom_info.menu_basic +msgid "Basic" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_basic +msgid "Basic management" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_cars +msgid "Cars" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_category_action +#: model:ir.ui.menu,name:base_custom_info.menu_category +msgid "Categories" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_custom_info_category +#, fuzzy +msgid "Categorize custom info properties" +msgstr "定制信息模板属性" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Category" +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action msgid "Click to define a new custom info template." msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_uid @@ -51,6 +139,8 @@ msgid "Created by" msgstr "创建人" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_create_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_create_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_create_date @@ -63,33 +153,64 @@ msgid "Custom Info" msgstr "定制信息" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_tree +#, fuzzy +msgid "Custom Info Categories" +msgstr "定制信息模板属性" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_tree +#, fuzzy +msgid "Custom Info Options" +msgstr "定制信息模板" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_tree +#, fuzzy +msgid "Custom Info Properties" +msgstr "定制属性" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_form msgid "Custom Info Template" msgstr "定制信息模板" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_category_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_option_form +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form msgid "Custom Info Template Properties" msgstr "定制信息模板属性" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_line_tree -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_tree msgid "Custom Info Templates" msgstr "定制信息模板" +#. module: base_custom_info +#: model:ir.module.category,name:base_custom_info.category +#: model:ir.ui.view,arch_db:base_custom_info.view_general_configuration +#: model:ir.ui.view,arch_db:base_custom_info.view_partner_form +#, fuzzy +msgid "Custom Information" +msgstr "定制信息值" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_template_id +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_template_id msgid "Custom Information Template" msgstr "定制信息模板" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_partner_custom_info_ids +#: model:ir.model.fields,field_description:base_custom_info.field_res_users_custom_info_ids msgid "Custom Properties" msgstr "定制属性" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_value_tree +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_tree msgid "Custom Property Values" msgstr "定制属性值" @@ -109,8 +230,30 @@ msgid "Custom information value" msgstr "定制信息值" #. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Decimal number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_float +msgid "Decimal number value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_default_value +msgid "Default value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:98 +#, python-format +msgid "Default value %s cannot be converted to type %s." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_display_name -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_display_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_display_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_display_name @@ -118,8 +261,90 @@ msgid "Display Name" msgstr "显示名称" #. module: base_custom_info +#: model:res.groups,name:base_custom_info.group_partner +msgid "Display in partner form" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_smartypants +msgid "Does he/she believe he/she is the smartest person on earth?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_partner +#, fuzzy +msgid "Edit custom information in partners" +msgstr "定制信息属性" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_game +msgid "Favourite videogame" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_fav_genre +msgid "Favourite videogames genre" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_name +msgid "Field name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_field_type +msgid "Field type" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_maximum +msgid "" +"For numeric fields, it means the maximum possible value; for text fields, it " +"means the maximum possible length. If it is smaller than the minimum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_minimum +msgid "" +"For numeric fields, it means the minimum possible value; for text fields, it " +"means the minimum possible length. If it is bigger than the maximum, then " +"this check is skipped" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_gamer +msgid "Gamers" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_gaming +msgid "Gaming" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_graphical_adventure +msgid "Graphical adventure" +msgstr "" + +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Group By" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_glasses +#: model:custom.info.property,default_value:base_custom_info.prop_weaknesses +msgid "Huge glasses" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_id +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_id #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_id @@ -127,8 +352,15 @@ msgid "ID" msgstr "" #. module: base_custom_info -#: model:ir.ui.view,arch_db:base_custom_info.base_custom_info_template_form -msgid "Info Lines" +#: code:addons/base_custom_info/models/custom_info_property.py:108 +#, python-format +msgid "If you require a Yes/No field, you can only set Yes." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_property.py:111 +#, python-format +msgid "If you require a numeric field, you cannot set it to zero." msgstr "" #. module: base_custom_info @@ -138,7 +370,8 @@ msgstr "" #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info___last_update -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category___last_update +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template___last_update #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value___last_update @@ -146,6 +379,8 @@ msgid "Last Modified on" msgstr "最后修改时间" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_uid +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_uid #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_uid @@ -153,6 +388,8 @@ msgid "Last Updated by" msgstr "" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_write_date +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_write_date #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_write_date @@ -160,16 +397,49 @@ msgid "Last Updated on" msgstr "" #. module: base_custom_info -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_model_link_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: code:addons/base_custom_info/models/custom_info_value.py:151 +#, python-format +msgid "" +"Length for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_food +msgid "Loves junk food" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_base_config_settings_group_custom_info_manager +#, fuzzy +msgid "Manage custom information" +msgstr "定制信息值" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_maximum +msgid "Maximum" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_minimum +msgid "Minimum" +msgstr "" + +#. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model_id -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_template_search msgid "Model" msgstr "模型" #. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_model +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_model +msgid "Model technical name" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_name +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_name #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_name @@ -177,14 +447,67 @@ msgid "Name" msgstr "名称" #. module: base_custom_info -#: model:ir.actions.act_window,name:base_custom_info.custom_info_template_line_action -#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_info_ids -#: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_template_line +#: model:custom.info.property,name:base_custom_info.prop_teacher +msgid "Name of his/her teacher" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_videogames +msgid "Needs videogames" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#: code:addons/base_custom_info/models/custom_info_value.py:214 +#, python-format +msgid "No" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_option_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_option_ids +#: model:ir.ui.menu,name:base_custom_info.menu_option +msgid "Options" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_owner_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search +msgid "Owner" +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_platforms +msgid "Platforms" +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,name:base_custom_info.custom_info_property_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_property_ids +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_template_property_ids +#: model:ir.ui.menu,name:base_custom_info.menu_property msgid "Properties" msgstr "属性" +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_category_property_ids +msgid "Properties in this category." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_property_ids +msgid "Properties where this option is enabled." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_value_search msgid "Property" msgstr "属性" @@ -193,13 +516,81 @@ msgstr "属性" msgid "Property Values" msgstr "属性值" +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_rpg +msgid "RPG" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_owner_id +msgid "Record that owns this custom value." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_required +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_required +msgid "Required" +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_res_id msgid "Resource ID" msgstr "" +#. module: base_custom_info +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_form +msgid "" +"Select one of the existing options or create a new one clicking on 'Add an " +"item'" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Selection" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_id +msgid "Selection value" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_category_sequence +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_property_sequence +msgid "Sequence" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_shooter +msgid "Shooter" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.template,name:base_custom_info.tpl_smart +msgid "Smart partners" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.category,name:base_custom_info.cat_statics +msgid "Statistics" +msgstr "" + +#. module: base_custom_info +#: model:custom.info.option,name:base_custom_info.opt_strategy +msgid "Strategy" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_name +msgid "Technical name of the field where the value is stored." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_property_template_id +#: model:ir.ui.view,arch_db:base_custom_info.custom_info_property_search msgid "Template" msgstr "模板" @@ -209,20 +600,129 @@ msgstr "模板" msgid "Templates" msgstr "模板" +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Text" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_str +msgid "Text value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_advanced +msgid "The user will be able to manage advanced custom information." +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_basic +msgid "The user will be able to manage basic custom information." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_field_type +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_field_type +msgid "Type of information that can be stored in the property." +msgstr "" + #. module: base_custom_info #: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value msgid "Value" msgstr "" +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:157 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)d and %(max)d." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:161 +#, python-format +msgid "" +"Value for %(prop)s is %(val)s, but it should be between %(min)f and %(max)f." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_value_value +msgid "Value, always converted to/from the typed field." +msgstr "" + #. module: base_custom_info #: model:ir.actions.act_window,name:base_custom_info.custom_info_value_action +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_option_value_ids #: model:ir.ui.menu,name:base_custom_info.menu_base_custom_info_value msgid "Values" msgstr "" #. module: base_custom_info -#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +#: model:ir.model.fields,help:base_custom_info.field_custom_info_option_value_ids +msgid "Values that have set this option." +msgstr "" + +#. module: base_custom_info +#: model:custom.info.property,name:base_custom_info.prop_weaknesses +msgid "What weaknesses does he/she have?" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_option_ids +msgid "When the field type is 'selection', choose the available options here." +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Whole number" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_int +msgid "Whole number value" +msgstr "" + +#. module: base_custom_info +#: model:res.groups,comment:base_custom_info.group_partner +msgid "Will be able to edit custom information from partner's form." +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,help:base_custom_info.field_custom_info_property_default_value msgid "" -"You must define a custom info template for each\n" -" product properties group." +"Will be applied by default to all custom values of this property. This is a " +"char field, so you have to enter some value that can be converted to the " +"field type you choose." +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_value.py:123 +#, python-format +msgid "Yes" +msgstr "" + +#. module: base_custom_info +#: selection:custom.info.property,field_type:0 +msgid "Yes/No" +msgstr "" + +#. module: base_custom_info +#: model:ir.model.fields,field_description:base_custom_info.field_custom_info_value_value_bool +msgid "Yes/No value" +msgstr "" + +#. module: base_custom_info +#: code:addons/base_custom_info/models/custom_info_template.py:66 +#, python-format +msgid "You cannot change the model because it is in use." +msgstr "" + +#. module: base_custom_info +#: model:ir.actions.act_window,help:base_custom_info.custom_info_template_action +msgid "You must define a custom info template for each properties group." +msgstr "" + +#. module: base_custom_info +#: model:ir.model,name:base_custom_info.model_base_config_settings +msgid "base.config.settings" msgstr "" diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index e0593f285..4da484e8e 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# © 2015 Antiun Ingeniería S.L. - Sergio Teruel -# © 2015 Antiun Ingeniería S.L. - Carlos Dauden -# © 2016 Jairo Llopis +# Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel +# Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden +# Copyright 2016 Jairo Llopis # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from . import ( diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 7222d0951..351868fb0 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -5,7 +5,7 @@ # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import api, fields, models +from odoo import api, fields, models class CustomInfo(models.AbstractModel): diff --git a/base_custom_info/models/custom_info_category.py b/base_custom_info/models/custom_info_category.py index f48551471..7af3a2b00 100644 --- a/base_custom_info/models/custom_info_category.py +++ b/base_custom_info/models/custom_info_category.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -# © 2016 Jairo Llopis +# Copyright 2016 Jairo Llopis # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import api, fields, models +from odoo import api, fields, models class CustomInfoCategory(models.Model): diff --git a/base_custom_info/models/custom_info_option.py b/base_custom_info/models/custom_info_option.py index a8ad2e95e..e19e09c7d 100644 --- a/base_custom_info/models/custom_info_option.py +++ b/base_custom_info/models/custom_info_option.py @@ -3,7 +3,7 @@ # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import api, fields, models +from odoo import api, fields, models class CustomInfoOption(models.Model): diff --git a/base_custom_info/models/custom_info_property.py b/base_custom_info/models/custom_info_property.py index a05b4d8a2..4d1ba9d13 100644 --- a/base_custom_info/models/custom_info_property.py +++ b/base_custom_info/models/custom_info_property.py @@ -3,8 +3,8 @@ # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import _, api, fields, models -from openerp.exceptions import UserError, ValidationError +from odoo import _, api, fields, models +from odoo.exceptions import UserError, ValidationError class CustomInfoProperty(models.Model): @@ -83,7 +83,6 @@ class CustomInfoProperty(models.Model): self.mapped("template_id").check_access_rule(operation) return super(CustomInfoProperty, self).check_access_rule(operation) - @api.one @api.constrains("default_value", "field_type") def _check_default_value(self): """Ensure the default value is valid.""" diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py index 57ece627f..aeb22b46a 100644 --- a/base_custom_info/models/custom_info_template.py +++ b/base_custom_info/models/custom_info_template.py @@ -3,8 +3,8 @@ # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import _, api, fields, models -from openerp.exceptions import ValidationError +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError class CustomInfoTemplate(models.Model): diff --git a/base_custom_info/models/custom_info_value.py b/base_custom_info/models/custom_info_value.py index b09d4c993..33a85158c 100644 --- a/base_custom_info/models/custom_info_value.py +++ b/base_custom_info/models/custom_info_value.py @@ -2,9 +2,9 @@ # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import _, api, fields, models, SUPERUSER_ID -from openerp.exceptions import ValidationError -from openerp.tools.safe_eval import safe_eval +from odoo import _, api, fields, models, SUPERUSER_ID +from odoo.exceptions import ValidationError +from odoo.tools.safe_eval import safe_eval class CustomInfoValue(models.Model): diff --git a/base_custom_info/models/res_partner.py b/base_custom_info/models/res_partner.py index 1f0a562b6..ffb04de39 100644 --- a/base_custom_info/models/res_partner.py +++ b/base_custom_info/models/res_partner.py @@ -3,7 +3,7 @@ # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import fields, models +from odoo import fields, models class ResPartner(models.Model): diff --git a/base_custom_info/tests/test_partner.py b/base_custom_info/tests/test_partner.py index 576f683a2..3bb09de96 100644 --- a/base_custom_info/tests/test_partner.py +++ b/base_custom_info/tests/test_partner.py @@ -3,8 +3,8 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). from psycopg2 import IntegrityError -from openerp.exceptions import AccessError, ValidationError -from openerp.tests.common import TransactionCase +from odoo.exceptions import AccessError, ValidationError +from odoo.tests.common import TransactionCase class PartnerCase(TransactionCase): diff --git a/base_custom_info/tests/test_value_conversion.py b/base_custom_info/tests/test_value_conversion.py index 542ae44a5..29be332df 100644 --- a/base_custom_info/tests/test_value_conversion.py +++ b/base_custom_info/tests/test_value_conversion.py @@ -3,7 +3,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). import logging -from openerp.tests.common import TransactionCase +from odoo.tests.common import TransactionCase _logger = logging.getLogger(__name__) diff --git a/base_custom_info/views/custom_info_property_view.xml b/base_custom_info/views/custom_info_property_view.xml index 39d446f6d..054a76ad3 100644 --- a/base_custom_info/views/custom_info_property_view.xml +++ b/base_custom_info/views/custom_info_property_view.xml @@ -49,7 +49,7 @@ attrs="{'invisible': [('field_type', 'not in', ['str', 'int', 'float'])]}" />
- + - + # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from openerp import fields, models +from odoo import fields, models class BaseConfigSettings(models.TransientModel): From 1d5fa4a522402034fb07111527ddea4fecdcbd3c Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Tue, 10 Sep 2019 10:00:02 +0200 Subject: [PATCH 13/17] [FIX] base_custom_info: Check contrain on model into template before the write We must avoid to rely on the order in which computed fields (including related fields) and constrains methods are applied. Due to a recent change into the ORM, the contrains on the model_id into CustomInfoTemplate is now called AFTER the recompute of the related model field into property_ids.info_value_ids As side effect, when the constrains is called, the model on the info value is already updated with the new value and we no more know the old value.... --- .../models/custom_info_template.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py index aeb22b46a..d392a4a00 100644 --- a/base_custom_info/models/custom_info_template.py +++ b/base_custom_info/models/custom_info_template.py @@ -53,18 +53,18 @@ class CustomInfoTemplate(models.Model): self._inverse_model() @api.multi - @api.constrains("model_id") - def _check_model(self): - """Avoid error when updating base module and a submodule extends a - model that falls out of this one's dependency graph. + def _check_model_update_allowed(self, model_id): + """Check if the template's model can be updated. + + Template can be updated only if no property values already exists for + this template """ for record in self: - with self.env.norecompute(): - oldmodels = record.mapped("property_ids.info_value_ids.model") - if oldmodels and record.model not in oldmodels: - raise ValidationError( - _("You cannot change the model because it is in use.") - ) + if (model_id != record.model_id.id + and record.mapped("property_ids.info_value_ids")): + raise ValidationError( + _("You cannot change the model because it is in use.") + ) @api.multi def check_access_rule(self, operation): @@ -74,3 +74,9 @@ class CustomInfoTemplate(models.Model): model.check_access_rights(operation) model.check_access_rule(operation) return super(CustomInfoTemplate, self).check_access_rule(operation) + + @api.multi + def write(self, vals): + if 'model_id' in vals: + self._check_model_update_allowed(vals['model_id']) + return super(CustomInfoTemplate, self).write(vals) From 55cc7e4da7482457001f1402eff010f1af27404d Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 10 Sep 2019 13:57:12 +0000 Subject: [PATCH 14/17] base_custom_info 10.0.1.1.0 --- base_custom_info/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base_custom_info/__manifest__.py b/base_custom_info/__manifest__.py index 4ec2709f1..505cc4f61 100644 --- a/base_custom_info/__manifest__.py +++ b/base_custom_info/__manifest__.py @@ -8,7 +8,7 @@ 'name': "Base Custom Info", 'summary': "Add custom field in models", 'category': 'Tools', - 'version': '10.0.1.0.0', + 'version': '10.0.1.1.0', 'depends': [ 'base_setup', ], From 136699066bbd4f2ecbcddad018d276ed0c924e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Fri, 8 Nov 2019 12:39:54 +0100 Subject: [PATCH 15/17] [MIG] base_custom_info: Migration to 12.0 --- base_custom_info/README.rst | 122 ++-- base_custom_info/__init__.py | 1 - base_custom_info/__manifest__.py | 9 +- .../demo/custom_info_property_defaults.yml | 6 - base_custom_info/demo/defaults.xml | 11 + .../migrations/9.0.2.0.0/pre-migrate.py | 10 - base_custom_info/models/__init__.py | 1 - base_custom_info/models/custom_info.py | 5 +- .../models/custom_info_category.py | 12 +- base_custom_info/models/custom_info_option.py | 12 +- .../models/custom_info_property.py | 4 +- .../models/custom_info_template.py | 5 +- base_custom_info/models/custom_info_value.py | 12 +- base_custom_info/models/res_partner.py | 1 - base_custom_info/readme/CONFIGURE.rst | 7 + base_custom_info/readme/CONTRIBUTORS.rst | 8 + base_custom_info/readme/DESCRIPTION.rst | 117 ++++ base_custom_info/readme/DEVELOP.rst | 4 + base_custom_info/readme/INSTALL.rst | 5 + base_custom_info/readme/ROADMAP.rst | 20 + base_custom_info/readme/USAGE.rst | 27 + base_custom_info/security/res_groups.xml | 31 - .../security/res_groups_security.xml | 33 + .../static/description/index.html | 599 ++++++++++++++++++ .../views/custom_info_property_view.xml | 4 +- .../views/custom_info_template_view.xml | 2 +- .../views/custom_info_value_view.xml | 8 +- base_custom_info/wizard/__init__.py | 3 +- .../wizard/base_config_settings_view.xml | 33 - ...fig_settings.py => res_config_settings.py} | 5 +- .../wizard/res_config_settings_view.xml | 41 ++ 31 files changed, 987 insertions(+), 171 deletions(-) delete mode 100644 base_custom_info/demo/custom_info_property_defaults.yml create mode 100644 base_custom_info/demo/defaults.xml delete mode 100644 base_custom_info/migrations/9.0.2.0.0/pre-migrate.py create mode 100644 base_custom_info/readme/CONFIGURE.rst create mode 100644 base_custom_info/readme/CONTRIBUTORS.rst create mode 100644 base_custom_info/readme/DESCRIPTION.rst create mode 100644 base_custom_info/readme/DEVELOP.rst create mode 100644 base_custom_info/readme/INSTALL.rst create mode 100644 base_custom_info/readme/ROADMAP.rst create mode 100644 base_custom_info/readme/USAGE.rst delete mode 100644 base_custom_info/security/res_groups.xml create mode 100644 base_custom_info/security/res_groups_security.xml create mode 100644 base_custom_info/static/description/index.html delete mode 100644 base_custom_info/wizard/base_config_settings_view.xml rename base_custom_info/wizard/{base_config_settings.py => res_config_settings.py} (84%) create mode 100644 base_custom_info/wizard/res_config_settings_view.xml diff --git a/base_custom_info/README.rst b/base_custom_info/README.rst index 78598f9d1..90bbbe13d 100644 --- a/base_custom_info/README.rst +++ b/base_custom_info/README.rst @@ -1,17 +1,33 @@ -.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg - :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html - :alt: License: LGPL-3 - ================ Base Custom Info ================ +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github + :target: https://github.com/OCA/server-tools/tree/12.0/base_custom_info + :alt: OCA/server-tools +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-base_custom_info + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/149/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + This module allows you to attach custom information to records without the need to alter the database structure too much. -Definitions -=========== - This module defines several concepts that you have to understand. Templates @@ -84,29 +100,6 @@ I.e., the "What weaknesses does he/she have?" *property* has some options: The *value* will always be one of these. -Recursive templates using options -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Oh dear customization lovers! Options can be used to customize the custom -information template! - -.. figure:: /base_custom_info/static/description/customizations-everywhere.jpg - :alt: Customizations Everywhere - -If you assign an *additional template* to an option, and while using the owner -form you choose that option, you can then press *reload custom information -templates* to make the owner update itself to include all the properties in all -the involved templates. If you do not press the button, anyway the reloading -will be performed when saving the owner record. - -.. figure:: /base_custom_info/static/description/templateception.jpg - :alt: Templateception - -I.e., if you select the option "Needs videogames" for the property "What -weaknesses does he/she have?" of a smart partner and press *reload custom -information templates*, you will get 2 new properties to fill: "Favourite -videogames genre" and "Favourite videogame". - Value ----- @@ -150,6 +143,11 @@ So, if you want to apply this to other models, you will have to develop a little additional addon that depends on this one. If you are a developer, refer to the *Development* section below. +**Table of contents** + +.. contents:: + :local: + Installation ============ @@ -201,10 +199,6 @@ To manage their values, you need to: * Go to *Custom Info > Values*. -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/135/10.0 - Development =========== @@ -218,38 +212,68 @@ Known issues / Roadmap * Custom properties cannot be shared among templates. * Required attributes are for now only set in the UI, not in the ORM itself. +* Support recursive templates using options + + .. figure:: https://raw.githubusercontent.com/base_custom_info/static/description/customizations-everywhere.jpg + :alt: Customizations Everywhere + + If you assign an *additional template* to an option, and while using the owner + form you choose that option, you can then press *reload custom information + templates* to make the owner update itself to include all the properties in all + the involved templates. If you do not press the button, anyway the reloading + will be performed when saving the owner record. + + .. figure:: https://raw.githubusercontent.com/base_custom_info/static/description/templateception.jpg + :alt: Templateception + + I.e., if you select the option "Needs videogames" for the property "What + weaknesses does he/she have?" of a smart partner and press *reload custom + information templates*, you will get 2 new properties to fill: "Favourite + videogames genre" and "Favourite videogame". 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. +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 `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= +Authors +~~~~~~~ + +* Tecnativa + Contributors ------------- +~~~~~~~~~~~~ -* Rafael Blasco -* Carlos Dauden -* Sergio Teruel -* Jairo Llopis -* Pedro M. Baeza +* `Tecnativa `__: -Maintainer ----------- + * Rafael Blasco + * Carlos Dauden + * Sergio Teruel + * Jairo Llopis + * Pedro M. Baeza + * Alexandre Díaz + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. .. 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. +This module is part of the `OCA/server-tools `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_custom_info/__init__.py b/base_custom_info/__init__.py index 95ffd47c5..57ba1d7be 100644 --- a/base_custom_info/__init__.py +++ b/base_custom_info/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel # Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/base_custom_info/__manifest__.py b/base_custom_info/__manifest__.py index 505cc4f61..23544f0ad 100644 --- a/base_custom_info/__manifest__.py +++ b/base_custom_info/__manifest__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel # Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden # Copyright 2015-2016 Jairo Llopis @@ -8,13 +7,13 @@ 'name': "Base Custom Info", 'summary': "Add custom field in models", 'category': 'Tools', - 'version': '10.0.1.1.0', + 'version': '12.0.1.0.0', 'depends': [ 'base_setup', ], 'data': [ 'security/ir.model.access.csv', - 'security/res_groups.xml', + 'security/res_groups_security.xml', 'views/custom_info_category_view.xml', 'views/custom_info_option_view.xml', 'views/custom_info_template_view.xml', @@ -22,15 +21,15 @@ 'views/custom_info_value_view.xml', 'views/menu.xml', 'views/res_partner_view.xml', - 'wizard/base_config_settings_view.xml', + 'wizard/res_config_settings_view.xml', ], 'demo': [ 'demo/custom.info.category.csv', 'demo/custom.info.template.csv', 'demo/custom.info.property.csv', 'demo/custom.info.option.csv', - 'demo/custom_info_property_defaults.yml', 'demo/res_groups.xml', + 'demo/defaults.xml', ], "images": [ "images/menu.png", diff --git a/base_custom_info/demo/custom_info_property_defaults.yml b/base_custom_info/demo/custom_info_property_defaults.yml deleted file mode 100644 index 592efa6dd..000000000 --- a/base_custom_info/demo/custom_info_property_defaults.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright 2016 Jairo Llopis -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -- Setting default values after loading custom.info.option.csv - -- !record {model: custom.info.property, id: prop_weaknesses}: - default_value: Huge glasses diff --git a/base_custom_info/demo/defaults.xml b/base_custom_info/demo/defaults.xml new file mode 100644 index 000000000..f1588bce1 --- /dev/null +++ b/base_custom_info/demo/defaults.xml @@ -0,0 +1,11 @@ + + + + + + + Huge glasses + + + diff --git a/base_custom_info/migrations/9.0.2.0.0/pre-migrate.py b/base_custom_info/migrations/9.0.2.0.0/pre-migrate.py deleted file mode 100644 index 574e261dd..000000000 --- a/base_custom_info/migrations/9.0.2.0.0/pre-migrate.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2016 Jairo Llopis -# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -# pragma: no-cover - - -def migrate(cr, version): - """Update database from previous versions, before updating module.""" - cr.execute( - "ALTER TABLE custom_info_value RENAME COLUMN value TO value_str") diff --git a/base_custom_info/models/__init__.py b/base_custom_info/models/__init__.py index 4da484e8e..21969ab25 100644 --- a/base_custom_info/models/__init__.py +++ b/base_custom_info/models/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel # Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden # Copyright 2016 Jairo Llopis diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 351868fb0..1594d2ae5 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Sergio Teruel # Copyright 2015 Carlos Dauden # Copyright 2016 Jairo Llopis @@ -41,7 +40,7 @@ class CustomInfo(models.AbstractModel): field_onchange.setdefault( u"{}.{}".format(x2many_field, subfield), u"", ) - return super(CustomInfo, self).onchange( + return super().onchange( values, field_name, field_onchange, ) @@ -75,7 +74,7 @@ class CustomInfo(models.AbstractModel): automatically. """ info_values = self.mapped('custom_info_ids') - res = super(CustomInfo, self).unlink() + res = super().unlink() if res: info_values.unlink() return res diff --git a/base_custom_info/models/custom_info_category.py b/base_custom_info/models/custom_info_category.py index 7af3a2b00..3e69f5d12 100644 --- a/base_custom_info/models/custom_info_category.py +++ b/base_custom_info/models/custom_info_category.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html @@ -22,13 +21,14 @@ class CustomInfoCategory(models.Model): @api.multi def check_access_rule(self, operation): """You access a category if you access at least one property.""" - last = None + last_error = None for prop in self.mapped("property_ids"): try: prop.check_access_rule(operation) return - except Exception as last: + except Exception as err: + last_error = err pass - if last: - raise last - return super(CustomInfoCategory, self).check_access_rule(operation) + if last_error: + raise last_error + return super().check_access_rule(operation) diff --git a/base_custom_info/models/custom_info_option.py b/base_custom_info/models/custom_info_option.py index e19e09c7d..70e43451d 100644 --- a/base_custom_info/models/custom_info_option.py +++ b/base_custom_info/models/custom_info_option.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html @@ -33,13 +32,14 @@ class CustomInfoOption(models.Model): @api.multi def check_access_rule(self, operation): """You access an option if you access at least one property.""" - last = None + last_error = None for prop in self.mapped("property_ids"): try: prop.check_access_rule(operation) return - except Exception as last: + except Exception as err: + last_error = err pass - if last: - raise last - return super(CustomInfoOption, self).check_access_rule(operation) + if last_error: + raise last_error + return super().check_access_rule(operation) diff --git a/base_custom_info/models/custom_info_property.py b/base_custom_info/models/custom_info_property.py index 4d1ba9d13..35e4b556f 100644 --- a/base_custom_info/models/custom_info_property.py +++ b/base_custom_info/models/custom_info_property.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html @@ -25,6 +24,7 @@ class CustomInfoProperty(models.Model): string="Category", ) category_sequence = fields.Integer( + string="Category Sequence", related="category_id.sequence", store=True, readonly=True, @@ -81,7 +81,7 @@ class CustomInfoProperty(models.Model): def check_access_rule(self, operation): """You access a property if you access its template.""" self.mapped("template_id").check_access_rule(operation) - return super(CustomInfoProperty, self).check_access_rule(operation) + return super().check_access_rule(operation) @api.constrains("default_value", "field_type") def _check_default_value(self): diff --git a/base_custom_info/models/custom_info_template.py b/base_custom_info/models/custom_info_template.py index d392a4a00..8f68b3424 100644 --- a/base_custom_info/models/custom_info_template.py +++ b/base_custom_info/models/custom_info_template.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html @@ -73,10 +72,10 @@ class CustomInfoTemplate(models.Model): model = self.env[record.model_id.model or record.model] model.check_access_rights(operation) model.check_access_rule(operation) - return super(CustomInfoTemplate, self).check_access_rule(operation) + return super().check_access_rule(operation) @api.multi def write(self, vals): if 'model_id' in vals: self._check_model_update_allowed(vals['model_id']) - return super(CustomInfoTemplate, self).write(vals) + return super().write(vals) diff --git a/base_custom_info/models/custom_info_value.py b/base_custom_info/models/custom_info_value.py index 33a85158c..8bc80abe6 100644 --- a/base_custom_info/models/custom_info_value.py +++ b/base_custom_info/models/custom_info_value.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html @@ -40,6 +39,7 @@ class CustomInfoValue(models.Model): related="property_id.sequence", store=True, index=True, readonly=True, ) category_sequence = fields.Integer( + string="Category Sequence", related="property_id.category_id.sequence", store=True, readonly=True, ) category_id = fields.Many2one( @@ -75,7 +75,7 @@ class CustomInfoValue(models.Model): for record in self.filtered('owner_id'): record.owner_id.check_access_rights(operation) record.owner_id.check_access_rule(operation) - return super(CustomInfoValue, self).check_access_rule(operation) + return super().check_access_rule(operation) @api.model def _selection_owner_id(self): @@ -128,8 +128,8 @@ class CustomInfoValue(models.Model): def _inverse_value(self): """Write the value correctly converted in the typed field.""" for record in self: - if (record.field_type == "id" and - record.value == record.value_id.display_name): + if (record.field_type == "id" + and record.value == record.value_id.display_name): # Avoid another search that can return a different value continue record[record.field_name] = self._transform_value( @@ -178,6 +178,8 @@ class CustomInfoValue(models.Model): for record in self: if not record.value and record.property_id.default_value: record.value = record.property_id.default_value + if not record.field_type and record.property_id.field_type: + record.field_type = record.property_id.field_type @api.onchange('value') def _onchange_value(self): @@ -238,4 +240,4 @@ class CustomInfoValue(models.Model): ("field_type", "=", fmt), ("value_" + fmt, operator, _value), ] - return ["|"] * (len(domain) / 3 - 1) + domain + return ["|"] * int(len(domain) / 3 - 1) + domain diff --git a/base_custom_info/models/res_partner.py b/base_custom_info/models/res_partner.py index ffb04de39..6b098e6de 100644 --- a/base_custom_info/models/res_partner.py +++ b/base_custom_info/models/res_partner.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # Copyright 2017 Pedro M. Baeza # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/base_custom_info/readme/CONFIGURE.rst b/base_custom_info/readme/CONFIGURE.rst new file mode 100644 index 000000000..986a62731 --- /dev/null +++ b/base_custom_info/readme/CONFIGURE.rst @@ -0,0 +1,7 @@ +To enable the main *Custom Info* menu: + +#. Enable *Settings > General Settings > Manage custom information*. + +To enable partner's custom info tab: + +#. Enable *Settings > General Settings > Edit custom information in partners*. diff --git a/base_custom_info/readme/CONTRIBUTORS.rst b/base_custom_info/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..68554c340 --- /dev/null +++ b/base_custom_info/readme/CONTRIBUTORS.rst @@ -0,0 +1,8 @@ +* `Tecnativa `__: + + * Rafael Blasco + * Carlos Dauden + * Sergio Teruel + * Jairo Llopis + * Pedro M. Baeza + * Alexandre Díaz diff --git a/base_custom_info/readme/DESCRIPTION.rst b/base_custom_info/readme/DESCRIPTION.rst new file mode 100644 index 000000000..9ef71cbc7 --- /dev/null +++ b/base_custom_info/readme/DESCRIPTION.rst @@ -0,0 +1,117 @@ +This module allows you to attach custom information to records without the need +to alter the database structure too much. + +This module defines several concepts that you have to understand. + +Templates +--------- + +A *template* is a collection of *properties* that a record should have. +*Templates* always apply to a given model, and then you can choose among the +current templates for the model you are using when you edit a record of that +model. + +I.e., This addon includes a demo template called "Smart partners", that applies +to the model ``res.partner``, so if you edit any partner, you can choose that +template and get its properties autofilled. + +Properties +---------- + +A *property* is the "name" of the field. *Templates* can have any amount of +*properties*, and when you apply a *template* to a record, it automatically +gets all of its *properties* filled, empty (unless they have a *Default +value*), ready to assign *values*. + +You can set a property to as *required* to force it have a value, although you +should keep in mind that for yes/no properties, this would mean that only *yes* +can be selected, and for numeric properties, zero would be forbidden. + +Also you can set *Minimum* and *Maximum* limits for every *property*, but those +limits are only used when the data type is text (to constrain its length) or +number. To skip this constraint, just set a maximum smaller than the minimum. + +*Properties* always belong to a template, and as such, to a model. + +*Properties* define the data type (text, number, yes/no...), and when the type +is "Selection", then you can define what *options* are available. + +I.e., the "Smart partners" *template* has the following *properties*: + +- Name of his/her teacher +- Amount of people that hates him/her for being so smart +- Average note on all subjects +- Does he/she believe he/she is the smartest person on earth? +- What weaknesses does he/she have? + +When you set that template to any partner, you will then be able to fill these +*properties* with *values*. + +Categories +---------- + +*Properties* can also belong to a *category*, which allows you to sort them in +a logical way, and makes further development easier. + +For example, the ``website_sale_custom_info`` addon uses these to display a +technical datasheet per product in your online shop, sorted and separated by +category. + +You are not required to give a *category* to every *property*. + +Options +------- + +When a *property*'s type is "Selection", then you define the *options* +available, so the *value* must be one of these *options*. + +I.e., the "What weaknesses does he/she have?" *property* has some options: + +- Loves junk food +- Needs videogames +- Huge glasses + +The *value* will always be one of these. + +Value +----- + +When you assign a *template* to a partner, and then you get the *properties* it +should have, you still have to set a *value* for each property. + +*Values* can be of different types (whole numbers, constrained selection, +booleans...), depending on how the *property* was defined. However, there is +always the ``value`` field, that is a text string, and converts automatically +to/from the correct type. + +Why would I need this? +~~~~~~~~~~~~~~~~~~~~~~ + +Imagine you have some partners that are foreign, and that for those partners +you need some extra information that is not needed for others, and you do not +want to fill the partners model with a lot of fields that will be empty most of +the time. + +In this case, you could define a *template* called "Foreign partners", which +will be applied to ``res.partner`` objects, and defines some *properties* that +these are expected to have. + +Then you could assign that *template* to a partner, and automatically you will +get a subtable of all the properties it should have, with tools to fill their +*values* correctly. + +Does this work with any model? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Yes and no. + +Yes, because this is a base module that provides the tools to make this work +with any model. + +No, because, although the tools are provided, they are only applied to the +``res.partner`` model. This is by design, because different models can have +different needs, and we don't want to depend on every possible model. + +So, if you want to apply this to other models, you will have to develop a +little additional addon that depends on this one. If you are a developer, refer +to the *Development* section below. diff --git a/base_custom_info/readme/DEVELOP.rst b/base_custom_info/readme/DEVELOP.rst new file mode 100644 index 000000000..c61bd0b3b --- /dev/null +++ b/base_custom_info/readme/DEVELOP.rst @@ -0,0 +1,4 @@ +To create a module that supports custom information, just depend on this module +and inherit from the ``custom.info`` model. + +See an example in the ``product_custom_info`` addon. diff --git a/base_custom_info/readme/INSTALL.rst b/base_custom_info/readme/INSTALL.rst new file mode 100644 index 000000000..beac25d3f --- /dev/null +++ b/base_custom_info/readme/INSTALL.rst @@ -0,0 +1,5 @@ +This module serves as a base for other modules that implement this behavior in +concrete models. + +This module is a technical dependency and is to be installed in parallel to +other modules. diff --git a/base_custom_info/readme/ROADMAP.rst b/base_custom_info/readme/ROADMAP.rst new file mode 100644 index 000000000..414964992 --- /dev/null +++ b/base_custom_info/readme/ROADMAP.rst @@ -0,0 +1,20 @@ +* Custom properties cannot be shared among templates. +* Required attributes are for now only set in the UI, not in the ORM itself. +* Support recursive templates using options + + .. figure:: /base_custom_info/static/description/customizations-everywhere.jpg + :alt: Customizations Everywhere + + If you assign an *additional template* to an option, and while using the owner + form you choose that option, you can then press *reload custom information + templates* to make the owner update itself to include all the properties in all + the involved templates. If you do not press the button, anyway the reloading + will be performed when saving the owner record. + + .. figure:: /base_custom_info/static/description/templateception.jpg + :alt: Templateception + + I.e., if you select the option "Needs videogames" for the property "What + weaknesses does he/she have?" of a smart partner and press *reload custom + information templates*, you will get 2 new properties to fill: "Favourite + videogames genre" and "Favourite videogame". diff --git a/base_custom_info/readme/USAGE.rst b/base_custom_info/readme/USAGE.rst new file mode 100644 index 000000000..990dc304b --- /dev/null +++ b/base_custom_info/readme/USAGE.rst @@ -0,0 +1,27 @@ +This module defines *Custom Info Templates* that define what properties are +expected for a given record. + +To define a template, you need to: + +* Go to *Custom Info > Templates*. +* Create one. +* Add some *Properties* to it. + +All database records with that template enabled will automatically fill those +properties. + +To manage the properties, you need to: + +* Go to *Custom Info > Properties*. + +To manage the property categories, you need to: + +* Go to *Custom Info > Categories*. + +Some properties can have a number of options to choose, to manage them: + +* Go to *Custom Info > Options*. + +To manage their values, you need to: + +* Go to *Custom Info > Values*. diff --git a/base_custom_info/security/res_groups.xml b/base_custom_info/security/res_groups.xml deleted file mode 100644 index 684c141c8..000000000 --- a/base_custom_info/security/res_groups.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - Custom Information - - - - Display in partner form - - Will be able to edit custom information from partner's form. - - - - Basic management - - The user will be able to manage basic custom information. - - - - Advanced management - - The user will be able to manage advanced custom information. - - - - - diff --git a/base_custom_info/security/res_groups_security.xml b/base_custom_info/security/res_groups_security.xml new file mode 100644 index 000000000..70ebcf977 --- /dev/null +++ b/base_custom_info/security/res_groups_security.xml @@ -0,0 +1,33 @@ + + + + + + + + Custom Information + + + + Display in partner form + + Will be able to edit custom information from partner's form. + + + + Basic management + + The user will be able to manage basic custom information. + + + + Advanced management + + The user will be able to manage advanced custom information. + + + + + + diff --git a/base_custom_info/static/description/index.html b/base_custom_info/static/description/index.html new file mode 100644 index 000000000..c440fbacf --- /dev/null +++ b/base_custom_info/static/description/index.html @@ -0,0 +1,599 @@ + + + + + + +Base Custom Info + + + + + + diff --git a/base_custom_info/views/custom_info_property_view.xml b/base_custom_info/views/custom_info_property_view.xml index 054a76ad3..8a787d6d3 100644 --- a/base_custom_info/views/custom_info_property_view.xml +++ b/base_custom_info/views/custom_info_property_view.xml @@ -50,7 +50,7 @@ /> - diff --git a/base_custom_info/views/custom_info_template_view.xml b/base_custom_info/views/custom_info_template_view.xml index 17c0da42f..65b52232a 100644 --- a/base_custom_info/views/custom_info_template_view.xml +++ b/base_custom_info/views/custom_info_template_view.xml @@ -45,7 +45,7 @@ - + diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index 41355c7fa..d9fdff38a 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -8,7 +8,7 @@ custom.info.value - + @@ -28,6 +28,7 @@ bottom + -
+ @@ -89,12 +90,15 @@ diff --git a/base_custom_info/wizard/__init__.py b/base_custom_info/wizard/__init__.py index f798667d1..13ae90f83 100644 --- a/base_custom_info/wizard/__init__.py +++ b/base_custom_info/wizard/__init__.py @@ -1,6 +1,5 @@ -# -*- coding: utf-8 -*- # Copyright 2015 Antiun Ingeniería S.L. - Sergio Teruel # Copyright 2015 Antiun Ingeniería S.L. - Carlos Dauden # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html -from . import base_config_settings +from . import res_config_settings diff --git a/base_custom_info/wizard/base_config_settings_view.xml b/base_custom_info/wizard/base_config_settings_view.xml deleted file mode 100644 index 095b60943..000000000 --- a/base_custom_info/wizard/base_config_settings_view.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - Allow to enable partners custom info - base.config.settings - - - - - - - - - - - - diff --git a/base_custom_info/wizard/base_config_settings.py b/base_custom_info/wizard/res_config_settings.py similarity index 84% rename from base_custom_info/wizard/base_config_settings.py rename to base_custom_info/wizard/res_config_settings.py index c1e7d4794..63424a43f 100644 --- a/base_custom_info/wizard/base_config_settings.py +++ b/base_custom_info/wizard/res_config_settings.py @@ -1,12 +1,11 @@ -# -*- coding: utf-8 -*- # Copyright 2016 Jairo Llopis # License LGPL-3 - See http://www.gnu.org/licenses/lgpl-3.0.html from odoo import fields, models -class BaseConfigSettings(models.TransientModel): - _inherit = "base.config.settings" +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" group_custom_info_manager = fields.Boolean( string="Manage custom information", diff --git a/base_custom_info/wizard/res_config_settings_view.xml b/base_custom_info/wizard/res_config_settings_view.xml new file mode 100644 index 000000000..b70c51177 --- /dev/null +++ b/base_custom_info/wizard/res_config_settings_view.xml @@ -0,0 +1,41 @@ + + + + + + Allow to enable custom information + res.config.settings + + + +

Custom Information

+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
From 339a8ec1d21ee3e4d1be15c2628219c2a981fa73 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 5 Dec 2019 10:24:51 +0100 Subject: [PATCH 16/17] [MIG][FIX] base_custom_info: Several adjustments: - Put force_save=1 for allowing the web client to send readonly values to server - Switch widget="selection" to "many2one" default with options because it's not supported anymore in tree view - Move value_id to parent view. --- base_custom_info/models/custom_info.py | 1 - base_custom_info/models/custom_info_value.py | 2 +- .../views/custom_info_value_view.xml | 19 +++++++++---------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index 1594d2ae5..fc805b828 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -59,7 +59,6 @@ class CustomInfo(models.AbstractModel): "res_id": self.id, "value": prop.default_value, }) - # HACK https://github.com/odoo/odoo/issues/13076 newvalue._inverse_value() newvalue._compute_value() values += newvalue diff --git a/base_custom_info/models/custom_info_value.py b/base_custom_info/models/custom_info_value.py index 8bc80abe6..2bc9ed522 100644 --- a/base_custom_info/models/custom_info_value.py +++ b/base_custom_info/models/custom_info_value.py @@ -65,7 +65,7 @@ class CustomInfoValue(models.Model): value_bool = fields.Boolean(string="Yes/No value", index=True) value_id = fields.Many2one( comodel_name="custom.info.option", string="Selection value", - ondelete="cascade", domain="[('property_ids', 'in', [property_id])]", + ondelete="cascade", domain="[('property_ids', '=', property_id)]", ) @api.multi diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index d9fdff38a..abc662b28 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -9,11 +9,17 @@ - - + + + + @@ -29,13 +35,6 @@ bottom - - - - From 153e1d013495fbe830228494914edbca06697746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20D=C3=ADaz?= Date: Mon, 16 Dec 2019 13:17:56 +0100 Subject: [PATCH 17/17] [IMP] base_custom_info: Tests --- base_custom_info/models/custom_info.py | 1 + base_custom_info/tests/test_partner.py | 2 ++ base_custom_info/views/custom_info_value_view.xml | 11 +++++++---- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/base_custom_info/models/custom_info.py b/base_custom_info/models/custom_info.py index fc805b828..7bf669b07 100644 --- a/base_custom_info/models/custom_info.py +++ b/base_custom_info/models/custom_info.py @@ -59,6 +59,7 @@ class CustomInfo(models.AbstractModel): "res_id": self.id, "value": prop.default_value, }) + newvalue._onchange_property_set_default_value() newvalue._inverse_value() newvalue._compute_value() values += newvalue diff --git a/base_custom_info/tests/test_partner.py b/base_custom_info/tests/test_partner.py index 3bb09de96..2635ad947 100644 --- a/base_custom_info/tests/test_partner.py +++ b/base_custom_info/tests/test_partner.py @@ -5,6 +5,7 @@ from psycopg2 import IntegrityError from odoo.exceptions import AccessError, ValidationError from odoo.tests.common import TransactionCase +from odoo.tools import mute_logger class PartnerCase(TransactionCase): @@ -82,6 +83,7 @@ class PartnerCase(TransactionCase): self.tpl.model = "res.users" self.assertEqual(self.tpl.model, self.tpl.model_id.model) + @mute_logger('odoo.sql_db') def test_template_model_must_exist(self): """Cannot create templates for unexisting models.""" with self.assertRaises(IntegrityError): diff --git a/base_custom_info/views/custom_info_value_view.xml b/base_custom_info/views/custom_info_value_view.xml index abc662b28..733d2572c 100644 --- a/base_custom_info/views/custom_info_value_view.xml +++ b/base_custom_info/views/custom_info_value_view.xml @@ -85,12 +85,15 @@ - + string="Model" + name="model" + context="{'group_by': 'model'}"/> +
+

Base Custom Info

+ + +

Beta License: LGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

+

This module allows you to attach custom information to records without the need +to alter the database structure too much.

+

This module defines several concepts that you have to understand.

+
+

Templates

+

A template is a collection of properties that a record should have. +Templates always apply to a given model, and then you can choose among the +current templates for the model you are using when you edit a record of that +model.

+

I.e., This addon includes a demo template called “Smart partners”, that applies +to the model res.partner, so if you edit any partner, you can choose that +template and get its properties autofilled.

+
+
+

Properties

+

A property is the “name” of the field. Templates can have any amount of +properties, and when you apply a template to a record, it automatically +gets all of its properties filled, empty (unless they have a Default +value), ready to assign values.

+

You can set a property to as required to force it have a value, although you +should keep in mind that for yes/no properties, this would mean that only yes +can be selected, and for numeric properties, zero would be forbidden.

+

Also you can set Minimum and Maximum limits for every property, but those +limits are only used when the data type is text (to constrain its length) or +number. To skip this constraint, just set a maximum smaller than the minimum.

+

Properties always belong to a template, and as such, to a model.

+

Properties define the data type (text, number, yes/no…), and when the type +is “Selection”, then you can define what options are available.

+

I.e., the “Smart partners” template has the following properties:

+
    +
  • Name of his/her teacher
  • +
  • Amount of people that hates him/her for being so smart
  • +
  • Average note on all subjects
  • +
  • Does he/she believe he/she is the smartest person on earth?
  • +
  • What weaknesses does he/she have?
  • +
+

When you set that template to any partner, you will then be able to fill these +properties with values.

+
+
+

Categories

+

Properties can also belong to a category, which allows you to sort them in +a logical way, and makes further development easier.

+

For example, the website_sale_custom_info addon uses these to display a +technical datasheet per product in your online shop, sorted and separated by +category.

+

You are not required to give a category to every property.

+
+
+

Options

+

When a property’s type is “Selection”, then you define the options +available, so the value must be one of these options.

+

I.e., the “What weaknesses does he/she have?” property has some options:

+
    +
  • Loves junk food
  • +
  • Needs videogames
  • +
  • Huge glasses
  • +
+

The value will always be one of these.

+
+
+

Value

+

When you assign a template to a partner, and then you get the properties it +should have, you still have to set a value for each property.

+

Values can be of different types (whole numbers, constrained selection, +booleans…), depending on how the property was defined. However, there is +always the value field, that is a text string, and converts automatically +to/from the correct type.

+
+

Why would I need this?

+

Imagine you have some partners that are foreign, and that for those partners +you need some extra information that is not needed for others, and you do not +want to fill the partners model with a lot of fields that will be empty most of +the time.

+

In this case, you could define a template called “Foreign partners”, which +will be applied to res.partner objects, and defines some properties that +these are expected to have.

+

Then you could assign that template to a partner, and automatically you will +get a subtable of all the properties it should have, with tools to fill their +values correctly.

+
+
+

Does this work with any model?

+

Yes and no.

+

Yes, because this is a base module that provides the tools to make this work +with any model.

+

No, because, although the tools are provided, they are only applied to the +res.partner model. This is by design, because different models can have +different needs, and we don’t want to depend on every possible model.

+

So, if you want to apply this to other models, you will have to develop a +little additional addon that depends on this one. If you are a developer, refer +to the Development section below.

+

Table of contents

+ +
+

Installation

+

This module serves as a base for other modules that implement this behavior in +concrete models.

+

This module is a technical dependency and is to be installed in parallel to +other modules.

+
+
+

Configuration

+

To enable the main Custom Info menu:

+
    +
  1. Enable Settings > General Settings > Manage custom information.
  2. +
+

To enable partner’s custom info tab:

+
    +
  1. Enable Settings > General Settings > Edit custom information in partners.
  2. +
+
+
+

Usage

+

This module defines Custom Info Templates that define what properties are +expected for a given record.

+

To define a template, you need to:

+
    +
  • Go to Custom Info > Templates.
  • +
  • Create one.
  • +
  • Add some Properties to it.
  • +
+

All database records with that template enabled will automatically fill those +properties.

+

To manage the properties, you need to:

+
    +
  • Go to Custom Info > Properties.
  • +
+

To manage the property categories, you need to:

+
    +
  • Go to Custom Info > Categories.
  • +
+

Some properties can have a number of options to choose, to manage them:

+
    +
  • Go to Custom Info > Options.
  • +
+

To manage their values, you need to:

+
    +
  • Go to Custom Info > Values.
  • +
+
+
+

Development

+

To create a module that supports custom information, just depend on this module +and inherit from the custom.info model.

+

See an example in the product_custom_info addon.

+
+
+

Known issues / Roadmap

+
    +
  • Custom properties cannot be shared among templates.

    +
  • +
  • Required attributes are for now only set in the UI, not in the ORM itself.

    +
  • +
  • Support recursive templates using options

    +
    +Customizations Everywhere +
    +

    If you assign an additional template to an option, and while using the owner +form you choose that option, you can then press reload custom information +templates to make the owner update itself to include all the properties in all +the involved templates. If you do not press the button, anyway the reloading +will be performed when saving the owner record.

    +
    +Templateception +
    +

    I.e., if you select the option “Needs videogames” for the property “What +weaknesses does he/she have?” of a smart partner and press reload custom +information templates, you will get 2 new properties to fill: “Favourite +videogames genre” and “Favourite videogame”.

    +
  • +
+
+
+

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.

+

Do not contact contributors directly about support or help with technical issues.

+
+ +
+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

This module is part of the OCA/server-tools project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+