From eb58572ac2720aa92cdc37f3f632af2d2b99f988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 28 Jan 2015 12:38:26 +0100 Subject: [PATCH] [IMP][REF] website_customer, website_event, website_livechat, website_sale_delivery, website_slides: use the recently introduced website.published.mixin to replace the website_published and website_url fields defined in various remaining modules. In slides, some templates have been updated because share_url was basically website_url and has been replaced. --- .../models/website_customer.py | 2 +- addons/website_event/models/event.py | 9 ++---- addons/website_livechat/models/im_livechat.py | 5 ++-- .../models/sale_order.py | 5 ++-- addons/website_slides/controllers/main.py | 2 +- .../data/website_slides_data.xml | 16 +++++----- addons/website_slides/models/slides.py | 30 ++++++++++++------- addons/website_slides/view/website_slides.xml | 12 ++++---- .../view/website_slides_backend.xml | 16 ++++++---- .../view/website_slides_embed.xml | 4 +-- 10 files changed, 55 insertions(+), 46 deletions(-) diff --git a/addons/website_customer/models/website_customer.py b/addons/website_customer/models/website_customer.py index f248ecdf56a..f84905e25c5 100644 --- a/addons/website_customer/models/website_customer.py +++ b/addons/website_customer/models/website_customer.py @@ -14,6 +14,7 @@ class res_partner(osv.Model): class res_partner_tags(osv.Model): _description = 'Partner Tags - These tags can be used on website to find customers by sector, or ... ' _name = 'res.partner.tag' + _inherit = 'website.published.mixin' def get_selection_class(self, cr, uid, context=None): classname = ['default', 'primary', 'success', 'warning', 'danger'] @@ -23,7 +24,6 @@ class res_partner_tags(osv.Model): 'name': fields.char('Category Name', required=True, translate=True), 'partner_ids': fields.many2many('res.partner', 'res_partner_res_partner_tag_rel', id1='tag_id', id2='partner_id', string='Partners'), 'classname': fields.selection(get_selection_class, 'Class', help="Bootstrap class to customize the color of the tag", required=True), - 'website_published': fields.boolean('Publish', help="The publish field allows you to show the tag on website."), 'active': fields.boolean('Active'), } _defaults = { diff --git a/addons/website_event/models/event.py b/addons/website_event/models/event.py index 553df76a472..04a944774a6 100644 --- a/addons/website_event/models/event.py +++ b/addons/website_event/models/event.py @@ -1,14 +1,9 @@ # -*- coding: utf-8 -*- -from openerp import models, fields, api, _ - -# from openerp.osv import osv, fields -from openerp import SUPERUSER_ID -from openerp.models import NewId - -# from openerp.tools.translate import _ import re +from openerp import models, fields, api, _ +from openerp import SUPERUSER_ID from openerp.addons.website.models.website import slug diff --git a/addons/website_livechat/models/im_livechat.py b/addons/website_livechat/models/im_livechat.py index 805858eddf3..91cc458cceb 100644 --- a/addons/website_livechat/models/im_livechat.py +++ b/addons/website_livechat/models/im_livechat.py @@ -3,8 +3,7 @@ from openerp import models, fields class im_livechat_channel(models.Model): + _name = 'im_livechat.channel' + _inherit = ['im_livechat.channel', 'website.published.mixin'] - _inherit = 'im_livechat.channel' - - website_published = fields.Boolean("Website published", default=False, help="If checked, the channel and its ratings will be display on your website") website_description = fields.Html("Website description", default=False, help="Description of the channel displayed on the website page") diff --git a/addons/website_sale_delivery/models/sale_order.py b/addons/website_sale_delivery/models/sale_order.py index 2fbe081d768..d9821d1391c 100644 --- a/addons/website_sale_delivery/models/sale_order.py +++ b/addons/website_sale_delivery/models/sale_order.py @@ -6,9 +6,10 @@ from openerp.addons import decimal_precision class delivery_carrier(orm.Model): - _inherit = 'delivery.carrier' + _name = 'delivery.carrier' + _inherit = ['delivery.carrier', 'website.published.mixin'] + _columns = { - 'website_published': fields.boolean('Available in the website', copy=False), 'website_description': fields.text('Description for the website'), } _defaults = { diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py index dc2907ec0a9..e567bdf93c0 100644 --- a/addons/website_slides/controllers/main.py +++ b/addons/website_slides/controllers/main.py @@ -260,7 +260,7 @@ class website_slides(http.Controller): return { 'img_src': '/website/image/slide.slide/%s/image_thumb' % (slide.id), 'caption': slide.name, - 'url': slide.share_url + 'url': slide.website_url } vals = map(slide_mapped_dict, slide.get_related_slides(slides_to_suggest)) add_more_slide = slides_to_suggest - len(vals) diff --git a/addons/website_slides/data/website_slides_data.xml b/addons/website_slides/data/website_slides_data.xml index 399a6a76e6d..04372a644e4 100644 --- a/addons/website_slides/data/website_slides_data.xml +++ b/addons/website_slides/data/website_slides_data.xml @@ -42,12 +42,12 @@ - + ${object.name} -

${object.name}

+

${object.name}

Published on ${object.write_date}

-

Click here to open the ${object.slide_type}

+

Click here to open the ${object.slide_type}

@@ -56,7 +56,7 @@ @@ -93,13 +93,13 @@
- View in browser | + View in browser | Contact
- + ${object.name} -

${object.name}

+

${object.name}

Published on ${object.write_date}

-

Click here to open the ${object.slide_type}

+

Click here to open the ${object.slide_type}

@@ -108,7 +108,7 @@ diff --git a/addons/website_slides/models/slides.py b/addons/website_slides/models/slides.py index 355fcf93cbc..18e06b4e1ff 100644 --- a/addons/website_slides/models/slides.py +++ b/addons/website_slides/models/slides.py @@ -21,7 +21,7 @@ class Channel(models.Model): channels. """ _name = 'slide.channel' _description = 'Channel for Slides' - _inherit = ['mail.thread', 'website.seo.metadata'] + _inherit = ['mail.thread', 'website.seo.metadata', 'website.published.mixin'] _order = 'sequence, id' _order_by_strategy = { 'most_viewed': 'total_views desc', @@ -30,7 +30,6 @@ class Channel(models.Model): } name = fields.Char('Name', translate=True, required=True) - website_published = fields.Boolean('Published', help="Published on the website", copy=False) description = fields.Html('Description', translate=True) sequence = fields.Integer(default=10, help='Display order') category_ids = fields.One2many('slide.category', 'channel_id', string="Categories") @@ -115,6 +114,14 @@ class Channel(models.Model): self.can_see_full = self.visibility == 'public' or bool(self.group_ids & self.env.user.groups_id) self.can_upload = self.can_see and (not self.upload_group_ids or bool(self.upload_group_ids & self.env.user.groups_id)) + @api.multi + @api.depends('name') + def _website_url(self, name, arg): + res = super(Channel, self)._website_url(name, arg) + base_url = self.env['ir.config_parameter'].get_param('web.base.url') + res.update({(channel.id, '%s/slides/%s' % (base_url, slug(channel))) for channel in self}) + return res + @api.onchange('visibility') def change_visibility(self): if self.visibility == 'public': @@ -202,7 +209,7 @@ class Slide(models.Model): Slide has various statistics like view count, embed count, like, dislikes """ _name = 'slide.slide' - _inherit = ['mail.thread', 'website.seo.metadata'] + _inherit = ['mail.thread', 'website.seo.metadata', 'website.published.mixin'] _description = 'Slides' _PROMOTIONAL_FIELDS = [ @@ -267,7 +274,6 @@ class Slide(models.Model): setattr(self, key, value) # website - website_published = fields.Boolean('Published', help="Published on the website", copy=False) date_published = fields.Datetime('Publish Date') website_message_ids = fields.One2many( 'mail.message', 'res_id', @@ -286,13 +292,6 @@ class Slide(models.Model): for record in self: record.total_views = record.slide_views + record.embed_views - share_url = fields.Char('Share URL', readonly=True, compute='_get_share_url') - - def _get_share_url(self): - base_url = self.env['ir.config_parameter'].get_param('web.base.url') - for record in self: - record.share_url = "%s/slides/slide/%s" % (base_url, slug(record)) - embed_code = fields.Text('Embed Code', readonly=True, compute='_get_embed_code') def _get_embed_code(self): @@ -310,6 +309,15 @@ class Slide(models.Model): else: record.embed_code = False + @api.multi + @api.depends('name') + def _website_url(self, name, arg): + res = super(Slide, self)._website_url(name, arg) + base_url = self.env['ir.config_parameter'].get_param('web.base.url') + res.update({(slide.id, '%s/slides/slide/%s' % (base_url, slug(slide))) for slide in self}) + return res + + @api.model def create(self, values): if not values.get('index_content'): diff --git a/addons/website_slides/view/website_slides.xml b/addons/website_slides/view/website_slides.xml index 959222ad80c..cb30661aaf6 100644 --- a/addons/website_slides/view/website_slides.xml +++ b/addons/website_slides/view/website_slides.xml @@ -27,16 +27,16 @@ diff --git a/addons/website_slides/view/website_slides_backend.xml b/addons/website_slides/view/website_slides_backend.xml index 3266dacf3f4..d2c5fea0a97 100644 --- a/addons/website_slides/view/website_slides_backend.xml +++ b/addons/website_slides/view/website_slides_backend.xml @@ -42,6 +42,12 @@ +
+ +
-
- -
- + @@ -201,7 +204,10 @@
- +
diff --git a/addons/website_slides/view/website_slides_embed.xml b/addons/website_slides/view/website_slides_embed.xml index ea57412698c..8b876293b4d 100644 --- a/addons/website_slides/view/website_slides_embed.xml +++ b/addons/website_slides/view/website_slides_embed.xml @@ -115,7 +115,7 @@
@@ -152,7 +152,7 @@
- View in browser | + View in browser | Contact