Browse Source
Final Commit for website_contract_extend
Final Commit for website_contract_extend
new file: website_contact_extend/README.rst new file: website_contact_extend/__init__.py new file: website_contact_extend/__manifest__.py new file: website_contact_extend/controllers/__init__.py new file: website_contact_extend/controllers/contactby.py new file: website_contact_extend/controllers/myfilter.py new file: website_contact_extend/data/email_templates.xml new file: website_contact_extend/i18n/de.po new file: website_contact_extend/i18n/en_US.po new file: website_contact_extend/models/__init__.py new file: website_contact_extend/models/res_partner.py new file: website_contact_extend/readme/CONFIGURE.rst new file: website_contact_extend/readme/DESCRIPTION.rst new file: website_contact_extend/readme/USAGE.rst new file: website_contact_extend/static/description/icon.png new file: website_contact_extend/static/description/index.html new file: website_contact_extend/static/src/js/contactus.js new file: website_contact_extend/views/contact_report.xml new file: website_contact_extend/views/disp_msg_template.xml new file: website_contact_extend/views/email_template.xml new file: website_contact_extend/views/means_of_contact.xml new file: website_contact_extend/views/res_partner.xml new file: website_contact_extend/views/website_contact.xmlpull/36/head
Christopher Lorenz
5 years ago
23 changed files with 2358 additions and 0 deletions
-
74website_contact_extend/README.rst
-
4website_contact_extend/__init__.py
-
40website_contact_extend/__manifest__.py
-
4website_contact_extend/controllers/__init__.py
-
312website_contact_extend/controllers/contactby.py
-
346website_contact_extend/controllers/myfilter.py
-
74website_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
-
38website_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
-
172website_contact_extend/static/description/index.html
-
42website_contact_extend/static/src/js/contactus.js
-
164website_contact_extend/views/contact_report.xml
-
17website_contact_extend/views/disp_msg_template.xml
-
66website_contact_extend/views/email_template.xml
-
105website_contact_extend/views/means_of_contact.xml
-
22website_contact_extend/views/res_partner.xml
-
146website_contact_extend/views/website_contact.xml
@ -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,40 @@ |
|||||
|
################################################################### |
||||
|
# |
||||
|
# 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': '12.0.1.0.0', |
||||
|
'license': 'AGPL-3', |
||||
|
'category': 'Data Protection', |
||||
|
'depends': ['base', |
||||
|
'contacts', |
||||
|
'website_crm', |
||||
|
'mail', |
||||
|
'contacts' |
||||
|
], |
||||
|
|
||||
|
'data': [ |
||||
|
'views/website_contact.xml', |
||||
|
'views/res_partner.xml', |
||||
|
'views/contact_report.xml', |
||||
|
'data/email_templates.xml', |
||||
|
'views/means_of_contact.xml', |
||||
|
'views/disp_msg_template.xml', |
||||
|
'views/email_template.xml' |
||||
|
# 'security/ir.model.access.csv', |
||||
|
], |
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
||||
|
|
||||
|
from . import myfilter |
||||
|
from . import contactby |
@ -0,0 +1,312 @@ |
|||||
|
# 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 |
||||
|
import base64 |
||||
|
import json |
||||
|
|
||||
|
link_data = {} |
||||
|
|
||||
|
|
||||
|
class ContactByController(http.Controller): |
||||
|
|
||||
|
@http.route('/check_user_exists/', type='json', auth="public", |
||||
|
methods=['POST'], website=True, csrf=False) |
||||
|
def check_user_exists(self, email_from, company_name, **kwargs): |
||||
|
res_part_rec = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', email_from), |
||||
|
('company_name', '=', company_name)]) |
||||
|
|
||||
|
res_part_email = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', email_from)]) |
||||
|
|
||||
|
if len(res_part_rec) > 0 or len(res_part_rec) == 0 \ |
||||
|
and len(res_part_email) > 0: |
||||
|
# if partner: |
||||
|
return True |
||||
|
return False |
||||
|
|
||||
|
@http.route('/contact-us-form-review/', |
||||
|
type='http', |
||||
|
auth="public", |
||||
|
methods=['GET'], |
||||
|
website=True) |
||||
|
def contact_us_form_review(self, **kwargs): |
||||
|
# print(kwargs.get("data")) |
||||
|
# link_data =base64.b64decode(kwargs.get("data")).decode("utf-8") \ |
||||
|
# print('FD') |
||||
|
# print(request.session['form_data']) |
||||
|
return http.request.render( |
||||
|
'website_contact_extend.review_form', |
||||
|
{'form_data': request.session['form_data'], |
||||
|
'form_data_dict': request.session['form_data_dict']}) |
||||
|
|
||||
|
@http.route('/contact_by/<string:data>', |
||||
|
type='http', |
||||
|
auth="public", |
||||
|
methods=['GET'], |
||||
|
website=True) |
||||
|
def contact_by(self, data, **kwargs): |
||||
|
global link_data |
||||
|
# print(kwargs.get("data")) |
||||
|
# link_data =base64.b64decode(kwargs.get("data")).decode("utf-8") \ |
||||
|
link_data = data |
||||
|
return http.request.render('website_contact_extend.contactby_form') |
||||
|
# return "<center style='color:red'>You are at the right \ |
||||
|
# place</center>" |
||||
|
|
||||
|
@http.route('/contact_by_send/<string:model_name>', |
||||
|
type='http', |
||||
|
auth="public", |
||||
|
methods=['POST'], |
||||
|
website=True) |
||||
|
def contact_by_send(self, model_name, **kwargs): |
||||
|
global link_data |
||||
|
# form_contact_name = "" |
||||
|
|
||||
|
model_record = request.env['ir.model'].sudo().search([ |
||||
|
('model', '=', model_name), |
||||
|
('website_form_access', '=', True) |
||||
|
]) |
||||
|
|
||||
|
means_of_cont_dict = request.params |
||||
|
|
||||
|
if 'letter_contact' in means_of_cont_dict: |
||||
|
letter_name = "True" |
||||
|
else: |
||||
|
letter_name = "False" |
||||
|
|
||||
|
if 'email_contact' in means_of_cont_dict: |
||||
|
email_name = "True" |
||||
|
else: |
||||
|
email_name = "False" |
||||
|
|
||||
|
if 'phone_contact' in means_of_cont_dict: |
||||
|
phone_name = "True" |
||||
|
else: |
||||
|
phone_name = "False" |
||||
|
|
||||
|
if not model_record: |
||||
|
return json.dumps(False) |
||||
|
|
||||
|
# print(link_data) |
||||
|
link_data_split = base64.b64decode( |
||||
|
link_data).decode("utf-8").split("####") |
||||
|
# print(link_data_split) |
||||
|
|
||||
|
email = link_data_split[0] |
||||
|
contact_name = link_data_split[1] |
||||
|
|
||||
|
partner = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', email), |
||||
|
('name', '=', contact_name) |
||||
|
]) |
||||
|
if not partner: |
||||
|
partner = request.env['res.partner'].sudo().create( |
||||
|
{'name': contact_name, 'email': email}) |
||||
|
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.session['form_builder_model_model'] = model_record.model |
||||
|
request.session['form_builder_model'] = model_record.name |
||||
|
request.session['form_builder_id'] = partner[0].id |
||||
|
|
||||
|
return json.dumps({'id': partner[0].id}) |
||||
|
|
||||
|
# return http.request.render('website_contact_extend.\ |
||||
|
# disp_msg_template', {'message_success': \ |
||||
|
# 'Means of contact changed!'}) |
||||
|
# return "<p style='color: green'>Means of contact changed!</p>" |
||||
|
# 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 "<p style='color: red'>Could not change your means\ |
||||
|
# of contact. Please request a new link</p>" |
||||
|
|
||||
|
|
||||
|
class FormReview(parent_controller.WebsiteForm): |
||||
|
|
||||
|
@http.route('/form_review_send/<string:model_name>', |
||||
|
type='http', |
||||
|
auth="public", |
||||
|
methods=['POST'], |
||||
|
website=True) |
||||
|
def form_review_send(self, model_name, **kwargs): |
||||
|
# model_name = 'crm.lead' |
||||
|
|
||||
|
res_partner_data = request.session['form_data_dict'] |
||||
|
model_record = request.env['ir.model'].sudo().search([ |
||||
|
('model', '=', model_name), |
||||
|
('website_form_access', '=', True) |
||||
|
]) |
||||
|
|
||||
|
res_part_rec = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', res_partner_data['email_from']), |
||||
|
('company_name', '=', res_partner_data['partner_name'])]) |
||||
|
|
||||
|
res_part_email = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', res_partner_data['email_from'])], limit=1) |
||||
|
|
||||
|
# if len(res_part_rec) == 0 and res_part_email: |
||||
|
# print('Company change detected!') |
||||
|
|
||||
|
id_record = self.insert_record( |
||||
|
request, |
||||
|
model_record, |
||||
|
res_partner_data, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
|
||||
|
if len(res_part_email) > 0 and len(res_part_rec) == 0 and \ |
||||
|
res_part_email[0].is_verified is True: |
||||
|
|
||||
|
res_cat = request.env['res.partner.category'].search( |
||||
|
[('name', '=', 'New')]) |
||||
|
cat_id = 0 |
||||
|
|
||||
|
if len(res_cat) == 0: |
||||
|
id_part_res_cat = self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner.category')]), |
||||
|
{'name': 'New', 'create_uid': request.env.uid}, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
cat_id = id_part_res_cat |
||||
|
else: |
||||
|
cat_id = res_cat[0].id |
||||
|
|
||||
|
res_partner_dict = {} |
||||
|
|
||||
|
res_partner_dict['name'] = res_partner_data['contact_name'] |
||||
|
res_partner_dict['display_name'] = res_partner_data['contact_name'] |
||||
|
res_partner_dict['email'] = res_partner_data['email_from'] |
||||
|
res_partner_dict['company_name'] = res_partner_data['partner_name'] |
||||
|
res_partner_dict['category_id'] = [[6, False, [cat_id]]] |
||||
|
# res_partner_dict['parent_id'] = res_part_email[0].id |
||||
|
if 'phone' in res_partner_data: |
||||
|
res_partner_dict['phone'] = res_partner_data['phone'] |
||||
|
|
||||
|
update_parent_partner = request.env['res.partner'].sudo().search([ |
||||
|
('id', '=', res_part_email[0].id)]) |
||||
|
|
||||
|
if update_parent_partner and len(update_parent_partner) > 0: |
||||
|
update_parent_partner[0].category_id = False |
||||
|
|
||||
|
update_parent_partner_comp = \ |
||||
|
request.env['res.partner'].sudo().search([ |
||||
|
('id', '=', res_part_email[0].parent_id.id)]) |
||||
|
|
||||
|
if update_parent_partner_comp and \ |
||||
|
len(update_parent_partner_comp) > 0: |
||||
|
update_parent_partner_comp[0].category_id = False |
||||
|
|
||||
|
res_partner_company_dict = res_partner_dict.copy() |
||||
|
res_partner_company_dict.pop('email') |
||||
|
res_partner_company_dict.pop('company_name') |
||||
|
# res_partner_company_dict.pop('parent_id') |
||||
|
if 'phone' in res_partner_company_dict: |
||||
|
res_partner_company_dict.pop('phone') |
||||
|
|
||||
|
res_partner_company_dict['name'] = res_partner_data['partner_name'] |
||||
|
res_partner_company_dict['display_name'] = \ |
||||
|
res_partner_data['partner_name'] |
||||
|
res_partner_company_dict['customer'] = False |
||||
|
res_partner_company_dict['is_company'] = True |
||||
|
res_partner_company_dict['company_type'] = 'company' |
||||
|
|
||||
|
# res_partner_dict['parent_id'] = id_record_res_company |
||||
|
|
||||
|
id_record_res = self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner')]), |
||||
|
res_partner_dict, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
|
||||
|
res_partner_company_dict['child_ids'] = [ |
||||
|
[6, 'virtual_1798', [id_record_res]]] |
||||
|
# id_record_res_company = self.insert_record( |
||||
|
self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner')]), |
||||
|
res_partner_company_dict, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
|
||||
|
if update_parent_partner and len(update_parent_partner) > 0: |
||||
|
update_parent_partner[0].child_ids = [ |
||||
|
[6, 'virtual_1798', [id_record_res]]] |
||||
|
|
||||
|
id_record = self.insert_record( |
||||
|
request, |
||||
|
model_record, |
||||
|
res_partner_data, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
if id_record: |
||||
|
self.insert_attachment( |
||||
|
model_record, |
||||
|
id_record, |
||||
|
'' |
||||
|
) |
||||
|
if id_record 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('') + "####" +\ |
||||
|
str('') + "####" +\ |
||||
|
str('')+"####" + \ |
||||
|
str(res_partner_data['send_mail']) + "####" + \ |
||||
|
str(res_partner_data['request_gdpdr']) + "####" + \ |
||||
|
str(id_record) + "####" + \ |
||||
|
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' |
||||
|
).sudo().send_mail(id_record) |
||||
|
|
||||
|
request.env.ref('website_contact_extend.\ |
||||
|
email_template_onchange_data').sudo( |
||||
|
).send_mail(id_record) |
||||
|
|
||||
|
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,346 @@ |
|||||
|
# 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: |
||||
|
|
||||
|
contact_url = '%s/contact_by/%s' % ( |
||||
|
request.env['ir.config_parameter']. |
||||
|
sudo().get_param('web.base.url'), |
||||
|
kwargs.get("data")) |
||||
|
|
||||
|
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] |
||||
|
personal_data = link_data[5] |
||||
|
request_gdpdr = link_data[6] |
||||
|
crm_id = link_data[7] |
||||
|
link_date = link_data[8] |
||||
|
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 not partner: |
||||
|
partner = request.env['res.partner'].sudo().create( |
||||
|
{'name': contact_name, 'email': email}) |
||||
|
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) |
||||
|
|
||||
|
page_render_html = "<center style='color:green'>"\ |
||||
|
"Thank You! Your email address has been verified!"\ |
||||
|
"</center>" |
||||
|
|
||||
|
# print(request_gdpdr) |
||||
|
if request_gdpdr == "True": |
||||
|
# print("Hit") |
||||
|
page_render_html = page_render_html + "<br/>"\ |
||||
|
"<div style='text-align: center'>"\ |
||||
|
"Click <a href='" + contact_url + \ |
||||
|
"'>here</a> to choose how you"\ |
||||
|
" want to be contacted</div>" |
||||
|
|
||||
|
if personal_data == "True": |
||||
|
|
||||
|
request.env.ref( |
||||
|
'website_contact_extend.\ |
||||
|
email_template_information_request' |
||||
|
).sudo().send_mail(int(crm_id)) |
||||
|
|
||||
|
request.env.ref( |
||||
|
'website_contact_extend.requested_info_email_template' |
||||
|
).sudo().send_mail(int(crm_id)) |
||||
|
|
||||
|
return page_render_html |
||||
|
|
||||
|
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) |
||||
|
]) |
||||
|
request.session['review_form'] = "" |
||||
|
request.session['form_data'] = "" |
||||
|
request.session['form_data_dict'] = "" |
||||
|
# request.clear_caches() |
||||
|
|
||||
|
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 = False |
||||
|
request_gdpdr = False |
||||
|
|
||||
|
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 |
||||
|
if field_name == "send_mail" \ |
||||
|
and field_value == "send_mail": |
||||
|
send_mail = 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]}) |
||||
|
|
||||
|
res_partner_data = data['record'] |
||||
|
|
||||
|
try: |
||||
|
# contact_name = data.get("record").get("contact_name") |
||||
|
email = data.get("record").get("email_from") |
||||
|
company = data.get("record").get("partner_name") |
||||
|
res_part_rec = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', email), |
||||
|
('company_name', '=', company)]) |
||||
|
# ('name', '=', contact_name)]) |
||||
|
|
||||
|
# ('company_name', '=', company) |
||||
|
res_part_email = request.env['res.partner'].sudo().search([ |
||||
|
('email', '=', email)]) |
||||
|
|
||||
|
if len(res_part_rec) > 0 or len(res_part_rec) == 0 \ |
||||
|
and len(res_part_email) > 0: |
||||
|
request.session['review_form'] = "/contact-us-form-review" |
||||
|
|
||||
|
for chkbx_val_out in data['custom'].split('\n'): |
||||
|
if chkbx_val_out != '': |
||||
|
for chkbx_val_in in chkbx_val_out.split(':'): |
||||
|
if chkbx_val_in.strip() == "request_gdpdr": |
||||
|
request_gdpdr = True |
||||
|
break |
||||
|
|
||||
|
id_record = res_part_email[0].id |
||||
|
|
||||
|
rec_form = data.get('record') |
||||
|
# if 'phone' not in data.get('record'): |
||||
|
# rec_form['phone'] = "" |
||||
|
lst_form_rec = [] |
||||
|
lst_form_rec.append(rec_form['email_from']) |
||||
|
lst_form_rec.append(rec_form['name']) |
||||
|
lst_form_rec.append(rec_form['partner_name']) |
||||
|
lst_form_rec.append(rec_form['medium_id']) |
||||
|
lst_form_rec.append(rec_form['contact_name']) |
||||
|
lst_form_rec.append(rec_form['team_id']) |
||||
|
lst_form_rec.append(rec_form['description']) |
||||
|
lst_form_rec.append(rec_form['user_id']) |
||||
|
lst_form_rec.append(request_gdpdr) |
||||
|
lst_form_rec.append(send_mail) |
||||
|
|
||||
|
rec_form['send_mail'] = send_mail |
||||
|
rec_form['request_gdpdr'] = request_gdpdr |
||||
|
if 'phone' in rec_form: |
||||
|
lst_form_rec.append(rec_form['phone']) |
||||
|
else: |
||||
|
lst_form_rec.append('') |
||||
|
|
||||
|
request.session['form_data'] = lst_form_rec |
||||
|
request.session['form_data_dict'] = rec_form |
||||
|
|
||||
|
# 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 ? |
||||
|
else: |
||||
|
# code for adding new customer |
||||
|
request.session['review_form'] = "/contactus-thank-you" |
||||
|
|
||||
|
res_cat = request.env['res.partner.category'].search( |
||||
|
[('name', '=', 'New')]) |
||||
|
cat_id = 0 |
||||
|
|
||||
|
if len(res_cat) == 0: |
||||
|
id_part_res_cat = self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner.category')]), |
||||
|
{'name': 'New', 'create_uid': request.env.uid}, |
||||
|
'', |
||||
|
'' |
||||
|
) |
||||
|
cat_id = id_part_res_cat |
||||
|
else: |
||||
|
cat_id = res_cat[0].id |
||||
|
|
||||
|
res_partner_dict = {} |
||||
|
|
||||
|
# if 'phone' not in res_partner_data: |
||||
|
# res_partner_data['phone'] = "" |
||||
|
|
||||
|
res_partner_dict['name'] = res_partner_data['contact_name'] |
||||
|
res_partner_dict['display_name'] = \ |
||||
|
res_partner_data['contact_name'] |
||||
|
res_partner_dict['email'] = res_partner_data['email_from'] |
||||
|
if 'phone' in res_partner_data: |
||||
|
res_partner_dict['phone'] = res_partner_data['phone'] |
||||
|
res_partner_dict['company_name'] = \ |
||||
|
res_partner_data['partner_name'] |
||||
|
res_partner_dict['category_id'] = [[6, False, [cat_id]]] |
||||
|
|
||||
|
res_partner_company_dict = res_partner_dict.copy() |
||||
|
res_partner_company_dict.pop('email') |
||||
|
res_partner_company_dict.pop('company_name') |
||||
|
if 'phone' in res_partner_company_dict: |
||||
|
res_partner_company_dict.pop('phone') |
||||
|
|
||||
|
res_partner_company_dict['name'] = \ |
||||
|
res_partner_data['partner_name'] |
||||
|
res_partner_company_dict['display_name'] = \ |
||||
|
res_partner_data['partner_name'] |
||||
|
res_partner_company_dict['customer'] = False |
||||
|
res_partner_company_dict['is_company'] = True |
||||
|
res_partner_company_dict['company_type'] = 'company' |
||||
|
|
||||
|
id_record_res_company = self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner')]), |
||||
|
res_partner_company_dict, |
||||
|
'', |
||||
|
data.get('meta') |
||||
|
) |
||||
|
|
||||
|
res_partner_dict['parent_id'] = id_record_res_company |
||||
|
|
||||
|
self.insert_record( |
||||
|
request, |
||||
|
request.env['ir.model'].search( |
||||
|
[('model', '=', 'res.partner')]), |
||||
|
res_partner_dict, |
||||
|
'', |
||||
|
data.get('meta') |
||||
|
) |
||||
|
|
||||
|
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'] |
||||
|
) |
||||
|
|
||||
|
for chkbx_val_out in data['custom'].split('\n'): |
||||
|
if chkbx_val_out != '': |
||||
|
for chkbx_val_in in chkbx_val_out.split(':'): |
||||
|
if chkbx_val_in.strip() == "request_gdpdr": |
||||
|
request_gdpdr = True |
||||
|
break |
||||
|
|
||||
|
# if request_gdpdr == True: |
||||
|
|
||||
|
if request_gdpdr is True or send_mail is True: |
||||
|
if id_record 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(send_mail) + "####" + \ |
||||
|
str(request_gdpdr) + "####" + \ |
||||
|
str(id_record) + "####" + \ |
||||
|
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' |
||||
|
).sudo().send_mail(id_record) |
||||
|
|
||||
|
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,74 @@ |
|||||
|
<?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> |
||||
|
|
||||
|
<record id="requested_info_email_template" model="mail.template"> |
||||
|
<field name="name">Requested Information</field> |
||||
|
<field name="subject">Requested Information</field> |
||||
|
<field name="email_to">${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> |
||||
|
Dear <strong>${object.contact_name}</strong>,<br/><br/> |
||||
|
|
||||
|
Thank you very much for your contact. Your request: |
||||
|
<table class="table"> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td><strong>Subject</strong></td><td>${object.name}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td><strong>Question</strong></td><td>${object.description[:-50]}</td> |
||||
|
</tr> |
||||
|
<tr>We will come back to you shortly.</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<br/><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,38 @@ |
|||||
|
# 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): |
||||
|
return super(ResContacts, self).write(vals) |
||||
|
|
||||
|
@api.model |
||||
|
def create(self, vals): |
||||
|
return super(ResContacts, self).create(vals) |
||||
|
|
||||
|
|
||||
|
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 |
172
website_contact_extend/static/description/index.html
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,42 @@ |
|||||
|
odoo.define('website_contact_extend.success_page', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var ajax = require("web.ajax"); |
||||
|
|
||||
|
$(document).on('blur', '.input_email_from', function (ev) { |
||||
|
console.log(ev); |
||||
|
var email_from = $('.input_email_from').val(); |
||||
|
var company_name = $('.input_company').val(); |
||||
|
|
||||
|
return ajax.jsonRpc('/check_user_exists', 'call', { |
||||
|
email_from: email_from, |
||||
|
company_name: company_name, |
||||
|
}).then(function (res) { |
||||
|
var contactus_page = "/contactus-thank-you"; |
||||
|
if (res) { |
||||
|
contactus_page = "/contact-us-form-review"; |
||||
|
} |
||||
|
var formaction_webform = 'form[action="/website_form/"]'; |
||||
|
$(formaction_webform).attr('data-success_page', contactus_page); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
$(document).on('blur', '.input_company', function (ev) { |
||||
|
console.log(ev); |
||||
|
var email_from = $('.input_email_from').val(); |
||||
|
var company_name = $('.input_company').val(); |
||||
|
|
||||
|
return ajax.jsonRpc('/check_user_exists', 'call', { |
||||
|
email_from: email_from, |
||||
|
company_name: company_name, |
||||
|
}).then(function (res) { |
||||
|
var contactus_page = "/contactus-thank-you"; |
||||
|
if (res) { |
||||
|
contactus_page = "/contact-us-form-review"; |
||||
|
} |
||||
|
var formaction_webform = 'form[action="/website_form/"]'; |
||||
|
$(formaction_webform).attr('data-success_page', contactus_page); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
}); |
@ -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,17 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<template id="disp_msg_template"> |
||||
|
<t t-call="website.layout"> |
||||
|
<div class="oe_structure"> |
||||
|
<div class="container"> |
||||
|
<div class="page"> |
||||
|
<div class="row"> |
||||
|
<p id="message_success" style="color: green;"></p> |
||||
|
<p id="message_failure" style="color: red;"></p> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</template> |
||||
|
</odoo> |
@ -0,0 +1,66 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||
|
<odoo> |
||||
|
<data noupdate="1"> |
||||
|
<record id="email_template_onchange_data" model="mail.template"> |
||||
|
<field name="name">Data Change Email Template</field> |
||||
|
<field name="subject">Change has been made</field> |
||||
|
<field name="model_id" ref="crm.model_crm_lead"/> |
||||
|
<field name="auto_delete" eval="True"/> |
||||
|
<field name="body_html"> |
||||
|
<![CDATA[ |
||||
|
<p>Dear Sir/Madam,<br/><br/> |
||||
|
User ${(object.contact_name)} with the ID ${(object.id)} the has made a change in the record.<br/><p> |
||||
|
|
||||
|
<p>Please find the user and his/her details below.<br/></p> |
||||
|
<table class="table table-striped"> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>Name</td><td>${object.contact_name}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>Company</td><td>${object.partner_name}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>Email</td><td>${object.email_from}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>Phone</td><td>${object.phone}</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<br/><br/> |
||||
|
Thank you. |
||||
|
]]> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="email_template_information_request" model="mail.template"> |
||||
|
<field name="name">Information Request Template</field> |
||||
|
<field name="subject">Information request on stored data for user ${object.email_from} from contact form</field> |
||||
|
<field name="model_id" ref="crm.model_crm_lead"/> |
||||
|
<field name="auto_delete" eval="True"/> |
||||
|
<field name="body_html"> |
||||
|
<![CDATA[ |
||||
|
<p>Dear colleagues,<br/><br/> |
||||
|
<p>following customer has requested an information about personal data stored in odoo:<br/></p> |
||||
|
<table class="table"> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>Name</td><td>${object.contact_name}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>Company</td><td>${object.partner_name}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>Notes:</td><td><strong>${object.name}</strong></td> |
||||
|
<td></td><td>${object.description[:-50]}</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
<br/><br/> |
||||
|
Thank you. |
||||
|
]]> |
||||
|
</field> |
||||
|
</record> |
||||
|
</data> |
||||
|
</odoo> |
@ -0,0 +1,105 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
<template id="contactby_form"> |
||||
|
<t t-call="website.layout"> |
||||
|
<div class="oe_structure"> |
||||
|
<div class="container"> |
||||
|
<form action="/contact_by_send/" method="post" data-model_name="crm.lead" data-success_page="/contactus-thank-you" |
||||
|
class="s_website_form container-fluid mt32" enctype="multipart/form-data" |
||||
|
data-editable-form="false"> |
||||
|
<div class="form-group row form-field o_website_form_required_custom"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="contact_type">In the future I want to |
||||
|
be |
||||
|
contacted |
||||
|
by |
||||
|
</label> |
||||
|
<div class="col-lg-7 col-md-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> |
||||
|
<div> |
||||
|
<a href="#" role="button" class="btn btn-primary btn-lg o_website_form_send">Send</a> |
||||
|
<!--<button name="Send" class="btn btn-primary btn-lg o_website_form_send" type="submit">Send</button>--> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</template> |
||||
|
|
||||
|
<template id="review_form"> |
||||
|
<t t-call="website.layout"> |
||||
|
<div class="oe_structure"> |
||||
|
<div class="container"> |
||||
|
<form action="/form_review_send/" method="post" |
||||
|
data-success_page="/contactus-thank-you" data-model_name="crm.lead" |
||||
|
class="s_website_form container-fluid mt32"> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="email_from">Email</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input class="form-control o_website_form_input" type="text" name="email_from" t-att-value="form_data[0]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="contact_name">Your Name</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input class="form-control o_website_form_input" type="text" name="contact_name" t-att-value="form_data[4]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="company_name">Your Company</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input class="form-control o_website_form_input" type="text" name="company_name" t-att-value="form_data[2]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="phone">Phone</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input class="form-control o_website_form_input" type="text" name="phone" t-att-value="form_data[10]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="name">Subject</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input class="form-control o_website_form_input" type="text" name="name" t-att-value="form_data[1]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="description">Your Question</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<textarea class="form-control o_website_form_input" type="text" name="description" disabled="disabled"><t t-esc="form_data[6]"/></textarea></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="request_gdpdr">Set contact channel</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="checkbox" name="request_gdpdr" t-att-checked="form_data[8]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="send_mail">Information request about personal data</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="checkbox" name="send_mail" t-att-checked="form_data[9]" disabled="true"/></div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="offset-lg-3 offset-md-4 col-md-8 col-lg-7"> |
||||
|
<a href="#" role="button" class="btn btn-primary btn-lg o_website_form_send">Confirm</a> |
||||
|
<a href="/contactus" class="btn btn-primary btn-lg" style="margin-left: 1%;">Cancel</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
</div> |
||||
|
</t> |
||||
|
</template> |
||||
|
</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,146 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
|
||||
|
<odoo> |
||||
|
|
||||
|
<template id="assets_frontend" inherit_id="website.assets_frontend" name="Website Support Assets"> |
||||
|
<xpath expr="//script[last()]" position="after"> |
||||
|
<script type="text/javascript" src="/website_contact_extend/static/src/js/contactus.js"/> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
|
||||
|
<!--<template id="contactus_form_inherited" name="Contact Form" inherit_id="website_crm.contactus_form" customize_show="True">--> |
||||
|
<!--<xpath expr="//div[@class='form-group row form-field o_website_form_required_custom'][last()]" position="after">--> |
||||
|
<!--<div class="form-group row form-field o_website_form_required_custom">--> |
||||
|
<!--<label class="col-lg-3 col-md-4 col-form-label" for="contact_type">Request GDPDR</label>--> |
||||
|
<!--<div class="col-lg-7 col-md-8">--> |
||||
|
<!--<div class="checkbox>"><label><input type="checkbox" name="request_gdpdr" value="request_gdpdr"/></label></div>--> |
||||
|
<!--<!–<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 row form-field">--> |
||||
|
<!--<label class="col-lg-3 col-md-4 col-form-label" for="contact_type">Information request concerning data about the personally</label>--> |
||||
|
<!--<div class="col-lg-7 col-md-8">--> |
||||
|
<!--<input type="checkbox" name="send_mail" value="send_mail"/>--> |
||||
|
<!--</div>--> |
||||
|
<!--</div>--> |
||||
|
<!--</xpath>--> |
||||
|
<!--</template>--> |
||||
|
|
||||
|
<!--t-attf="http.request.session.review_form ? '/contact-us-form-review' : '/contactus-thank-you'"--> |
||||
|
|
||||
|
<template id="contactus_form_inherited" name="Contact Form" inherit_id="website_crm.contactus_form" |
||||
|
customize_show="True"> |
||||
|
<xpath expr="//div" position="replace"> |
||||
|
<div class="container"> |
||||
|
<form action="/website_form/" method="post" data-model_name="crm.lead" |
||||
|
data-success_page="/contactus-thank-you" |
||||
|
class="s_website_form container-fluid mt32" enctype="multipart/form-data" |
||||
|
data-editable-form="false"> |
||||
|
<div class="form-group row form-field o_website_form_required_custom"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="contact_name">Your Name</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="text" class="form-control o_website_form_input" name="contact_name" |
||||
|
t-att-value="request.params.get('contact_name', '')" required=""/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="phone">Phone Number</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="text" class="form-control o_website_form_input" name="phone" |
||||
|
t-att-value="request.params.get('phone', '')"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field o_website_form_required_custom"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="email_from">Email</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="text" class="form-control o_website_form_input input_email_from" name="email_from" required="" |
||||
|
t-att-value="request.params.get('email_from', '')"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field o_website_form_required_custom"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="partner_name">Your Company</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="text" class="form-control o_website_form_input input_company" name="partner_name" required="" |
||||
|
t-att-value="request.params.get('partner_name', '')"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field o_website_form_required"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="name">Subject</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="text" class="form-control o_website_form_input" name="name" required="" |
||||
|
t-att-value="request.params.get('name', '')"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field o_website_form_required_custom"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="description">Your Question</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<textarea class="form-control o_website_form_input" name="description" required=""> |
||||
|
<t t-esc="request.params.get('description', '')"/> |
||||
|
</textarea> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="request_gdpdr">Set contact channel</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<div class="checkbox>"> |
||||
|
<label> |
||||
|
<input type="checkbox" name="request_gdpdr" value="request_gdpdr"/> |
||||
|
</label> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row form-field"> |
||||
|
<label class="col-lg-3 col-md-4 col-form-label" for="send_mail">Information request about personal data |
||||
|
</label> |
||||
|
<div class="col-lg-7 col-md-8"> |
||||
|
<input type="checkbox" name="send_mail" value="send_mail"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group row"> |
||||
|
<div class="offset-lg-3 offset-md-4 col-md-8 col-lg-7"> |
||||
|
<a href="#" role="button" class="btn btn-primary btn-lg o_website_form_send">Send</a> |
||||
|
<span id="o_website_form_result"></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</form> |
||||
|
</div> |
||||
|
|
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
<!--<record id="contactus_thanks_override" model="website.page">--> |
||||
|
<!--<field name="inherit_id" ref="website_crm.contactus_thanks_ir_ui_view"></field>--> |
||||
|
<!--<!–<field name="key">website_crm.contactus_thanks</field>–>--> |
||||
|
<!--<field name="arch" type="xml">--> |
||||
|
<!--<xpath expr="//t/t/div[@id='wrap']" position="replace">--> |
||||
|
<!--<body>--> |
||||
|
<!--<div>Hello</div>--> |
||||
|
<!--</body>--> |
||||
|
|
||||
|
<!--</xpath>--> |
||||
|
<!--</field>--> |
||||
|
<!--</record>--> |
||||
|
|
||||
|
<!--<record id="contactus_form_review" model="website.page">--> |
||||
|
<!--<field name="name">Review Form</field>--> |
||||
|
<!--<field name="type">qweb</field>--> |
||||
|
<!--<field name="url">/contact-us-form-review</field>--> |
||||
|
<!--<field name="website_published">True</field>--> |
||||
|
<!--<field name="key">website_contact_extend.contactus_form_review</field>--> |
||||
|
<!--<field name="arch" type="xml">--> |
||||
|
<!--<body>--> |
||||
|
<!--<div>Hello from Review</div>--> |
||||
|
<!--</body>--> |
||||
|
|
||||
|
<!--</field>--> |
||||
|
<!--</record>--> |
||||
|
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue