65d8177b55
Reorder res.config.settings for website Make website_id in no create in most view Revamp res.configsetting and view Form simplified Transform old 'useless' stored field for presentation by computed field. We can consider that if there are not key, feature is disable. Co-authored-by: rde-odoo Co-authored-by: jke-odoo
66 lines
2.7 KiB
Python
66 lines
2.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
from odoo.tools.translate import _
|
|
|
|
|
|
class WebsiteBackend(http.Controller):
|
|
|
|
@http.route('/website/fetch_dashboard_data', type="json", auth='user')
|
|
def fetch_dashboard_data(self, website_id, date_from, date_to):
|
|
Website = request.env['website']
|
|
has_group_system = request.env.user.has_group('base.group_system')
|
|
has_group_designer = request.env.user.has_group('website.group_website_designer')
|
|
dashboard_data = {
|
|
'groups': {
|
|
'system': has_group_system,
|
|
'website_designer': has_group_designer
|
|
},
|
|
'currency': request.env.user.company_id.currency_id.id,
|
|
'dashboards': {
|
|
'visits': {},
|
|
}
|
|
}
|
|
|
|
current_website = website_id and Website.browse(website_id) or Website.get_current_website()
|
|
dashboard_data['websites'] = request.env['website'].search_read([], ['id', 'name'])
|
|
for website in dashboard_data['websites']:
|
|
if website['id'] == current_website.id:
|
|
website['selected'] = True
|
|
|
|
if has_group_designer:
|
|
if current_website.google_management_client_id and current_website.google_analytics_key:
|
|
dashboard_data['dashboards']['visits'] = dict(
|
|
ga_client_id=current_website.google_management_client_id or '',
|
|
ga_analytics_key=current_website.google_analytics_key or '',
|
|
)
|
|
return dashboard_data
|
|
|
|
@http.route('/website/dashboard/set_ga_data', type='json', auth='user')
|
|
def website_set_ga_data(self, website_id, ga_client_id, ga_analytics_key):
|
|
if not request.env.user.has_group('base.group_system'):
|
|
return {
|
|
'error': {
|
|
'title': _('Access Error'),
|
|
'message': _('You do not have sufficient rights to perform that action.'),
|
|
}
|
|
}
|
|
if not ga_analytics_key or not ga_client_id.endswith('.apps.googleusercontent.com'):
|
|
return {
|
|
'error': {
|
|
'title': _('Incorrect Client ID / Key'),
|
|
'message': _('The Google Analytics Client ID or Key you entered seems incorrect.'),
|
|
}
|
|
}
|
|
Website = request.env['website']
|
|
current_website = website_id and Website.browse(website_id) or Website.get_current_website()
|
|
|
|
request.env['res.config.settings'].create({
|
|
'google_management_client_id': ga_client_id,
|
|
'google_analytics_key': ga_analytics_key,
|
|
'website_id': current_website,
|
|
}).execute()
|
|
return True
|