Port stock_usability to v10
This commit is contained in:
@@ -1,26 +1,9 @@
|
|||||||
# -*- encoding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
##############################################################################
|
# © 2015-2016 Akretion (http://www.akretion.com)
|
||||||
#
|
|
||||||
# Procurement Usability module for Odoo
|
|
||||||
# Copyright (C) 2015 Akretion (http://www.akretion.com)
|
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
#
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
from openerp import models, fields
|
from odoo import models, fields, api
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@@ -30,15 +13,14 @@ logger = logging.getLogger(__name__)
|
|||||||
class ProcurementOrder(models.Model):
|
class ProcurementOrder(models.Model):
|
||||||
_inherit = 'procurement.order'
|
_inherit = 'procurement.order'
|
||||||
|
|
||||||
|
@api.model
|
||||||
def _procure_orderpoint_confirm(
|
def _procure_orderpoint_confirm(
|
||||||
self, cr, uid, use_new_cursor=False, company_id=False,
|
self, use_new_cursor=False, company_id=False):
|
||||||
context=None):
|
|
||||||
logger.info(
|
logger.info(
|
||||||
'procurement scheduler: START to create procurements from '
|
'procurement scheduler: START to create procurements from '
|
||||||
'orderpoints')
|
'orderpoints')
|
||||||
res = super(ProcurementOrder, self)._procure_orderpoint_confirm(
|
res = super(ProcurementOrder, self)._procure_orderpoint_confirm(
|
||||||
cr, uid, use_new_cursor=use_new_cursor, company_id=company_id,
|
use_new_cursor=use_new_cursor, company_id=company_id)
|
||||||
context=context)
|
|
||||||
logger.info(
|
logger.info(
|
||||||
'procurement scheduler: END creation of procurements from '
|
'procurement scheduler: END creation of procurements from '
|
||||||
'orderpoints')
|
'orderpoints')
|
||||||
@@ -46,38 +28,36 @@ class ProcurementOrder(models.Model):
|
|||||||
|
|
||||||
# Why is this code in stock_usability and not in procurement_usability ?
|
# Why is this code in stock_usability and not in procurement_usability ?
|
||||||
# For a very good reason
|
# For a very good reason
|
||||||
# The stock module inherits run_scheduler(). So, if we want to have the START and
|
# The stock module inherits run_scheduler(). So, if we want to have the
|
||||||
# END log message and a good end date for procurement.scheduler.log
|
# START and END log message and a good end date
|
||||||
# the method below must be called first, so we must be "above" all
|
# for procurement.scheduler.log, the method below must be called first,
|
||||||
# modules that call run_scheduler()
|
# so we must be "above" all modules that call run_scheduler()
|
||||||
|
@api.model
|
||||||
def run_scheduler(
|
def run_scheduler(
|
||||||
self, cr, uid, use_new_cursor=False, company_id=False,
|
self, use_new_cursor=False, company_id=False):
|
||||||
context=None):
|
|
||||||
'''Inherit to add info logs'''
|
'''Inherit to add info logs'''
|
||||||
logger.info(
|
logger.info(
|
||||||
'START procurement scheduler '
|
'START procurement scheduler '
|
||||||
'(company ID=%d, uid=%d, use_new_cursor=%s)',
|
'(company ID=%d, uid=%d, use_new_cursor=%s)',
|
||||||
company_id, uid, use_new_cursor)
|
company_id, self._uid, use_new_cursor)
|
||||||
start_datetime = datetime.now()
|
start_datetime = datetime.now()
|
||||||
res = super(ProcurementOrder, self).run_scheduler(
|
res = super(ProcurementOrder, self).run_scheduler(
|
||||||
cr, uid, use_new_cursor=use_new_cursor, company_id=company_id,
|
use_new_cursor=use_new_cursor, company_id=company_id)
|
||||||
context=context)
|
|
||||||
logger.info(
|
logger.info(
|
||||||
'END procurement scheduler '
|
'END procurement scheduler '
|
||||||
'(company ID=%d, uid=%d, use_new_cursor=%s)',
|
'(company ID=%d, uid=%d, use_new_cursor=%s)',
|
||||||
company_id, uid, use_new_cursor)
|
company_id, self._uid, use_new_cursor)
|
||||||
try:
|
try:
|
||||||
# I put it in a try/except, to be sure that, even if the user
|
# I put it in a try/except, to be sure that, even if the user
|
||||||
# the execute the scheduler doesn't have create right on
|
# the execute the scheduler doesn't have create right on
|
||||||
# procurement.scheduler.log
|
# procurement.scheduler.log
|
||||||
self.pool['procurement.scheduler.log'].create(
|
self.env['procurement.scheduler.log'].create({
|
||||||
cr, uid, {
|
|
||||||
'company_id': company_id,
|
'company_id': company_id,
|
||||||
'start_datetime': start_datetime,
|
'start_datetime': start_datetime,
|
||||||
}, context=context)
|
})
|
||||||
# If I don't do an explicit cr.commit(), it doesn't create
|
# If I don't do an explicit cr.commit(), it doesn't create
|
||||||
# the procurement.scheduler.log... I don't know why
|
# the procurement.scheduler.log... I don't know why
|
||||||
cr.commit()
|
self._cr.commit()
|
||||||
except:
|
except:
|
||||||
logger.warning('Could not create procurement.scheduler.log')
|
logger.warning('Could not create procurement.scheduler.log')
|
||||||
return res
|
return res
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright (C) 2015-2016 Akretion (http://www.akretion.com/)
|
© 2015-2016 Akretion (http://www.akretion.com/)
|
||||||
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
The licence is in the file __openerp__.py
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<openerp>
|
<odoo>
|
||||||
<data>
|
|
||||||
|
|
||||||
<record id="procurement_group_form_view" model="ir.ui.view">
|
<record id="procurement_group_form_view" model="ir.ui.view">
|
||||||
<field name="name">stock_usability.procurement.group.form</field>
|
<field name="name">stock_usability.procurement.group.form</field>
|
||||||
<field name="model">procurement.group</field>
|
<field name="model">procurement.group</field>
|
||||||
<field name="inherit_id" ref="procurement.procurement_group_form_view"/>
|
<field name="inherit_id" ref="stock.procurement_group_form_view_herited"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="move_type" position="after">
|
<field name="move_type" position="after">
|
||||||
<field name="partner_id" readonly="True"/>
|
<field name="partner_id" readonly="True"/>
|
||||||
</field>
|
</field>
|
||||||
|
<xpath expr="//field[@name='move_type']/.." position="after">
|
||||||
|
<group name="picking" string="Pickings">
|
||||||
|
<field name="picking_ids" nolabel="1"/>
|
||||||
|
</group>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -31,7 +34,7 @@
|
|||||||
</group>
|
</group>
|
||||||
</xpath>
|
</xpath>
|
||||||
<field name="partner_dest_id" position="before">
|
<field name="partner_dest_id" position="before">
|
||||||
<field name="orderpoint_id" readonly="True"/>
|
<field name="orderpoint_id" readonly="1"/>
|
||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@@ -59,5 +62,4 @@
|
|||||||
action="procurement_scheduler_log_action"
|
action="procurement_scheduler_log_action"
|
||||||
parent="stock.menu_stock_sched" sequence="22"/>
|
parent="stock.menu_stock_sched" sequence="22"/>
|
||||||
|
|
||||||
</data>
|
</odoo>
|
||||||
</openerp>
|
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ class StockLocationRoute(models.Model):
|
|||||||
class StockWarehouseOrderpoint(models.Model):
|
class StockWarehouseOrderpoint(models.Model):
|
||||||
_inherit = 'stock.warehouse.orderpoint'
|
_inherit = 'stock.warehouse.orderpoint'
|
||||||
|
|
||||||
|
# This SQL constraint blocks the use of the "active" field
|
||||||
|
# but I think it's not very useful to have such an "active" field
|
||||||
|
# on orderpoints ; when you think the order point is bad, you update
|
||||||
|
# the min/max values, you don't de-active it !
|
||||||
_sql_constraints = [(
|
_sql_constraints = [(
|
||||||
'company_wh_location_product_unique',
|
'company_wh_location_product_unique',
|
||||||
'unique(company_id, warehouse_id, location_id, product_id)',
|
'unique(company_id, warehouse_id, location_id, product_id)',
|
||||||
@@ -68,12 +72,13 @@ class StockMove(models.Model):
|
|||||||
# availability = fields.Float(
|
# availability = fields.Float(
|
||||||
# digits=dp.get_precision('Product Unit of Measure'))
|
# digits=dp.get_precision('Product Unit of Measure'))
|
||||||
|
|
||||||
def name_get(self, cr, uid, ids, context=None):
|
@api.multi
|
||||||
|
def name_get(self):
|
||||||
'''name_get of stock_move is important for the reservation of the
|
'''name_get of stock_move is important for the reservation of the
|
||||||
quants: so want to add the name of the customer and the expected date
|
quants: so want to add the name of the customer and the expected date
|
||||||
in it'''
|
in it'''
|
||||||
res = []
|
res = []
|
||||||
for line in self.browse(cr, uid, ids, context=context):
|
for line in self:
|
||||||
name = line.location_id.name + ' > ' + line.location_dest_id.name
|
name = line.location_id.name + ' > ' + line.location_dest_id.name
|
||||||
if line.product_id.code:
|
if line.product_id.code:
|
||||||
name = line.product_id.code + ': ' + name
|
name = line.product_id.code + ': ' + name
|
||||||
@@ -88,13 +93,6 @@ class StockMove(models.Model):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
class StockQuant(models.Model):
|
|
||||||
_inherit = 'stock.quant'
|
|
||||||
|
|
||||||
uom_id = fields.Many2one(
|
|
||||||
'product.uom', related='product_id.uom_id', readonly=True)
|
|
||||||
|
|
||||||
|
|
||||||
class StockIncoterms(models.Model):
|
class StockIncoterms(models.Model):
|
||||||
_inherit = 'stock.incoterms'
|
_inherit = 'stock.incoterms'
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright (C) 2014-2016 Akretion (http://www.akretion.com/)
|
© 2014-2016 Akretion (http://www.akretion.com/)
|
||||||
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
The licence is in the file __openerp__.py
|
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<openerp>
|
<odoo>
|
||||||
<data>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="view_picking_form" model="ir.ui.view">
|
<record id="view_picking_form" model="ir.ui.view">
|
||||||
@@ -18,8 +16,8 @@
|
|||||||
<field name="backorder_id" position="attributes">
|
<field name="backorder_id" position="attributes">
|
||||||
<attribute name="attrs">{}</attribute>
|
<attribute name="attrs">{}</attribute>
|
||||||
</field>
|
</field>
|
||||||
<field name="date_done" position="attributes">
|
<field name="min_date" position="after">
|
||||||
<attribute name="groups"></attribute>
|
<field name="date_done" states="done"/>
|
||||||
</field>
|
</field>
|
||||||
<!-- Maybe it's usefull to always display stock pack operations...
|
<!-- Maybe it's usefull to always display stock pack operations...
|
||||||
or maybe only for debugging... I haven't decided yet !
|
or maybe only for debugging... I haven't decided yet !
|
||||||
@@ -38,15 +36,15 @@
|
|||||||
<group expand="0" position="inside">
|
<group expand="0" position="inside">
|
||||||
<filter string="Partner" context="{'group_by': 'partner_id'}"/>
|
<filter string="Partner" context="{'group_by': 'partner_id'}"/>
|
||||||
</group>
|
</group>
|
||||||
<filter string="Origin" position="replace"/>
|
<filter context="{'group_by':'origin'}" position="replace"/>
|
||||||
<filter string="Expected Date" position="attributes">
|
<filter context="{'group_by':'min_date'}" position="after">
|
||||||
|
<filter name="date_done" string="Date Done"
|
||||||
|
context="{'group_by': 'date_done:day'}"/>
|
||||||
|
</filter>
|
||||||
|
<filter context="{'group_by':'min_date'}" position="attributes">
|
||||||
<!-- group per day -->
|
<!-- group per day -->
|
||||||
<attribute name="context">"{'group_by': 'min_date:day'}"</attribute>
|
<attribute name="context">"{'group_by': 'min_date:day'}"</attribute>
|
||||||
</filter>
|
</filter>
|
||||||
<filter string="Expected Date" position="after">
|
|
||||||
<filter name="date_done" string="Date Done"
|
|
||||||
context="{'group_by':'date_done:day'}"/>
|
|
||||||
</filter>
|
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -98,11 +96,14 @@
|
|||||||
<field name="model">stock.move</field>
|
<field name="model">stock.move</field>
|
||||||
<field name="inherit_id" ref="stock.view_move_form" />
|
<field name="inherit_id" ref="stock.view_move_form" />
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
<!-- There are no button any more on that view...
|
||||||
|
so probably not a good idea to add one
|
||||||
<button name="force_assign" position="after">
|
<button name="force_assign" position="after">
|
||||||
<button type="object" name="do_unreserve" string="Unreserve"
|
<button type="object" name="do_unreserve" string="Unreserve"
|
||||||
groups="stock.group_stock_user"
|
groups="stock.group_stock_user"
|
||||||
states="confirmed,assigned"/>
|
states="confirmed,assigned"/>
|
||||||
</button>
|
</button>
|
||||||
|
-->
|
||||||
<group name="moved_quants_grp" position="after">
|
<group name="moved_quants_grp" position="after">
|
||||||
<notebook colspan="2">
|
<notebook colspan="2">
|
||||||
<page string="Notes" name="notes">
|
<page string="Notes" name="notes">
|
||||||
@@ -128,6 +129,7 @@
|
|||||||
<field name="model">stock.move</field>
|
<field name="model">stock.move</field>
|
||||||
<field name="inherit_id" ref="stock.view_move_picking_form" />
|
<field name="inherit_id" ref="stock.view_move_picking_form" />
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
|
<field name="group_id" position="replace"/> <!-- in stock, this field has invisible="1" re-add it below as visible -->
|
||||||
<group name="moved_quants_grp" position="after">
|
<group name="moved_quants_grp" position="after">
|
||||||
<notebook colspan="2">
|
<notebook colspan="2">
|
||||||
<page string="Notes" name="notes">
|
<page string="Notes" name="notes">
|
||||||
@@ -148,6 +150,8 @@
|
|||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!-- This view has changed a lot ; most fields are invisible, so it's probably not used a lot -->
|
||||||
|
<!--
|
||||||
<record id="view_move_picking_tree" model="ir.ui.view">
|
<record id="view_move_picking_tree" model="ir.ui.view">
|
||||||
<field name="name">stock_usability.src_location.in.picking.form</field>
|
<field name="name">stock_usability.src_location.in.picking.form</field>
|
||||||
<field name="model">stock.move</field>
|
<field name="model">stock.move</field>
|
||||||
@@ -163,13 +167,14 @@
|
|||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
-->
|
||||||
|
|
||||||
<record id="view_warehouse" model="ir.ui.view">
|
<record id="view_warehouse" model="ir.ui.view">
|
||||||
<field name="name">stock.usability.warehouse.form</field>
|
<field name="name">stock.usability.warehouse.form</field>
|
||||||
<field name="model">stock.warehouse</field>
|
<field name="model">stock.warehouse</field>
|
||||||
<field name="inherit_id" ref="stock.view_warehouse" />
|
<field name="inherit_id" ref="stock.view_warehouse" />
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<group string="Picking Types" position="after">
|
<xpath expr="//field[@name='out_type_id']/.." position="after">
|
||||||
<group name="routes" string="Routes">
|
<group name="routes" string="Routes">
|
||||||
<field name="route_ids" widget="many2many_tags"/>
|
<field name="route_ids" widget="many2many_tags"/>
|
||||||
<field name="crossdock_route_id"/>
|
<field name="crossdock_route_id"/>
|
||||||
@@ -177,7 +182,7 @@
|
|||||||
<field name="delivery_route_id"/>
|
<field name="delivery_route_id"/>
|
||||||
<field name="resupply_route_ids"/>
|
<field name="resupply_route_ids"/>
|
||||||
</group>
|
</group>
|
||||||
</group>
|
</xpath>
|
||||||
<field name="wh_input_stock_loc_id" position="before">
|
<field name="wh_input_stock_loc_id" position="before">
|
||||||
<field name="lot_stock_id" readonly="1" required="0"/>
|
<field name="lot_stock_id" readonly="1" required="0"/>
|
||||||
<field name="view_location_id" groups="base.group_no_one"
|
<field name="view_location_id" groups="base.group_no_one"
|
||||||
@@ -191,36 +196,12 @@
|
|||||||
<field name="model">stock.location</field>
|
<field name="model">stock.location</field>
|
||||||
<field name="inherit_id" ref="stock.view_location_search" />
|
<field name="inherit_id" ref="stock.view_location_search" />
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<field name="location_id" position="after">
|
<filter name="inactive" position="after">
|
||||||
<group string="Group By" name="groupby">
|
<group string="Group By" name="groupby">
|
||||||
<filter name="usage" string="Location Type"
|
<filter name="usage" string="Location Type"
|
||||||
context="{'group_by': 'usage'}"/>
|
context="{'group_by': 'usage'}"/>
|
||||||
</group>
|
</group>
|
||||||
</field>
|
</filter>
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="stock_location_path_action" model="ir.actions.act_window">
|
|
||||||
<field name="name">Push Rules</field>
|
|
||||||
<field name="res_model">stock.location.path</field>
|
|
||||||
<field name="view_mode">tree,form</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<menuitem id="stock_location_path_menu" action="stock_location_path_action"
|
|
||||||
sequence="10" parent="stock.menu_stock_configuration"/>
|
|
||||||
|
|
||||||
<!-- Display total qty in Transfer wizard
|
|
||||||
Usefull because some delivery order from suppliers contains the "total number of items"
|
|
||||||
So the Odoo user can easily check that he doesn't make mistakes
|
|
||||||
in the quantities for his reception -->
|
|
||||||
<record id="view_stock_enter_transfer_details" model="ir.ui.view">
|
|
||||||
<field name="name">stock.usability.transfer_details.form</field>
|
|
||||||
<field name="model">stock.transfer_details</field>
|
|
||||||
<field name="inherit_id" ref="stock.view_stock_enter_transfer_details"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="quantity" position="attributes">
|
|
||||||
<attribute name="sum">Total</attribute>
|
|
||||||
</field>
|
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@@ -235,39 +216,10 @@ in the quantities for his reception -->
|
|||||||
<field name="qty" position="attributes">
|
<field name="qty" position="attributes">
|
||||||
<attribute name="sum">Total Qty</attribute>
|
<attribute name="sum">Total Qty</attribute>
|
||||||
</field>
|
</field>
|
||||||
<field name="qty" position="after">
|
|
||||||
<field name="uom_id"/>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="view_stock_quant_form" model="ir.ui.view">
|
|
||||||
<field name="name">stock.usability.quant.form</field>
|
|
||||||
<field name="model">stock.quant</field>
|
|
||||||
<field name="inherit_id" ref="stock.view_stock_quant_form"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="qty" position="replace">
|
|
||||||
<label for="qty"/>
|
|
||||||
<div>
|
|
||||||
<field name="qty" class="oe_inline"/>
|
|
||||||
<field name="uom_id" class="oe_inline"/>
|
|
||||||
</div>
|
|
||||||
</field>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
|
|
||||||
<record id="view_move_tree_receipt_picking" model="ir.ui.view">
|
|
||||||
<field name="name">stock.usability.stock.move.tree2</field>
|
|
||||||
<field name="model">stock.move</field>
|
|
||||||
<field name="inherit_id" ref="stock.view_move_tree_receipt_picking"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<field name="date_expected" position="attributes">
|
|
||||||
<attribute name="invisible">0</attribute>
|
|
||||||
</field>
|
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<!--
|
||||||
<record id="view_template_property_form" model="ir.ui.view">
|
<record id="view_template_property_form" model="ir.ui.view">
|
||||||
<field name="name">stock.usability.product.template.form</field>
|
<field name="name">stock.usability.product.template.form</field>
|
||||||
<field name="model">product.template</field>
|
<field name="model">product.template</field>
|
||||||
@@ -278,24 +230,12 @@ in the quantities for his reception -->
|
|||||||
</field>
|
</field>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
-->
|
||||||
|
|
||||||
<!-- more detailed stock.move tree view when using the button from product form -->
|
<!-- more detailed stock.move tree view when using the button from product form -->
|
||||||
|
<!-- TODO TEST
|
||||||
<record id="stock.act_product_stock_move_open" model="ir.actions.act_window">
|
<record id="stock.act_product_stock_move_open" model="ir.actions.act_window">
|
||||||
<field name="view_id" ref="stock.view_move_tree"/>
|
<field name="view_id" ref="stock.view_move_tree"/>
|
||||||
</record>
|
</record> -->
|
||||||
|
|
||||||
<record id="procurement_group_form_view" model="ir.ui.view">
|
</odoo>
|
||||||
<field name="name">stock_usability.procurement.group.form</field>
|
|
||||||
<field name="model">procurement.group</field>
|
|
||||||
<field name="inherit_id" ref="procurement.procurement_group_form_view"/>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<xpath expr="//field[@name='move_type']/.." position="after">
|
|
||||||
<group name="picking" string="Pickings">
|
|
||||||
<field name="picking_ids" nolabel="1"/>
|
|
||||||
</group>
|
|
||||||
</xpath>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</data>
|
|
||||||
</openerp>
|
|
||||||
|
|||||||
Reference in New Issue
Block a user