From 3b23dc14eb45f17668dfcf09bd87fd0bf377f143 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Fri, 8 Jun 2018 13:54:53 +0200
Subject: [PATCH 01/18] [ADD] privacy_partner_report
---
privacy_partner_report/README.rst | 67 +++++
privacy_partner_report/__init__.py | 4 +
privacy_partner_report/__openerp__.py | 21 ++
.../controllers/__init__.py | 2 +
privacy_partner_report/controllers/main.py | 21 ++
privacy_partner_report/report/__init__.py | 2 +
.../report/privacy_partner_xlsx.py | 94 +++++++
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../views/privacy_menu_view.xml | 14 ++
.../views/privacy_report.xml | 11 +
privacy_partner_report/wizard/__init__.py | 2 +
.../wizard/privacy_report_partner.py | 238 ++++++++++++++++++
.../wizard/privacy_report_partner_wizard.xml | 51 ++++
13 files changed, 527 insertions(+)
create mode 100644 privacy_partner_report/README.rst
create mode 100644 privacy_partner_report/__init__.py
create mode 100644 privacy_partner_report/__openerp__.py
create mode 100644 privacy_partner_report/controllers/__init__.py
create mode 100644 privacy_partner_report/controllers/main.py
create mode 100644 privacy_partner_report/report/__init__.py
create mode 100644 privacy_partner_report/report/privacy_partner_xlsx.py
create mode 100644 privacy_partner_report/static/description/icon.png
create mode 100644 privacy_partner_report/views/privacy_menu_view.xml
create mode 100644 privacy_partner_report/views/privacy_report.xml
create mode 100644 privacy_partner_report/wizard/__init__.py
create mode 100644 privacy_partner_report/wizard/privacy_report_partner.py
create mode 100644 privacy_partner_report/wizard/privacy_report_partner_wizard.xml
diff --git a/privacy_partner_report/README.rst b/privacy_partner_report/README.rst
new file mode 100644
index 0000000..ff70cea
--- /dev/null
+++ b/privacy_partner_report/README.rst
@@ -0,0 +1,67 @@
+.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
+ :target: https://www.gnu.org/licenses/agpl
+ :alt: License: AGPL-3
+
+======================
+Privacy Partner Report
+======================
+
+This module helps a company to identify all the transactions that a specific
+partner is involved in, with the possibility to export the associated data.
+
+
+Usage
+=====
+
+To use this module, you need to:
+
+#. Go to menu of ``Privacy > Reports > Partner Report``.
+#. Select a partner, and then wait some seconds until a list of models appear.
+#. Click on ``Export XLSX``.
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/263/9.0
+
+Known issues / Roadmap
+======================
+
+* Remove controller workaround if https://github.com/odoo/odoo/pull/24964 is merged.
+
+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 smash it by providing detailed and welcomed feedback.
+
+Credits
+=======
+
+Images
+------
+
+* Odoo Community Association: `Icon `_.
+
+Contributors
+------------
+
+* Miquel Raïch
+
+Do not contact contributors directly about support or help with technical issues.
+
+Maintainer
+----------
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit https://odoo-community.org.
diff --git a/privacy_partner_report/__init__.py b/privacy_partner_report/__init__.py
new file mode 100644
index 0000000..f07586e
--- /dev/null
+++ b/privacy_partner_report/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+from . import controllers
+from . import report
+from . import wizard
diff --git a/privacy_partner_report/__openerp__.py b/privacy_partner_report/__openerp__.py
new file mode 100644
index 0000000..6c0ed62
--- /dev/null
+++ b/privacy_partner_report/__openerp__.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Copyright 2018 Eficent Business and IT Consulting Services S.L.
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+{
+ 'name': 'Privacy Partner Report',
+ 'version': '9.0.1.0.0',
+ 'category': 'GDPR',
+ 'summary': 'Show the transactions that a specific partner is involved in.',
+ 'author': "Eficent, "
+ "Odoo Community Association (OCA)",
+ 'website': 'https://github.com/OCA/data-protection/',
+ 'license': 'AGPL-3',
+ 'depends': ['privacy', 'report_xlsx'],
+ 'data': [
+ 'wizard/privacy_report_partner_wizard.xml',
+ 'views/privacy_report.xml',
+ 'views/privacy_menu_view.xml',
+ ],
+ 'installable': True,
+ 'maintainers': ['mreficent'],
+}
diff --git a/privacy_partner_report/controllers/__init__.py b/privacy_partner_report/controllers/__init__.py
new file mode 100644
index 0000000..757b12a
--- /dev/null
+++ b/privacy_partner_report/controllers/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import main
diff --git a/privacy_partner_report/controllers/main.py b/privacy_partner_report/controllers/main.py
new file mode 100644
index 0000000..8d8f1da
--- /dev/null
+++ b/privacy_partner_report/controllers/main.py
@@ -0,0 +1,21 @@
+# Copyright 2018 Eficent Business and IT Consulting Services, S.L.
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
+
+import json
+from openerp import http
+
+from openerp.addons.web.controllers.main import serialize_exception
+from openerp.addons.web.controllers.main import Reports
+
+
+class ReportsExtended(Reports):
+ # HACK of https://github.com/odoo/odoo/pull/24964
+
+ @http.route()
+ @serialize_exception
+ def index(self, action, token):
+ action = json.loads(action)
+ if "data" in action.keys() and action["data"]:
+ action["datas"] = action["data"]
+ action = json.dumps(action)
+ return super(ReportsExtended, self).index(action, token)
diff --git a/privacy_partner_report/report/__init__.py b/privacy_partner_report/report/__init__.py
new file mode 100644
index 0000000..38a00d0
--- /dev/null
+++ b/privacy_partner_report/report/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import privacy_partner_xlsx
diff --git a/privacy_partner_report/report/privacy_partner_xlsx.py b/privacy_partner_report/report/privacy_partner_xlsx.py
new file mode 100644
index 0000000..faead55
--- /dev/null
+++ b/privacy_partner_report/report/privacy_partner_xlsx.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+# Copyright 2018 Eficent Business and IT Consulting Services S.L.
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+
+import logging
+from openerp.report import report_sxw
+from openerp.tools.translate import _
+
+_logger = logging.getLogger(__name__)
+
+try:
+ from openerp.addons.report_xlsx.report.report_xlsx import ReportXlsx
+except ImportError:
+ _logger.debug("report_xlsx not installed, Excel export non functional")
+
+ class ReportXlsx(object):
+ def __init__(self, *args, **kwargs):
+ pass
+
+
+class ReportPartnerXlsx(ReportXlsx):
+
+ def _search_longest_row(self, tables):
+ res = 0
+ for table in tables:
+ for model in tables[table]:
+ if len(tables[table][model]) > 0:
+ if len(tables[table][model][0]) > res:
+ res = len(tables[table][model][0])
+ return res
+
+ def generate_xlsx_report(self, workbook, data, objects):
+ partner = data['form'].get('partner_id', False)
+ partner = self.env['res.partner'].sudo().browse(partner[0])
+ workbook.set_properties({
+ 'comments': 'Created with Python and XlsxWriter from Odoo'})
+ sheet = workbook.add_worksheet(_('Partner Data'))
+ sheet.set_landscape()
+ sheet.fit_to_pages(1, 0)
+ sheet.set_zoom(75)
+ sheet.set_column(0, self._search_longest_row(data['tables']), 25)
+ title_style = workbook.add_format(
+ {'bold': True, 'bg_color': '#FFFFCC', 'border': 2})
+ sheet.set_row(0, None, None, {'collapsed': 1})
+ sheet.write_row(1, 0, ["Partner: " + partner.display_name],
+ title_style)
+ i = 3
+ first_row = i+2
+ for table in sorted(data['tables'].keys()):
+ for model in sorted(data['tables'][table].keys()):
+ rows = len(data['tables'][table][model])
+ if rows:
+ style = workbook.add_format()
+ style.set_bold(True)
+ style.set_border(2)
+ sheet.write_row(i, 0, [model], style)
+ i += 1
+ j = 0
+ for column in data['tables'][table][model][0]:
+ style = workbook.add_format()
+ style.set_bold(True)
+ if j == 0:
+ style.set_left(1)
+ if j == len(data['tables'][table][model][0]) - 1:
+ style.set_right(1)
+ style.set_top(1)
+ style.set_bottom(1)
+ sheet.write_row(i, j, [column], style)
+ j += 1
+ for row in data['tables'][table][model]:
+ i += 1
+ j = 0
+ for column in row:
+ style = workbook.add_format()
+ if j == 0:
+ style.set_left(1)
+ if j == len(row) - 1:
+ style.set_right(1)
+ if i == rows + first_row - 1:
+ style.set_bottom(1)
+ if row[column]:
+ sheet.write_row(i, j, [row[column]], style)
+ else:
+ sheet.write_row(i, j, [''], style)
+ j += 1
+ i += 2
+ first_row = i+2
+
+
+ReportPartnerXlsx(
+ 'report.privacy.report_partner_xlsx',
+ 'privacy.partner.report',
+ parser=report_sxw.rml_parse
+)
diff --git a/privacy_partner_report/static/description/icon.png b/privacy_partner_report/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/privacy_partner_report/views/privacy_menu_view.xml b/privacy_partner_report/views/privacy_menu_view.xml
new file mode 100644
index 0000000..a1cad2d
--- /dev/null
+++ b/privacy_partner_report/views/privacy_menu_view.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/privacy_partner_report/views/privacy_report.xml b/privacy_partner_report/views/privacy_report.xml
new file mode 100644
index 0000000..ae11dbc
--- /dev/null
+++ b/privacy_partner_report/views/privacy_report.xml
@@ -0,0 +1,11 @@
+
+
+
+ Privacy Partner Data
+ privacy.partner.report
+ ir.actions.report.xml
+ privacy.report_partner_xlsx
+ xlsx
+
+
+
diff --git a/privacy_partner_report/wizard/__init__.py b/privacy_partner_report/wizard/__init__.py
new file mode 100644
index 0000000..bcc6c24
--- /dev/null
+++ b/privacy_partner_report/wizard/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import privacy_report_partner
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
new file mode 100644
index 0000000..c348580
--- /dev/null
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -0,0 +1,238 @@
+# -*- coding: utf-8 -*-
+# Copyright 2018 Eficent Business and IT Consulting Services S.L.
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+from openerp import api, fields, models, _
+from openerp.osv import fields as old_fields
+from openerp.exceptions import UserError
+
+
+class PrivacyPartnerReport(models.TransientModel):
+ _name = "privacy.partner.report"
+ _description = "Privacy Partner Report"
+
+ company_id = fields.Many2one(
+ comodel_name='res.company',
+ string='Company',
+ required=True,
+ default=lambda self: self.env.user.company_id,
+ )
+ partner_id = fields.Many2one(
+ comodel_name='res.partner',
+ string='Partner',
+ required=True,
+ )
+ table_ids = fields.Many2many(
+ comodel_name='privacy.partner.data',
+ string='Models with related partner data',
+ )
+
+ @api.onchange('partner_id')
+ def _onchange_partner_id(self):
+ if self.partner_id:
+ data = self._get_tables_from_partner(self.partner_id)
+ names = self._get_table_names(data)
+ tables = self.env['privacy.partner.data']
+ for name in sorted(names):
+ vals = self._get_default_table(
+ name=name,
+ data=[t for t in data if t[0] == name and not t[5]],
+ )
+ if vals:
+ tables |= self.env['privacy.partner.data'].create(vals)
+ self.table_ids = tables
+ else:
+ self.table_ids = self.env['privacy.partner.data']
+ return {
+ 'domain': {
+ 'table_ids': [
+ ('id', 'in', self.table_ids.ids)],
+ },
+ }
+
+ @api.onchange('company_id')
+ def _onchange_company_id(self):
+ if not self.company_id:
+ self.company_id = self.env.user.company_id
+ return {
+ 'domain': {
+ 'partner_id': [
+ ('company_id', 'in', [self.company_id.id, False])],
+ },
+ }
+
+ @api.multi
+ def button_export_xlsx(self):
+ self.ensure_one()
+ return self.check_report(xlsx_report=True)
+
+ def _build_contexts(self, data):
+ result = {}
+ result['partner_id'] = data['form']['partner_id'][0] or False
+ result['company_id'] = data['form']['company_id'][0] or False
+ result['table_ids'] = 'table_ids' in data['form'] and \
+ data['form']['table_ids'] or False
+ return result
+
+ def _clean_data(self, model, rows):
+ cleaned_rows = []
+ for i, row in enumerate(rows):
+ cleaned_rows.append({})
+ for key, value in row.items():
+ label = self.env[model]._fields[key].string or key
+ if self.env[model]._fields[key].store:
+ if 'many2one' == self.env[model]._fields[key].type:
+ comodel = self.env[model]._fields[key].comodel_name
+ if value:
+ record = self.env[comodel].sudo().browse(value)
+ cleaned_rows[i][label] = \
+ record.display_name.encode('utf8')
+ else:
+ cleaned_rows[i][label] = rows[i][key]
+ elif '2many' not in self.env[model]._fields[key].type:
+ cleaned_rows[i][label] = rows[i][key]
+ return cleaned_rows
+
+ @api.multi
+ def check_report(self, xlsx_report=False):
+ self.ensure_one()
+ data = {}
+ data['ids'] = self.env.context.get('active_ids', [])
+ data['model'] = self.env.context.get('active_model', 'ir.ui.menu')
+ data['form'] = self.read(['partner_id', 'company_id', 'table_ids'])[0]
+ used_context = self._build_contexts(data)
+ data['form']['used_context'] = dict(
+ used_context, lang=self.env.context.get('lang', 'en_US'))
+ return self._print_report(data=data, xlsx_report=xlsx_report)
+
+ @api.multi
+ def compute_data_for_report(self, data):
+ if not data.get('form'):
+ raise UserError(
+ _("Form content is missing, this report cannot be printed."))
+ partner = data['form'].get('partner_id', False)
+ if not partner:
+ raise UserError(
+ _("No provided partner."))
+ partner = self.env['res.partner'].sudo().browse(partner[0])
+ tables = data['form'].get('table_ids', False)
+ if tables:
+ tables = self.env['privacy.partner.data'].browse(tables)
+ tables = self._get_rows_from_tables(tables, partner)
+ data.update({'tables': tables, })
+ return data
+
+ def _exclude_column(self, model, column):
+
+ # To remove in v10:
+ # (non-stored function fields should have _fnct_search)
+ column_info = self.env[model]._columns.get(column)
+ next_model = self.env[model]
+ while not column_info and column in next_model._inherit_fields:
+ next_model = self.env[next_model._inherit_fields[column][0]]
+ column_info = next_model._columns.get(column)
+ if isinstance(column_info, old_fields.function) \
+ and not column_info.store and not column_info._fnct_search:
+ return True
+
+ # https://github.com/odoo/odoo/issues/24927
+ if model in ('mail.compose.message', 'survey.mail.compose.message'):
+ if column in ('needaction_partner_ids', 'starred_partner_ids'):
+ return True
+ # feel free to add more specific cases meanwhile the issue is not fixed
+
+ return False
+
+ def _get_default_table(self, name, data):
+ if data:
+ data_type = data[0][4]
+ res = self.env[data[0][1]]
+ for t in data:
+ res |= self.env[t[1]].sudo().browse(t[3])
+ if res:
+ values = {
+ 'name': name,
+ 'model_id': self.env['ir.model'].sudo().search(
+ [('model', '=', res._name)]).id,
+ 'count_rows': len(res.ids),
+ 'type': data_type,
+ }
+ return values
+ return {}
+
+ def _get_model_from_table(self, table, partner):
+ new_tables = {}
+ for model in table.model_id:
+ rows = self._get_rows_from_model(model, partner)
+ new_tables[model.display_name.encode('utf8')] = rows
+ return new_tables
+
+ def _get_rows_from_model(self, model, partner):
+ lines = self.env[model.model]
+ columns = [k for k, v in self.env[model.model]._fields.items()
+ if v.comodel_name == 'res.partner' and
+ v.store and not self._exclude_column(model.model, k)]
+ for column in columns:
+ lines |= self.env[model.model].sudo().search(
+ [(column, '=', partner.id)])
+ rows = lines.sudo().read(load=False)
+ rows = self._clean_data(model.model, rows)
+ return rows
+
+ def _get_rows_from_tables(self, tables, partner):
+ new_tables = {}
+ for table in tables:
+ data_table = self._get_model_from_table(table, partner)
+ new_tables[str(table.name)] = data_table
+ return new_tables
+
+ def _get_table_names(self, data):
+ names = []
+ for t in data:
+ if t[3] and not t[5] and t[0] not in names:
+ names.append(t[0])
+ return names
+
+ def _get_tables_from_partner(self, partner):
+ tables = [t[0] for t in [
+ [[self.env[m]._table, m, k, self.env[m].sudo().search(
+ [(k, '=', partner.id)]).ids, v.type, self.env[m]._transient]
+ for k, v in self.env[m]._fields.items()
+ if v.comodel_name == 'res.partner' and self.env[m]._auto and
+ v.store and not self._exclude_column(m, k)]
+ for m in [x for x in self.env.registry.keys()]] if t]
+ for i, t in enumerate(tables):
+ if t[4] == 'many2many':
+ if t[3]:
+ relation = self.env[t[1]]._fields[t[2]].relation
+ if relation:
+ tables[i][0] = relation
+ return tables
+
+ def _print_report(self, data, xlsx_report=False):
+ records = self.env[data['model']].sudo().browse(data.get('ids', []))
+ processed_data = self.compute_data_for_report(data)
+ if xlsx_report:
+ return self.env['report'].with_context(landscape=True).get_action(
+ records=records, report_name='privacy.report_partner_xlsx',
+ data=processed_data)
+
+
+class PrivacyPartnerData(models.TransientModel):
+ _name = "privacy.partner.data"
+ _description = "Privacy Partner Data"
+
+ name = fields.Char(
+ string='Database Table',
+ )
+ model_id = fields.Many2one(
+ comodel_name='ir.model',
+ ondelete='cascade',
+ string='Models',
+ )
+ type = fields.Char(
+ string="Type",
+ )
+ count_rows = fields.Integer(
+ default=0,
+ string='Number of lines',
+ )
diff --git a/privacy_partner_report/wizard/privacy_report_partner_wizard.xml b/privacy_partner_report/wizard/privacy_report_partner_wizard.xml
new file mode 100644
index 0000000..bc75960
--- /dev/null
+++ b/privacy_partner_report/wizard/privacy_report_partner_wizard.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ Partner Report
+ privacy.partner.report
+
+
+
+
+
+
+
+
From 2111a8e5fbc06a2d2dfa4dd07a73b878ad5ed688 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Fri, 6 Jul 2018 18:10:28 +0200
Subject: [PATCH 02/18] [MIG] privacy_partner_report: Migration to 10.0
---
privacy_partner_report/README.rst | 2 +-
.../{__openerp__.py => __manifest__.py} | 2 +-
privacy_partner_report/controllers/main.py | 6 +++---
.../report/privacy_partner_xlsx.py | 4 ++--
.../wizard/privacy_report_partner.py | 16 ++--------------
5 files changed, 9 insertions(+), 21 deletions(-)
rename privacy_partner_report/{__openerp__.py => __manifest__.py} (96%)
diff --git a/privacy_partner_report/README.rst b/privacy_partner_report/README.rst
index ff70cea..beb439d 100644
--- a/privacy_partner_report/README.rst
+++ b/privacy_partner_report/README.rst
@@ -21,7 +21,7 @@ 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/263/9.0
+ :target: https://runbot.odoo-community.org/runbot/263/10.0
Known issues / Roadmap
======================
diff --git a/privacy_partner_report/__openerp__.py b/privacy_partner_report/__manifest__.py
similarity index 96%
rename from privacy_partner_report/__openerp__.py
rename to privacy_partner_report/__manifest__.py
index 6c0ed62..51c92b6 100644
--- a/privacy_partner_report/__openerp__.py
+++ b/privacy_partner_report/__manifest__.py
@@ -3,7 +3,7 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
'name': 'Privacy Partner Report',
- 'version': '9.0.1.0.0',
+ 'version': '10.0.1.0.0',
'category': 'GDPR',
'summary': 'Show the transactions that a specific partner is involved in.',
'author': "Eficent, "
diff --git a/privacy_partner_report/controllers/main.py b/privacy_partner_report/controllers/main.py
index 8d8f1da..13b6c5a 100644
--- a/privacy_partner_report/controllers/main.py
+++ b/privacy_partner_report/controllers/main.py
@@ -2,10 +2,10 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
import json
-from openerp import http
+from odoo import http
-from openerp.addons.web.controllers.main import serialize_exception
-from openerp.addons.web.controllers.main import Reports
+from odoo.addons.web.controllers.main import serialize_exception
+from odoo.addons.web.controllers.main import Reports
class ReportsExtended(Reports):
diff --git a/privacy_partner_report/report/privacy_partner_xlsx.py b/privacy_partner_report/report/privacy_partner_xlsx.py
index faead55..030afc9 100644
--- a/privacy_partner_report/report/privacy_partner_xlsx.py
+++ b/privacy_partner_report/report/privacy_partner_xlsx.py
@@ -3,8 +3,8 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import logging
-from openerp.report import report_sxw
-from openerp.tools.translate import _
+from odoo.report import report_sxw
+from odoo.tools.translate import _
_logger = logging.getLogger(__name__)
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
index c348580..8d50fab 100644
--- a/privacy_partner_report/wizard/privacy_report_partner.py
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -1,9 +1,8 @@
# -*- coding: utf-8 -*-
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
-from openerp import api, fields, models, _
-from openerp.osv import fields as old_fields
-from openerp.exceptions import UserError
+from odoo import api, fields, models, _
+from odoo.exceptions import UserError
class PrivacyPartnerReport(models.TransientModel):
@@ -123,17 +122,6 @@ class PrivacyPartnerReport(models.TransientModel):
def _exclude_column(self, model, column):
- # To remove in v10:
- # (non-stored function fields should have _fnct_search)
- column_info = self.env[model]._columns.get(column)
- next_model = self.env[model]
- while not column_info and column in next_model._inherit_fields:
- next_model = self.env[next_model._inherit_fields[column][0]]
- column_info = next_model._columns.get(column)
- if isinstance(column_info, old_fields.function) \
- and not column_info.store and not column_info._fnct_search:
- return True
-
# https://github.com/odoo/odoo/issues/24927
if model in ('mail.compose.message', 'survey.mail.compose.message'):
if column in ('needaction_partner_ids', 'starred_partner_ids'):
From f36e2d6157b6f5be80a74fe9afbb831050383d4b Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Tue, 16 Oct 2018 09:46:08 +0000
Subject: [PATCH 03/18] [UPD] Update privacy_partner_report.pot
---
.../i18n/privacy_partner_report.pot | 157 ++++++++++++++++++
1 file changed, 157 insertions(+)
create mode 100644 privacy_partner_report/i18n/privacy_partner_report.pot
diff --git a/privacy_partner_report/i18n/privacy_partner_report.pot b/privacy_partner_report/i18n/privacy_partner_report.pot
new file mode 100644
index 0000000..8948066
--- /dev/null
+++ b/privacy_partner_report/i18n/privacy_partner_report.pot
@@ -0,0 +1,157 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * privacy_partner_report
+#
+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: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Select a company
"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Select a partner
"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Cancel"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_company_id
+msgid "Company"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_create_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_create_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_create_date
+msgid "Created on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_name
+msgid "Database Table"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Export XLSX"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:110
+#, python-format
+msgid "Form content is missing, this report cannot be printed."
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_id
+msgid "ID"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data___last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_write_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_write_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_model_id
+msgid "Models"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_table_ids
+msgid "Models with related partner data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:114
+#, python-format
+msgid "No provided partner."
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_count_rows
+msgid "Number of lines"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_partner_id
+msgid "Partner"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:37
+#, python-format
+msgid "Partner Data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.actions.act_window,name:privacy_partner_report.action_privacy_partner_menu
+#: model:ir.ui.menu,name:privacy_partner_report.menu_privacy_report_privacy_report
+msgid "Partner Report"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.actions.report.xml,name:privacy_partner_report.action_report_partner_data_xlsx
+#: model:ir.model,name:privacy_partner_report.model_privacy_partner_data
+msgid "Privacy Partner Data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model,name:privacy_partner_report.model_privacy_partner_report
+msgid "Privacy Partner Report"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Report Options"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_type
+msgid "Type"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "or"
+msgstr ""
+
From f05356b2b01e8489873cdb88711d40615012f4a9 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Fri, 16 Nov 2018 12:39:37 +0100
Subject: [PATCH 04/18] [MIG] privacy_partner_report: Migration to 11.0
---
privacy_partner_report/README.rst | 2 +-
privacy_partner_report/__init__.py | 1 -
privacy_partner_report/__manifest__.py | 3 +--
.../controllers/__init__.py | 3 +--
.../readme/CONTRIBUTORS.rst | 1 +
privacy_partner_report/readme/DESCRIPTION.rst | 2 ++
privacy_partner_report/readme/ROADMAP.rst | 1 +
privacy_partner_report/readme/USAGE.rst | 5 ++++
privacy_partner_report/report/__init__.py | 1 -
.../report/privacy_partner_xlsx.py | 23 ++++---------------
.../views/privacy_report.xml | 17 +++++++-------
privacy_partner_report/wizard/__init__.py | 1 -
.../wizard/privacy_report_partner.py | 15 ++++++------
13 files changed, 32 insertions(+), 43 deletions(-)
create mode 100644 privacy_partner_report/readme/CONTRIBUTORS.rst
create mode 100644 privacy_partner_report/readme/DESCRIPTION.rst
create mode 100644 privacy_partner_report/readme/ROADMAP.rst
create mode 100644 privacy_partner_report/readme/USAGE.rst
diff --git a/privacy_partner_report/README.rst b/privacy_partner_report/README.rst
index beb439d..cb09b85 100644
--- a/privacy_partner_report/README.rst
+++ b/privacy_partner_report/README.rst
@@ -21,7 +21,7 @@ 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/263/10.0
+ :target: https://runbot.odoo-community.org/runbot/263/11.0
Known issues / Roadmap
======================
diff --git a/privacy_partner_report/__init__.py b/privacy_partner_report/__init__.py
index f07586e..807584d 100644
--- a/privacy_partner_report/__init__.py
+++ b/privacy_partner_report/__init__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
from . import controllers
from . import report
from . import wizard
diff --git a/privacy_partner_report/__manifest__.py b/privacy_partner_report/__manifest__.py
index 51c92b6..396e9e2 100644
--- a/privacy_partner_report/__manifest__.py
+++ b/privacy_partner_report/__manifest__.py
@@ -1,9 +1,8 @@
-# -*- coding: utf-8 -*-
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
'name': 'Privacy Partner Report',
- 'version': '10.0.1.0.0',
+ 'version': '11.0.1.0.0',
'category': 'GDPR',
'summary': 'Show the transactions that a specific partner is involved in.',
'author': "Eficent, "
diff --git a/privacy_partner_report/controllers/__init__.py b/privacy_partner_report/controllers/__init__.py
index 757b12a..8424b1e 100644
--- a/privacy_partner_report/controllers/__init__.py
+++ b/privacy_partner_report/controllers/__init__.py
@@ -1,2 +1 @@
-# -*- coding: utf-8 -*-
-from . import main
+# from . import main
diff --git a/privacy_partner_report/readme/CONTRIBUTORS.rst b/privacy_partner_report/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000..2e34e21
--- /dev/null
+++ b/privacy_partner_report/readme/CONTRIBUTORS.rst
@@ -0,0 +1 @@
+* Miquel Raïch
diff --git a/privacy_partner_report/readme/DESCRIPTION.rst b/privacy_partner_report/readme/DESCRIPTION.rst
new file mode 100644
index 0000000..1f0334f
--- /dev/null
+++ b/privacy_partner_report/readme/DESCRIPTION.rst
@@ -0,0 +1,2 @@
+This module helps a company to identify all the transactions that a specific
+partner is involved in, with the possibility to export the associated data.
diff --git a/privacy_partner_report/readme/ROADMAP.rst b/privacy_partner_report/readme/ROADMAP.rst
new file mode 100644
index 0000000..8f001bc
--- /dev/null
+++ b/privacy_partner_report/readme/ROADMAP.rst
@@ -0,0 +1 @@
+* Remove controller workaround if https://github.com/odoo/odoo/pull/24964 is merged.
diff --git a/privacy_partner_report/readme/USAGE.rst b/privacy_partner_report/readme/USAGE.rst
new file mode 100644
index 0000000..5b27d0e
--- /dev/null
+++ b/privacy_partner_report/readme/USAGE.rst
@@ -0,0 +1,5 @@
+To use this module, you need to:
+
+#. Go to menu of ``Privacy > Reports > Partner Report``.
+#. Select a partner, and then wait some seconds until a list of models appear.
+#. Click on ``Export XLSX``.
diff --git a/privacy_partner_report/report/__init__.py b/privacy_partner_report/report/__init__.py
index 38a00d0..c7f3d0d 100644
--- a/privacy_partner_report/report/__init__.py
+++ b/privacy_partner_report/report/__init__.py
@@ -1,2 +1 @@
-# -*- coding: utf-8 -*-
from . import privacy_partner_xlsx
diff --git a/privacy_partner_report/report/privacy_partner_xlsx.py b/privacy_partner_report/report/privacy_partner_xlsx.py
index 030afc9..4ae39eb 100644
--- a/privacy_partner_report/report/privacy_partner_xlsx.py
+++ b/privacy_partner_report/report/privacy_partner_xlsx.py
@@ -1,24 +1,16 @@
-# -*- coding: utf-8 -*-
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import logging
-from odoo.report import report_sxw
+from odoo import models
from odoo.tools.translate import _
_logger = logging.getLogger(__name__)
-try:
- from openerp.addons.report_xlsx.report.report_xlsx import ReportXlsx
-except ImportError:
- _logger.debug("report_xlsx not installed, Excel export non functional")
- class ReportXlsx(object):
- def __init__(self, *args, **kwargs):
- pass
-
-
-class ReportPartnerXlsx(ReportXlsx):
+class ReportPartnerXlsx(models.AbstractModel):
+ _name = 'report.privacy_partner_report.report_partner_xlsx'
+ _inherit = 'report.report_xlsx.abstract'
def _search_longest_row(self, tables):
res = 0
@@ -85,10 +77,3 @@ class ReportPartnerXlsx(ReportXlsx):
j += 1
i += 2
first_row = i+2
-
-
-ReportPartnerXlsx(
- 'report.privacy.report_partner_xlsx',
- 'privacy.partner.report',
- parser=report_sxw.rml_parse
-)
diff --git a/privacy_partner_report/views/privacy_report.xml b/privacy_partner_report/views/privacy_report.xml
index ae11dbc..0596f7d 100644
--- a/privacy_partner_report/views/privacy_report.xml
+++ b/privacy_partner_report/views/privacy_report.xml
@@ -1,11 +1,12 @@
-
- Privacy Partner Data
- privacy.partner.report
- ir.actions.report.xml
- privacy.report_partner_xlsx
- xlsx
-
-
+
diff --git a/privacy_partner_report/wizard/__init__.py b/privacy_partner_report/wizard/__init__.py
index bcc6c24..f9e260f 100644
--- a/privacy_partner_report/wizard/__init__.py
+++ b/privacy_partner_report/wizard/__init__.py
@@ -1,2 +1 @@
-# -*- coding: utf-8 -*-
from . import privacy_report_partner
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
index 8d50fab..f1680cd 100644
--- a/privacy_partner_report/wizard/privacy_report_partner.py
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# Copyright 2018 Eficent Business and IT Consulting Services S.L.
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import api, fields, models, _
@@ -132,7 +131,7 @@ class PrivacyPartnerReport(models.TransientModel):
def _get_default_table(self, name, data):
if data:
- data_type = data[0][4]
+ field_type = data[0][4]
res = self.env[data[0][1]]
for t in data:
res |= self.env[t[1]].sudo().browse(t[3])
@@ -142,7 +141,7 @@ class PrivacyPartnerReport(models.TransientModel):
'model_id': self.env['ir.model'].sudo().search(
[('model', '=', res._name)]).id,
'count_rows': len(res.ids),
- 'type': data_type,
+ 'field_type': field_type,
}
return values
return {}
@@ -200,9 +199,9 @@ class PrivacyPartnerReport(models.TransientModel):
records = self.env[data['model']].sudo().browse(data.get('ids', []))
processed_data = self.compute_data_for_report(data)
if xlsx_report:
- return self.env['report'].with_context(landscape=True).get_action(
- records=records, report_name='privacy.report_partner_xlsx',
- data=processed_data)
+ return self.env.ref('privacy_partner_report.report_partner_xlsx').\
+ with_context(landscape=True).report_action(
+ records, data=processed_data)
class PrivacyPartnerData(models.TransientModel):
@@ -217,8 +216,8 @@ class PrivacyPartnerData(models.TransientModel):
ondelete='cascade',
string='Models',
)
- type = fields.Char(
- string="Type",
+ field_type = fields.Char(
+ string="Type", oldname='type',
)
count_rows = fields.Integer(
default=0,
From 7a3d9e8b147ae9c898726471afffd83a843d886b Mon Sep 17 00:00:00 2001
From: Jordi Ballester Alomar
Date: Fri, 21 Dec 2018 10:42:56 +0100
Subject: [PATCH 05/18] [imp] allow to navigate to the individual records, so
that the data processor can optionally delete them.
---
.../static/description/icon.png | Bin 9455 -> 2130 bytes
.../wizard/privacy_report_partner.py | 19 ++++++++++++++++++
.../wizard/privacy_report_partner_wizard.xml | 18 ++++++++---------
3 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/privacy_partner_report/static/description/icon.png b/privacy_partner_report/static/description/icon.png
index 3a0328b516c4980e8e44cdb63fd945757ddd132d..f36112ba49ad9f832f68a0a2140c8c523f4bd13a 100644
GIT binary patch
delta 2058
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
index f1680cd..e61e867 100644
--- a/privacy_partner_report/wizard/privacy_report_partner.py
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -2,6 +2,7 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from odoo import api, fields, models, _
from odoo.exceptions import UserError
+import ast
class PrivacyPartnerReport(models.TransientModel):
@@ -142,6 +143,7 @@ class PrivacyPartnerReport(models.TransientModel):
[('model', '=', res._name)]).id,
'count_rows': len(res.ids),
'field_type': field_type,
+ 'res_ids': res.ids,
}
return values
return {}
@@ -223,3 +225,20 @@ class PrivacyPartnerData(models.TransientModel):
default=0,
string='Number of lines',
)
+ res_ids = fields.Char('Related Document IDs', index=True,
+ help='List of Related Document IDs')
+
+ @api.multi
+ def action_view_records(self):
+ self.ensure_one()
+ response = {
+ 'name': self.model_id.display_name,
+ 'type': 'ir.actions.act_window',
+ 'res_model': self.model_id.model,
+ 'view_mode': 'tree,form',
+ 'domain': [('id', 'in', ast.literal_eval(self.res_ids))],
+ 'target': 'current',
+ 'context': {'delete': True},
+ }
+ return response
+
diff --git a/privacy_partner_report/wizard/privacy_report_partner_wizard.xml b/privacy_partner_report/wizard/privacy_report_partner_wizard.xml
index bc75960..3d119a7 100644
--- a/privacy_partner_report/wizard/privacy_report_partner_wizard.xml
+++ b/privacy_partner_report/wizard/privacy_report_partner_wizard.xml
@@ -8,6 +8,9 @@
privacy.partner.report
@@ -44,8 +45,7 @@
form
form
- {}
- new
+ current
From 9d9cd928e85d62075a6227dc7cb66c6a4036cc77 Mon Sep 17 00:00:00 2001
From: hveficent
Date: Fri, 21 Dec 2018 12:11:04 +0100
Subject: [PATCH 06/18] fix encode error
---
.../wizard/privacy_report_partner.py | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
index e61e867..6148a3c 100644
--- a/privacy_partner_report/wizard/privacy_report_partner.py
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -72,6 +72,11 @@ class PrivacyPartnerReport(models.TransientModel):
data['form']['table_ids'] or False
return result
+ @staticmethod
+ def _transform_binary(binary):
+ # TODO: Implement if needed
+ return False
+
def _clean_data(self, model, rows):
cleaned_rows = []
for i, row in enumerate(rows):
@@ -87,6 +92,10 @@ class PrivacyPartnerReport(models.TransientModel):
record.display_name.encode('utf8')
else:
cleaned_rows[i][label] = rows[i][key]
+ elif 'binary' == self.env[model]._fields[key].type:
+ binary = self._transform_binary(rows[i][key])
+ if binary:
+ cleaned_rows[i][label] = binary
elif '2many' not in self.env[model]._fields[key].type:
cleaned_rows[i][label] = rows[i][key]
return cleaned_rows
@@ -99,6 +108,7 @@ class PrivacyPartnerReport(models.TransientModel):
data['model'] = self.env.context.get('active_model', 'ir.ui.menu')
data['form'] = self.read(['partner_id', 'company_id', 'table_ids'])[0]
used_context = self._build_contexts(data)
+ data['form']['id'] = str(data['form']['id'])
data['form']['used_context'] = dict(
used_context, lang=self.env.context.get('lang', 'en_US'))
return self._print_report(data=data, xlsx_report=xlsx_report)
@@ -152,7 +162,7 @@ class PrivacyPartnerReport(models.TransientModel):
new_tables = {}
for model in table.model_id:
rows = self._get_rows_from_model(model, partner)
- new_tables[model.display_name.encode('utf8')] = rows
+ new_tables[model.display_name] = rows
return new_tables
def _get_rows_from_model(self, model, partner):
@@ -241,4 +251,3 @@ class PrivacyPartnerData(models.TransientModel):
'context': {'delete': True},
}
return response
-
From cff6028de0c5ba6943deca7e5056d6124c54518f Mon Sep 17 00:00:00 2001
From: aheficent
Date: Fri, 28 Dec 2018 15:55:35 +0100
Subject: [PATCH 07/18] [FIX]Do not pass the data to the report. Do not encode
values.
---
privacy_partner_report/README.rst | 78 ++--
privacy_partner_report/__init__.py | 1 -
.../controllers/__init__.py | 1 -
privacy_partner_report/controllers/main.py | 21 -
privacy_partner_report/readme/ROADMAP.rst | 1 -
.../report/privacy_partner_xlsx.py | 96 ++--
.../static/description/index.html | 432 ++++++++++++++++++
.../wizard/privacy_report_partner.py | 8 +-
8 files changed, 537 insertions(+), 101 deletions(-)
delete mode 100644 privacy_partner_report/controllers/__init__.py
delete mode 100644 privacy_partner_report/controllers/main.py
delete mode 100644 privacy_partner_report/readme/ROADMAP.rst
create mode 100644 privacy_partner_report/static/description/index.html
diff --git a/privacy_partner_report/README.rst b/privacy_partner_report/README.rst
index cb09b85..9f47c99 100644
--- a/privacy_partner_report/README.rst
+++ b/privacy_partner_report/README.rst
@@ -1,14 +1,37 @@
-.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png
- :target: https://www.gnu.org/licenses/agpl
- :alt: License: AGPL-3
-
======================
Privacy Partner Report
======================
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! 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-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdata--protection-lightgray.png?logo=github
+ :target: https://github.com/OCA/data-protection/tree/11.0/privacy_partner_report
+ :alt: OCA/data-protection
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/data-protection-11-0/data-protection-11-0-privacy_partner_report
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/263/11.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
This module helps a company to identify all the transactions that a specific
partner is involved in, with the possibility to export the associated data.
+**Table of contents**
+
+.. contents::
+ :local:
Usage
=====
@@ -19,49 +42,50 @@ To use this module, you need to:
#. Select a partner, and then wait some seconds until a list of models appear.
#. Click on ``Export XLSX``.
-.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
- :alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/263/11.0
-
-Known issues / Roadmap
-======================
-
-* Remove controller workaround if https://github.com/odoo/odoo/pull/24964 is merged.
-
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 smash it by providing 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
=======
-Images
-------
+Authors
+~~~~~~~
-* Odoo Community Association: `Icon `_.
+* Eficent
Contributors
-------------
+~~~~~~~~~~~~
* Miquel Raïch
-Do not contact contributors directly about support or help with technical issues.
+Maintainers
+~~~~~~~~~~~
-Maintainer
-----------
+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.
+.. |maintainer-mreficent| image:: https://github.com/mreficent.png?size=40px
+ :target: https://github.com/mreficent
+ :alt: mreficent
+
+Current `maintainer `__:
+
+|maintainer-mreficent|
+
+This module is part of the `OCA/data-protection `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/privacy_partner_report/__init__.py b/privacy_partner_report/__init__.py
index 807584d..c4e388b 100644
--- a/privacy_partner_report/__init__.py
+++ b/privacy_partner_report/__init__.py
@@ -1,3 +1,2 @@
-from . import controllers
from . import report
from . import wizard
diff --git a/privacy_partner_report/controllers/__init__.py b/privacy_partner_report/controllers/__init__.py
deleted file mode 100644
index 8424b1e..0000000
--- a/privacy_partner_report/controllers/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# from . import main
diff --git a/privacy_partner_report/controllers/main.py b/privacy_partner_report/controllers/main.py
deleted file mode 100644
index 13b6c5a..0000000
--- a/privacy_partner_report/controllers/main.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2018 Eficent Business and IT Consulting Services, S.L.
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
-
-import json
-from odoo import http
-
-from odoo.addons.web.controllers.main import serialize_exception
-from odoo.addons.web.controllers.main import Reports
-
-
-class ReportsExtended(Reports):
- # HACK of https://github.com/odoo/odoo/pull/24964
-
- @http.route()
- @serialize_exception
- def index(self, action, token):
- action = json.loads(action)
- if "data" in action.keys() and action["data"]:
- action["datas"] = action["data"]
- action = json.dumps(action)
- return super(ReportsExtended, self).index(action, token)
diff --git a/privacy_partner_report/readme/ROADMAP.rst b/privacy_partner_report/readme/ROADMAP.rst
deleted file mode 100644
index 8f001bc..0000000
--- a/privacy_partner_report/readme/ROADMAP.rst
+++ /dev/null
@@ -1 +0,0 @@
-* Remove controller workaround if https://github.com/odoo/odoo/pull/24964 is merged.
diff --git a/privacy_partner_report/report/privacy_partner_xlsx.py b/privacy_partner_report/report/privacy_partner_xlsx.py
index 4ae39eb..48bdc8b 100644
--- a/privacy_partner_report/report/privacy_partner_xlsx.py
+++ b/privacy_partner_report/report/privacy_partner_xlsx.py
@@ -22,58 +22,62 @@ class ReportPartnerXlsx(models.AbstractModel):
return res
def generate_xlsx_report(self, workbook, data, objects):
- partner = data['form'].get('partner_id', False)
- partner = self.env['res.partner'].sudo().browse(partner[0])
- workbook.set_properties({
- 'comments': 'Created with Python and XlsxWriter from Odoo'})
- sheet = workbook.add_worksheet(_('Partner Data'))
- sheet.set_landscape()
- sheet.fit_to_pages(1, 0)
- sheet.set_zoom(75)
- sheet.set_column(0, self._search_longest_row(data['tables']), 25)
- title_style = workbook.add_format(
- {'bold': True, 'bg_color': '#FFFFCC', 'border': 2})
- sheet.set_row(0, None, None, {'collapsed': 1})
- sheet.write_row(1, 0, ["Partner: " + partner.display_name],
- title_style)
- i = 3
- first_row = i+2
- for table in sorted(data['tables'].keys()):
- for model in sorted(data['tables'][table].keys()):
- rows = len(data['tables'][table][model])
- if rows:
- style = workbook.add_format()
- style.set_bold(True)
- style.set_border(2)
- sheet.write_row(i, 0, [model], style)
- i += 1
- j = 0
- for column in data['tables'][table][model][0]:
+ for o in objects:
+ report_data = o.compute_data_for_report(data)
+ partner = report_data['form'].get('partner_id', False)
+ partner = self.env['res.partner'].sudo().browse(partner[0])
+ workbook.set_properties({
+ 'comments': 'Created with Python and XlsxWriter from Odoo'})
+ sheet = workbook.add_worksheet(_('Partner Data'))
+ sheet.set_landscape()
+ sheet.fit_to_pages(1, 0)
+ sheet.set_zoom(75)
+ sheet.set_column(0, self._search_longest_row(
+ report_data['tables']), 25)
+ title_style = workbook.add_format(
+ {'bold': True, 'bg_color': '#FFFFCC', 'border': 2})
+ sheet.set_row(0, None, None, {'collapsed': 1})
+ sheet.write_row(1, 0, ["Partner: " + partner.display_name],
+ title_style)
+ i = 3
+ first_row = i+2
+ for table in sorted(report_data['tables'].keys()):
+ for model in sorted(report_data['tables'][table].keys()):
+ rows = len(report_data['tables'][table][model])
+ if rows:
style = workbook.add_format()
style.set_bold(True)
- if j == 0:
- style.set_left(1)
- if j == len(data['tables'][table][model][0]) - 1:
- style.set_right(1)
- style.set_top(1)
- style.set_bottom(1)
- sheet.write_row(i, j, [column], style)
- j += 1
- for row in data['tables'][table][model]:
+ style.set_border(2)
+ sheet.write_row(i, 0, [model], style)
i += 1
j = 0
- for column in row:
+ for column in report_data['tables'][table][model][0]:
style = workbook.add_format()
+ style.set_bold(True)
if j == 0:
style.set_left(1)
- if j == len(row) - 1:
+ if j == len(report_data['tables'][
+ table][model][0]) - 1:
style.set_right(1)
- if i == rows + first_row - 1:
- style.set_bottom(1)
- if row[column]:
- sheet.write_row(i, j, [row[column]], style)
- else:
- sheet.write_row(i, j, [''], style)
+ style.set_top(1)
+ style.set_bottom(1)
+ sheet.write_row(i, j, [column], style)
j += 1
- i += 2
- first_row = i+2
+ for row in report_data['tables'][table][model]:
+ i += 1
+ j = 0
+ for column in row:
+ style = workbook.add_format()
+ if j == 0:
+ style.set_left(1)
+ if j == len(row) - 1:
+ style.set_right(1)
+ if i == rows + first_row - 1:
+ style.set_bottom(1)
+ if row[column]:
+ sheet.write_row(i, j, [row[column]], style)
+ else:
+ sheet.write_row(i, j, [''], style)
+ j += 1
+ i += 2
+ first_row = i+2
diff --git a/privacy_partner_report/static/description/index.html b/privacy_partner_report/static/description/index.html
new file mode 100644
index 0000000..bf964aa
--- /dev/null
+++ b/privacy_partner_report/static/description/index.html
@@ -0,0 +1,432 @@
+
+
+
+
+
+
+Privacy Partner Report
+
+
+
+
+
Privacy Partner Report
+
+
+
+
This module helps a company to identify all the transactions that a specific
+partner is involved in, with the possibility to export the associated data.
+
Table of contents
+
+
+
+
To use this module, you need to:
+
+- Go to menu of Privacy > Reports > Partner Report.
+- Select a partner, and then wait some seconds until a list of models appear.
+- Click on Export XLSX.
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
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.
+
Current maintainer:
+
+
This module is part of the OCA/data-protection project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/privacy_partner_report/wizard/privacy_report_partner.py b/privacy_partner_report/wizard/privacy_report_partner.py
index 6148a3c..62258d4 100644
--- a/privacy_partner_report/wizard/privacy_report_partner.py
+++ b/privacy_partner_report/wizard/privacy_report_partner.py
@@ -62,6 +62,8 @@ class PrivacyPartnerReport(models.TransientModel):
@api.multi
def button_export_xlsx(self):
self.ensure_one()
+ if not self.table_ids:
+ raise UserError(_('No data for this partner.'))
return self.check_report(xlsx_report=True)
def _build_contexts(self, data):
@@ -88,8 +90,7 @@ class PrivacyPartnerReport(models.TransientModel):
comodel = self.env[model]._fields[key].comodel_name
if value:
record = self.env[comodel].sudo().browse(value)
- cleaned_rows[i][label] = \
- record.display_name.encode('utf8')
+ cleaned_rows[i][label] = record.display_name
else:
cleaned_rows[i][label] = rows[i][key]
elif 'binary' == self.env[model]._fields[key].type:
@@ -209,11 +210,10 @@ class PrivacyPartnerReport(models.TransientModel):
def _print_report(self, data, xlsx_report=False):
records = self.env[data['model']].sudo().browse(data.get('ids', []))
- processed_data = self.compute_data_for_report(data)
if xlsx_report:
return self.env.ref('privacy_partner_report.report_partner_xlsx').\
with_context(landscape=True).report_action(
- records, data=processed_data)
+ records, data=data)
class PrivacyPartnerData(models.TransientModel):
From 2736894cee49e45b2bd69c11e95c8a85c1e84b43 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Thu, 21 Mar 2019 11:22:52 +0000
Subject: [PATCH 08/18] [UPD] Update privacy_partner_report.pot
---
.../i18n/privacy_partner_report.pot | 41 +++++++++++++------
1 file changed, 28 insertions(+), 13 deletions(-)
diff --git a/privacy_partner_report/i18n/privacy_partner_report.pot b/privacy_partner_report/i18n/privacy_partner_report.pot
index 8948066..09b10e5 100644
--- a/privacy_partner_report/i18n/privacy_partner_report.pot
+++ b/privacy_partner_report/i18n/privacy_partner_report.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 10.0\n"
+"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
@@ -23,11 +23,6 @@ msgstr ""
msgid "Select a partner
"
msgstr ""
-#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
-msgid "Cancel"
-msgstr ""
-
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_company_id
msgid "Company"
@@ -53,6 +48,7 @@ msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_display_name
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx_display_name
msgid "Display Name"
msgstr ""
@@ -62,7 +58,7 @@ msgid "Export XLSX"
msgstr ""
#. module: privacy_partner_report
-#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:110
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:121
#, python-format
msgid "Form content is missing, this report cannot be printed."
msgstr ""
@@ -70,12 +66,14 @@ msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_id
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx_id
msgid "ID"
msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data___last_update
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report___last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx___last_update
msgid "Last Modified on"
msgstr ""
@@ -91,6 +89,11 @@ msgstr ""
msgid "Last Updated on"
msgstr ""
+#. module: privacy_partner_report
+#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data_res_ids
+msgid "List of Related Document IDs"
+msgstr ""
+
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_model_id
msgid "Models"
@@ -98,11 +101,18 @@ msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_table_ids
+#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Models with related partner data"
msgstr ""
#. module: privacy_partner_report
-#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:114
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:66
+#, python-format
+msgid "No data for this partner."
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:125
#, python-format
msgid "No provided partner."
msgstr ""
@@ -118,7 +128,7 @@ msgid "Partner"
msgstr ""
#. module: privacy_partner_report
-#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:37
+#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:31
#, python-format
msgid "Partner Data"
msgstr ""
@@ -130,7 +140,7 @@ msgid "Partner Report"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.actions.report.xml,name:privacy_partner_report.action_report_partner_data_xlsx
+#: model:ir.actions.report,name:privacy_partner_report.report_partner_xlsx
#: model:ir.model,name:privacy_partner_report.model_privacy_partner_data
msgid "Privacy Partner Data"
msgstr ""
@@ -140,18 +150,23 @@ msgstr ""
msgid "Privacy Partner Report"
msgstr ""
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_res_ids
+msgid "Related Document IDs"
+msgstr ""
+
#. module: privacy_partner_report
#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Report Options"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_type
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_field_type
msgid "Type"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
-msgid "or"
+#: model:ir.model,name:privacy_partner_report.model_report_privacy_partner_report_report_partner_xlsx
+msgid "report.privacy_partner_report.report_partner_xlsx"
msgstr ""
From c6e85a31661daf43fbc8f0c35f5b0633c2338e9c Mon Sep 17 00:00:00 2001
From: kmatthes
Date: Fri, 12 Apr 2019 14:52:28 +0200
Subject: [PATCH 09/18] [MIG] privacy_partner_report: Migration to 12.0
---
privacy_partner_report/__manifest__.py | 2 +-
privacy_partner_report/readme/CONTRIBUTORS.rst | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/privacy_partner_report/__manifest__.py b/privacy_partner_report/__manifest__.py
index 396e9e2..beccda5 100644
--- a/privacy_partner_report/__manifest__.py
+++ b/privacy_partner_report/__manifest__.py
@@ -2,7 +2,7 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{
'name': 'Privacy Partner Report',
- 'version': '11.0.1.0.0',
+ 'version': '12.0.1.0.0',
'category': 'GDPR',
'summary': 'Show the transactions that a specific partner is involved in.',
'author': "Eficent, "
diff --git a/privacy_partner_report/readme/CONTRIBUTORS.rst b/privacy_partner_report/readme/CONTRIBUTORS.rst
index 2e34e21..5d67997 100644
--- a/privacy_partner_report/readme/CONTRIBUTORS.rst
+++ b/privacy_partner_report/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Miquel Raïch
+* Katja Matthes
From af0ce380e3ff061b15ff264902fb1f015ddf3e36 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 5 Jun 2019 13:58:08 +0000
Subject: [PATCH 10/18] [UPD] README.rst
---
privacy_partner_report/README.rst | 11 ++++++-----
privacy_partner_report/static/description/index.html | 7 ++++---
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/privacy_partner_report/README.rst b/privacy_partner_report/README.rst
index 9f47c99..73020d9 100644
--- a/privacy_partner_report/README.rst
+++ b/privacy_partner_report/README.rst
@@ -14,13 +14,13 @@ Privacy Partner Report
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdata--protection-lightgray.png?logo=github
- :target: https://github.com/OCA/data-protection/tree/11.0/privacy_partner_report
+ :target: https://github.com/OCA/data-protection/tree/12.0/privacy_partner_report
:alt: OCA/data-protection
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/data-protection-11-0/data-protection-11-0-privacy_partner_report
+ :target: https://translation.odoo-community.org/projects/data-protection-12-0/data-protection-12-0-privacy_partner_report
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/263/11.0
+ :target: https://runbot.odoo-community.org/runbot/263/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -48,7 +48,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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -64,6 +64,7 @@ Contributors
~~~~~~~~~~~~
* Miquel Raïch
+* Katja Matthes
Maintainers
~~~~~~~~~~~
@@ -86,6 +87,6 @@ Current `maintainer `__:
|maintainer-mreficent|
-This module is part of the `OCA/data-protection `_ project on GitHub.
+This module is part of the `OCA/data-protection `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/privacy_partner_report/static/description/index.html b/privacy_partner_report/static/description/index.html
index bf964aa..250630a 100644
--- a/privacy_partner_report/static/description/index.html
+++ b/privacy_partner_report/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module helps a company to identify all the transactions that a specific
partner is involved in, with the possibility to export the associated data.
Table of contents
@@ -397,7 +397,7 @@ partner is involved in, with the possibility to export the associated data.
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.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -412,6 +412,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
@@ -423,7 +424,7 @@ mission is to support the collaborative development of Odoo features and
promote its widespread use.
Current maintainer:
-
This module is part of the OCA/data-protection project on GitHub.
+
This module is part of the OCA/data-protection project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From acc03c5671aa92052bbbaf31e672acadbd876e44 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Wed, 5 Jun 2019 14:15:07 +0000
Subject: [PATCH 11/18] [UPD] Update privacy_partner_report.pot
---
.../i18n/privacy_partner_report.pot | 64 +++++++++----------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/privacy_partner_report/i18n/privacy_partner_report.pot b/privacy_partner_report/i18n/privacy_partner_report.pot
index 09b10e5..5db9cca 100644
--- a/privacy_partner_report/i18n/privacy_partner_report.pot
+++ b/privacy_partner_report/i18n/privacy_partner_report.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 11.0\n"
+"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
@@ -14,46 +14,46 @@ msgstr ""
"Plural-Forms: \n"
#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Select a company
"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Select a partner
"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_company_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__company_id
msgid "Company"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_create_uid
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_create_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_uid
msgid "Created by"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_create_date
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_create_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_date
msgid "Created on"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__name
msgid "Database Table"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_display_name
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_display_name
-#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx_display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__display_name
msgid "Display Name"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Export XLSX"
msgstr ""
@@ -64,44 +64,44 @@ msgid "Form content is missing, this report cannot be printed."
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_id
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_id
-#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__id
msgid "ID"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data___last_update
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report___last_update
-#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx___last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data____last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report____last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx____last_update
msgid "Last Modified on"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_write_uid
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_write_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_uid
msgid "Last Updated by"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_write_date
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_write_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_date
msgid "Last Updated on"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data_res_ids
+#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data__res_ids
msgid "List of Related Document IDs"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_model_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__model_id
msgid "Models"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_table_ids
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__table_ids
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Models with related partner data"
msgstr ""
@@ -118,12 +118,12 @@ msgid "No provided partner."
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_count_rows
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__count_rows
msgid "Number of lines"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report_partner_id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__partner_id
msgid "Partner"
msgstr ""
@@ -151,17 +151,17 @@ msgid "Privacy Partner Report"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_res_ids
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__res_ids
msgid "Related Document IDs"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Report Options"
msgstr ""
#. module: privacy_partner_report
-#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data_field_type
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__field_type
msgid "Type"
msgstr ""
From cc7782ad61801ce3836d897039b3ebccda378586 Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Thu, 6 Jun 2019 20:09:58 +0000
Subject: [PATCH 12/18] Added translation using Weblate (Italian)
---
privacy_partner_report/i18n/it.po | 172 ++++++++++++++++++++++++++++++
1 file changed, 172 insertions(+)
create mode 100644 privacy_partner_report/i18n/it.po
diff --git a/privacy_partner_report/i18n/it.po b/privacy_partner_report/i18n/it.po
new file mode 100644
index 0000000..ab4e590
--- /dev/null
+++ b/privacy_partner_report/i18n/it.po
@@ -0,0 +1,172 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * privacy_partner_report
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: privacy_partner_report
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Select a company
"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Select a partner
"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__company_id
+msgid "Company"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__name
+msgid "Database Table"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__display_name
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Export XLSX"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:121
+#, python-format
+msgid "Form content is missing, this report cannot be printed."
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__id
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__id
+msgid "ID"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data____last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report____last_update
+#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_uid
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_date
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data__res_ids
+msgid "List of Related Document IDs"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__model_id
+msgid "Models"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__table_ids
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Models with related partner data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:66
+#, python-format
+msgid "No data for this partner."
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:125
+#, python-format
+msgid "No provided partner."
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__count_rows
+msgid "Number of lines"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__partner_id
+msgid "Partner"
+msgstr ""
+
+#. module: privacy_partner_report
+#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:31
+#, python-format
+msgid "Partner Data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.actions.act_window,name:privacy_partner_report.action_privacy_partner_menu
+#: model:ir.ui.menu,name:privacy_partner_report.menu_privacy_report_privacy_report
+msgid "Partner Report"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.actions.report,name:privacy_partner_report.report_partner_xlsx
+#: model:ir.model,name:privacy_partner_report.model_privacy_partner_data
+msgid "Privacy Partner Data"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model,name:privacy_partner_report.model_privacy_partner_report
+msgid "Privacy Partner Report"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__res_ids
+msgid "Related Document IDs"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
+msgid "Report Options"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__field_type
+msgid "Type"
+msgstr ""
+
+#. module: privacy_partner_report
+#: model:ir.model,name:privacy_partner_report.model_report_privacy_partner_report_report_partner_xlsx
+msgid "report.privacy_partner_report.report_partner_xlsx"
+msgstr ""
From 11e29b35cb05622e4239a74b7bc715dd190f4bec Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Thu, 6 Jun 2019 20:10:51 +0000
Subject: [PATCH 13/18] Translated using Weblate (Italian)
Currently translated at 53.6% (15 of 28 strings)
Translation: data-protection-12.0/data-protection-12.0-privacy_partner_report
Translate-URL: https://translation.odoo-community.org/projects/data-protection-12-0/data-protection-12-0-privacy_partner_report/it/
---
privacy_partner_report/i18n/it.po | 34 ++++++++++++++++---------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/privacy_partner_report/i18n/it.po b/privacy_partner_report/i18n/it.po
index ab4e590..558aad0 100644
--- a/privacy_partner_report/i18n/it.po
+++ b/privacy_partner_report/i18n/it.po
@@ -6,89 +6,91 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2019-06-06 22:20+0000\n"
+"Last-Translator: Sergio Zanchetta \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.6.1\n"
#. module: privacy_partner_report
#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Select a company
"
-msgstr ""
+msgstr "Selezionare un'azienda
"
#. module: privacy_partner_report
#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Select a partner
"
-msgstr ""
+msgstr "Selezionare un partner
"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__company_id
msgid "Company"
-msgstr ""
+msgstr "Azienda"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_uid
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_uid
msgid "Created by"
-msgstr ""
+msgstr "Creato da"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__create_date
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__create_date
msgid "Created on"
-msgstr ""
+msgstr "Creato il"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__name
msgid "Database Table"
-msgstr ""
+msgstr "Tabella database"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__display_name
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__display_name
#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Nome visualizzato"
#. module: privacy_partner_report
#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Export XLSX"
-msgstr ""
+msgstr "Esporta XLSX"
#. module: privacy_partner_report
#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:121
#, python-format
msgid "Form content is missing, this report cannot be printed."
-msgstr ""
+msgstr "Modulo senza contenuto, impossibile stampare il resoconto."
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__id
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__id
#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx__id
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data____last_update
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report____last_update
#: model:ir.model.fields,field_description:privacy_partner_report.field_report_privacy_partner_report_report_partner_xlsx____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Ultima modifica il"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_uid
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Ultimo aggiornamento di"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__write_date
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Ultimo aggiornamento il"
#. module: privacy_partner_report
#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data__res_ids
@@ -98,7 +100,7 @@ msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__model_id
msgid "Models"
-msgstr ""
+msgstr "Modelli"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__table_ids
@@ -126,7 +128,7 @@ msgstr ""
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__partner_id
msgid "Partner"
-msgstr ""
+msgstr "Partner"
#. module: privacy_partner_report
#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:31
From 854648007e9249429772e7fb493e64bd67f49d45 Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Fri, 7 Jun 2019 15:12:49 +0000
Subject: [PATCH 14/18] Translated using Weblate (Italian)
Currently translated at 100.0% (28 of 28 strings)
Translation: data-protection-12.0/data-protection-12.0-privacy_partner_report
Translate-URL: https://translation.odoo-community.org/projects/data-protection-12-0/data-protection-12-0-privacy_partner_report/it/
---
privacy_partner_report/i18n/it.po | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/privacy_partner_report/i18n/it.po b/privacy_partner_report/i18n/it.po
index 558aad0..487201c 100644
--- a/privacy_partner_report/i18n/it.po
+++ b/privacy_partner_report/i18n/it.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2019-06-06 22:20+0000\n"
+"PO-Revision-Date: 2019-06-07 15:38+0000\n"
"Last-Translator: Sergio Zanchetta \n"
"Language-Team: none\n"
"Language: it\n"
@@ -95,7 +95,7 @@ msgstr "Ultimo aggiornamento il"
#. module: privacy_partner_report
#: model:ir.model.fields,help:privacy_partner_report.field_privacy_partner_data__res_ids
msgid "List of Related Document IDs"
-msgstr ""
+msgstr "Elenco ID dei documenti collegati"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__model_id
@@ -106,24 +106,24 @@ msgstr "Modelli"
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__table_ids
#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Models with related partner data"
-msgstr ""
+msgstr "Modelli con dati dei partner collegati"
#. module: privacy_partner_report
#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:66
#, python-format
msgid "No data for this partner."
-msgstr ""
+msgstr "Nessun dato per questo partner."
#. module: privacy_partner_report
#: code:addons/privacy_partner_report/wizard/privacy_report_partner.py:125
#, python-format
msgid "No provided partner."
-msgstr ""
+msgstr "Nessun partner assegnato."
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__count_rows
msgid "Number of lines"
-msgstr ""
+msgstr "Numero di righe"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_report__partner_id
@@ -134,41 +134,41 @@ msgstr "Partner"
#: code:addons/privacy_partner_report/report/privacy_partner_xlsx.py:31
#, python-format
msgid "Partner Data"
-msgstr ""
+msgstr "Dati partner"
#. module: privacy_partner_report
#: model:ir.actions.act_window,name:privacy_partner_report.action_privacy_partner_menu
#: model:ir.ui.menu,name:privacy_partner_report.menu_privacy_report_privacy_report
msgid "Partner Report"
-msgstr ""
+msgstr "Resoconto partner"
#. module: privacy_partner_report
#: model:ir.actions.report,name:privacy_partner_report.report_partner_xlsx
#: model:ir.model,name:privacy_partner_report.model_privacy_partner_data
msgid "Privacy Partner Data"
-msgstr ""
+msgstr "Dati privacy del partner"
#. module: privacy_partner_report
#: model:ir.model,name:privacy_partner_report.model_privacy_partner_report
msgid "Privacy Partner Report"
-msgstr ""
+msgstr "Resoconto privacy del partner"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__res_ids
msgid "Related Document IDs"
-msgstr ""
+msgstr "ID documenti collegati"
#. module: privacy_partner_report
#: model_terms:ir.ui.view,arch_db:privacy_partner_report.privacy_partner_report_wizard
msgid "Report Options"
-msgstr ""
+msgstr "Opzioni resoconto"
#. module: privacy_partner_report
#: model:ir.model.fields,field_description:privacy_partner_report.field_privacy_partner_data__field_type
msgid "Type"
-msgstr ""
+msgstr "Tipo"
#. module: privacy_partner_report
#: model:ir.model,name:privacy_partner_report.model_report_privacy_partner_report_report_partner_xlsx
msgid "report.privacy_partner_report.report_partner_xlsx"
-msgstr ""
+msgstr "report.privacy_partner_report.report_partner_xlsx"
From 65e196eb0dc258f1f7dfa37d585efddd1a2cdff4 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 29 Jul 2019 02:50:14 +0000
Subject: [PATCH 15/18] [UPD] README.rst
---
privacy_partner_report/static/description/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/privacy_partner_report/static/description/index.html b/privacy_partner_report/static/description/index.html
index 250630a..d9a9720 100644
--- a/privacy_partner_report/static/description/index.html
+++ b/privacy_partner_report/static/description/index.html
@@ -3,7 +3,7 @@
-
+
Privacy Partner Report