summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2018-08-16 12:10:17 +0200
committerSébastien Theys <seb@odoo.com>2018-08-17 10:40:07 +0200
commit02a73ed62cc1f849d194d49698a7bb22dbe5fa3b (patch)
treec4b990188a9451f7dc4ff1e84d49686938bf70c1
parent3ec66247546e122bfa839efc7c78fe7269a3a467 (diff)
[IMP] sale,sale_management: fix minor bugs and rename strings
Sales Order report: - fix Total table alignment (to the right) - remove misplaced /> characters - remove page-break before optional products Sales assets: - fix duplicate ID preventing assets files from being loaded My Home: - fix link to sales orders Optional Products: - renamed various strings - made product_id required to prevent a traceback PR: none Task: 1838924, 1876864
-rw-r--r--addons/sale/__manifest__.py1
-rw-r--r--addons/sale/report/sale_report_templates.xml4
-rw-r--r--addons/sale/views/assets.xml20
-rw-r--r--addons/sale/views/sale_portal_templates.xml21
-rw-r--r--addons/sale_management/models/sale_order.py4
-rw-r--r--addons/sale_management/models/sale_order_template.py2
-rw-r--r--addons/sale_management/report/sale_report_templates.xml4
-rw-r--r--addons/sale_management/views/res_config_settings_views.xml2
-rw-r--r--addons/sale_management/views/sale_order_template_views.xml14
-rw-r--r--addons/sale_management/views/sale_order_views.xml37
10 files changed, 50 insertions, 59 deletions
diff --git a/addons/sale/__manifest__.py b/addons/sale/__manifest__.py
index 5924941af76..684f72b31c1 100644
--- a/addons/sale/__manifest__.py
+++ b/addons/sale/__manifest__.py
@@ -38,7 +38,6 @@ This module contains all the common features of Sales Management and eCommerce.
'data/product_product_demo.xml',
],
'uninstall_hook': "uninstall_hook",
- 'css': ['static/src/css/sale.css'],
'installable': True,
'auto_install': False,
}
diff --git a/addons/sale/report/sale_report_templates.xml b/addons/sale/report/sale_report_templates.xml
index 540972d47da..3ca616866fe 100644
--- a/addons/sale/report/sale_report_templates.xml
+++ b/addons/sale/report/sale_report_templates.xml
@@ -66,7 +66,7 @@
<!-- Is there a discount on at least one line? -->
<t t-set="display_discount" t-value="any([l.discount for l in doc.order_line])"/>
- />
+
<table class="table table-sm">
<thead>
<tr>
@@ -153,7 +153,7 @@
<div class="clearfix">
<div class="row" name="total">
- <div class="col-4 float-right">
+ <div class="col-4 ml-auto">
<table class="table table-sm" style="min-width: 200px;max-width: 350px;">
<tr class="border-black" style="border-bottom:1px solid #dddddd;">
<td><strong>Subtotal</strong></td>
diff --git a/addons/sale/views/assets.xml b/addons/sale/views/assets.xml
index 519f86babf1..af1d10f08c2 100644
--- a/addons/sale/views/assets.xml
+++ b/addons/sale/views/assets.xml
@@ -1,18 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
- <template id="assets_backend" inherit_id="sales_team.assets_backend" name="Sale backend assets">
- <xpath expr="." position="inside">
- <script type="text/javascript" src="/sale/static/src/js/sale.js"></script>
- </xpath>
- </template>
- <template id="assets_backend_onboarding" name="onboarding_assets" inherit_id="web.assets_backend">
- <xpath expr="." position="inside">
+ <template id="assets_backend_inherit_sale" inherit_id="web.assets_backend" name="Sale backend assets">
+ <xpath expr="link[last()]" position="after">
<link rel="stylesheet" type="text/scss" href="/sale/static/src/scss/sale_onboarding.scss"/>
</xpath>
+ <xpath expr="script[last()]" position="after">
+ <script type="text/javascript" src="/sale/static/src/js/sale.js"></script>
+ <script type="text/javascript" src="/sale/static/src/js/tour.js"></script>
+ </xpath>
</template>
- <template id="assets_frontend" inherit_id="web.assets_frontend" name="Sale frontend assets">
- <xpath expr="." position="inside">
+ <template id="assets_frontend_inherit_sale" inherit_id="web.assets_frontend" name="Sale frontend assets">
+ <xpath expr="link[last()]" position="after">
<link rel="stylesheet" type="text/scss" href="/sale/static/src/scss/sale_portal.scss"/>
</xpath>
+ <xpath expr="script[last()]" position="after">
+ <script type="text/javascript" src="/sale/static/src/js/sale_portal_sidebar.js"></script>
+ </xpath>
</template>
</odoo>
diff --git a/addons/sale/views/sale_portal_templates.xml b/addons/sale/views/sale_portal_templates.xml
index 6045bd4eb0e..708a92c235f 100644
--- a/addons/sale/views/sale_portal_templates.xml
+++ b/addons/sale/views/sale_portal_templates.xml
@@ -1,18 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
- <template id="assets_frontend" inherit_id="web.assets_frontend" name="Sale frontend assets">
- <xpath expr="." position="inside">
- <script type="text/javascript" src="/sale/static/src/js/sale_portal_sidebar.js"></script>
- </xpath>
- </template>
-
- <template id="assets_backend" name="project assets" inherit_id="web.assets_backend">
- <xpath expr="." position="inside">
- <script type="text/javascript" src="/sale/static/src/js/tour.js"></script>
- </xpath>
- </template>
-
<template id="portal_my_home_menu_sale" name="Portal layout : sales menu entries" inherit_id="portal.portal_layout" priority="20">
<xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
<li t-if="page_name == 'quote' or sales_order and sales_order.state in ('sent', 'cancel')" class="breadcrumb-item">
@@ -115,7 +103,7 @@
<t t-foreach="orders" t-as="order">
<tr>
<td>
- <a t-attf-href="quotation.get_portal_url()"><t t-esc="order.name"/></a>
+ <a t-att-href="order.get_portal_url()"><t t-esc="order.name"/></a>
</td>
<td>
<span t-field="order.date_order" t-options="{'widget': 'date'}"/>&amp;nbsp;
@@ -568,9 +556,10 @@
<t t-if="current_section and (line_last or sale_order.order_line[line_index+1].display_type == 'line_section')">
<tr class="is-subtotal text-right">
<td t-att-colspan="colspan">
- <strong>Subtotal:</strong> <span
- t-esc="current_subtotal"
- t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
+ <strong>Subtotal:</strong>
+ <span
+ t-esc="current_subtotal"
+ t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
/>
</td>
</tr>
diff --git a/addons/sale_management/models/sale_order.py b/addons/sale_management/models/sale_order.py
index b8a8d3ad8e8..5266261ea33 100644
--- a/addons/sale_management/models/sale_order.py
+++ b/addons/sale_management/models/sale_order.py
@@ -225,12 +225,12 @@ class SaleOrderOption(models.Model):
order_id = fields.Many2one('sale.order', 'Sales Order Reference', ondelete='cascade', index=True)
line_id = fields.Many2one('sale.order.line', on_delete="set null")
name = fields.Text('Description', required=True)
- product_id = fields.Many2one('product.product', 'Product', domain=[('sale_ok', '=', True)])
+ product_id = fields.Many2one('product.product', 'Product', required=True, domain=[('sale_ok', '=', True)])
price_unit = fields.Float('Unit Price', required=True, digits=dp.get_precision('Product Price'))
discount = fields.Float('Discount (%)', digits=dp.get_precision('Discount'))
uom_id = fields.Many2one('uom.uom', 'Unit of Measure ', required=True)
quantity = fields.Float('Quantity', required=True, digits=dp.get_precision('Product UoS'), default=1)
- sequence = fields.Integer('Sequence', help="Gives the sequence order when displaying a list of suggested product.")
+ sequence = fields.Integer('Sequence', help="Gives the sequence order when displaying a list of optional products.")
@api.onchange('product_id', 'uom_id')
def _onchange_product_id(self):
diff --git a/addons/sale_management/models/sale_order_template.py b/addons/sale_management/models/sale_order_template.py
index 404f4503786..1380e711770 100644
--- a/addons/sale_management/models/sale_order_template.py
+++ b/addons/sale_management/models/sale_order_template.py
@@ -23,7 +23,7 @@ class SaleOrderTemplate(models.Model):
name = fields.Char('Quotation Template', required=True)
sale_order_template_line_ids = fields.One2many('sale.order.template.line', 'sale_order_template_id', 'Lines', copy=True)
note = fields.Text('Terms and conditions')
- sale_order_template_option_ids = fields.One2many('sale.order.template.option', 'sale_order_template_id', 'Optional Lines', copy=True)
+ sale_order_template_option_ids = fields.One2many('sale.order.template.option', 'sale_order_template_id', 'Optional Products', copy=True)
number_of_days = fields.Integer('Quotation Duration',
help='Number of days for the validity date computation of the quotation')
require_signature = fields.Boolean('Online Signature', default=_get_default_require_signature, help='Request a online signature to the customer in order to confirm orders automatically.')
diff --git a/addons/sale_management/report/sale_report_templates.xml b/addons/sale_management/report/sale_report_templates.xml
index c5e9e9abccc..fc7f3b135fe 100644
--- a/addons/sale_management/report/sale_report_templates.xml
+++ b/addons/sale_management/report/sale_report_templates.xml
@@ -2,9 +2,9 @@
<odoo>
<template id="report_saleorder_validity_date" inherit_id="sale.report_saleorder_document">
<xpath expr="//div[hasclass('page')]/p[@id='fiscal_position_remark']" position="after">
- <div t-if="doc.sale_order_option_ids and doc.state in ['draft', 'sent']" style="page-break-before:always;">
+ <div t-if="doc.sale_order_option_ids and doc.state in ['draft', 'sent']">
<h2>
- <span>Suggested Products</span>
+ <span>Optional Products</span>
</h2>
<table class="table table-sm">
<thead>
diff --git a/addons/sale_management/views/res_config_settings_views.xml b/addons/sale_management/views/res_config_settings_views.xml
index 3820f5338c7..e485b88438e 100644
--- a/addons/sale_management/views/res_config_settings_views.xml
+++ b/addons/sale_management/views/res_config_settings_views.xml
@@ -15,7 +15,7 @@
<div class="o_setting_right_pane">
<label for="group_sale_order_template"/>
<div class="text-muted">
- Create standardized offers
+ Create standardized offers with default products
</div>
<div class="content-group" attrs="{'invisible': [('group_sale_order_template', '=', False)]}">
<div class="mt16">
diff --git a/addons/sale_management/views/sale_order_template_views.xml b/addons/sale_management/views/sale_order_template_views.xml
index 5365aee738b..2260c7e2b0e 100644
--- a/addons/sale_management/views/sale_order_template_views.xml
+++ b/addons/sale_management/views/sale_order_template_views.xml
@@ -48,16 +48,10 @@
<field name="display_type" invisible="1"/>
<group attrs="{'invisible': [('display_type', '!=', False)]}">
<group>
- <field
- name="product_id"
- attrs="{
- 'required': [('display_type', '=', False)]
- }"
- />
+ <field name="product_id" attrs="{'required': [('display_type', '=', False)]}"/>
<label for="product_uom_qty"/>
<div>
- <field
- name="product_uom_qty" class="oe_inline"/>
+ <field name="product_uom_qty" class="oe_inline"/>
</div>
<field name="price_unit" invisible="1"/>
<label for="discount" groups="sale.group_discount_per_so_line"/>
@@ -93,9 +87,7 @@
<field
name="product_uom_id"
groups="uom.group_uom"
- attrs="{
- 'required': [('display_type', '=', False)]
- }"
+ attrs="{'required': [('display_type', '=', False)]}"
/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="price_unit" invisible="1"/>
diff --git a/addons/sale_management/views/sale_order_views.xml b/addons/sale_management/views/sale_order_views.xml
index c6a8972213f..848ff25c1bc 100644
--- a/addons/sale_management/views/sale_order_views.xml
+++ b/addons/sale_management/views/sale_order_views.xml
@@ -5,45 +5,54 @@
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
+
<xpath expr="//header/button[@name='action_confirm'][1]" position="after">
<button name="preview_sale_order" type="object" string="Preview"/>
</xpath>
+
<xpath expr="//page/field[@name='order_line']/.." position="after">
<page string="Optional Products">
<field name="sale_order_option_ids">
<tree string="Sales Quotation Template Lines" editable="bottom">
- <field name="sequence" widget="handle"/>
- <field name="product_id"/>
- <field name="name"/>
- <field name="quantity"/>
- <field name="uom_id" groups="uom.group_uom"/>
- <field name="price_unit"/>
- <field name="discount" groups="sale.group_discount_per_so_line"/>
- <button name="button_add_to_order" class="oe_link" icon="fa-shopping-cart" string="Add to order lines" type="object"/>
+ <control>
+ <create string="Add a product"/>
+ </control>
+ <field name="sequence" widget="handle"/>
+ <field name="product_id"/>
+ <field name="name"/>
+ <field name="quantity"/>
+ <field name="uom_id" groups="uom.group_uom"/>
+ <field name="price_unit"/>
+ <field name="discount" groups="sale.group_discount_per_so_line"/>
+ <button name="button_add_to_order" class="oe_link" icon="fa-shopping-cart" string="Add to order lines" type="object"/>
</tree>
</field>
</page>
</xpath>
+
<xpath expr="//field[@name='partner_shipping_id']" position="after">
<field name="sale_order_template_id" context="{'company_id': company_id}"
options="{'no_create': True, 'no_open': True}"
groups="sale_management.group_sale_order_template"
/>
</xpath>
+
<xpath expr="//field[@name='client_order_ref']" position="after">
<field name="require_signature" attrs="{'invisible': [('sale_order_template_id', '=', False)]}"/>
<field name="require_payment" attrs="{'invisible': [('sale_order_template_id', '=', False)]}"/>
</xpath>
+
</field>
</record>
<record id="sale.action_quotations" model="ir.actions.act_window">
<field name="help" type="html">
- <p class="o_view_nocontent_smiling_face">
- Create a new quotation, the first step of a new sale!
- </p><p>
- Once the quotation is confirmed by the customer, it becomes a sales order.<br/> You will be able to create an invoice and collect the payment.
- </p>
+ <p class="o_view_nocontent_smiling_face">
+ Create a new quotation, the first step of a new sale!
+ </p>
+ <p>
+ Once the quotation is confirmed by the customer, it becomes a sales order.<br/> You will be able to create an invoice and collect the payment.
+ </p>
</field>
</record>
-</odoo> \ No newline at end of file
+</odoo>