diff options
| -rw-r--r-- | addons/website_sale/models/website.py | 17 | ||||
| -rw-r--r-- | addons/website_sale/security/ir.model.access.csv | 2 | ||||
| -rw-r--r-- | addons/website_sale/views/templates.xml | 40 |
3 files changed, 59 insertions, 0 deletions
diff --git a/addons/website_sale/models/website.py b/addons/website_sale/models/website.py index 5f4d7de2a6c..a34f73dfcd8 100644 --- a/addons/website_sale/models/website.py +++ b/addons/website_sale/models/website.py @@ -48,6 +48,8 @@ class Website(models.Model): shop_ppg = fields.Integer(default=20, string="Number of products in the grid on the shop") shop_ppr = fields.Integer(default=4, string="Number of grid columns on the shop") + shop_extra_field_ids = fields.One2many('website.sale.extra.field', 'website_id', string='E-Commerce Extra Fields') + @api.depends('all_pricelist_ids') def _compute_pricelist_ids(self): Pricelist = self.env['product.pricelist'] @@ -369,3 +371,18 @@ class Website(models.Model): suggested_controllers = super(Website, self).get_suggested_controllers() suggested_controllers.append((_('eCommerce'), url_for('/shop'), 'website_sale')) return suggested_controllers + + +class WebsiteSaleExtraField(models.Model): + _name = 'website.sale.extra.field' + _description = 'E-Commerce Extra Info Shown on product page' + _order = 'sequence' + + website_id = fields.Many2one('website') + sequence = fields.Integer(default=10) + field_id = fields.Many2one( + 'ir.model.fields', + domain=[('model_id.model', '=', 'product.template')] + ) + label = fields.Char(related='field_id.field_description') + name = fields.Char(related='field_id.name') diff --git a/addons/website_sale/security/ir.model.access.csv b/addons/website_sale/security/ir.model.access.csv index 479a8838622..2e5d2523d30 100644 --- a/addons/website_sale/security/ir.model.access.csv +++ b/addons/website_sale/security/ir.model.access.csv @@ -21,3 +21,5 @@ access_product_image_public,product.image public,model_product_image,,1,0,0,0 access_product_image_publisher,product.image wbesite publisher,model_product_image,website.group_website_publisher,1,1,1,1 access_product_image_sale,product.image sale,model_product_image,sales_team.group_sale_manager,1,1,1,1 access_website_sale_payment_acquirer_onboarding_wizard,access.website.sale.payment.acquirer.onboarding.wizard,model_website_sale_payment_acquirer_onboarding_wizard,base.group_system,1,1,1,0 +access_ecom_extra_fields_public,access_ecom_extra_field public,model_website_sale_extra_field,,1,0,0,0 +access_ecom_extra_fields_publisher,access_ecom_extra_field publisher,model_website_sale_extra_field,website.group_website_publisher,1,1,1,1 diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index afc70444d1f..0749dceab81 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -1772,4 +1772,44 @@ </div> </div> </template> + + + <record id="view_website_sale_website_form" model="ir.ui.view"> + <field name="name">website_sale.website.form</field> + <field name="model">website</field> + <field name="inherit_id" ref="website.view_website_form"/> + <field name="arch" type="xml"> + <xpath expr="//notebook" position="inside"> + <page string="Product Page Extra Fields" groups="base.group_no_one"> + <field name="shop_extra_field_ids" context="{'default_website_id': active_id}"> + <tree editable="bottom"> + <field name="sequence" widget="handle"/> + <field name="field_id"/> + </tree> + </field> + </page> + </xpath> + </field> + </record> + + <template id="ecom_show_extra_fields" inherit_id="website_sale.product" active="False" customize_show="True" name="Show Extra Fields"> + <xpath expr="//div[@id='product_details']" position="inside"> + <hr/> + <p class="text-muted"> + <t t-foreach='website.shop_extra_field_ids' t-as='field' t-if='product[field.name]'> + <b><t t-esc='field.label'/>: </b> + <t t-if='field.field_id.ttype != "binary"'> + <span t-esc='product[field.name]' t-options="{'widget': field.field_id.ttype}"/> + </t> + <t t-else=''> + <a target='_blank' t-attf-href='/web/content/product.template/#{product.id}/#{field.name}?download=1'> + <i class='fa fa-file'></i> + </a> + </t> + <br/> + </t> + </p> + </xpath> + </template> + </odoo> |
