[FIX] website_sale_delivery: allow to restrict delivery to a website

Before this commit, website_id field would not be added in form view, making it
impossible to set a website on a delivery method and so impossible to restrict
a delivery method to a specific website.

Now, adding this field will be enough as we already search() on
website_published carrier and the delivery.carrier model has the
'website.published.multi.mixin' mixin that will filter accessible website when
searching on website_published field.

+ add missing groups on website_id field
+ remove useless website_published

opw-1918189

closes odoo/odoo#29749
This commit is contained in:
Romain Derie
2018-12-26 12:03:42 +00:00
parent ccb2fffc65
commit d927dd51bb
4 changed files with 6 additions and 2 deletions
@@ -47,7 +47,7 @@
<field name="name"/>
<field name="active" invisible="1"/>
<field name="blog_id"/>
<field name="website_id"/>
<field name="website_id" groups="website.group_multi_website"/>
<field name="visits"/>
<field name="create_uid" invisible="1"/>
<field name="write_uid"/>
@@ -9,4 +9,3 @@ class DeliveryCarrier(models.Model):
_inherit = ['delivery.carrier', 'website.published.multi.mixin']
website_description = fields.Text(related='product_id.description_sale', string='Description for Online Quotations', readonly=False)
website_published = fields.Boolean(default=False)
@@ -75,6 +75,7 @@ class SaleOrder(models.Model):
def _get_delivery_methods(self):
address = self.partner_shipping_id
# searching on website_published will also search for available website (_search method on computed field)
return self.env['delivery.carrier'].sudo().search([('website_published', '=', True)]).available_carriers(address)
@api.multi
@@ -6,6 +6,9 @@
<field name="model">delivery.carrier</field>
<field name="inherit_id" ref="delivery.view_delivery_carrier_form"/>
<field name="arch" type="xml">
<field name="company_id" position='after'>
<field name="website_id" groups="website.group_multi_website" options="{'no_open': True, 'no_create_edit': True}"/>
</field>
<xpath expr="//page[@name='destination']" position='after'>
<page string="Description">
<field name="website_description" placeholder="Description displayed on the eCommerce and on online quotations."/>
@@ -26,6 +29,7 @@
<field name="arch" type="xml">
<field name="delivery_type" position="after">
<field name="website_published"/>
<field name="website_id" groups="website.group_multi_website"/>
</field>
</field>
</record>