Mayur Maheshwari(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-stock_picking_usability-mma into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-stock_picking_usability-mma/+merge/98155
Hello,
I have made following changes in stock
1] Improved view of stock.picking model as per specification of pad
[http://pad.openerp.com/internalv61-project-task-2667-I5N6E7GV]
2] set related string for button and separator in partial wizard on related
view of stock.picking model
Thanks.
mma
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-stock_picking_usability-mma/+merge/98155
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-stock_picking_usability-mma.
=== modified file 'purchase/stock_view.xml'
--- purchase/stock_view.xml 2011-12-19 16:54:40 +0000
+++ purchase/stock_view.xml 2012-03-19 06:54:21 +0000
@@ -19,7 +19,7 @@
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<field name="auto_picking" position="after">
- <field name="purchase_id"/>
+ <field name="purchase_id" invisible="1"/>
</field>
</field>
</record>
@@ -52,9 +52,9 @@
<field name="type">form</field>
<field name="inherit_id" ref="stock.view_picking_in_form"/>
<field name="arch" type="xml">
- <field name="backorder_id" position="after">
+ <xpath expr="/form/notebook/page/field[@name='date']" position="before">
<field name="purchase_id"/>
- </field>
+ </xpath>
</field>
</record>
=== modified file 'sale/stock_view.xml'
--- sale/stock_view.xml 2011-12-19 16:54:40 +0000
+++ sale/stock_view.xml 2012-03-19 06:54:21 +0000
@@ -8,7 +8,7 @@
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<field name="auto_picking" position="after">
- <field name="sale_id"/>
+ <field name="sale_id" invisible="1"/>
</field>
</field>
</record>
@@ -57,9 +57,9 @@
<field name="type">form</field>
<field name="inherit_id" ref="stock.view_picking_out_form"/>
<field name="arch" type="xml">
- <field name="move_type" position="after">
+ <xpath expr="/form/notebook/page/field[@name='date']" position="after">
<field name="sale_id"/>
- </field>
+ </xpath>
</field>
</record>
=== modified file 'stock/__openerp__.py'
--- stock/__openerp__.py 2012-02-13 15:27:55 +0000
+++ stock/__openerp__.py 2012-03-19 06:54:21 +0000
@@ -72,8 +72,8 @@
'wizard/stock_return_picking_view.xml',
"stock_workflow.xml",
"stock_incoterms.xml",
+ "stock_report.xml",
"stock_view.xml",
- "stock_report.xml",
"stock_sequence.xml",
"product_data.xml",
"product_view.xml",
=== modified file 'stock/stock.py'
--- stock/stock.py 2012-02-28 14:08:16 +0000
+++ stock/stock.py 2012-03-19 06:54:21 +0000
@@ -639,7 +639,7 @@
"* Done: has been processed, can't be modified or cancelled anymore\n"\
"* Cancelled: has been cancelled, can't be confirmed anymore"),
'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date",
- store=True, type='datetime', string='Expected Date', select=1, help="Expected date for the picking to be processed"),
+ store=True, type='datetime', string='Scheduled Date', select=1, help="Expected date for the picking to be processed"),
'date': fields.datetime('Order Date', help="Date of Order", select=True),
'date_done': fields.datetime('Date Done', help="Date of Completion"),
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
@@ -738,7 +738,10 @@
""" Changes state of picking to available if all moves are confirmed.
@return: True
"""
+ wf_service = netsvc.LocalService("workflow")
for pick in self.browse(cr, uid, ids):
+ if pick.state == 'draft':
+ wf_service.trg_validate(uid, 'stock.picking', pick.id,'button_confirm', cr)
move_ids = [x.id for x in pick.move_lines if x.state == 'confirmed']
if not move_ids:
raise osv.except_osv(_('Warning !'),_('Not enough stock, unable to reserve the products.'))
=== modified file 'stock/stock_view.xml'
--- stock/stock_view.xml 2012-02-13 15:27:55 +0000
+++ stock/stock_view.xml 2012-03-19 06:54:21 +0000
@@ -696,14 +696,12 @@
<group colspan="4" col="4">
<field name="name" readonly="1"/>
<field name="origin"/>
- <field name="address_id" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" colspan="4"/>
+ <field name="address_id" string="Warehouse" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" colspan="4"/>
<field name="invoice_state" string="Invoice Control" groups="base.group_extended"/>
+ </group>
+ <group colspan="2" col="2">
<field name="backorder_id" readonly="1" groups="base.group_extended"/>
- </group>
- <group colspan="2" col="2">
- <field name="date"/>
<field name="min_date" readonly="1"/>
- <field name="stock_journal_id" groups="base.group_extended" widget="selection"/>
</group>
</group>
<notebook colspan="4">
@@ -737,8 +735,9 @@
groups="base.group_extended"
icon="terp-stock_effects-object-colorize"
states="draft,assigned,confirmed"/>
+ <field name="location_id"/>
<field name="location_dest_id"/>
- <field name="date_expected" string="Date Expected"/>
+ <field name="date_expected" />
<field name="state"/>
</tree>
<form string="Stock Moves">
@@ -809,10 +808,12 @@
</page>
<page string="Additional info" groups="base.group_extended,base.group_multi_company">
<field name="auto_picking" groups="base.group_extended"/>
- <field name="date_done" groups="base.group_extended"/>
+ <field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="move_type" groups="base.group_extended"/>
- <field name="type" groups="base.group_extended"/>
- <field name="company_id" groups="base.group_multi_company" widget="selection"/>
+ <field name="date"/>
+ <field name="type" groups="base.group_extended" invisible="1"/>
+ <field name="stock_journal_id" groups="base.group_extended" widget="selection"/>
+ <field name="date_done" string="Received Date" groups="base.group_extended"/>
</page>
<page string="Notes">
<field colspan="4" name="note" nolabel="1"/>
@@ -889,12 +890,12 @@
<group colspan="4" col="4">
<field name="name" readonly="1"/>
<field name="origin" readonly="1"/>
- <field name="address_id" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" colspan="4"/>
+ <field name="address_id" string="Customer" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" colspan="4"/>
<field name="invoice_state"/>
+
+ </group>
+ <group colspan="2" col="2">
<field name="backorder_id" readonly="1" groups="base.group_extended"/>
- </group>
- <group colspan="2" col="2">
- <field name="date"/>
<field name="min_date" readonly="1"/>
<field name="stock_journal_id" groups="base.group_extended" widget="selection"/>
</group>
@@ -928,7 +929,7 @@
groups="base.group_extended"
states="draft,assigned,confirmed"/>
<field name="location_id"/>
- <field name="date"/>
+ <field name="date_expected"/>
<field name="state"/>
<button name="%(action_partial_move_server)d" string="Process" type="action" states="confirmed,assigned" icon="gtk-go-forward"/>
</tree>
@@ -989,22 +990,23 @@
</field>
<group col="12" colspan="4">
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/>
- <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel" icon="gtk-cancel"/>
- <button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
<button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-yes"/>
- <button name="action_assign" states="confirmed" string="Check Availability" type="object" groups="base.group_extended" icon="gtk-find"/>
+ <button name="action_assign" states="draft" string="Check Availability" type="object" groups="base.group_extended" icon="gtk-find"/>
<button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
<button name="action_process" states="assigned" string="Process" type="object" icon="gtk-go-forward"/>
+ <button name="%(report_picking_list)d" string="Print Delivery Order" states="done" type="action" icon="gtk-print"/>
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action" icon="gtk-execute"/>
<button name="%(action_stock_invoice_onshipping)d" string="Create Invoice" attrs="{'invisible': ['|','|',('state','<>','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" icon="terp-gtk-go-back-rtl"/>
+ <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel" icon="gtk-cancel"/>
</group>
</page>
<page string="Additional info" groups="base.group_extended,base.group_multi_company">
<field name="auto_picking" groups="base.group_extended"/>
- <field name="date_done" groups="base.group_extended"/>
+ <field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="move_type" groups="base.group_extended"/>
- <field name="type" groups="base.group_extended"/>
- <field name="company_id" groups="base.group_multi_company" widget="selection"/>
+ <field name="date"/>
+ <field name="date_done" string="Delivery Date" groups="base.group_extended"/>
+ <field name="type" groups="base.group_extended" invisible="1"/>
</page>
<page string="Notes">
<field colspan="4" name="note" nolabel="1"/>
@@ -1110,12 +1112,12 @@
<group colspan="4" col="4">
<field name="name" readonly="1"/>
<field name="origin"/>
- <field name="address_id" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" domain="[('partner_id','<>',False)]" colspan="4"/>
+ <field name="address_id" string="Supplier" on_change="onchange_partner_in(address_id)" context="{'contact_display':'partner'}" domain="[('partner_id','<>',False)]" colspan="4"/>
<field name="invoice_state" string="Invoice Control"/>
+
+ </group>
+ <group colspan="2" col="2">
<field name="backorder_id" readonly="1" groups="base.group_extended"/>
- </group>
- <group colspan="2" col="2">
- <field name="date"/>
<field name="min_date" readonly="1"/>
<field name="stock_journal_id" groups="base.group_extended" widget="selection"/>
</group>
@@ -1208,19 +1210,20 @@
</form>
</field>
<group col="10" colspan="4">
- <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/>
- <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel" icon="gtk-cancel"/>
- <button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
+ <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/>
<button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-media-play"/>
- <button name="action_assign" states="confirmed" string="Check Availability" type="object" icon="gtk-find"/>
+ <button name="action_assign" states="draft, confirmed" string="Check Availability" type="object" icon="gtk-find"/>
<button name="force_assign" states="confirmed" string="Force Availability" type="object" groups="base.group_extended" icon="gtk-jump-to"/>
<button name="action_process" states="assigned" string="Process" type="object" icon="gtk-go-forward"/>
+ <button name="%(report_picking_list)d" string="Print Reception" type="action" icon="gtk-print" states="done"/>
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action" icon="gtk-execute"/>
<button name="%(action_stock_invoice_onshipping)d" string="Create Invoice" attrs="{'invisible': ['|','|',('state','<>','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" icon="terp-gtk-go-back-rtl" />
+ <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel" icon="gtk-cancel"/>
</group>
</page>
<page string="Additional Info" groups="base.group_extended,base.group_multi_company">
- <field name="type" groups="base.group_extended"/>
+ <field name="type" groups="base.group_extended" invisible="1"/>
+ <field name="date"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</page>
<page string="Notes">
=== modified file 'stock/wizard/stock_partial_picking.py'
--- stock/wizard/stock_partial_picking.py 2012-01-31 13:36:57 +0000
+++ stock/wizard/stock_partial_picking.py 2012-03-19 06:54:21 +0000
@@ -23,6 +23,7 @@
from osv import fields, osv
from tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
import decimal_precision as dp
+from lxml import etree
from tools.translate import _
class stock_partial_picking_line(osv.TransientModel):
@@ -71,6 +72,34 @@
'picking_id': fields.many2one('stock.picking', 'Picking', required=True, ondelete='CASCADE'),
'hide_tracking': fields.function(_hide_tracking, string='Tracking', type='boolean', help='This field is for internal purpose. It is used to decide if the column prodlot has to be shown on the move_ids field or not'),
}
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form',
+ context=None, toolbar=False, submenu=False):
+ if context is None:
+ context={}
+ res = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
+ type = context.get('default_type', False)
+ doc = etree.XML(res['arch'])
+ nodes = doc.xpath("//group/button[@string='_Validate']")
+ separator_extended = ''
+ for field in res['fields']:
+ if type == 'in':
+ for node in nodes:
+ separator_extended = '''<separator colspan="4" string="Receive Products"/>'''
+ node.set('string', '_Receive')
+ if type == 'internal':
+ for node in nodes:
+ separator_extended = '''<separator colspan="4" string="Move Products"/>'''
+ node.set('string', '_Move')
+ if type == 'out':
+ for node in nodes:
+ separator_extended = '''<separator colspan="4" string="Deliver Products"/>'''
+ node.set('string', '_Deliver')
+
+ res['arch'] = etree.tostring(doc)
+ if separator_extended:
+ res['arch'] = res['arch'].replace('<separator colspan="4" string="Products"/>', separator_extended)
+ return res
def default_get(self, cr, uid, fields, context=None):
if context is None: context = {}
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp