summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Bouvy <dbo@odoo.com>2019-08-19 10:01:50 +0000
committerDamien Bouvy <dbo@odoo.com>2019-08-20 14:02:30 +0000
commitef59eabd4710a41528be10b0ce29ca7883b29951 (patch)
tree394be1059dcffb466dfd7b1f1d38b760eac2ea2c
parentb61fd3af7f9ac8269026c8ab8284af7aee9dc779 (diff)
[IMP] sale, sale_(various): UX improvements in SO form view
-rw-r--r--addons/sale/data/ir_sequence_data.xml2
-rw-r--r--addons/sale/models/sale.py11
-rw-r--r--addons/sale/views/sale_views.xml6
-rw-r--r--addons/sale_coupon/views/sale_order_views.xml4
-rw-r--r--addons/sale_management/views/sale_order_views.xml2
-rw-r--r--addons/sale_product_matrix/views/sale_views.xml2
-rw-r--r--addons/sale_stock/models/sale_order.py4
7 files changed, 18 insertions, 13 deletions
diff --git a/addons/sale/data/ir_sequence_data.xml b/addons/sale/data/ir_sequence_data.xml
index 42859382008..07379f90dda 100644
--- a/addons/sale/data/ir_sequence_data.xml
+++ b/addons/sale/data/ir_sequence_data.xml
@@ -7,7 +7,7 @@
<field name="name">Sales Order</field>
<field name="code">sale.order</field>
<field name="prefix">S</field>
- <field name="padding">3</field>
+ <field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py
index 5784d46807c..0e93cf69cec 100644
--- a/addons/sale/models/sale.py
+++ b/addons/sale/models/sale.py
@@ -180,12 +180,13 @@ class SaleOrder(models.Model):
signed_on = fields.Datetime('Signed On', help='Date of the signature.', copy=False)
commitment_date = fields.Datetime('Commitment Date',
- states={'draft': [('readonly', False)], 'sent': [('readonly', False)]},
- copy=False, readonly=True,
- help="This is the delivery date promised to the customer. If set, the delivery order "
- "will be scheduled based on this date rather than product lead times.")
+ states={'draft': [('readonly', False)], 'sent': [('readonly', False)]},
+ copy=False, readonly=True,
+ help="This is the delivery date promised to the customer. "
+ "If set, the delivery order will be scheduled based on "
+ "this date rather than product lead times.")
expected_date = fields.Datetime("Expected Date", compute='_compute_expected_date', store=False, # Note: can not be stored since depends on today()
- help="Delivery date you can promise to the customer, computed from product lead times and from the shipping policy of the order.")
+ help="Delivery date you can promise to the customer, computed from the minimum lead time of the order lines.")
amount_undiscounted = fields.Float('Amount Before Discount', compute='_compute_amount_undiscounted', digits=0)
type_name = fields.Char('Type Name', compute='_compute_type_name')
diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml
index a1f589696bc..f77b3d532cb 100644
--- a/addons/sale/views/sale_views.xml
+++ b/addons/sale/views/sale_views.xml
@@ -83,7 +83,7 @@
</field>
</record>
- <menuitem id="product_menu_catalog" name="Products" action="product_template_action" parent="sale_menu_root" sequence="4" groups="sales_team.group_sale_salesman"/>
+ <menuitem id="product_menu_catalog" name="Products" parent="sale_menu_root" sequence="4" groups="sales_team.group_sale_salesman"/>
<menuitem id="menu_product" name="Product Variants" parent="product_menu_catalog" sequence="2" groups="base.group_no_one" active="False"/>
<menuitem action="product_template_action" id="menu_product_template_action" parent="product_menu_catalog" sequence="1" active="False"/>
<menuitem id="prod_config_main" name="Products" parent="menu_sale_config" sequence="5"/>
@@ -316,7 +316,7 @@
<label for="date_order" string="Order Date"/>
</div>
<field name="date_order" attrs="{'required': [('state', 'in', ['sale', 'done'])], 'invisible': [('state', 'in', ['draft', 'sent'])]}" nolabel="1"/>
- <field name="pricelist_id" groups="product.group_product_pricelist"/>
+ <field name="pricelist_id" groups="product.group_product_pricelist" options="{'no_open':True,'no_create': True}"/>
<field name="currency_id" invisible="1"/>
<field name="payment_term_id" options="{'no_open':True,'no_create': True}"/>
</group>
@@ -633,7 +633,7 @@
<group name="sale_info" string="Invoicing">
<field name="fiscal_position_id" options="{'no_create': True}"/>
<field name="analytic_account_id" context="{'default_partner_id':partner_invoice_id, 'default_name':name}" attrs="{'readonly': [('invoice_count','!=',0),('state','=','sale')]}" groups="analytic.group_analytic_accounting" force_save="1"/>
- <field name="invoice_status" states="sale,done"/>
+ <field name="invoice_status" states="sale,done" groups="base.group_no_one"/>
</group>
</group>
<group>
diff --git a/addons/sale_coupon/views/sale_order_views.xml b/addons/sale_coupon/views/sale_order_views.xml
index 04f893a55e6..4fc28907134 100644
--- a/addons/sale_coupon/views/sale_order_views.xml
+++ b/addons/sale_coupon/views/sale_order_views.xml
@@ -9,8 +9,8 @@
<xpath expr="//group[@name='note_group']" position="before">
<div class="oe_right">
<button name="%(sale_coupon.sale_coupon_apply_code_action)d" class="btn btn-secondary"
- string="Add Coupon" type="action" groups="base.group_user" states="draft"/>
- <button name="recompute_coupon_lines" class="btn btn-secondary" string="Add Promotions"
+ string="Coupon" type="action" groups="base.group_user" states="draft"/>
+ <button name="recompute_coupon_lines" class="btn btn-secondary" string="Promotions"
help="When clicked, the content of the order will be checked to detect (and apply) possible promotion programs."
type="object" attrs="{'invisible': [('state', 'in', ['sale', 'done', 'cancel'])]}"/>
</div>
diff --git a/addons/sale_management/views/sale_order_views.xml b/addons/sale_management/views/sale_order_views.xml
index f6bbf7b89d6..feb8162110b 100644
--- a/addons/sale_management/views/sale_order_views.xml
+++ b/addons/sale_management/views/sale_order_views.xml
@@ -7,7 +7,7 @@
<field name="arch" type="xml">
<xpath expr="//page/field[@name='order_line']/.." position="after">
- <page string="Optional Products" name="optional_products">
+ <page string="Optional Products" name="optional_products" attrs="{'invisible': [('state', 'not in', ['draft', 'sent'])]}">
<field name="sale_order_option_ids" mode="tree,form,kanban">
<form string="Optional Products">
<group>
diff --git a/addons/sale_product_matrix/views/sale_views.xml b/addons/sale_product_matrix/views/sale_views.xml
index c9889ffb589..92861b626c9 100644
--- a/addons/sale_product_matrix/views/sale_views.xml
+++ b/addons/sale_product_matrix/views/sale_views.xml
@@ -11,7 +11,7 @@
<field name="grid_product_tmpl_id" invisible="1"/>
<field name="grid_update" invisible="1"/>
</field>
- <xpath expr="//notebook//group[@name='sale_reporting']" position="inside">
+ <xpath expr="//notebook//group[@name='sale_reporting']/group" position="inside">
<field name="report_grids"/>
</xpath>
</field>
diff --git a/addons/sale_stock/models/sale_order.py b/addons/sale_stock/models/sale_order.py
index 232f30dbcda..63150f16e37 100644
--- a/addons/sale_stock/models/sale_order.py
+++ b/addons/sale_stock/models/sale_order.py
@@ -36,6 +36,10 @@ class SaleOrder(models.Model):
delivery_count = fields.Integer(string='Delivery Orders', compute='_compute_picking_ids')
procurement_group_id = fields.Many2one('procurement.group', 'Procurement Group', copy=False)
effective_date = fields.Date("Effective Date", compute='_compute_effective_date', store=True, help="Completion date of the first delivery order.")
+ expected_date = fields.Datetime( help="Delivery date you can promise to the customer, computed from the minimum lead time of "
+ "the order lines in case of Service products. In case of shipping, the shipping policy of "
+ "the order will be taken into account to either use the minimum or maximum lead time of "
+ "the order lines.")
@api.depends('picking_ids.date_done')
def _compute_effective_date(self):