From 6f3a7723be5f7b3782c6a10742022c2e16733067 Mon Sep 17 00:00:00 2001
From: Christopher Lorenz
Date: Mon, 9 Sep 2019 17:28:38 +0200
Subject: [PATCH] Checkin ITIS Odoo 12 Modules
---
contact_search_form/README.rst | 72 +++
contact_search_form/__init__.py | 3 +
contact_search_form/__manifest__.py | 33 ++
contact_search_form/i18n/de.po | 68 +++
contact_search_form/i18n/en_US.po | 68 +++
contact_search_form/models/__init__.py | 3 +
contact_search_form/models/contact_search.py | 84 ++++
contact_search_form/readme/CONFIGURE.rst | 3 +
contact_search_form/readme/DESCRIPTION.rst | 2 +
contact_search_form/readme/USAGE.rst | 9 +
.../security/gdpr_security.xml | 8 +
.../security/ir.model.access.csv | 3 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 177 ++++++++
contact_search_form/views/contact_search.xml | 79 ++++
website_contact_extend/README.rst | 74 ++++
website_contact_extend/__init__.py | 4 +
website_contact_extend/__manifest__.py | 40 ++
.../controllers/__init__.py | 4 +
.../controllers/contactby.py | 310 +++++++++++++
.../controllers/myfilter.py | 348 +++++++++++++++
.../data/email_templates.xml | 74 ++++
website_contact_extend/i18n/de.po | 300 +++++++++++++
website_contact_extend/i18n/en_US.po | 412 ++++++++++++++++++
website_contact_extend/models/__init__.py | 3 +
website_contact_extend/models/res_partner.py | 39 ++
website_contact_extend/readme/CONFIGURE.rst | 1 +
website_contact_extend/readme/DESCRIPTION.rst | 8 +
website_contact_extend/readme/USAGE.rst | 8 +
.../security/ir.model.access.csv | 4 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 172 ++++++++
.../static/src/js/contactus.js | 41 ++
.../views/contact_report.xml | 164 +++++++
.../views/disp_msg_template.xml | 17 +
.../views/email_template.xml | 66 +++
.../views/means_of_contact.xml | 105 +++++
website_contact_extend/views/res_partner.xml | 22 +
.../views/website_contact.xml | 146 +++++++
39 files changed, 2974 insertions(+)
create mode 100755 contact_search_form/README.rst
create mode 100755 contact_search_form/__init__.py
create mode 100755 contact_search_form/__manifest__.py
create mode 100755 contact_search_form/i18n/de.po
create mode 100755 contact_search_form/i18n/en_US.po
create mode 100755 contact_search_form/models/__init__.py
create mode 100755 contact_search_form/models/contact_search.py
create mode 100755 contact_search_form/readme/CONFIGURE.rst
create mode 100755 contact_search_form/readme/DESCRIPTION.rst
create mode 100755 contact_search_form/readme/USAGE.rst
create mode 100755 contact_search_form/security/gdpr_security.xml
create mode 100755 contact_search_form/security/ir.model.access.csv
create mode 100755 contact_search_form/static/description/icon.png
create mode 100755 contact_search_form/static/description/index.html
create mode 100755 contact_search_form/views/contact_search.xml
create mode 100755 website_contact_extend/README.rst
create mode 100755 website_contact_extend/__init__.py
create mode 100755 website_contact_extend/__manifest__.py
create mode 100755 website_contact_extend/controllers/__init__.py
create mode 100755 website_contact_extend/controllers/contactby.py
create mode 100755 website_contact_extend/controllers/myfilter.py
create mode 100755 website_contact_extend/data/email_templates.xml
create mode 100755 website_contact_extend/i18n/de.po
create mode 100755 website_contact_extend/i18n/en_US.po
create mode 100755 website_contact_extend/models/__init__.py
create mode 100755 website_contact_extend/models/res_partner.py
create mode 100755 website_contact_extend/readme/CONFIGURE.rst
create mode 100755 website_contact_extend/readme/DESCRIPTION.rst
create mode 100755 website_contact_extend/readme/USAGE.rst
create mode 100755 website_contact_extend/security/ir.model.access.csv
create mode 100755 website_contact_extend/static/description/icon.png
create mode 100755 website_contact_extend/static/description/index.html
create mode 100755 website_contact_extend/static/src/js/contactus.js
create mode 100755 website_contact_extend/views/contact_report.xml
create mode 100755 website_contact_extend/views/disp_msg_template.xml
create mode 100755 website_contact_extend/views/email_template.xml
create mode 100755 website_contact_extend/views/means_of_contact.xml
create mode 100755 website_contact_extend/views/res_partner.xml
create mode 100755 website_contact_extend/views/website_contact.xml
diff --git a/contact_search_form/README.rst b/contact_search_form/README.rst
new file mode 100755
index 0000000..41ec172
--- /dev/null
+++ b/contact_search_form/README.rst
@@ -0,0 +1,72 @@
+===================
+Contact Search Form
+===================
+
+
+Multiple models can be searched for specified string by DPO.
+View containing a search function for Data Protection Officers (DPO) to look
+up Customer Data. All available Odoo models can be included in the search
+query looking for a specified string.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+
+Usage
+=====
+The new menu Contact Search is located in the Contacts App
+
+When accessing the Contact Search form a new query can be defined by
+clicking on the Create button.
+
+To perform a search the search string is required and the Odoo models that
+should be searched have to be selected in the dropdown 'Search in model'.
+
+The search results are stored and can be accessed at a later time from the
+tree view of 'Contact Search'.
+
+
+Known issues / Roadmap
+======================
+
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* IT IS AG
+
+Contributors
+~~~~~~~~~~~~
+
+* Dipak Suthar
+* Sven Hartmann
+
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+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.
+
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/contact_search_form/__init__.py b/contact_search_form/__init__.py
new file mode 100755
index 0000000..83e553a
--- /dev/null
+++ b/contact_search_form/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import models
diff --git a/contact_search_form/__manifest__.py b/contact_search_form/__manifest__.py
new file mode 100755
index 0000000..7558231
--- /dev/null
+++ b/contact_search_form/__manifest__.py
@@ -0,0 +1,33 @@
+#####################################################################
+#
+# IT IS AG, software solutions: http://www.itis.de
+# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
+#
+#####################################################################
+
+{
+ 'name': 'Contact Search Form',
+
+ 'summary': "Multiple models can be searched for specified string by DPO",
+
+ 'author': 'IT IS AG, Odoo Community Association (OCA)',
+ 'website': 'https://github.com/OCA/data-protection',
+
+ # Categories can be used to filter modules in modules listing
+ # Check https://github.com/odoo/odoo/blob/master/
+ # openerp/addons/base/module/module_data.xml
+ # for the full list
+ 'version': '12.0.1.0',
+ 'license': 'AGPL-3',
+ 'category': 'Contacts',
+ 'depends': ['base',
+ 'contacts',
+ ],
+
+ 'data': [
+ 'security/gdpr_security.xml',
+ 'security/ir.model.access.csv',
+ 'views/contact_search.xml',
+ ],
+
+}
diff --git a/contact_search_form/i18n/de.po b/contact_search_form/i18n/de.po
new file mode 100755
index 0000000..f60a20b
--- /dev/null
+++ b/contact_search_form/i18n/de.po
@@ -0,0 +1,68 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * contact_search_form
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-02 12:16+0000\n"
+"PO-Revision-Date: 2018-07-02 14:16+0100\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de_DE\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#. module: contact_search_form
+#: model:ir.ui.menu,name:contact_search_form.menu_customer_info
+msgid "Contact Search"
+msgstr "Kontakt Suche"
+
+#. module: contact_search_form
+#: model:ir.actions.act_window,name:contact_search_form.action_dpo_view_itis
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "Customer Info"
+msgstr "Kundeninformation"
+
+#. module: contact_search_form
+#: model:res.groups,name:contact_search_form.group_dpo
+msgid "Data Protection Officer"
+msgstr "Data Protection Officer"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "SEARCH"
+msgstr "Suche"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.dpo_view_tree
+msgid "Search Contact"
+msgstr "Kontakt Suchen"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.search_line_tree_view_itis
+msgid "Search Results"
+msgstr "Suchergebnisse"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "Search Terms"
+msgstr "Suchbegriffe"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.search_line_tree_view_itis
+msgid "VIEW RECORD"
+msgstr "VIEW RECORD"
+
+#. module: contact_search_form
+#: model:ir.model,name:contact_search_form.model_dpo_view
+msgid "dpo.view"
+msgstr "dpo.view"
+
+#. module: contact_search_form
+#: model:ir.model,name:contact_search_form.model_search_line
+msgid "search.line"
+msgstr "search.line"
diff --git a/contact_search_form/i18n/en_US.po b/contact_search_form/i18n/en_US.po
new file mode 100755
index 0000000..6d10846
--- /dev/null
+++ b/contact_search_form/i18n/en_US.po
@@ -0,0 +1,68 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * contact_search_form
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-02 12:15+0000\n"
+"PO-Revision-Date: 2018-07-02 12:15+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: contact_search_form
+#: model:ir.ui.menu,name:contact_search_form.menu_customer_info
+msgid "Contact Search"
+msgstr "Contact Search"
+
+#. module: contact_search_form
+#: model:ir.actions.act_window,name:contact_search_form.action_dpo_view_itis
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "Customer Info"
+msgstr "Customer Info"
+
+#. module: contact_search_form
+#: model:res.groups,name:contact_search_form.group_dpo
+msgid "Data Protection Officer"
+msgstr "Data Protection Officer"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "SEARCH"
+msgstr "SEARCH"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.dpo_view_tree
+msgid "Search Contact"
+msgstr "Search Contact"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.search_line_tree_view_itis
+msgid "Search Results"
+msgstr "Search Results"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.view_dpo_form_view_itis
+msgid "Search Terms"
+msgstr "Search Terms"
+
+#. module: contact_search_form
+#: model:ir.ui.view,arch_db:contact_search_form.search_line_tree_view_itis
+msgid "VIEW RECORD"
+msgstr "VIEW RECORD"
+
+#. module: contact_search_form
+#: model:ir.model,name:contact_search_form.model_dpo_view
+msgid "dpo.view"
+msgstr "dpo.view"
+
+#. module: contact_search_form
+#: model:ir.model,name:contact_search_form.model_search_line
+msgid "search.line"
+msgstr "search.line"
+
diff --git a/contact_search_form/models/__init__.py b/contact_search_form/models/__init__.py
new file mode 100755
index 0000000..38fb27a
--- /dev/null
+++ b/contact_search_form/models/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import contact_search
diff --git a/contact_search_form/models/contact_search.py b/contact_search_form/models/contact_search.py
new file mode 100755
index 0000000..4766750
--- /dev/null
+++ b/contact_search_form/models/contact_search.py
@@ -0,0 +1,84 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models, _
+
+
+class SearchLine(models.Model):
+ _name = "search.line"
+
+ name = fields.Char(string="Model Name")
+ field_list = fields.Char(string="Fields Name")
+ model_id = fields.Many2one('ir.model', string="Found in Model")
+ record_id = fields.Integer(string="Record ID")
+ search_id = fields.Many2one("dpo.view", string="Search Terms")
+ record_name = fields.Char(string="Record Name",
+ compute="_compute_record_name")
+
+ @api.multi
+ def open_record(self):
+ return {
+ 'name': _('Found record'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': self.model_id.model,
+ 'type': 'ir.actions.act_window',
+ 'res_id': self.record_id,
+ 'target': 'new'
+ }
+
+ def _compute_record_name(self):
+ for record in self:
+ record_object = self.env[record.model_id.model].browse([
+ record.record_id
+ ])
+ record.record_name = record_object.name_get()[0][1]
+
+
+class DpoView(models.Model):
+ _name = "dpo.view"
+
+ name = fields.Char(string="Search Term")
+ model_ids = fields.Many2many('ir.model',
+ 'dpo_view_ir_model_rel',
+ string='Search in Model')
+ search_lines = fields.One2many('search.line',
+ 'search_id',
+ string='Search Result')
+
+ @api.multi
+ def search_string(self):
+ search_line_ids = self.env['search.line'].search([
+ ('search_id', '=', self.id)
+ ])
+ search_line_ids.unlink()
+ final_list = []
+ for model_id in self.model_ids:
+ field_list = []
+ found_match = {}
+ for field_id in model_id.field_id:
+ if field_id.ttype in ['char', 'html', 'text'] \
+ and field_id.store:
+ field_list.append(field_id.name)
+ for field in field_list:
+ records = self.env[model_id.model].search([
+ (field, 'ilike', self.name),
+ (field, '!=', '')
+ ])
+ for rec in records:
+ temp_list = found_match.get(rec.id, False)
+ if temp_list:
+ temp_list.append(field)
+ found_match[rec.id] = temp_list
+ else:
+ found_match[rec.id] = [field]
+ for key, value in found_match.items():
+ founded_json = {}
+ founded_json["field_list"] = str(list(set(value)))
+ founded_json["name"] = str(model_id.name)
+ founded_json["model_id"] = model_id.id
+ founded_json["search_id"] = self.id
+ founded_json["record_id"] = key
+ final_list.append(founded_json)
+ if final_list:
+ for vals in final_list:
+ self.env['search.line'].create(vals)
diff --git a/contact_search_form/readme/CONFIGURE.rst b/contact_search_form/readme/CONFIGURE.rst
new file mode 100755
index 0000000..f213c47
--- /dev/null
+++ b/contact_search_form/readme/CONFIGURE.rst
@@ -0,0 +1,3 @@
+To access contact search view in contacts view, the user has to activate the 'Data Protection Officer' checkbox
+in User -> Technical Settings.
+After that a new menu item 'Contact Search' will appear in the Contacts App.
diff --git a/contact_search_form/readme/DESCRIPTION.rst b/contact_search_form/readme/DESCRIPTION.rst
new file mode 100755
index 0000000..b73effd
--- /dev/null
+++ b/contact_search_form/readme/DESCRIPTION.rst
@@ -0,0 +1,2 @@
+View containing a search function for Data Protection Officers (DPO) to look up Customer Data.
+All available Odoo models can be included in the search query looking for a specified string.
diff --git a/contact_search_form/readme/USAGE.rst b/contact_search_form/readme/USAGE.rst
new file mode 100755
index 0000000..79a5c6c
--- /dev/null
+++ b/contact_search_form/readme/USAGE.rst
@@ -0,0 +1,9 @@
+The new menu Contact Search is located in the Contacts App
+
+When accessing the Contact Search form a new query can be defined by
+clicking on the Create button.
+To perform a search the search string is required and the Odoo models that
+should be searched have to be selected in the dropdown 'Search in model'.
+
+The search results are stored and can be accessed at a later time from the
+tree view of 'Contact Search'.
diff --git a/contact_search_form/security/gdpr_security.xml b/contact_search_form/security/gdpr_security.xml
new file mode 100755
index 0000000..e6464db
--- /dev/null
+++ b/contact_search_form/security/gdpr_security.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ Data Protection Officer
+
+
+
diff --git a/contact_search_form/security/ir.model.access.csv b/contact_search_form/security/ir.model.access.csv
new file mode 100755
index 0000000..773df98
--- /dev/null
+++ b/contact_search_form/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+access_dpo_view,access_dpo_view,model_dpo_view,group_dpo,1,1,1,1
+access_search_line,access_search_line,model_search_line,group_dpo,1,1,1,1
diff --git a/contact_search_form/static/description/icon.png b/contact_search_form/static/description/icon.png
new file mode 100755
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/contact_search_form/static/description/index.html b/contact_search_form/static/description/index.html
new file mode 100755
index 0000000..7babf7f
--- /dev/null
+++ b/contact_search_form/static/description/index.html
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+ Schulung
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Features
+
+
+
+
•Search
+ customer related information in any odoo model
+
+
+
+
+
Search for customer data & report
+
+
+
+
+
After
+ installing the module the user is able to
+ see sub menu in Contacts→ Configuration → Contact Search section like below screen shot.
+
+
+
+
+
+
+
+
+
When user opens the Contact Search form then there are
+ two fields available to define the value to search for and the model where the search should be performed. Results will be displayed with according
+ record ID and model name.
+
+
+
+
For more information you can see below screen shot.
+
+
+
+
+
+
+
+
+
+
+
+
The according record can be opened from the list view.
"
+ # else:
+ # # return http.request.render('website_contact_extend.disp_msg_template', {'message_failure': 'Could not change your means of contact. Please request a new link'})
+ # return "
Could not change your means of contact. Please request a new link
\n"
+" Dear ${user.partner_id.name}, \n"
+"\n"
+" This email address ${object.email} has been verified by user. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" \n"
+" "
+msgstr "\n"
+"
\n"
+" Dear ${user.partner_id.name}, \n"
+"\n"
+" This email address ${object.email} has been verified by user. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" \n"
+" "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "(2) □ Die personenbezogene Daten werden nicht an ein Drittland oder an eine internationale Organisation übermittelt"
+msgstr "(2) □ Die personenbezogene Daten werden nicht an ein Drittland oder an eine internationale Organisation übermittelt"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "(3) Der Verantwortliche stellt eine Kopie der personenbezogenen Daten, die Gegenstand der Verarbeitung sind, zur Verfügung:"
+msgstr "(3) Der Verantwortliche stellt eine Kopie der personenbezogenen Daten, die Gegenstand der Verarbeitung sind, zur Verfügung:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und Freiheiten anderer Personen nicht beeinträchtigen."
+msgstr "(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und Freiheiten anderer Personen nicht beeinträchtigen."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid " □ bis zum __. __. ____□ Bis zu ____ Jahre □ Gesetzl. Aufbewahrungfrist"
+msgstr " □ bis zum __. __. ____□ Bis zu ____ Jahre □ Gesetzl. Aufbewahrungfrist"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "oder □ Widerspruchsrecht gegen diese Verarbeitung besteht;"
+msgstr "oder □ Widerspruchsrecht gegen diese Verarbeitung besteht;"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "□ Wenn doch: Die Daten werden nach folgender Art ausgewertet und gruppiert _______________ "
+msgstr "□ Wenn doch: Die Daten werden nach folgender Art ausgewertet und gruppiert _______________ "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Grund□ Kontakt ____ mal nicht erreicht □ Systemwechsel "
+msgstr "Grund□ Kontakt ____ mal nicht erreicht □ Systemwechsel "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Adresse:"
+msgstr "Adresse:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunft für:"
+msgstr "Auskunft für:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunft nach Artikel 15 DS-GVO"
+msgstr "Auskunft nach Artikel 15 DS-GVO"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunftsgeber:"
+msgstr "Auskunftsgeber:"
+
+#. module: website_contact_extend
+#: model:ir.model,name:website_contact_extend.model_res_partner
+msgid "Contact"
+msgstr "Kontakt"
+
+#. module: website_contact_extend
+#: model:ir.actions.report,name:website_contact_extend.report_contact
+msgid "Contact Report"
+msgstr "Kontakt Report"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_contact_type
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_contact_type
+msgid "Contact Type"
+msgstr "Art des Kontakts"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by E-Mail"
+msgstr "Kontakt per E-Mail"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by Letter"
+msgstr "Kontakt per Post"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by Phone"
+msgstr "Kontakt per Telefon"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Die betroffene Person hat das Recht, von dem Verantwortlichen eine Bestätigung darüber zu verlangen, ob sie betreffende personenbezogene Daten verarbeitet werden; ist dies der Fall, so hat sie ein Recht auf Auskunft über diese personenbezogenen Daten und auf folgende Informationen:"
+msgstr "Die betroffene Person hat das Recht, von dem Verantwortlichen eine Bestätigung darüber zu verlangen, ob sie betreffende personenbezogene Daten verarbeitet werden; ist dies der Fall, so hat sie ein Recht auf Auskunft über diese personenbezogenen Daten und auf folgende Informationen:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_email_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_email_contact
+msgid "Email Contact"
+msgstr "Email Kontakt"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_crm_lead_email_link
+msgid "Email verification link"
+msgstr "Email verifikations Link"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Email:"
+msgstr "E-Mail:"
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I do not want to be contacted."
+msgstr "Ich möchte nicht kontaktiert werden."
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I only want to be contacted by Email."
+msgstr "Ich möchte nur per Email kontaktiert werden."
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I only want to be contacted by Phone."
+msgstr "Ich möchte nur per Telefon kontaktiert werden."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "In the future I want to be contacted by"
+msgstr "In Zukunft möchte ich nur kontaktiert werden durch:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Information request concerning data about the personally"
+msgstr "Persönliche Informationsauskunft:"
+
+#. module: website_contact_extend
+#: model:ir.model,name:website_contact_extend.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr "Interessent / Chance"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_letter_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_letter_contact
+msgid "Letter Contact"
+msgstr "Brief Kontakt"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_last_updated
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_last_updated
+msgid "Letzte Aktualisierung"
+msgstr "Letzte Aktualisierung"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Name:"
+msgstr "Name:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_phone_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_phone_contact
+msgid "Phone Contact"
+msgstr "Telefon Kontakt"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Phone:"
+msgstr "Telefon:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_is_verified
+#: model:mail.template,subject:website_contact_extend.confirmation_email_template
+msgid "Verified Email"
+msgstr "Verifizierte Email"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,help:website_contact_extend.field_res_partner_contact_type
+#: model:ir.model.fields,help:website_contact_extend.field_res_users_contact_type
+msgid "Which way user want to be contacted."
+msgstr "Art der Kontaktierung"
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "You can contact me by Email or Phone."
+msgstr "Ich kann per Email oder Telefon kontaktiert werden."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "a) die Verarbeitungszwecke:□ Kontaktaufnahme; □ Geschäftsvorgänge; □ Sonstiges; "
+msgstr "a) die Verarbeitungszwecke:□ Kontaktaufnahme; □ Geschäftsvorgänge; □ Sonstiges; "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "b) die Kategorien personenbezogener Daten, die verarbeitet werden: □ Kundendaten, □ Lieferantendaten, □ Interessentendaten, □ Personaldaten"
+msgstr "b) die Kategorien personenbezogener Daten, die verarbeitet werden: □ Kundendaten, □ Lieferantendaten, □ Interessentendaten, □ Personaldaten"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "c) die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen: □ _______________________________ oder□ keine Offenlegung gegenüber Dritten beabsichtigt, □ Nicht bekannt"
+msgstr "c) die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen: □ _______________________________ oder□ keine Offenlegung gegenüber Dritten beabsichtigt, □ Nicht bekannt"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "d) geplante Dauer, für die die personenbezogenen Daten gespeichert werden: "
+msgstr "d) geplante Dauer, für die die personenbezogenen Daten gespeichert werden: "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "e) □ Recht auf Berichtigung oder Löschung der betreffenden personenbezogenen Daten besteht oder □ Einschränkung der Verarbeitung durch den Verantwortlichen "
+msgstr "e) □ Recht auf Berichtigung oder Löschung der betreffenden personenbezogenen Daten besteht oder □ Einschränkung der Verarbeitung durch den Verantwortlichen "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "f) □ das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde besteht"
+msgstr "f) □ das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde besteht"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "g) die Herkunft der Daten ist von □ eigener Recherche, □ Auskunftei"
+msgstr "g) die Herkunft der Daten ist von □ eigener Recherche, □ Auskunftei"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "h) □ eine automatisierte Entscheidungsfindung mit diesen Daten findet nicht statt. "
+msgstr "h) □ eine automatisierte Entscheidungsfindung mit diesen Daten findet nicht statt. "
+
+#. module: website_contact_extend
+#: model:mail.template,subject:website_contact_extend.verification_email_template
+msgid "mail verification link"
+msgstr "mail verification link"
+
diff --git a/website_contact_extend/i18n/en_US.po b/website_contact_extend/i18n/en_US.po
new file mode 100755
index 0000000..d8a734e
--- /dev/null
+++ b/website_contact_extend/i18n/en_US.po
@@ -0,0 +1,412 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * website_contact_extend
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-07-02 12:18+0000\n"
+"PO-Revision-Date: 2018-07-02 14:26+0100\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+"Language: en_US\n"
+
+#. module: website_contact_extend
+#: model:mail.template,body_html:website_contact_extend.verification_email_template
+msgid ""
+"\n"
+"
\n"
+" % if object.partner_id\n"
+" Dear ${object.partner_id.name}, \n"
+" % endif\n"
+" % if not object.partner_id\n"
+" Dear ${object.email_from}, \n"
+" % endif\n"
+"\n"
+" Please click on below link to verify your email address "
+"${object.email_link}. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" \n"
+" "
+msgstr ""
+"\n"
+"
\n"
+" % if object.partner_id\n"
+" Dear ${object.partner_id.name}, \n"
+" % endif\n"
+" % if not object.partner_id\n"
+" Dear ${object.email_from}, \n"
+" % endif\n"
+"\n"
+" Please click on below link to verify your email address "
+"${object.email_link}. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" Dear ${user.partner_id.name}, \n"
+"\n"
+" This email address ${object.email} has been "
+"verified by user. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" \n"
+" "
+msgstr ""
+"\n"
+"
\n"
+" Dear ${user.partner_id.name}, \n"
+"\n"
+" This email address ${object.email} has been "
+"verified by user. \n"
+"\n"
+" Thank you.\n"
+"
\n"
+" \n"
+" "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"(2) □ Die "
+"span>personenbezogene Daten werden nicht an ein "
+"Drittland oder an eine internationale Organisation übermittelt"
+msgstr ""
+"(2) □ The personal data will not be transmitted to "
+"a third country or an international organization"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"(3) Der Verantwortliche stellt eine Kopie der personenbezogenen Daten, "
+"die Gegenstand der Verarbeitung sind, zur Verfügung:"
+msgstr ""
+"(3) The responsible person provides a copy of the personal data that is the "
+"subject of the processing:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und "
+"Freiheiten anderer Personen nicht beeinträchtigen."
+msgstr ""
+"(4) The right to receive a copy under paragraph 3 must not affect the rights "
+"and freedoms of other persons."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+" □ bis zum __. __. ____"
+"span> □ Bis zu ____ "
+"Jahre □ Gesetzl. Aufbewahrungfrist"
+"span>"
+msgstr ""
+" □ Until the __. __. "
+"____□ Up to "
+"____ years □ Storage period by law"
+"span>"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"oder □ Widerspruchsrecht gegen diese "
+"Verarbeitung besteht;"
+msgstr ""
+"or □ Right to object to this processing,"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"□ Wenn doch: Die Daten werden"
+"span> nach folgender Art ausgewertet und gruppiert "
+"_______________ "
+msgstr ""
+"□ If so: The data is evaluated and grouped in the "
+"following way_______________ "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"Grund□ Kontakt ____ mal "
+"nicht erreicht □ Systemwechsel "
+msgstr ""
+"Reason: □ Contact ____ not reached □ System "
+"change "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Adresse:"
+msgstr "Address:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunft für:"
+msgstr "Information for:"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunft nach Artikel 15 DS-GVO"
+msgstr ""
+"Information according to Article 15 of the GDPR"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Auskunftsgeber:"
+msgstr "Information giver:"
+
+#. module: website_contact_extend
+#: model:ir.model,name:website_contact_extend.model_res_partner
+msgid "Contact"
+msgstr "Contact"
+
+#. module: website_contact_extend
+#: model:ir.actions.report,name:website_contact_extend.report_contact
+msgid "Contact Report"
+msgstr "Contact Report"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_contact_type
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_contact_type
+msgid "Contact Type"
+msgstr "Contact Type"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by E-Mail"
+msgstr "Contact by E-Mail"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by Letter"
+msgstr "Contact by Letter"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Contact by Phone"
+msgstr "Contact by Phone"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"Die betroffene Person hat das Recht, von dem Verantwortlichen eine "
+"Bestätigung darüber zu verlangen, ob sie betreffende personenbezogene Daten "
+"verarbeitet werden; ist dies der Fall, so hat sie ein Recht auf Auskunft "
+"über diese personenbezogenen Daten und auf folgende Informationen:"
+msgstr ""
+"The data subject has the right to ask the person responsible for "
+"confirmation of the processing of the personal data concerned; if this is "
+"the case, it has a right to information about such personal data and to the "
+"following information:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_email_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_email_contact
+msgid "Email Contact"
+msgstr "Email Contact"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_crm_lead_email_link
+msgid "Email verification link"
+msgstr "Email verification link"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Email:"
+msgstr "Email:"
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I do not want to be contacted."
+msgstr "I do not want to be contacted."
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I only want to be contacted by Email."
+msgstr "I only want to be contacted by Email."
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "I only want to be contacted by Phone."
+msgstr "I only want to be contacted by Phone."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "In the future I want to be contacted by"
+msgstr "In the future I want to be contacted by"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.contactus_form_inherited
+msgid "Information request concerning data about the personally"
+msgstr "Information request concerning data about personal Information"
+
+#. module: website_contact_extend
+#: model:ir.model,name:website_contact_extend.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr "Lead/Opportunity"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_letter_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_letter_contact
+msgid "Letter Contact"
+msgstr "Letter Contact"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_last_updated
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_last_updated
+msgid "Letzte Aktualisierung"
+msgstr "Last Updated on"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Name:"
+msgstr "Name:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_phone_contact
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_users_phone_contact
+msgid "Phone Contact"
+msgstr "Phone Contact"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid "Phone:"
+msgstr "Phone:"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,field_description:website_contact_extend.field_res_partner_is_verified
+#: model:mail.template,subject:website_contact_extend.confirmation_email_template
+msgid "Verified Email"
+msgstr "Verified Email"
+
+#. module: website_contact_extend
+#: model:ir.model.fields,help:website_contact_extend.field_res_partner_contact_type
+#: model:ir.model.fields,help:website_contact_extend.field_res_users_contact_type
+msgid "Which way user want to be contacted."
+msgstr "Which way user want to be contacted."
+
+#. module: website_contact_extend
+#: selection:res.partner,contact_type:0
+msgid "You can contact me by Email or Phone."
+msgstr "You can contact me by Email or Phone."
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"a) die Verarbeitungszwecke: "
+"span>□ Kontaktaufnahme; "
+"span>□ Geschäftsvorgänge"
+"span>; □ Sonstiges; "
+msgstr ""
+"a) The processing purposes:□ "
+"Contact, □ Transactions, □ Other "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"b) die Kategorien personenbezogener Daten, die verarbeitet werden: □ Kundendaten, □ Lieferantendaten, □ Interessentendaten, □ Personaldaten"
+msgstr ""
+"b) The categories of personal data being processed: □ Customer data, "
+"span>□ Supplier data, "
+"span>□ Prospect data, "
+"span>□ Personal data"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"c) die Empfänger oder Kategorien von Empfängern, gegenüber denen die "
+"personenbezogenen Daten offengelegt worden sind oder noch offengelegt "
+"werden, insbesondere bei Empfängern in Drittländern oder bei internationalen "
+"Organisationen: □ "
+"span>_______________________________ oder "
+"□ keine Offenlegung gegenüber Dritten "
+"beabsichtigt, □ Nicht "
+"bekannt"
+msgstr ""
+"c) The recipients or categories of recipients to whom the personal data have "
+"been disclosed or are yet to be disclosed, in particular to recipients in "
+"third countries or to international organizations: "
+"span>□ _______________________________ or□ "
+"span>No disclosure to third "
+"parties, □ Not known"
+"span>"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"d) geplante Dauer, für die die personenbezogenen Daten gespeichert "
+"werden: "
+msgstr ""
+"d) Planned duration for which the personal data is stored: "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"e) □ Recht auf Berichtigung oder Löschung "
+"der betreffenden personenbezogenen Daten besteht "
+"oder □ Einschränkung der "
+"Verarbeitung durch den Verantwortlichen "
+msgstr ""
+"e)□ Right to rectification or deletion of "
+"personal data concerned, or □ Restriction of "
+"processing by the controller , or "
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"f) □ das Bestehen eines Beschwerderechts "
+"bei einer Aufsichtsbehörde besteht"
+msgstr ""
+"f)□ The existence of a right to complain to "
+"a supervisory authority"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"g) die Herkunft der Daten ist von □ eigener Recherche, □ Auskunftei"
+msgstr ""
+"g) The origin of the data is from □ Own research, □ Credit reference agency"
+
+#. module: website_contact_extend
+#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document
+msgid ""
+"h) □ eine automatisierte Entscheidungsfindung "
+"mit diesen Daten findet nicht statt. "
+msgstr ""
+"h) □ An automated decision-making with this data "
+"does not take place."
+
+#. module: website_contact_extend
+#: model:mail.template,subject:website_contact_extend.verification_email_template
+msgid "mail verification link"
+msgstr "mail verification link"
diff --git a/website_contact_extend/models/__init__.py b/website_contact_extend/models/__init__.py
new file mode 100755
index 0000000..ccebc72
--- /dev/null
+++ b/website_contact_extend/models/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import res_partner
diff --git a/website_contact_extend/models/res_partner.py b/website_contact_extend/models/res_partner.py
new file mode 100755
index 0000000..a60118a
--- /dev/null
+++ b/website_contact_extend/models/res_partner.py
@@ -0,0 +1,39 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import fields, models, api
+
+class ResContacts(models.Model):
+ _inherit = "res.partner"
+
+ contact_type = fields.Selection([
+ ('no_contact', 'I do not want to be contacted.'),
+ ('email_contact', 'I only want to be contacted by Email.'),
+ ('phone_contact', 'I only want to be contacted by Phone.'),
+ ('email_phone_contact', 'You can contact me by Email or Phone.')
+ ],
+ string='Contact Type',
+ default='email_contact',
+ help="Which way user want to be contacted.")
+ letter_contact = fields.Boolean("Letter Contact")
+ phone_contact = fields.Boolean("Phone Contact")
+ email_contact = fields.Boolean("Email Contact")
+ is_verified = fields.Boolean("Verified Email")
+ last_updated = fields.Datetime("Letzte Aktualisierung")
+ request_gdpdr = fields.Boolean("Request GDPDR")
+
+ # s
+ @api.multi
+ def write(self, vals):
+ print(vals)
+ return super(ResContacts, self).write(vals)
+
+ @api.model
+ def create(self, vals):
+ print(vals)
+ return super(ResContacts, self).create(vals)
+
+
+class CrmLead(models.Model):
+ _inherit = "crm.lead"
+
+ email_link = fields.Char("Email verification link")
diff --git a/website_contact_extend/readme/CONFIGURE.rst b/website_contact_extend/readme/CONFIGURE.rst
new file mode 100755
index 0000000..9d46c1a
--- /dev/null
+++ b/website_contact_extend/readme/CONFIGURE.rst
@@ -0,0 +1 @@
+The contact mode fields will be added to the Contact Site automatically.
diff --git a/website_contact_extend/readme/DESCRIPTION.rst b/website_contact_extend/readme/DESCRIPTION.rst
new file mode 100755
index 0000000..1fafdbb
--- /dev/null
+++ b/website_contact_extend/readme/DESCRIPTION.rst
@@ -0,0 +1,8 @@
+Extended Website Contact View to give Customer options on how to be
+ contacted in the future.
+
+For email verification a verification link will be sent to the email address
+entered in the contact view.
+
+* contact mode fields will be added to the website contact view.
+* Information requests can be submitted from the contact view
diff --git a/website_contact_extend/readme/USAGE.rst b/website_contact_extend/readme/USAGE.rst
new file mode 100755
index 0000000..6351bd1
--- /dev/null
+++ b/website_contact_extend/readme/USAGE.rst
@@ -0,0 +1,8 @@
+Customer can verify his email address with a verification link.
+The verification link is automatically sent to the email address
+entered in the website contact view.
+
+Following that the mode of future contact can be chosen and a GDPR
+ information request can be submitted.
+
+A preliminary Report is also printable in the contacts view.
diff --git a/website_contact_extend/security/ir.model.access.csv b/website_contact_extend/security/ir.model.access.csv
new file mode 100755
index 0000000..1299346
--- /dev/null
+++ b/website_contact_extend/security/ir.model.access.csv
@@ -0,0 +1,4 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_mail_template,access.mail.template.view,mail.model_mail_template,,1,0,0,0
+access_crm_lead_record,access.crm.lead.record,crm.model_crm_lead,,1,0,0,0
+access_mail_mail_record,access.mail.mail.record,mail.model_mail_mail,,1,1,1,0
\ No newline at end of file
diff --git a/website_contact_extend/static/description/icon.png b/website_contact_extend/static/description/icon.png
new file mode 100755
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/website_contact_extend/static/description/index.html b/website_contact_extend/static/description/index.html
new file mode 100755
index 0000000..b4f0163
--- /dev/null
+++ b/website_contact_extend/static/description/index.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ Schulung
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Features
+
+
+
+
•Enhancement
+ of contact form for selection of preferred contact method (e-mail, phone, letter)
+
+
•Update
+ of existing customer information
+
•Request
+ for personal information by customer
+
•Report
+ creation “Auskunft nach Artikel 15 DS-GVO”
+
+
+
+
+
+
Enhanced Contact
+ Form
+
+
+
+
+
+
+
+
+
+
After submission of this form it will search master record based on email and name
+ and update the record accordingly.
+
+
On the contact form you can also print the report “Information Request article 15 GDPR”
+
Die betroffene Person hat das Recht, von dem Verantwortlichen eine
+ Bestätigung darüber zu verlangen, ob sie betreffende personenbezogene Daten verarbeitet werden;
+ ist dies der Fall, so hat sie ein Recht auf Auskunft über diese personenbezogenen Daten und auf
+ folgende Informationen:
+
+
a) die Verarbeitungszwecke:
+
+ □
+ Kontaktaufnahme;
+ □
+ Geschäftsvorgänge;
+ □
+ Sonstiges;
+
+
b) die Kategorien personenbezogener Daten, die verarbeitet werden:
+
+
+
+ □
+ Kundendaten,
+ □
+ Lieferantendaten,
+ □
+ Interessentendaten,
+ □
+ Personaldaten
+
+
c) die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen
+ Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in
+ Drittländern oder bei internationalen Organisationen:
+ □_______________________________
+
+ oder
+ □
+ keine Offenlegung gegenüber Dritten beabsichtigt,
+ □
+ Nicht bekannt
+
+
d) geplante Dauer, für die die personenbezogenen Daten gespeichert werden:
+
+
+ □ bis zum __. __. ____
+ □ Bis zu ____ Jahre
+ □ Gesetzl. Aufbewahrungfrist
+
+
+ Grund
+ □ Kontakt ____ mal nicht erreicht □ Systemwechsel
+
+
e)
+ □ Recht auf Berichtigung oder Löschung der betreffenden
+ personenbezogenen Daten besteht oder
+
+ □ Einschränkung der Verarbeitung durch den Verantwortlichen
+
+
+
oder □ Widerspruchsrecht gegen diese Verarbeitung besteht;
+
+
f)
+ □ das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde besteht
+
+
+
g) die Herkunft der Daten
+ ist von
+ □
+ eigener Recherche,
+ □
+ Auskunftei
+
+
h)□eine automatisierte Entscheidungsfindung
+ mit diesen Daten findet nicht statt.
+
+
+ □
+ Wenn doch: Die Daten werden
+ nach folgender Art ausgewertet und gruppiert _______________
+
+
(2)
+ □
+ Diepersonenbezogene Datenwerden nichtan ein
+ Drittland oder an eine internationale Organisation übermittelt
+
+
(3) Der Verantwortliche stellt eine Kopie der personenbezogenen Daten, die
+ Gegenstand der Verarbeitung sind, zur Verfügung:
+
+
+
+ Name:
+
+
+
+ Email:
+
+
+
+ Phone:
+
+
+
+
+ Adresse:
+
+
+
+
+
+
(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und
+ Freiheiten anderer Personen nicht beeinträchtigen.
+
+
+
+
\ No newline at end of file
diff --git a/website_contact_extend/views/email_template.xml b/website_contact_extend/views/email_template.xml
new file mode 100755
index 0000000..a9fb9f0
--- /dev/null
+++ b/website_contact_extend/views/email_template.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ Data Change Email Template
+ Change has been made
+
+
+
+ Dear Sir/Madam,
+ User ${(object.contact_name)} with the ID ${(object.id)} the has made a change in the record.
+
+
Please find the user and his/her details below.
+
+
+
+
Name
${object.contact_name}
+
+
+
Company
${object.partner_name}
+
+
+
Email
${object.email_from}
+
+
+
Phone
${object.phone}
+
+
+
+
+ Thank you.
+ ]]>
+
+
+
+
+ Information Request Template
+ Information request on stored data for user ${object.email_from} from contact form
+
+
+
+ Dear colleagues,
+
following customer has requested an information about personal data stored in odoo:
+
+
+
+
Name
${object.contact_name}
+
+
+
Company
${object.partner_name}
+
+
+
Notes:
${object.name}
+
${object.description[:-50]}
+
+
+
+
+ Thank you.
+ ]]>
+
+
+
+
\ No newline at end of file
diff --git a/website_contact_extend/views/means_of_contact.xml b/website_contact_extend/views/means_of_contact.xml
new file mode 100755
index 0000000..a76d043
--- /dev/null
+++ b/website_contact_extend/views/means_of_contact.xml
@@ -0,0 +1,105 @@
+
+
+
+
+