diff --git a/CHANGELOG b/CHANGELOG index 86359c978a..c5f63669df 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Rename purchase state from cancel to cancelled * Add window tab for exception states Version 5.6.0 - 2020-05-04 diff --git a/party.py b/party.py index a20fa80219..81ac657158 100644 --- a/party.py +++ b/party.py @@ -56,7 +56,7 @@ class PartyErase(metaclass=PoolMeta): purchases = Purchase.search([ ('party', '=', party.id), ('company', '=', company.id), - ('state', 'not in', ['done', 'cancel']), + ('state', 'not in', ['done', 'cancelled']), ]) if purchases: raise EraseError( diff --git a/party.xml b/party.xml index 4a6d167b29..1f1b864bfe 100644 --- a/party.xml +++ b/party.xml @@ -14,7 +14,7 @@ this repository contains the full copyright notices and license terms. --> - + diff --git a/purchase.py b/purchase.py index 7d9a54ad1b..dc78b3957d 100644 --- a/purchase.py +++ b/purchase.py @@ -89,7 +89,8 @@ class Purchase( purchase_date = fields.Date('Purchase Date', states={ 'readonly': ~Eval('state').in_(['draft', 'quotation']), - 'required': ~Eval('state').in_(['draft', 'quotation', 'cancel']), + 'required': ~Eval('state').in_( + ['draft', 'quotation', 'cancelled']), }, depends=['state']) payment_term = fields.Many2One('account.invoice.payment_term', @@ -127,7 +128,8 @@ class Purchase( ], states={ 'readonly': Eval('state') != 'draft', - 'required': ~Eval('state').in_(['draft', 'quotation', 'cancel']), + 'required': ~Eval('state').in_( + ['draft', 'quotation', 'cancelled']), }, depends=['party', 'invoice_party', 'state']) warehouse = fields.Many2One('stock.location', 'Warehouse', @@ -187,7 +189,7 @@ class Purchase( "Delivery Date", states={ 'readonly': Eval('state').in_([ - 'processing', 'done', 'cancel']), + 'processing', 'done', 'cancelled']), }, depends=['state'], help="The default delivery date for each line.") @@ -207,17 +209,17 @@ class Purchase( quoted_by = employee_field( "Quoted By", - states=['quotation', 'confirmed', 'processing', 'done', 'cancel']) + states=['quotation', 'confirmed', 'processing', 'done', 'cancelled']) confirmed_by = employee_field( "Confirmed By", - states=['confirmed', 'processing', 'done', 'cancel']) + states=['confirmed', 'processing', 'done', 'cancelled']) state = fields.Selection([ ('draft', "Draft"), ('quotation', "Quotation"), ('confirmed', "Confirmed"), ('processing', "Processing"), ('done', "Done"), - ('cancel', "Canceled"), + ('cancelled', "Cancelled"), ], "State", readonly=True, required=True) del _states, _depends @@ -237,10 +239,10 @@ class Purchase( ('processing', 'processing'), ('processing', 'done'), ('done', 'processing'), - ('draft', 'cancel'), - ('quotation', 'cancel'), + ('draft', 'cancelled'), + ('quotation', 'cancelled'), ('quotation', 'draft'), - ('cancel', 'draft'), + ('cancelled', 'draft'), )) cls._buttons.update({ 'cancel': { @@ -249,8 +251,8 @@ class Purchase( }, 'draft': { 'invisible': ~Eval('state').in_( - ['cancel', 'quotation', 'confirmed']), - 'icon': If(Eval('state') == 'cancel', 'tryton-undo', + ['cancelled', 'quotation', 'confirmed']), + 'icon': If(Eval('state') == 'cancelled', 'tryton-undo', 'tryton-back'), 'depends': ['state'], }, @@ -280,12 +282,12 @@ class Purchase( }, 'handle_invoice_exception': { 'invisible': ((Eval('invoice_state') != 'exception') - | (Eval('state') == 'cancel')), + | (Eval('state') == 'cancelled')), 'depends': ['state', 'invoice_state'], }, 'handle_shipment_exception': { 'invisible': ((Eval('shipment_state') != 'exception') - | (Eval('state') == 'cancel')), + | (Eval('state') == 'cancelled')), 'depends': ['state', 'shipment_state'], }, 'modify_header': { @@ -295,7 +297,7 @@ class Purchase( }, }) # The states where amounts are cached - cls._states_cached = ['confirmed', 'done', 'cancel'] + cls._states_cached = ['confirmed', 'done', 'cancelled'] @classmethod def __register__(cls, module_name): @@ -348,6 +350,11 @@ class Purchase( # Add index on create_date table.index_action('create_date', action='add') + # Migration from 5.6: rename state cancel to cancelled + cursor.execute(*sql_table.update( + [sql_table.state], ['cancelled'], + where=sql_table.state == 'cancel')) + @classmethod def default_payment_term(cls): PaymentTerm = Pool().get('account.invoice.payment_term') @@ -658,7 +665,7 @@ class Purchase( def view_attributes(cls): attributes = [ ('/form//field[@name="comment"]', 'spell', Eval('party_lang')), - ('/tree', 'visual', If(Eval('state') == 'cancel', 'muted', '')), + ('/tree', 'visual', If(Eval('state') == 'cancelled', 'muted', '')), ('/tree/field[@name="invoice_state"]', 'visual', If(Eval('invoice_state') == 'exception', 'danger', '')), ('/tree/field[@name="shipment_state"]', 'visual', @@ -846,7 +853,7 @@ class Purchase( # Cancel before delete cls.cancel(purchases) for purchase in purchases: - if purchase.state != 'cancel': + if purchase.state != 'cancelled': raise AccessError( gettext('purchase.msg_purchase_delete_cancel', purchase=purchase.rec_name)) @@ -854,7 +861,7 @@ class Purchase( @classmethod @ModelView.button - @Workflow.transition('cancel') + @Workflow.transition('cancelled') def cancel(cls, purchases): cls.store_cache(purchases) @@ -1131,7 +1138,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView): states={ 'invisible': Eval('type') != 'line', 'readonly': Eval('purchase_state').in_([ - 'processing', 'done', 'cancel']), + 'processing', 'done', 'cancelled']), }, depends=['type', 'purchase_state'], help="Check to edit the delivery date.") @@ -1141,7 +1148,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView): 'invisible': ((Eval('type') != 'line') | ~Eval('delivery_date_edit', False)), 'readonly': Eval('purchase_state').in_([ - 'processing', 'done', 'cancel']), + 'processing', 'done', 'cancelled']), }, depends=['type', 'delivery_date_edit', 'purchase_state']) purchase_state = fields.Function( @@ -1675,7 +1682,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView): @classmethod def delete(cls, lines): for line in lines: - if line.purchase_state not in {'cancel', 'draft'}: + if line.purchase_state not in {'cancelled', 'draft'}: raise AccessError( gettext('purchase.msg_purchase_line_delete_cancel_draft', line=line.rec_name,