IT IS AG
6 years ago
committed by
Pedro M. Baeza
31 changed files with 1734 additions and 0 deletions
-
72contact_search_form/README.rst
-
3contact_search_form/__init__.py
-
33contact_search_form/__manifest__.py
-
68contact_search_form/i18n/de.po
-
68contact_search_form/i18n/en_US.po
-
3contact_search_form/models/__init__.py
-
84contact_search_form/models/contact_search.py
-
3contact_search_form/readme/CONFIGURE.rst
-
2contact_search_form/readme/DESCRIPTION.rst
-
9contact_search_form/readme/USAGE.rst
-
8contact_search_form/security/gdpr_security.xml
-
3contact_search_form/security/ir.model.access.csv
-
BINcontact_search_form/static/description/icon.png
-
79contact_search_form/views/contact_search.xml
-
74website_contact_extend/README.rst
-
4website_contact_extend/__init__.py
-
34website_contact_extend/__manifest__.py
-
3website_contact_extend/controllers/__init__.py
-
163website_contact_extend/controllers/myfilter.py
-
46website_contact_extend/data/email_templates.xml
-
300website_contact_extend/i18n/de.po
-
412website_contact_extend/i18n/en_US.po
-
3website_contact_extend/models/__init__.py
-
28website_contact_extend/models/res_partner.py
-
1website_contact_extend/readme/CONFIGURE.rst
-
8website_contact_extend/readme/DESCRIPTION.rst
-
8website_contact_extend/readme/USAGE.rst
-
BINwebsite_contact_extend/static/description/icon.png
-
164website_contact_extend/views/contact_report.xml
-
22website_contact_extend/views/res_partner.xml
-
29website_contact_extend/views/website_contact.xml
@ -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 <https://github.com/OCA/web/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 <dipaks@itis.de> |
|||
* Sven Hartmann <svenh@itis.de> |
|||
|
|||
|
|||
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. |
@ -0,0 +1,3 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import models |
@ -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': '11.0.1.0.0', |
|||
'license': 'AGPL-3', |
|||
'category': 'Contacts', |
|||
'depends': ['base', |
|||
'contacts', |
|||
], |
|||
|
|||
'data': [ |
|||
'security/gdpr_security.xml', |
|||
'security/ir.model.access.csv', |
|||
'views/contact_search.xml', |
|||
], |
|||
|
|||
} |
@ -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" |
@ -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" |
|||
|
@ -0,0 +1,3 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import contact_search |
@ -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[self.model_id.model].browse([ |
|||
self.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) |
@ -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. |
@ -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. |
@ -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'. |
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
<record id="group_dpo" model="res.groups"> |
|||
<field name="name">Data Protection Officer</field> |
|||
<field name="category_id" ref="base.module_category_hidden"/> |
|||
</record> |
|||
</odoo> |
@ -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 |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,79 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
|
|||
<record id="view_dpo_form_view_itis" model="ir.ui.view"> |
|||
<field name="name">view.dpo.form.view.itis</field> |
|||
<field name="model">dpo.view</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Customer Info"> |
|||
<div class="oe_title"> |
|||
<h1> |
|||
<field name="name" default_focus="1" placeholder="Search Terms" required="1"/> |
|||
</h1> |
|||
|
|||
</div> |
|||
<group> |
|||
<field name="model_ids" widget="many2many_tags"/> |
|||
</group> |
|||
<br/> |
|||
<br/> |
|||
<center> |
|||
<button name="search_string" type="object" string="SEARCH" class="btn-primary"/> |
|||
</center> |
|||
<br/> |
|||
<field name="search_lines"/> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="dpo_view_tree" model="ir.ui.view"> |
|||
<field name="name">DPO Tree view</field> |
|||
<field name="model">dpo.view</field> |
|||
<field name="priority">1</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Search Contact"> |
|||
<field name='name'/> |
|||
<field name="model_ids"/> |
|||
<field name="search_lines"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="action_dpo_view_itis" model="ir.actions.act_window"> |
|||
<field name="name">Customer Info</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">dpo.view</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="dpo_view_tree"/> |
|||
<field name="view_type">form</field> |
|||
</record> |
|||
|
|||
<menuitem id="menu_customer_info_base" |
|||
name="Contact Search" |
|||
parent="contacts.menu_contacts" |
|||
sequence="20" |
|||
groups="contact_search_form.group_dpo"/> |
|||
|
|||
<menuitem id="menu_customer_info" |
|||
name="Contact Search" |
|||
action="action_dpo_view_itis" |
|||
parent="menu_customer_info_base" |
|||
sequence="21" |
|||
groups="contact_search_form.group_dpo"/> |
|||
|
|||
<record id="search_line_tree_view_itis" model="ir.ui.view"> |
|||
<field name="name">search.line.tree.view.itis</field> |
|||
<field name="model">search.line</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Search Results" create="false" delete="false" edit="false"> |
|||
<field name="model_id"/> |
|||
<field name="record_id"/> |
|||
<field name="record_name"/> |
|||
<field name="field_list"/> |
|||
<button name="open_record" type="object" string="VIEW RECORD" class="btn-primary"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,74 @@ |
|||
====================== |
|||
Website Contact Extend |
|||
====================== |
|||
|
|||
|
|||
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 |
|||
|
|||
**Table of contents** |
|||
|
|||
.. contents:: |
|||
:local: |
|||
|
|||
|
|||
Usage |
|||
===== |
|||
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. |
|||
|
|||
|
|||
Known issues / Roadmap |
|||
====================== |
|||
|
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/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 <dipaks@itis.de> |
|||
* Sven Hartmann <svenh@itis.de> |
|||
|
|||
|
|||
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. |
@ -0,0 +1,4 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import controllers |
|||
from . import models |
@ -0,0 +1,34 @@ |
|||
################################################################### |
|||
# |
|||
# IT IS AG, software solutions: http://www.itis.de |
|||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html |
|||
# |
|||
################################################################### |
|||
|
|||
{ |
|||
'name': "Website Contact Form Extend", |
|||
|
|||
'summary': "Extended Website Contact View", |
|||
|
|||
'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': '11.0.1.0.0', |
|||
'license': 'AGPL-3', |
|||
'category': 'Data Protection', |
|||
'depends': ['base', |
|||
'contacts', |
|||
'website_crm', |
|||
], |
|||
|
|||
'data': [ |
|||
'views/website_contact.xml', |
|||
'views/res_partner.xml', |
|||
'views/contact_report.xml', |
|||
'data/email_templates.xml', |
|||
], |
|||
} |
@ -0,0 +1,3 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import myfilter |
@ -0,0 +1,163 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo.addons.website_form.controllers import main as parent_controller |
|||
from odoo import http |
|||
from odoo.http import request |
|||
from odoo.exceptions import ValidationError |
|||
from psycopg2 import IntegrityError |
|||
import base64 |
|||
import json |
|||
|
|||
|
|||
class VerifyController(http.Controller): |
|||
@http.route('/verify_email', |
|||
type='http', |
|||
auth="public", |
|||
methods=['GET'], |
|||
website=True) |
|||
def verify_email(self, **kwargs): |
|||
if kwargs: |
|||
link_data = base64.b64decode(kwargs.get("data")).decode("utf-8")\ |
|||
.split("####") |
|||
email = link_data[0] |
|||
contact_name = link_data[1] |
|||
email_name = link_data[2] |
|||
phone_name = link_data[3] |
|||
letter_name = link_data[4] |
|||
link_date = link_data[5] |
|||
link_date = link_date.split(" ")[0].replace("-", "") |
|||
import datetime |
|||
today = datetime.date.today() |
|||
link = datetime.datetime.strptime(link_date, "%Y%m%d").date() |
|||
diff = today - link |
|||
if diff.days > 5 or diff.days < 0: |
|||
return "<center style='color:red'>Not valid!<br/>"\ |
|||
"The link you entered is either not valid or expired."\ |
|||
"<br/>Please request a new link.</center>" |
|||
partner = request.env['res.partner'].sudo().search([ |
|||
('email', '=', email), |
|||
('name', '=', contact_name) |
|||
]) |
|||
if partner: |
|||
for part in partner: |
|||
part.is_verified = True |
|||
part.last_updated = part.write_date |
|||
if email_name == "True": |
|||
part.email_contact = True |
|||
else: |
|||
part.email_contact = False |
|||
if phone_name == "True": |
|||
part.phone_contact = True |
|||
else: |
|||
part.phone_contact = False |
|||
if letter_name == "True": |
|||
part.letter_contact = True |
|||
else: |
|||
part.letter_contact = False |
|||
request.env.ref( |
|||
'website_contact_extend.confirmation_email_template' |
|||
).sudo().send_mail(part.id) |
|||
return "<center style='color:green'>"\ |
|||
"Thank You! Your email address has been verified!"\ |
|||
"</center>" |
|||
else: |
|||
return "<center style='color:red'>Not valid!<br/>"\ |
|||
"The link you entered is either not valid or expired."\ |
|||
"<br/>Please request a new link.</center>" |
|||
|
|||
|
|||
class MyFilter(parent_controller.WebsiteForm): |
|||
|
|||
@http.route('/website_form/<string:model_name>', |
|||
type='http', |
|||
auth="public", |
|||
methods=['POST'], |
|||
website=True) |
|||
def website_form(self, model_name, **kwargs): |
|||
model_record = request.env['ir.model'].sudo().search([ |
|||
('model', '=', model_name), |
|||
('website_form_access', '=', True) |
|||
]) |
|||
if not model_record: |
|||
return json.dumps(False) |
|||
# need_send_email = False |
|||
try: |
|||
data = self.extract_data(model_record, request.params) |
|||
# contact_type = False |
|||
phone_contact = False |
|||
letter_contact = False |
|||
email_contact = False |
|||
send_mail = True |
|||
index = 0 |
|||
for field_name, field_value in request.params.items(): |
|||
# if field_name == "contact_type": |
|||
# contact_type = field_value |
|||
if field_name == "send_mail" and field_value == "send_mail": |
|||
send_mail = True |
|||
if field_name == "phone_contact" \ |
|||
and field_value == "phone_contact": |
|||
phone_contact = True |
|||
if field_name == "letter_contact" \ |
|||
and field_value == "letter_contact": |
|||
letter_contact = True |
|||
if field_name == "email_contact" \ |
|||
and field_value == "email_contact": |
|||
email_contact = True |
|||
index += 1 |
|||
# contact_name = data.get("record").get("contact_name") |
|||
# email_from = data.get("record").get("email_from") |
|||
|
|||
# If we encounter an issue while extracting data |
|||
except ValidationError as e: |
|||
# I couldn't find a cleaner way to pass data to an exception |
|||
return json.dumps({'error_fields': e.args[0]}) |
|||
|
|||
try: |
|||
id_record = self.insert_record( |
|||
request, |
|||
model_record, |
|||
data['record'], |
|||
data['custom'], |
|||
data.get('meta') |
|||
) |
|||
if id_record: |
|||
self.insert_attachment( |
|||
model_record, |
|||
id_record, |
|||
data['attachments'] |
|||
) |
|||
if id_record and send_mail and model_name == "crm.lead": |
|||
crm_lead_obj = request.env['crm.lead'].sudo().search([ |
|||
('id', '=', id_record)] |
|||
) |
|||
email_data = crm_lead_obj.email_from + "####" +\ |
|||
crm_lead_obj.contact_name + "####" +\ |
|||
str(email_contact) + "####" +\ |
|||
str(phone_contact) + "####" +\ |
|||
str(letter_contact)+"####" +\ |
|||
str(crm_lead_obj.create_date) |
|||
ency_email = base64.b64encode(email_data.encode()).decode( |
|||
"utf-8" |
|||
) |
|||
action_url = '%s/verify_email/?data=%s' % ( |
|||
request.env['ir.config_parameter']. |
|||
sudo().get_param('web.base.url'), |
|||
ency_email, |
|||
) |
|||
if crm_lead_obj: |
|||
crm_lead_obj.email_link = action_url |
|||
request.env.ref( |
|||
'website_contact_extend.verification_email_template' |
|||
).send_mail(id_record) |
|||
# Some fields have additional SQL constraints |
|||
# that we can't check generically |
|||
# Ex: crm.lead.probability which is a float between 0 and 1 |
|||
# TODO: How to get the name of the erroneous field ? |
|||
except IntegrityError: |
|||
return json.dumps(False) |
|||
|
|||
request.session['form_builder_model_model'] = model_record.model |
|||
request.session['form_builder_model'] = model_record.name |
|||
request.session['form_builder_id'] = id_record |
|||
|
|||
return json.dumps({'id': id_record}) |
@ -0,0 +1,46 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
|
|||
<record id="verification_email_template" model="mail.template"> |
|||
<field name="name">Email verification link</field> |
|||
<field name="subject">mail verification link</field> |
|||
<field name="email_to">${(not object.partner_id and object.email_from)|safe}</field> |
|||
<field name="model_id" ref="crm.model_crm_lead"/> |
|||
<field name="auto_delete" eval="True"/> |
|||
<field name="body_html"><![CDATA[ |
|||
<p> |
|||
% if object.partner_id |
|||
Dear <strong>${object.partner_id.name}</strong>,<br/> |
|||
% endif |
|||
% if not object.partner_id |
|||
Dear <strong>${object.email_from}</strong>,<br/> |
|||
% endif |
|||
|
|||
Please click on below link to verify your email address <strong>${object.email_link}</strong>.<br/> |
|||
|
|||
Thank you. |
|||
</p> |
|||
]]> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="confirmation_email_template" model="mail.template"> |
|||
<field name="name">Email confirmation</field> |
|||
<field name="subject">Verified Email</field> |
|||
<field name="email_to">${user.email|safe}</field> |
|||
<field name="model_id" ref="base.model_res_partner"/> |
|||
<field name="auto_delete" eval="True"/> |
|||
<field name="body_html"><![CDATA[ |
|||
<p> |
|||
Dear <strong>${user.partner_id.name}</strong>,<br/> |
|||
|
|||
This email address <strong> ${object.email}</strong> has been verified by user.<br/> |
|||
|
|||
Thank you. |
|||
</p> |
|||
]]> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,300 @@ |
|||
# 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 12:18+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: website_contact_extend |
|||
#: model:mail.template,body_html:website_contact_extend.verification_email_template |
|||
msgid "\n" |
|||
" <p>\n" |
|||
" % if object.partner_id\n" |
|||
" Dear <strong>${object.partner_id.name}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
" % if not object.partner_id\n" |
|||
" Dear <strong>${object.email_from}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
"\n" |
|||
" Please click on below link to verify your email address <strong>${object.email_link}</strong>.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
msgstr "\n" |
|||
" <p>\n" |
|||
" % if object.partner_id\n" |
|||
" Dear <strong>${object.partner_id.name}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
" % if not object.partner_id\n" |
|||
" Dear <strong>${object.email_from}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
"\n" |
|||
" Please click on below link to verify your email address <strong>${object.email_link}</strong>.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:mail.template,body_html:website_contact_extend.confirmation_email_template |
|||
msgid "\n" |
|||
" <p>\n" |
|||
" Dear <strong>${user.partner_id.name}</strong>,<br/>\n" |
|||
"\n" |
|||
" This email address <strong> ${object.email}</strong> has been verified by user.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
msgstr "\n" |
|||
" <p>\n" |
|||
" Dear <strong>${user.partner_id.name}</strong>,<br/>\n" |
|||
"\n" |
|||
" This email address <strong> ${object.email}</strong> has been verified by user.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "(2) <span class=\"T2\">□ </span><span class=\"T7\">Die </span>personenbezogene Daten <span class=\"T7\">werden nicht </span>an ein Drittland oder an eine internationale Organisation übermittelt" |
|||
msgstr "(2) <span class=\"T2\">□ </span><span class=\"T7\">Die </span>personenbezogene Daten <span class=\"T7\">werden nicht </span>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<br/>Personen nicht beeinträchtigen." |
|||
msgstr "(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und Freiheiten anderer<br/>Personen nicht beeinträchtigen." |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "<span class=\"T2\"> □ </span><span class=\"T1\">bis zum __. __. ____</span> <span> <span class=\"T1\"> </span><span class=\"T2\">□ Bis zu ____ Jahre □ </span><span class=\"T3\">Gesetzl. Aufbewahrungfrist</span></span>" |
|||
msgstr "<span class=\"T2\"> □ </span><span class=\"T1\">bis zum __. __. ____</span> <span> <span class=\"T1\"> </span><span class=\"T2\">□ Bis zu ____ Jahre □ </span><span class=\"T3\">Gesetzl. Aufbewahrungfrist</span></span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "<span class=\"T2\">oder □ </span>Widerspruchsrecht gegen diese Verarbeitung <span class=\"T1\">besteht</span>;" |
|||
msgstr "<span class=\"T2\">oder □ </span>Widerspruchsrecht gegen diese Verarbeitung <span class=\"T1\">besteht</span>;" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "<span class=\"T2\">□ </span><span class=\"T4\">Wenn doch: Die Daten werden</span><span class=\"T7\"> nach folgender Art ausgewertet und gruppiert _______________ </span>" |
|||
msgstr "<span class=\"T2\">□ </span><span class=\"T4\">Wenn doch: Die Daten werden</span><span class=\"T7\"> nach folgender Art ausgewertet und gruppiert _______________ </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "<span class=\"T6\">Grund</span><span> <span class=\"T2\">□ Kontakt ____ mal nicht erreicht □ Systemwechsel </span></span>" |
|||
msgstr "<span class=\"T6\">Grund</span><span> <span class=\"T2\">□ Kontakt ____ mal nicht erreicht □ Systemwechsel </span></span>" |
|||
|
|||
#. 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 n<span class=\"T1\">ach Artikel 15 DS-GVO</span>" |
|||
msgstr "Auskunft n<span class=\"T1\">ach Artikel 15 DS-GVO</span>" |
|||
|
|||
#. 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) <span class=\"T1\">d</span>ie Verarbeitungszwecke:<span class=\"T1\"> </span><span class=\"T2\">□ </span><span class=\"T1\">Kontaktaufnahme; </span><span class=\"T2\">□ </span><span class=\"T3\">Geschäftsvorgänge</span><span class=\"T1\">; </span><span class=\"T2\">□ </span><span class=\"T3\">S</span><span class=\"T1\">onstiges; </span>" |
|||
msgstr "a) <span class=\"T1\">d</span>ie Verarbeitungszwecke:<span class=\"T1\"> </span><span class=\"T2\">□ </span><span class=\"T1\">Kontaktaufnahme; </span><span class=\"T2\">□ </span><span class=\"T3\">Geschäftsvorgänge</span><span class=\"T1\">; </span><span class=\"T2\">□ </span><span class=\"T3\">S</span><span class=\"T1\">onstiges; </span>" |
|||
|
|||
#. 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: <span class=\"T1\"> <br/></span><span class=\"T2\">□ </span><span class=\"T1\">Kundendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Lieferantendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Interessentendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Personaldaten</span>" |
|||
msgstr "b) die Kategorien personenbezogener Daten, die verarbeitet werden: <span class=\"T1\"> <br/></span><span class=\"T2\">□ </span><span class=\"T1\">Kundendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Lieferantendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Interessentendaten, </span><span class=\"T2\">□ </span><span class=\"T1\">Personaldaten</span>" |
|||
|
|||
#. 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 class=\"T1\"> </span><span class=\"T2\">□ </span>_______________________________<br/> <span class=\"T6\">oder</span> <span class=\"T1\"> </span><span class=\"T2\">□ </span><span class=\"T3\">keine</span><span class=\"T1\"> Offenlegung gegenüber Dritten beabsichtigt, </span><span class=\"T2\">□ </span><span class=\"T1\">Nicht bekannt</span>" |
|||
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: <span class=\"T1\"> </span><span class=\"T2\">□ </span>_______________________________<br/> <span class=\"T6\">oder</span> <span class=\"T1\"> </span><span class=\"T2\">□ </span><span class=\"T3\">keine</span><span class=\"T1\"> Offenlegung gegenüber Dritten beabsichtigt, </span><span class=\"T2\">□ </span><span class=\"T1\">Nicht bekannt</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: <span class=\"T1\"> </span>" |
|||
msgstr "d) geplante Dauer, für die die personenbezogenen Daten gespeichert werden: <span class=\"T1\"> </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "e) <span> <span class=\"T2\">□ </span>Recht auf Berichtigung oder Löschung der betreffenden personenbezogenen Daten <span class=\"T1\">besteht oder </span><span class=\"T2\">□ </span>Einschränkung der Verarbeitung durch den Verantwortlichen </span>" |
|||
msgstr "e) <span> <span class=\"T2\">□ </span>Recht auf Berichtigung oder Löschung der betreffenden personenbezogenen Daten <span class=\"T1\">besteht oder </span><span class=\"T2\">□ </span>Einschränkung der Verarbeitung durch den Verantwortlichen </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "f) <span> <span class=\"T2\">□ </span>das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde <span class=\"T5\">besteht</span></span>" |
|||
msgstr "f) <span> <span class=\"T2\">□ </span>das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde <span class=\"T5\">besteht</span></span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "g) die Herkunft der Daten <span class=\"T7\">ist von </span><span class=\"T2\">□ </span><span class=\"T4\">eigener Recherche, </span><span class=\"T2\">□ </span><span class=\"T4\">Auskunftei</span>" |
|||
msgstr "g) die Herkunft der Daten <span class=\"T7\">ist von </span><span class=\"T2\">□ </span><span class=\"T4\">eigener Recherche, </span><span class=\"T2\">□ </span><span class=\"T4\">Auskunftei</span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "h) <span class=\"T2\">□ </span>eine automatisierte Entscheidungsfindung <span class=\"T7\">mit diesen Daten findet nicht statt. </span>" |
|||
msgstr "h) <span class=\"T2\">□ </span>eine automatisierte Entscheidungsfindung <span class=\"T7\">mit diesen Daten findet nicht statt. </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:mail.template,subject:website_contact_extend.verification_email_template |
|||
msgid "mail verification link" |
|||
msgstr "mail verification link" |
|||
|
@ -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" |
|||
" <p>\n" |
|||
" % if object.partner_id\n" |
|||
" Dear <strong>${object.partner_id.name}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
" % if not object.partner_id\n" |
|||
" Dear <strong>${object.email_from}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
"\n" |
|||
" Please click on below link to verify your email address <strong>" |
|||
"${object.email_link}</strong>.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
msgstr "" |
|||
"\n" |
|||
" <p>\n" |
|||
" % if object.partner_id\n" |
|||
" Dear <strong>${object.partner_id.name}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
" % if not object.partner_id\n" |
|||
" Dear <strong>${object.email_from}</strong>,<br/>\n" |
|||
" % endif\n" |
|||
"\n" |
|||
" Please click on below link to verify your email address <strong>" |
|||
"${object.email_link}</strong>.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:mail.template,body_html:website_contact_extend.confirmation_email_template |
|||
msgid "" |
|||
"\n" |
|||
" <p>\n" |
|||
" Dear <strong>${user.partner_id.name}</strong>,<br/>\n" |
|||
"\n" |
|||
" This email address <strong> ${object.email}</strong> has been " |
|||
"verified by user.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
msgstr "" |
|||
"\n" |
|||
" <p>\n" |
|||
" Dear <strong>${user.partner_id.name}</strong>,<br/>\n" |
|||
"\n" |
|||
" This email address <strong> ${object.email}</strong> has been " |
|||
"verified by user.<br/>\n" |
|||
"\n" |
|||
" Thank you.\n" |
|||
" </p>\n" |
|||
" \n" |
|||
" " |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"(2) <span class=\"T2\">□ </span><span class=\"T7\">Die </" |
|||
"span>personenbezogene Daten <span class=\"T7\">werden nicht </span>an ein " |
|||
"Drittland oder an eine internationale Organisation übermittelt" |
|||
msgstr "" |
|||
"(2) <span class=\"T2\">□ </span>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<br/>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 "" |
|||
"<span class=\"T2\"> □ </span><span class=\"T1\">bis zum __. __. ____</" |
|||
"span> <span> <span class=\"T1\"> </span><span class=\"T2\">□ Bis zu ____ " |
|||
"Jahre □ </span><span class=\"T3\">Gesetzl. Aufbewahrungfrist</span></" |
|||
"span>" |
|||
msgstr "" |
|||
"<span class=\"T2\"> □ </span><span class=\"T1\">Until the __. __. " |
|||
"____</span> <span> <span class=\"T1\"> </span><span class=\"T2\">□ Up to " |
|||
"____ years □ </span><span class=\"T3\">Storage period by law</span></" |
|||
"span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"<span class=\"T2\">oder □ </span>Widerspruchsrecht gegen diese " |
|||
"Verarbeitung <span class=\"T1\">besteht</span>;" |
|||
msgstr "" |
|||
"<span class=\"T2\">or □ </span>Right to object to this processing," |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"<span class=\"T2\">□ </span><span class=\"T4\">Wenn doch: Die Daten werden</" |
|||
"span><span class=\"T7\"> nach folgender Art ausgewertet und gruppiert " |
|||
"_______________ </span>" |
|||
msgstr "" |
|||
"<span class=\"T2\">□ </span>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 "" |
|||
"<span class=\"T6\">Grund</span><span> <span class=\"T2\">□ Kontakt ____ mal " |
|||
"nicht erreicht □ Systemwechsel </span></span>" |
|||
msgstr "" |
|||
"<span class=\"T6\">Reason:</span> □ Contact ____ not reached □ System " |
|||
"change </span>" |
|||
|
|||
#. 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 n<span class=\"T1\">ach Artikel 15 DS-GVO</span>" |
|||
msgstr "" |
|||
"Information <span class=\"T1\">according to Article 15 of the GDPR</span>" |
|||
|
|||
#. 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) <span class=\"T1\">d</span>ie Verarbeitungszwecke:<span class=\"T1\"> </" |
|||
"span><span class=\"T2\">□ </span><span class=\"T1\">Kontaktaufnahme; </" |
|||
"span><span class=\"T2\">□ </span><span class=\"T3\">Geschäftsvorgänge</" |
|||
"span><span class=\"T1\">; </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T3\">S</span><span class=\"T1\">onstiges; </span>" |
|||
msgstr "" |
|||
"a) The processing purposes:<span class=\"T1\"> </span><span class=\"T2\">□ " |
|||
"</span><span class=\"T1\">Contact, </span><span class=\"T2\">□ </span><span " |
|||
"class=\"T3\">Transactions</span><span class=\"T1\">, </span><span class=" |
|||
"\"T2\">□ </span><span class=\"T1\">Other </span>" |
|||
|
|||
#. 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: <span " |
|||
"class=\"T1\"> <br/></span><span class=\"T2\">□ </span><span class=" |
|||
"\"T1\">Kundendaten, </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T1\">Lieferantendaten, </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T1\">Interessentendaten, </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T1\">Personaldaten</span>" |
|||
msgstr "" |
|||
"b) The categories of personal data being processed: <span class=\"T1\"> <br/" |
|||
"></span><span class=\"T2\">□ </span><span class=\"T1\">Customer data, </" |
|||
"span><span class=\"T2\">□ </span><span class=\"T1\">Supplier data, </" |
|||
"span><span class=\"T2\">□ </span><span class=\"T1\">Prospect data, </" |
|||
"span><span class=\"T2\">□ </span><span class=\"T1\">Personal data</span>" |
|||
|
|||
#. 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 class=\"T1\"> </span><span class=\"T2\">□ </" |
|||
"span>_______________________________<br/> <span class=\"T6\">oder</span> " |
|||
"<span class=\"T1\"> </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T3\">keine</span><span class=\"T1\"> Offenlegung gegenüber Dritten " |
|||
"beabsichtigt, </span><span class=\"T2\">□ </span><span class=\"T1\">Nicht " |
|||
"bekannt</span>" |
|||
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 class=\"T1\"> </" |
|||
"span><span class=\"T2\">□ </span>_______________________________<br/> <span " |
|||
"class=\"T6\">or</span> <span class=\"T1\"> </span><span class=\"T2\">□ </" |
|||
"span><span class=\"T3\">No</span><span class=\"T1\"> disclosure to third " |
|||
"parties, </span><span class=\"T2\">□ </span><span class=\"T1\">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: <span class=\"T1\"> </span>" |
|||
msgstr "" |
|||
"d) Planned duration for which the personal data is stored: <span class=" |
|||
"\"T1\"> </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"e) <span> <span class=\"T2\">□ </span>Recht auf Berichtigung oder Löschung " |
|||
"der betreffenden personenbezogenen Daten <span class=\"T1\">besteht " |
|||
"oder </span><span class=\"T2\">□ </span>Einschränkung der " |
|||
"Verarbeitung durch den Verantwortlichen </span>" |
|||
msgstr "" |
|||
"e)<span> <span class=\"T2\">□ </span>Right to rectification or deletion of " |
|||
"personal data concerned, or <span class=\"T2\">□ </span>Restriction of " |
|||
"processing by the controller , or </span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"f) <span> <span class=\"T2\">□ </span>das Bestehen eines Beschwerderechts " |
|||
"bei einer Aufsichtsbehörde <span class=\"T5\">besteht</span></span>" |
|||
msgstr "" |
|||
"f)<span> <span class=\"T2\">□ </span>The existence of a right to complain to " |
|||
"a supervisory authority</span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"g) die Herkunft der Daten <span class=\"T7\">ist von </span><span class=" |
|||
"\"T2\">□ </span><span class=\"T4\">eigener Recherche, </span><span class=" |
|||
"\"T2\">□ </span><span class=\"T4\">Auskunftei</span>" |
|||
msgstr "" |
|||
"g) The origin of the data is from <span class=\"T2\">□ </span><span class=" |
|||
"\"T4\">Own research, </span><span class=\"T2\">□ </span><span class=" |
|||
"\"T4\">Credit reference agency</span>" |
|||
|
|||
#. module: website_contact_extend |
|||
#: model:ir.ui.view,arch_db:website_contact_extend.report_contact_document |
|||
msgid "" |
|||
"h) <span class=\"T2\">□ </span>eine automatisierte Entscheidungsfindung " |
|||
"<span class=\"T7\">mit diesen Daten findet nicht statt. </span>" |
|||
msgstr "" |
|||
"h) <span class=\"T2\">□ </span>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" |
@ -0,0 +1,3 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import res_partner |
@ -0,0 +1,28 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
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") |
|||
|
|||
|
|||
class CrmLead(models.Model): |
|||
_inherit = "crm.lead" |
|||
|
|||
email_link = fields.Char("Email verification link") |
@ -0,0 +1 @@ |
|||
The contact mode fields will be added to the Contact Site automatically. |
@ -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 |
@ -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. |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,164 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
<data> |
|||
<report |
|||
id="report_contact" |
|||
string="Contact Report" |
|||
model="res.partner" |
|||
report_type="qweb-pdf" |
|||
file="website_contact_extend.contact_report" |
|||
name="website_contact_extend.contact_report" |
|||
/> |
|||
|
|||
<template id="contact_report"> |
|||
<t t-call="web.html_container"> |
|||
<t t-foreach="docs" t-as="doc"> |
|||
<t t-call="website_contact_extend.report_contact_document" t-lang="doc.lang"/> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
|
|||
<template id="report_contact_document"> |
|||
<t t-call="web.external_layout"> |
|||
<div class="page"> |
|||
<div class="oe_structure"/> |
|||
<h2 class="P8"> |
|||
<a id="a__Auskunft_nach_Artikel_15_DS-GVO"> |
|||
<span/> |
|||
</a> |
|||
Auskunft n |
|||
<span class="T1">ach Artikel 15 DS-GVO</span> |
|||
</h2> |
|||
<p class="Text_20_body"/> |
|||
<p class="P1">Auskunft für: |
|||
<span class="T8"> |
|||
<span t-field="doc.name"/> |
|||
</span> |
|||
</p> |
|||
<p class="Text_20_body">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: |
|||
</p> |
|||
<p class="P4">a) die Verarbeitungszwecke: |
|||
<span class="T1"></span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Kontaktaufnahme;</span> |
|||
<span class="T2">□</span> |
|||
<span class="T3">Geschäftsvorgänge;</span> |
|||
<span class="T2">□</span> |
|||
<span class="T3">Sonstiges;</span> |
|||
</p> |
|||
<p class="P2">b) die Kategorien personenbezogener Daten, die verarbeitet werden: |
|||
<span class="T1"> |
|||
<br/> |
|||
</span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Kundendaten,</span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Lieferantendaten,</span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Interessentendaten,</span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Personaldaten</span> |
|||
</p> |
|||
<p class="P2">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 class="T2">□</span>_______________________________ |
|||
<br/> |
|||
<span class="T6">oder</span> |
|||
<span class="T2">□</span> |
|||
<span class="T3">keine Offenlegung gegenüber Dritten beabsichtigt,</span> |
|||
<span class="T2">□</span> |
|||
<span class="T1">Nicht bekannt</span> |
|||
</p> |
|||
<p class="P2">d) geplante Dauer, für die die personenbezogenen Daten gespeichert werden: |
|||
</p> |
|||
<p class="P4"> |
|||
<span class="T2">□ bis zum __. __. ____</span> |
|||
<span class="T2">□ Bis zu ____ Jahre</span> |
|||
<span class="T3">□ Gesetzl. Aufbewahrungfrist</span> |
|||
</p> |
|||
<p class="P2"> |
|||
<span class="T6">Grund</span> |
|||
<span class="T2">□ Kontakt ____ mal nicht erreicht □ Systemwechsel</span> |
|||
</p> |
|||
<p class="P2">e) |
|||
<span>□ Recht auf Berichtigung oder Löschung der betreffenden |
|||
personenbezogenen Daten besteht oder |
|||
</span> |
|||
<span>□ Einschränkung der Verarbeitung durch den Verantwortlichen |
|||
</span> |
|||
</p> |
|||
<p class="P2"><span>oder □ Widerspruchsrecht gegen diese Verarbeitung besteht;</span> |
|||
</p> |
|||
<p class="P3">f) |
|||
<span>□ das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde besteht |
|||
</span> |
|||
</p> |
|||
<p class="P5">g) die Herkunft der Daten |
|||
<span class="T7">ist von</span> |
|||
<span class="T2">□</span> |
|||
<span class="T4">eigener Recherche,</span> |
|||
<span class="T2">□</span> |
|||
<span class="T4">Auskunftei</span> |
|||
</p> |
|||
<p class="P5">h)<span class="T2">□</span>eine automatisierte Entscheidungsfindung |
|||
<span class="T7">mit diesen Daten findet nicht statt.</span> |
|||
</p> |
|||
<p class="P5"> |
|||
<span class="T2">□</span> |
|||
<span class="T4">Wenn doch: Die Daten werden</span> |
|||
<span class="T7">nach folgender Art ausgewertet und gruppiert _______________</span> |
|||
</p> |
|||
<p class="P5">(2) |
|||
<span class="T2">□</span> |
|||
<span class="T7">Die</span>personenbezogene Daten<span class="T7">werden nicht</span>an ein |
|||
Drittland oder an eine internationale Organisation übermittelt |
|||
</p> |
|||
<p class="Text_20_body">(3) Der Verantwortliche stellt eine Kopie der personenbezogenen Daten, die |
|||
Gegenstand der Verarbeitung sind, zur Verfügung: |
|||
</p> |
|||
<p class="P6"> |
|||
<p t-if="doc.name"> |
|||
Name: |
|||
<span t-field="doc.name"/> |
|||
</p> |
|||
<p t-if="doc.email"> |
|||
Email: |
|||
<span t-field="doc.email"/> |
|||
</p> |
|||
<p t-if="doc.phone"> |
|||
Phone: |
|||
<span t-field="doc.phone"/> |
|||
</p> |
|||
</p> |
|||
<p class="P6"> |
|||
Adresse: |
|||
<span t-field="doc.street"/> |
|||
<span t-field="doc.zip"/> |
|||
<span t-field="doc.city"/> |
|||
<span t-field="doc.country_id.name"/> |
|||
</p> |
|||
<p class="Text_20_body">(4) Das Recht auf Erhalt einer Kopie gemäß Absatz 3 darf die Rechte und |
|||
Freiheiten anderer<br/>Personen nicht beeinträchtigen. |
|||
</p> |
|||
<p class="Text_20_body"></p> |
|||
<p class="P7">Auskunftsgeber: |
|||
<span class="T8"> |
|||
<span t-field="doc.user_id.name"/>, |
|||
<span t-field="doc.user_id.company_id.name"/>, |
|||
<span t-field="doc.user_id.company_id.street"/>, |
|||
<span t-field="doc.user_id.company_id.zip"/> |
|||
<span t-field="doc.user_id.company_id.city"/> |
|||
</span> |
|||
</p> |
|||
|
|||
</div> |
|||
</t> |
|||
</template> |
|||
|
|||
</data> |
|||
</odoo> |
@ -0,0 +1,22 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
|
|||
<record id="view_partner_form_gdpr_inherit" model="ir.ui.view"> |
|||
<field name="name">res.partner.form</field> |
|||
<field name="model">res.partner</field> |
|||
<field eval="1" name="priority"/> |
|||
<field name="inherit_id" ref="base.view_partner_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="website" position="after"> |
|||
<!--<field name="contact_type" />--> |
|||
<field name="phone_contact" readonly="True" /> |
|||
<field name="email_contact" readonly="True" /> |
|||
<field name="letter_contact" readonly="True" /> |
|||
<field name="is_verified" readonly="True" /> |
|||
<field name="last_updated" readonly="True" /> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,29 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
<template id="contactus_form_inherited" name="Contact Form" inherit_id="website_crm.contactus_form" customize_show="True"> |
|||
<xpath expr="//div[@class='form-group form-field o_website_form_required_custom'][last()]" position="after"> |
|||
<div class="form-group form-field o_website_form_required_custom"> |
|||
<label class="col-md-3 col-sm-4 control-label" for="contact_type">In the future I want to be contacted by</label> |
|||
<div class="col-md-7 col-sm-8"> |
|||
<div class="checkbox>"><label><input type="checkbox" name="letter_contact" value="letter_contact"/> Contact by Letter </label></div> |
|||
<div class="checkbox>"><label><input type="checkbox" name="email_contact" value="email_contact"/> Contact by E-Mail </label></div> |
|||
<div class="checkbox>"><label><input type="checkbox" name="phone_contact" value="phone_contact"/> Contact by Phone </label></div> |
|||
<!--<select class="form-control" name="contact_type" id="contact_type"> |
|||
<option value="no_contact">I do not want to be contacted.</option> |
|||
<option value="email_contact">I only want to be contacted by Email.</option> |
|||
<option value="phone_contact">I only want to be contacted by Phone.</option> |
|||
<option value="email_phone_contact">You can contact me by Email or Phone.</option> |
|||
</select>--> |
|||
</div> |
|||
</div> |
|||
<div class="form-group form-field"> |
|||
<label class="col-md-3 col-sm-4 control-label" for="contact_type">Information request concerning data about the personally</label> |
|||
<div class="col-md-7 col-sm-8"> |
|||
<input type="checkbox" name="send_mail" value="send_mail"/> |
|||
</div> |
|||
</div> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue