From e0662b11d094514711ef6ae4e7420f15d0cbb03d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 18 Sep 2013 16:50:28 +0200 Subject: [PATCH] [FIX] wrap the wrapper in order to allow RTE on all of the page (except the toolbar) CKEditor does not work directly on body, and it's a bad idea anyway (editing the edition toolbar won't end well). A big wrapper around all of the page's content can be used as RTE hook to give access to the body as well as the header and footers. bzr revid: xmo@openerp.com-20130918145028-6ppi9sro2un0quh5 --- addons/website/static/src/css/website.css | 5 +- addons/website/static/src/css/website.sass | 16 +- .../website/static/src/js/website.editor.js | 3 +- addons/website/static/src/xml/website.ace.xml | 2 +- addons/website/view.py | 26 ++- addons/website/views/views.xml | 180 +++++++++--------- .../views/website_contract.xml | 2 +- .../views/website_crm_partner_assign.xml | 2 +- addons/website_event/views/website_event.xml | 4 +- .../website_google_map/views/google_map.xml | 2 +- addons/website_hr/views/website_hr.xml | 2 +- addons/website_mail/views/website_mail.xml | 4 +- .../views/website_membership.xml | 2 +- .../website_project/views/website_project.xml | 2 +- addons/website_sale/views/website_sale.xml | 4 +- 15 files changed, 131 insertions(+), 125 deletions(-) diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css index a016cbc150b..75de4387083 100644 --- a/addons/website/static/src/css/website.css +++ b/addons/website/static/src/css/website.css @@ -1,4 +1,3 @@ -@charset "utf-8"; /* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY * * css for editor buttons, openerp widget included in the website and other @@ -97,12 +96,12 @@ } /* ----- BOOTSTRAP HACK FOR STICKY FOOTER ----- */ -html, body { +html, body, #wrapwrap { box-sizing: border-box; height: 100%; } -body { +#wrapwrap { display: table; width: 100%; } diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass index a4b07b2969c..86cfad27fc6 100644 --- a/addons/website/static/src/css/website.sass +++ b/addons/website/static/src/css/website.sass @@ -64,11 +64,11 @@ /* ----- BOOTSTRAP HACK FOR STICKY FOOTER ----- */ -html,body +html,body, #wrapwrap box-sizing: border-box height: 100% -body +#wrapwrap display: table width: 100% @@ -110,9 +110,8 @@ footer .nav-hierarchy padding-left: 16px -div#wrap - .carousel - top: -20px +div#wrap .carousel + top: -20px /* -- Hack for removing double scrollbar from mobile preview -- */ div#mobile-preview.modal @@ -122,9 +121,8 @@ div#mobile-preview.modal ul.nav-stacked > li > a padding: 2px 15px -#customize-menu - .dropdown-header - text-transform: uppercase +#customize-menu .dropdown-header + text-transform: uppercase /* ---- PUBLISH ---- */ a[data-publish] @@ -157,4 +155,4 @@ a[data-publish] top: -10px display: none /*&:hover > [data-publish]*/ - /* display: block*/ \ No newline at end of file + /* display: block*/ diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index 84e2d1fa017..512c374e8d4 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -310,8 +310,7 @@ start_edition: function ($elements) { var self = this; // create a single editor for the whole page - // FIXME: is not the whole page, ckeditor can't handle body - var root = document.getElementById('wrap'); + var root = document.getElementById('wrapwrap'); root.setAttribute('data-cke-editable', 'true'); this.editor = CKEDITOR.inline(root, self._config()); this.editor.on('instanceReady', function () { diff --git a/addons/website/static/src/xml/website.ace.xml b/addons/website/static/src/xml/website.ace.xml index b546d41a7ec..6ed823ed10c 100644 --- a/addons/website/static/src/xml/website.ace.xml +++ b/addons/website/static/src/xml/website.ace.xml @@ -16,4 +16,4 @@ - \ No newline at end of file + diff --git a/addons/website/view.py b/addons/website/view.py index d3b715159c1..8d5fef42b23 100644 --- a/addons/website/view.py +++ b/addons/website/view.py @@ -55,34 +55,42 @@ class view(osv.osv): def extract_embedded_fields(self, cr, uid, arch, context=None): return arch.xpath('//*[@data-oe-model != "ir.ui.view"]') - def convert_embedded_field(self, cr, uid, el, column, context=None): + def convert_embedded_field(self, cr, uid, el, column, + type_override=None, context=None): """ Converts the content of an embedded field to a value acceptable for writing in the column :param etree._Element el: embedded field being saved :param fields._column column: column object corresponding to the field + :param type type_override: column type to dispatch on instead of the + column's actual type (for proxy column types + e.g. relateds) :return: converted value """ - if isinstance(column, fields.html): + column_type = type_override or type(column) + + if issubclass(column_type, fields.html): # FIXME: multiple children? return html.tostring(el[0]) - elif isinstance(column, fields.integer): + elif issubclass(column_type, fields.integer): return int(el.text_content()) - elif isinstance(column, fields.float): + elif issubclass(column_type, fields.float): return float(el.text_content()) - elif isinstance(column, (fields.char, fields.text, - fields.date, fields.datetime)): + elif issubclass(column_type, (fields.char, fields.text, + fields.date, fields.datetime)): return el.text_content() # TODO: fields.selection # TODO: fields.many2one - elif isinstance(column, fields.function): + elif issubclass(column_type, fields.function): # FIXME: special-case selection as in get_pg_type? return self.convert_embedded_field( - cr, uid, el, getattr(fields, column._type), context=context) + cr, uid, el, column, + type_override=getattr(fields, column._type), + context=context) # TODO?: fields.many2many, fields.one2many # TODO?: fields.reference else: - raise TypeError("Un-convertable column type %s" % column) + raise TypeError("Un-convertable column type %s" % column_type) def save_embedded_field(self, cr, uid, el, context=None): Model = self.pool[el.get('data-oe-model')] diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml index 9a04f9816ad..6b71eadf832 100644 --- a/addons/website/views/views.xml +++ b/addons/website/views/views.xml @@ -57,99 +57,101 @@ -
-
-
-
-

Main Layout

-
+
+ +
+
+ Create a free website with + OpenERP +
+
+ Copyright © Company name - Sitemap +
+
+
- diff --git a/addons/website_contract/views/website_contract.xml b/addons/website_contract/views/website_contract.xml index 9517e809ec2..df69ddde545 100644 --- a/addons/website_contract/views/website_contract.xml +++ b/addons/website_contract/views/website_contract.xml @@ -6,7 +6,7 @@ diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml index 1108d1db842..5a07b236f5d 100644 --- a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml +++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml @@ -6,7 +6,7 @@ diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml index db6d19d4102..758ebf2077d 100644 --- a/addons/website_event/views/website_event.xml +++ b/addons/website_event/views/website_event.xml @@ -5,10 +5,10 @@ diff --git a/addons/website_google_map/views/google_map.xml b/addons/website_google_map/views/google_map.xml index eee8f31741b..1c4254786f2 100644 --- a/addons/website_google_map/views/google_map.xml +++ b/addons/website_google_map/views/google_map.xml @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/addons/website_hr/views/website_hr.xml b/addons/website_hr/views/website_hr.xml index 63a645b9987..4bf30a40ed5 100644 --- a/addons/website_hr/views/website_hr.xml +++ b/addons/website_hr/views/website_hr.xml @@ -13,7 +13,7 @@ diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 018f5d0fb70..06cc81f89e7 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -13,10 +13,10 @@ diff --git a/addons/website_membership/views/website_membership.xml b/addons/website_membership/views/website_membership.xml index ac20a5bce2c..39bc48ac775 100644 --- a/addons/website_membership/views/website_membership.xml +++ b/addons/website_membership/views/website_membership.xml @@ -6,7 +6,7 @@ diff --git a/addons/website_project/views/website_project.xml b/addons/website_project/views/website_project.xml index 1a0adb431a0..66813b8a475 100644 --- a/addons/website_project/views/website_project.xml +++ b/addons/website_project/views/website_project.xml @@ -6,7 +6,7 @@ diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index ec4b0e9fc23..3043fc8474e 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -43,7 +43,7 @@