diff options
| author | Parth Choksi <pch@odoo.com> | 2019-07-12 04:59:53 +0000 |
|---|---|---|
| committer | Damien Bouvy <dbo@odoo.com> | 2019-08-08 07:54:07 +0000 |
| commit | 5d7c0267a68b906afc267a99ab1ae7257bba8f66 (patch) | |
| tree | a6975280f36cc39e24b126cb2495f3b28d6df41b | |
| parent | 3ee0d3b68b8ceeb4fcd3379fd8c87ae402835139 (diff) | |
[IMP] *_sale, sale, sale_*: improvements in form view
Sending a quotation by mail is really rare and the option is still
available in dropdown menu. It is also confusing to see the document status
changed while you just want to print as a draft sometimes. So the PRINT button
is removed here.
Only displayed UNLOCK/LOCK for 'sales managers' if the
option “Lock confirmed orders” is activated in the settings.
Removed the ability to open the payment terms via external button
in edit mode
Removed the left,right and top borders in the field of terms and condition.
Kept only bottom border.
Event and Event ticket will come after Product regardless of it being a
template or the product.
In the sale order's form view, made certain changes like shifting
the positions, removing the field, adding title, keeping the field
in debug mode.
task-2033229
| -rw-r--r-- | addons/event_sale/views/sale_order_views.xml | 2 | ||||
| -rw-r--r-- | addons/sale/models/res_config_settings.py | 2 | ||||
| -rw-r--r-- | addons/sale/models/sale.py | 2 | ||||
| -rw-r--r-- | addons/sale/security/sale_security.xml | 5 | ||||
| -rw-r--r-- | addons/sale/static/src/js/tours/sale.js | 7 | ||||
| -rw-r--r-- | addons/sale/views/res_config_settings_views.xml | 4 | ||||
| -rw-r--r-- | addons/sale/views/sale_views.xml | 46 | ||||
| -rw-r--r-- | addons/sale_coupon/views/sale_order_views.xml | 1 | ||||
| -rw-r--r-- | addons/sale_crm/views/sale_order_views.xml | 3 | ||||
| -rw-r--r-- | addons/sale_stock/views/sale_order_views.xml | 3 | ||||
| -rw-r--r-- | addons/website_sale/views/sale_order_views.xml | 2 | ||||
| -rw-r--r-- | odoo/addons/test_main_flows/static/tests/tours/main_flow.js | 6 |
12 files changed, 44 insertions, 39 deletions
diff --git a/addons/event_sale/views/sale_order_views.xml b/addons/event_sale/views/sale_order_views.xml index 2ec78e4747e..4af17bfbaa9 100644 --- a/addons/event_sale/views/sale_order_views.xml +++ b/addons/event_sale/views/sale_order_views.xml @@ -30,7 +30,7 @@ /> <field name="event_ok" invisible="1"/> </xpath> - <xpath expr="//field[@name='order_line']//tree//field[@name='product_id']" position="after"> + <xpath expr="//field[@name='order_line']//tree//field[@name='product_template_id']" position="after"> <field name="event_ok" invisible="1" /> <field name="event_id" optional="hide" /> <field name="event_ticket_id" optional="hide" /> diff --git a/addons/sale/models/res_config_settings.py b/addons/sale/models/res_config_settings.py index a9ce8c651a6..e3ab9915355 100644 --- a/addons/sale/models/res_config_settings.py +++ b/addons/sale/models/res_config_settings.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' + group_auto_done_setting = fields.Boolean("Lock Confirmed Sales", implied_group='sale.group_auto_done_setting') module_sale_margin = fields.Boolean("Margins") quotation_validity_days = fields.Integer(related='company_id.quotation_validity_days', string="Default Quotation Validity (Days)", readonly=False) use_quotation_validity_days = fields.Boolean("Default Quotation Validity", config_parameter='sale.use_quotation_validity_days') @@ -39,7 +40,6 @@ class ResConfigSettings(models.TransientModel): domain="[('type', '=', 'service')]", config_parameter='sale.default_deposit_product_id', help='Default product used for payment advances') - auto_done_setting = fields.Boolean("Lock Confirmed Sales", config_parameter='sale.auto_done_setting') module_website_sale_digital = fields.Boolean("Digital Content") auth_signup_uninvited = fields.Selection([ diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 5ef365d4140..8145d8166bf 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -694,7 +694,7 @@ class SaleOrder(models.Model): 'confirmation_date': fields.Datetime.now() }) self._action_confirm() - if self.env['ir.config_parameter'].sudo().get_param('sale.auto_done_setting'): + if self.env.user.has_group('sale.group_auto_done_setting'): self.action_done() return True diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml index cbcd4baf8c3..0ecefa2bda8 100644 --- a/addons/sale/security/sale_security.xml +++ b/addons/sale/security/sale_security.xml @@ -1,6 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> + <record id="group_auto_done_setting" model="res.groups"> + <field name="name">Lock Confirmed Sales</field> + <field name="category_id" ref="base.module_category_hidden"/> + </record> + <record id="group_delivery_invoice_address" model="res.groups"> <field name="name">Addresses in Sales Orders</field> <field name="category_id" ref="base.module_category_hidden"/> diff --git a/addons/sale/static/src/js/tours/sale.js b/addons/sale/static/src/js/tours/sale.js index 4c97755017e..b4b8c9c1a4e 100644 --- a/addons/sale/static/src/js/tours/sale.js +++ b/addons/sale/static/src/js/tours/sale.js @@ -69,13 +69,8 @@ tour.register('sale_tour', { position: "right", id: "form_button_save_clicked" }, { - trigger: ".o_sale_print", - extra_trigger: ".o_sale_order.o_form_readonly", - content: _t("Print this quotation to preview it."), - position: "bottom" -}, { trigger: ".breadcrumb-item:not(.active):last", - extra_trigger: ".o_sale_order [data-value='sent'].btn-primary", + extra_trigger: ".o_sale_order [data-value='draft'].btn-primary", content: _t("Use the breadcrumbs to <b>go back to preceeding screens</b>."), position: "bottom" }, { diff --git a/addons/sale/views/res_config_settings_views.xml b/addons/sale/views/res_config_settings_views.xml index 702e54f36fc..f48bf6a07a4 100644 --- a/addons/sale/views/res_config_settings_views.xml +++ b/addons/sale/views/res_config_settings_views.xml @@ -241,10 +241,10 @@ </div> <div class="col-12 col-lg-6 o_setting_box"> <div class="o_setting_left_pane"> - <field name="auto_done_setting"/> + <field name="group_auto_done_setting"/> </div> <div class="o_setting_right_pane"> - <label for="auto_done_setting"/> + <label for="group_auto_done_setting"/> <div class="text-muted"> No longer edit orders once confirmed </div> diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml index 7889d22a07f..262c7ea8698 100644 --- a/addons/sale/views/sale_views.xml +++ b/addons/sale/views/sale_views.xml @@ -255,7 +255,6 @@ attrs="{'invisible': [('authorized_transaction_ids', '=', [])]}"/> <button name="action_quotation_send" string="Send by Email" type="object" states="draft" class="btn-primary"/> <button name="action_quotation_send" type="object" string="Send PRO-FORMA Invoice" groups="sale.group_proforma_sales" class="btn-primary" attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('invoice_count','>=',1)]}" context="{'proforma': True}"/> - <button name="print_quotation" string="Print" type="object" states="draft" class="btn-primary o_sale_print"/> <button name="action_confirm" id="action_confirm" string="Confirm" class="btn-primary" type="object" attrs="{'invisible': [('state', 'not in', ['sent'])]}"/> @@ -263,13 +262,9 @@ string="Confirm" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/> <button name="action_quotation_send" type="object" string="Send PRO-FORMA Invoice" groups="sale.group_proforma_sales" attrs="{'invisible': ['|', ('state', '=', 'draft'), ('invoice_count','>=',1)]}" context="{'proforma': True}"/> - <button name="print_quotation" string="Print" type="object" states="sent,sale" class="o_sale_print"/> <button name="action_quotation_send" string="Send by Email" type="object" states="sent,sale"/> <button name="action_cancel" states="draft,sent,sale" type="object" string="Cancel"/> <button name="action_draft" states="cancel" type="object" string="Set to Quotation"/> - <button name="action_done" type="object" string="Lock" states="sale" - help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver."/> - <button name="action_unlock" type="object" string="Unlock" states="done" groups="sales_team.group_sale_manager"/> <field name="state" widget="statusbar" statusbar_visible="draft,sent,sale"/> </header> <sheet> @@ -307,7 +302,7 @@ <field name="confirmation_date" attrs="{'invisible': [('state', 'in', ['draft', 'sent', 'cancel'])], 'required': [('state', 'in', ['sale', 'done'])]}"/> <field name="pricelist_id" groups="product.group_sale_pricelist"/> <field name="currency_id" invisible="1"/> - <field name="payment_term_id" options="{'no_create': True}"/> + <field name="payment_term_id" options="{'no_open':True,'no_create': True}"/> </group> </group> <notebook> @@ -592,7 +587,10 @@ </templates> </kanban> </field> - <group name="note_group"> + <group name="note_group" col="6"> + <group colspan="4"> + <field name="note" nolabel="1" placeholder="Terms and conditions..."/> + </group> <group class="oe_subtotal_footer oe_right" colspan="2" name="sale_total"> <field name="amount_untaxed" widget='monetary' options="{'currency_field': 'currency_id'}"/> <field name="amount_tax" widget='monetary' options="{'currency_field': 'currency_id'}"/> @@ -601,32 +599,31 @@ </div> <field name="amount_total" nolabel="1" class="oe_subtotal_footer_separator" widget='monetary' options="{'currency_field': 'currency_id'}"/> </group> - <field name="note" placeholder="Terms and conditions..."/> <div class="oe_clear"/> </group> </page> <page string="Other Info" name="other_information"> <group> - <group name="sales_person"> - <field name="date_order" attrs="{'invisible': [('state', 'in', ['sale', 'done', 'cancel'])]}" string="Quotation Date"/> + <group name="sales_person" string="Sales"> + <field name="date_order" attrs="{'invisible': [('state', 'in', ['sale', 'done', 'cancel'])]}" string="Quotation Date" groups="base.group_no_one"/> <field name="user_id"/> <field name="team_id" options="{'no_create': True}"/> <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/> - <field name="require_signature"/> - <field name="require_payment"/> + <field name="require_signature" groups="base.group_no_one"/> + <field name="require_payment" groups="base.group_no_one"/> <field name="reference" readonly="1" attrs="{'invisible': [('reference', '=', False)]}"/> - <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"/> - </group> - <group name="sale_info"> <field name="client_order_ref"/> + </group> + <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" invisible="1"/> </group> </group> <group> - <group string="Shipping Information" name="sale_shipping"> - <field name="expected_date" groups="sale.group_sale_order_dates"/> - <field name="commitment_date" groups="sale.group_sale_order_dates"/> + <group name="sale_shipping" groups="sale.group_sale_order_dates"> + <field name="expected_date"/> + <field name="commitment_date"/> </group> <group string="Reporting" groups="base.group_no_one"> <group name="technical" colspan="2" class="mb-0"> @@ -659,6 +656,19 @@ </field> </record> + <record id="view_sales_order_auto_done_setting" model="ir.ui.view"> + <field name="name">sale.order.form</field> + <field name="model">sale.order</field> + <field name="inherit_id" ref="sale.view_order_form"/> + <field name="groups_id" eval="[(4, ref('sale.group_auto_done_setting'))]"/> + <field name="arch" type="xml"> + <xpath expr="//form//header//button[@name='action_draft']" position="after"> + <button name="action_done" type="object" string="Lock" states="sale" + help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver." groups="sales_team.group_sale_manager"/> + <button name="action_unlock" type="object" string="Unlock" states="done" groups="sales_team.group_sale_manager"/> + </xpath> + </field> + </record> <record id="view_sales_order_filter" model="ir.ui.view"> <field name="name">sale.order.list.select</field> <field name="model">sale.order</field> diff --git a/addons/sale_coupon/views/sale_order_views.xml b/addons/sale_coupon/views/sale_order_views.xml index b21cdde15d4..04f893a55e6 100644 --- a/addons/sale_coupon/views/sale_order_views.xml +++ b/addons/sale_coupon/views/sale_order_views.xml @@ -4,6 +4,7 @@ <field name="name">sale.order.form.inherit.coupon</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form" /> + <field name="priority">10</field> <field name="arch" type="xml"> <xpath expr="//group[@name='note_group']" position="before"> <div class="oe_right"> diff --git a/addons/sale_crm/views/sale_order_views.xml b/addons/sale_crm/views/sale_order_views.xml index 5a2a134a73a..749258edf3b 100644 --- a/addons/sale_crm/views/sale_order_views.xml +++ b/addons/sale_crm/views/sale_order_views.xml @@ -14,9 +14,6 @@ <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> - <field name="client_order_ref" position="after"> - <field name="tag_ids" widget="many2many_tags"/> - </field> <xpath expr="//group[@name='utm_link']" position="replace"> <group name="utm_link" colspan="2" class="mt-0"> <field name="campaign_id"/> diff --git a/addons/sale_stock/views/sale_order_views.xml b/addons/sale_stock/views/sale_order_views.xml index 7b1d086a7cc..f328b550e3a 100644 --- a/addons/sale_stock/views/sale_order_views.xml +++ b/addons/sale_stock/views/sale_order_views.xml @@ -17,7 +17,8 @@ </button> </xpath> <xpath expr="//group[@name='sale_shipping']" position="attributes"> - <attribute name="groups"></attribute> <!-- Remove the res.group on the group and set it on the field directly--> + <attribute name="groups"></attribute><!-- Remove the res.group on the group and set it on the field directly--> + <attribute name="string">Delivery</attribute> </xpath> <xpath expr="//field[@name='expected_date']" position="before"> <field name="warehouse_id" options="{'no_create': True}" groups="stock.group_stock_multi_warehouses"/> diff --git a/addons/website_sale/views/sale_order_views.xml b/addons/website_sale/views/sale_order_views.xml index cb31ebe716b..f26ba06f2b4 100644 --- a/addons/website_sale/views/sale_order_views.xml +++ b/addons/website_sale/views/sale_order_views.xml @@ -266,7 +266,7 @@ <attribute name="context">{'display_website': True}</attribute> </field> <field name="team_id" position="after"> - <field name="website_id" groups="website.group_multi_website"/> + <field name="website_id" attrs="{'invisible': [('website_id', '=', False)]}" groups="website.group_multi_website"/> </field> </field> </record> diff --git a/odoo/addons/test_main_flows/static/tests/tours/main_flow.js b/odoo/addons/test_main_flows/static/tests/tours/main_flow.js index f13cfb64e44..519198da5fe 100644 --- a/odoo/addons/test_main_flows/static/tests/tours/main_flow.js +++ b/odoo/addons/test_main_flows/static/tests/tours/main_flow.js @@ -389,12 +389,8 @@ tour.register('main_flow_tour', { trigger: 'label:contains("Untaxed Amount")', // click somewhere else to exit cell focus }, { - trigger: ".o_statusbar_buttons > button.o_sale_print:enabled", - content: _t("<p><b>Print this quotation.</b></p>"), - position: "bottom" -}, { trigger: ".o_statusbar_buttons > button:enabled:contains('Send by Email')", - extra_trigger: ".o_statusbar_status .btn-primary:contains('Quotation Sent')", + extra_trigger: ".o_statusbar_status .btn-primary:contains('Quotation')", content: _t("Try to send it to email"), position: "bottom", }, { |
