From b1462a9d30ef31e88f6a9d9320d90f6ea23dcf3d Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 27 Jan 2014 18:38:16 +0100 Subject: [PATCH] [IMP] website: res_config with wizard bzr revid: chm@openerp.com-20140127173816-uldoee71h7ntpyhl --- addons/website/__openerp__.py | 1 + addons/website/models/__init__.py | 1 + addons/website/models/res_config.py | 39 +++++ .../website/static/src/js/website.editor.js | 2 +- addons/website/views/res_config.xml | 136 ++++++++++++++++++ addons/website/views/website_views.xml | 11 -- addons/website_sale/models/website.py | 4 +- 7 files changed, 179 insertions(+), 15 deletions(-) create mode 100644 addons/website/models/res_config.py create mode 100644 addons/website/views/res_config.xml diff --git a/addons/website/__openerp__.py b/addons/website/__openerp__.py index c7969da7156..9161255c835 100644 --- a/addons/website/__openerp__.py +++ b/addons/website/__openerp__.py @@ -19,6 +19,7 @@ OpenERP Website CMS 'views/website_views.xml', 'views/snippets.xml', 'views/themes.xml', + 'views/res_config.xml', ], 'demo': [ 'data/website_demo.xml', diff --git a/addons/website/models/__init__.py b/addons/website/models/__init__.py index 7b1fb060003..e17fba63e39 100644 --- a/addons/website/models/__init__.py +++ b/addons/website/models/__init__.py @@ -4,5 +4,6 @@ import ir_ui_view import website import ir_qweb import ir_http +import res_config import test_models diff --git a/addons/website/models/res_config.py b/addons/website/models/res_config.py new file mode 100644 index 00000000000..f2c56a9b228 --- /dev/null +++ b/addons/website/models/res_config.py @@ -0,0 +1,39 @@ + +from openerp.osv import fields, osv + +class website_config_settings(osv.osv_memory): + _name = 'website.config.settings' + _inherit = 'base.config.settings' + + _columns = { + 'website_id': fields.many2one('website', string="website", required=True), + + 'language_ids': fields.related('website_id', 'language_ids', type='many2many', relation='res.lang', string='Languages'), + 'default_lang_id': fields.related('website_id', 'default_lang_id', type='many2one', relation='res.lang', string='Default language'), + 'default_lang_code': fields.related('website_id', 'default_lang_code', type="char", string="Default language code"), + 'google_analytics_key': fields.related('website_id', 'google_analytics_key', type="char", string='Google Analytics Key'), + + 'social_twitter': fields.related('website_id', 'social_twitter', type="char", string='Twitter Account'), + 'social_facebook': fields.related('website_id', 'social_facebook', type="char", string='Facebook Account'), + 'social_github': fields.related('website_id', 'social_github', type="char", string='GitHub Account'), + 'social_linkedin': fields.related('website_id', 'social_linkedin', type="char", string='LinkedIn Account'), + 'social_youtube': fields.related('website_id', 'social_youtube', type="char", string='Youtube Account'), + 'social_googleplus': fields.related('website_id', 'social_googleplus', type="char", string='Google+ Account'), + + 'module_website_sale': fields.boolean('E-Commerce', help='Sell Your Products Online'), + 'module_website_blog': fields.boolean('Blog', help='News, Blogs, Announces, Discussions'), + 'module_website_event': fields.boolean('Event', help='Schedule, Promote and Sell Events'), + 'module_website_hr_recruitment': fields.boolean('Job Position', help='Promote Your Job Positions'), + } + + def on_change_website_id(self, cr, uid, ids, id, context=None): + website_data = self.pool.get('website').read(cr, uid, [id], [], context=context)[0] + values = {} + for fname, v in website_data.items(): + if self._columns.get(fname): + values[fname] = v and self._columns[fname]._type == 'many2one' and v[0] or v + return {'value' : values} + + _defaults = { + 'website_id': lambda self,cr,uid,c: self.pool.get('website').search(cr, uid, [], context=c)[0], + } diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index fcc7dbb6294..948e584fd22 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -423,7 +423,7 @@ menu.append('
  • HTML Editor
  • '); menu.append('
  • Change Theme
  • '); menu.append('
  • Install Apps
  • '); - menu.append('
  • Website Settings
  • '); + menu.append('
  • Website Settings
  • '); self.trigger('rte:customize_menu_ready'); } ); diff --git a/addons/website/views/res_config.xml b/addons/website/views/res_config.xml new file mode 100644 index 00000000000..e0d55ab5ba6 --- /dev/null +++ b/addons/website/views/res_config.xml @@ -0,0 +1,136 @@ + + + + + + Website settings + website.config.settings + +
    +
    +
    +
    + + + + + + + + +
    +
    +
    +
    + + + Website Settings + website.config.settings + form + inline + + + + +
    +
    diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml index d4cef6d8fe7..cf7be25ec84 100644 --- a/addons/website/views/website_views.xml +++ b/addons/website/views/website_views.xml @@ -63,17 +63,6 @@ - - Website Settings - ir.actions.act_window - website - 1 - form - Create and manage the companies websites. - inline - - - view_base_language_install.inherit base.language.install diff --git a/addons/website_sale/models/website.py b/addons/website_sale/models/website.py index 8ea4e01cb4d..1851e6ebee6 100644 --- a/addons/website_sale/models/website.py +++ b/addons/website_sale/models/website.py @@ -11,9 +11,7 @@ class Website(orm.Model): def _get_pricelist(self, cr, uid, ids, field_name, arg, context=None): # FIXME: oh god kill me now pricelist_id = self.ecommerce_get_pricelist_id(cr, uid, ids, context=context) - return dict.fromkeys( - ids, self.pool['product.pricelist'].browse( - cr, SUPERUSER_ID, pricelist_id, context=context)) + return dict.fromkeys(ids, pricelist_id) _columns = { 'pricelist_id': fields.function(