From 3bb683e07df56e76f5112636c023302ebe235629 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Mon, 29 Jul 2013 17:49:16 +0200 Subject: [PATCH 01/10] [IMP] website_mail: post new blog bzr revid: chm@openerp.com-20130729154916-dr5bm70smt49efvv --- addons/website_mail/controllers/main.py | 24 +++++++++++++++++++ addons/website_mail/static/src/css/blog.css | 6 +++++ addons/website_mail/static/src/css/blog.sass | 6 ++++- addons/website_mail/static/src/js/blog.js | 4 ++-- addons/website_mail/views/website_mail.xml | 25 +++++++++++++++++--- 5 files changed, 59 insertions(+), 6 deletions(-) diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index f40a0d78e0e..17d8317c58e 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -24,6 +24,7 @@ class website_mail(website): 'nav_list': dict(), 'prev_date': None, 'next_date': None, + 'mail_group_id': mail_group_id, } domain = mail_group_id and [("res_id", "=", mail_group_id)] or [] @@ -83,6 +84,8 @@ class website_mail(website): body=request.session.body, parent_id=blog_id, website_published=blog_id and True or False, + type='comment', + subtype='mt_comment', context={'mail_create_nosubscribe': True}, ) request.session.body = False @@ -91,3 +94,24 @@ class website_mail(website): return '%s/blog/%s/%s' % (url, mail_group_id, blog_id) else: return werkzeug.utils.redirect("/blog/%s/%s" % (mail_group_id, blog_id)) + + @website.route(['/blog//new'], type='http', auth="admin") + def new_blog(self, cr, uid, mail_group_id=None, **post): + values = { + 'res_company': request.registry['res.company'].browse(cr, uid, 1), + 'mail_group_id': mail_group_id, + } + html = self.render(cr, uid, "website_mail.new_blog", values) + return html + + @website.route(['/blog//new/post'], type='http', auth="admin") + def new_blog_post(self, cr, uid, mail_group_id=None, **post): + blog_id = request.registry['mail.group'].message_post(cr, uid, mail_group_id, + body=post['body'], + subject=post['subject'], + website_published=False, + type='comment', + subtype='mt_comment', + context={'mail_create_nosubscribe': True}, + ) + return werkzeug.utils.redirect("/blog/%s/%s" % (mail_group_id, blog_id)) diff --git a/addons/website_mail/static/src/css/blog.css b/addons/website_mail/static/src/css/blog.css index 24a9eb4bc3f..b61dbde7e0d 100644 --- a/addons/website_mail/static/src/css/blog.css +++ b/addons/website_mail/static/src/css/blog.css @@ -31,3 +31,9 @@ .css_website_mail .css_newer { float: left; } +.css_website_mail .css_nav_month { + display: none; +} +.css_website_mail .css_nav_month:first-of-type { + display: block; +} diff --git a/addons/website_mail/static/src/css/blog.sass b/addons/website_mail/static/src/css/blog.sass index 60ab22d753d..e49cf9cb168 100644 --- a/addons/website_mail/static/src/css/blog.sass +++ b/addons/website_mail/static/src/css/blog.sass @@ -25,4 +25,8 @@ .css_older float: right .css_newer - float: left \ No newline at end of file + float: left + .css_nav_month + display: none + &:first-of-type + display: block \ No newline at end of file diff --git a/addons/website_mail/static/src/js/blog.js b/addons/website_mail/static/src/js/blog.js index a9a349e5412..a80c3d99de4 100644 --- a/addons/website_mail/static/src/js/blog.js +++ b/addons/website_mail/static/src/js/blog.js @@ -1,9 +1,9 @@ $(document).ready(function () { $('.js_website_mail').on('click', '.js_publish', function (e) { e.preventDefault(); - var $media = $link.parent(); + var $media = $(this).parent(); $media.toggleClass('css_published'); - $.post('/blog/publish/', {'message_id': $link.data('id')}, function (result) { + $.post('/blog/publish/', {'message_id': $(this).data('id')}, function (result) { if (+result) $media.addClass('css_published'); else $media.removeClass('css_published'); }); diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index b0774ccb8d9..40dc1e27c5f 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -16,7 +16,7 @@ - + + From 781ae74c182999962bdfd1e1dfce39977bdb379b Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 30 Jul 2013 10:50:27 +0200 Subject: [PATCH 02/10] [IMP] website_mail: button add a new blog; link on header and footer bzr revid: chm@openerp.com-20130730085027-beo81wr0ru1m6q2d --- addons/website/views/views.xml | 4 +- addons/website_crm/views/website_crm.xml | 2 +- addons/website_mail/controllers/main.py | 13 +------ addons/website_mail/views/website_mail.xml | 44 +++++++++++----------- 4 files changed, 27 insertions(+), 36 deletions(-) diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml index 0ab628b93c3..2df2529f7c0 100644 --- a/addons/website/views/views.xml +++ b/addons/website/views/views.xml @@ -20,7 +20,7 @@ - - From 2a0dc6af7a40b1fbb2a4ac99e69055f48add0810 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 30 Jul 2013 11:43:20 +0200 Subject: [PATCH 03/10] [ADD] quote, text justification, list indent/outdent todo: really need contextual conditions on buttons bzr revid: xmo@openerp.com-20130730094320-n352j55bo7bs3ubj --- addons/website/static/src/js/website.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 02ea41d0fa5..de484a6ea31 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -215,9 +215,12 @@ instance.website.RTE = instance.web.Widget.extend({ [Command, "\uf12c", 'subscript'], [Command, "\uf0c1", 'link'], [Command, "\uf127", 'unlink'], + [Command, "\uf10d", 'blockquote'], [Group, "\uf0ca", [ [Command, "\uf0ca", 'bulletedlist'], - [Command, "\uf0cb", 'numberedlist'] + [Command, "\uf0cb", 'numberedlist'], + [Command, "\uf03b", 'outdent'], + [Command, "\uf03c", 'indent'] ]], [Group, _lt("Heading"), [ [Style, _lt('H1'), { element: 'h1' }], @@ -226,6 +229,12 @@ instance.website.RTE = instance.web.Widget.extend({ [Style, _lt('H4'), { element: 'h4', }], [Style, _lt('H5'), { element: 'h5', }], [Style, _lt('H6'), { element: 'h6', }] + ]], + [Group, "\uf039", [ + [Command, "\uf039", 'justifyblock'], + [Command, "\uf036", 'justifyleft'], + [Command, "\uf038", 'justifyright'], + [Command, "\uf037", 'justifycenter'] ]] ], // editor.ui.items -> possible commands &al From 3c7fb776c8aa9bbdbe9a37e1ad5e9e37799b7730 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 30 Jul 2013 12:32:13 +0200 Subject: [PATCH 04/10] [IMP] website home page: add banner with boostrap carousel bzr revid: chm@openerp.com-20130730103213-4nst7sqqcz3lzir5 --- addons/website/views/views.xml | 41 +++++++++++++++++++++++++++++++++- addons/website/website.py | 1 + 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml index 2df2529f7c0..e58c5ed7f17 100644 --- a/addons/website/views/views.xml +++ b/addons/website/views/views.xml @@ -180,9 +180,48 @@ From 4d41a7f3899b044d1dbefc8066189a2f48c97a63 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 30 Jul 2013 17:09:55 +0200 Subject: [PATCH 08/10] [FIX] add event handlers on non-rte contenteditables to trigger enabling of save button, fixup filters bzr revid: xmo@openerp.com-20130730150955-ttqovqamexqtd8r9 --- addons/website/static/src/js/website.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index de484a6ea31..fd1f0531fd2 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -42,11 +42,22 @@ instance.website.EditorBar = instance.web.Widget.extend({ .add(this.$buttons.save) .parent().show(); // TODO: span edition changing edition state (save button) - this.rte.start_edition( - $('[data-oe-model]') - .not('link, script') - .prop('contentEditable', true) - .addClass('oe_editable')); + var $editables = $('[data-oe-model]') + .not('link, script').prop('contentEditable', true) + .addClass('oe_editable'); + var $rte_ables = $editables.filter('div, p, :not([data-oe-type])'); + var $raw_editables = $editables.not($rte_ables); + + this.rte.start_edition($rte_ables); + $raw_editables.on('keydown keypress cut paste', function (e) { + var $target = $(e.target); + if ($target.hasClass('oe_dirty')) { + return; + } + + $target.addClass('oe_dirty'); + this.$buttons.save.prop('disabled', false); + }.bind(this)); }, rte_changed: function () { this.$buttons.save.prop('disabled', false); From 4c1760cdf575f074e0d37c003366fd9a377db1d5 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 30 Jul 2013 17:14:28 +0200 Subject: [PATCH 09/10] [IMP] website_crm: fix dom error (todo: fix parser) bzr revid: chm@openerp.com-20130730151428-3i42sln7zxm31mit --- addons/website/views/views.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml index fc1eba75af9..7584ce0a163 100644 --- a/addons/website/views/views.xml +++ b/addons/website/views/views.xml @@ -333,7 +333,7 @@ Name

,
-
+

✆
From 5d90e20f8b1810e3bcff0c3de29bfbbec582ece6 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 30 Jul 2013 17:28:56 +0200 Subject: [PATCH 10/10] [FIX] website: error on click on Edit button. Fix: filter not(data-oe-type). xmo bzr revid: chm@openerp.com-20130730152856-du26nlnqjd4evulg --- addons/website/static/src/js/website.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index e140c9ea334..e7a42877dcc 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -45,7 +45,7 @@ instance.website.EditorBar = instance.web.Widget.extend({ var $editables = $('[data-oe-model]') .not('link, script').prop('contentEditable', true) .addClass('oe_editable'); - var $rte_ables = $editables.filter('div, p, :not([data-oe-type])'); + var $rte_ables = $editables.filter('div, p, li').not('[data-oe-type]'); var $raw_editables = $editables.not($rte_ables); this.rte.start_edition($rte_ables);