[MOV] stock: picking type views in its own file

Part-of: odoo/odoo#91807
This commit is contained in:
svs-odoo
2022-09-06 22:30:45 +02:00
parent fc5d1fe149
commit 7e79713a16
3 changed files with 250 additions and 247 deletions
+1
View File
@@ -75,6 +75,7 @@
'views/stock_warehouse_views.xml',
'views/stock_move_line_views.xml',
'views/stock_picking_views.xml',
'views/stock_picking_type_views.xml',
'views/stock_move_views.xml',
'views/product_views.xml',
'views/stock_location_views.xml',
@@ -0,0 +1,249 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_picking_type_list" model="ir.actions.act_window">
<field name="name">Operations Types</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No transfer found. Let's create one!
</p><p>
Transfers allow you to move products from one location to another.
</p>
</field>
</record>
<record id="stock_picking_type_action" model="ir.actions.act_window">
<field name="name">Inventory Overview</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">kanban,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new operation type
</p><p>
The operation type system allows you to assign each stock
operation a specific type which will alter its views accordingly.
On the operation type you could e.g. specify if packing is needed by default,
if it should show the customer.
</p>
</field>
</record>
<menuitem id="menu_pickingtype" name="Operations Types" parent="stock.menu_warehouse_config" action="action_picking_type_list" sequence="5"/>
<menuitem
action="stock_picking_type_action"
id="stock_picking_type_menu"
parent="menu_stock_root" sequence="0"
name="Overview"/>
<record id="view_pickingtype_filter" model="ir.ui.view">
<field name="name">stock.picking.type.filter</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<search string="Operation Type">
<field name="name"/>
<field name="warehouse_id"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group expand="0" string="Group By">
<filter string="Type of Operation" name="groupby_code" domain="[]" context="{'group_by': 'code'}"/>
<filter string="Warehouse" name="groupby_warehouse_id" domain="[]" context="{'group_by': 'warehouse_id'}"/>
</group>
</search>
</field>
</record>
<record id="view_picking_type_tree" model="ir.ui.view">
<field name="name">Operation types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<tree string="Operation Types">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="active" invisible="1"/>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses"/>
<field name="sequence_id" groups="base.group_no_one"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record id="view_picking_type_form" model="ir.ui.view">
<field name="name">Operation Types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<form string="Operation Types">
<sheet>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<group name="first">
<group>
<field name="active" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="hide_reservation_method" invisible="1"/>
<field name="name"/>
<field name="sequence_id" groups="base.group_no_one"/>
<field name="sequence_code"/>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses" force_save="1"/>
<field name="reservation_method" attrs="{'invisible': [('hide_reservation_method', '=', True)]}" widget="radio"/>
<field name="auto_show_reception_report" attrs="{'invisible': [('code', 'not in', ['incoming', 'internal'])]}" groups="stock.group_reception_report"/>
<label for="reservation_days_before" string="Reserve before scheduled date" attrs="{'invisible': ['|', ('code', '=', 'incoming'), ('reservation_method', '!=', 'by_date')]}"/>
<div class="o_row" attrs="{'invisible': ['|', ('code', '=', 'incoming'), ('reservation_method', '!=', 'by_date')]}">
<span><field name="reservation_days_before" style="width: 23px;"/> days before/</span>
<span><field name="reservation_days_before_priority" style="width: 23px;"/> days before when starred</span>
</div>
</group>
<group>
<field name="code"/>
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
<field attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' name="return_picking_type_id"/>
<field name="create_backorder"/>
<field name="show_operations"/>
<field name="show_reserved" attrs="{'invisible': [('code', '!=', 'incoming')]}"/>
</group>
</group>
<group name="second">
<group attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' string="Traceability" groups="stock.group_production_lot" name="stock_picking_type_lot">
<field name="use_create_lots"/>
<field name="use_existing_lots"/>
</group>
<group attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' string="Packages" groups="stock.group_tracking_lot">
<field name="show_entire_packs"/>
</group>
<!-- As this group will be hidden without multi_loccation, you will not be able to create a
picking type with the code 'Internal', which make sense, but as the field 'code' on picking
types can't be partially hidden, you can still select the code internal in the form view -->
<group string="Locations" groups="stock.group_stock_multi_locations" name="locations">
<field name="default_location_src_id" options="{'no_create': True}" attrs="{'required': [('code', 'in', ('internal', 'outgoing'))]}"/>
<field name="default_location_dest_id" options="{'no_create': True}" attrs="{'required': [('code', 'in', ('internal', 'incoming'))]}"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="stock_picking_type_kanban" model="ir.ui.view">
<field name="name">stock.picking.type.kanban</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<kanban class="oe_background_grey o_kanban_dashboard o_emphasize_colors o_stock_kanban" create="0" group_create="false">
<field name="color"/>
<field name="code" readonly="1"/>
<field name="count_picking_ready"/>
<field name="count_picking_draft"/>
<field name="count_picking_waiting"/>
<field name="count_picking_late"/>
<field name="count_picking_backorders"/>
<templates>
<t t-name="kanban-box">
<div t-if="['incoming', 'outgoing', 'internal'].indexOf(record.code.raw_value) > -1" t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}" name="stock_picking">
<div>
<div t-attf-class="o_kanban_card_header">
<div class="o_kanban_card_header_title">
<div class="o_primary" t-if="!selection_mode">
<a type="object" name="get_stock_picking_action_picking_type">
<field name="name"/>
</a>
</div>
<div class="o_primary" t-if="selection_mode">
<field name="name"/>
</div>
<div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1" groups="stock.group_stock_multi_warehouses"/></div>
</div>
<div class="o_kanban_manage_button_section" t-if="!selection_mode">
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
</div>
</div>
<div class="container o_kanban_card_content" t-if="!selection_mode">
<div class="row">
<div class="col-6 o_kanban_primary_left">
<button class="btn btn-primary" name="get_action_picking_tree_ready" type="object">
<span t-if="record.code.raw_value =='incoming'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
<span t-if="record.code.raw_value =='outgoing'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
<span t-if="record.code.raw_value =='internal'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
</button>
</div>
<div class="col-6 o_kanban_primary_right">
<div t-if="record.count_picking_ready.raw_value > 0" class="row">
</div>
<div t-if="record.count_picking_waiting.raw_value > 0" class="row">
<div class="col-12">
<a name="get_action_picking_tree_waiting" type="object">
<field name="count_picking_waiting"/>
Waiting
</a>
</div>
</div>
<div t-if="record.count_picking_late.raw_value > 0" class="row">
<div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_late" type="object">
<field name="count_picking_late"/>
Late
</a>
</div>
</div>
<div t-if="record.count_picking_backorders.raw_value > 0" class="row" name="picking_type_backorder_count">
<div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_backorder" type="object">
<field name="count_picking_backorders"/>
Back Orders
</a>
</div>
</div>
</div>
</div>
</div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
<div class="row">
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
<div role="menuitem" class="o_kanban_card_manage_title">
<span t-if="record.code.raw_value == 'internal'">Transfers</span>
<span t-else="">View</span>
</div>
<div role="menuitem">
<a name="get_stock_picking_action_picking_type" type="object">All</a>
</div>
<div role="menuitem">
<a name="get_action_picking_tree_ready" type="object">Ready</a>
</div>
<div role="menuitem">
<a name="get_action_picking_tree_waiting" type="object">Waiting</a>
</div>
<div role="menuitem">
<a name="get_action_picking_type_operations" type="object">Operations</a>
</div>
</div>
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_new">
<div role="menuitem" class="o_kanban_card_manage_title">
<span>New</span>
</div>
<div role="menuitem">
<a name="%(action_picking_form)d" type="action" context="{'default_immediate_transfer': True}">Immediate Transfer</a>
</div>
<div role="menuitem">
<a name="%(action_picking_form)d" type="action">Planned Transfer</a>
</div>
</div>
</div>
<div t-if="widget.editable" class="o_kanban_card_manage_settings row">
<div class="col-8" role="menuitem" aria-haspopup="true">
<ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
</div>
<div role="menuitem" class="col-4">
<a class="dropdown-item" role="menuitem" type="edit">Configuration</a>
</div>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>
-247
View File
@@ -1,128 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_pickingtype_filter" model="ir.ui.view">
<field name="name">stock.picking.type.filter</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<search string="Operation Type">
<field name="name"/>
<field name="warehouse_id"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group expand="0" string="Group By">
<filter string="Type of Operation" name="groupby_code" domain="[]" context="{'group_by': 'code'}"/>
<filter string="Warehouse" name="groupby_warehouse_id" domain="[]" context="{'group_by': 'warehouse_id'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_picking_type_tree">
<field name="name">Operation types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<tree string="Operation Types">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="active" invisible="1"/>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses"/>
<field name="sequence_id" groups="base.group_no_one"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_picking_type_form">
<field name="name">Operation Types</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<form string="Operation Types">
<sheet>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<group>
<group>
<field name="active" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="hide_reservation_method" invisible="1"/>
<field name="name"/>
<field name="sequence_id" groups="base.group_no_one"/>
<field name="sequence_code"/>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses" force_save="1"/>
<field name="reservation_method" attrs="{'invisible': [('hide_reservation_method', '=', True)]}" widget="radio"/>
<field name="auto_show_reception_report" attrs="{'invisible': [('code', 'not in', ['incoming', 'internal'])]}" groups="stock.group_reception_report"/>
<label for="reservation_days_before" string="Reserve before scheduled date" attrs="{'invisible': ['|', ('code', '=', 'incoming'), ('reservation_method', '!=', 'by_date')]}"/>
<div class="o_row" attrs="{'invisible': ['|', ('code', '=', 'incoming'), ('reservation_method', '!=', 'by_date')]}">
<span><field name="reservation_days_before" style="width: 23px;"/> days before/</span>
<span><field name="reservation_days_before_priority" style="width: 23px;"/> days before when starred</span>
</div>
</group>
<group>
<field name="code"/>
<field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
<field attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' name="return_picking_type_id"/>
<field name="create_backorder" />
<field name="show_operations"/>
<field name="show_reserved" attrs="{'invisible': [('code', '!=', 'incoming')]}"/>
</group>
</group>
<group>
<group attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' string="Traceability" groups="stock.group_production_lot" name="stock_picking_type_lot">
<field name="use_create_lots"/>
<field name="use_existing_lots"/>
</group>
<group attrs='{"invisible": [("code", "not in", ["incoming", "outgoing", "internal"])]}' string="Packages" groups="stock.group_tracking_lot">
<field name="show_entire_packs"/>
</group>
<!-- As this group will be hidden without multi_loccation, you will not be able to create a
picking type with the code 'Internal', which make sense, but as the field 'code' on picking
types can't be partially hidden, you can still select the code internal in the form view -->
<group string="Locations" groups="stock.group_stock_multi_locations" name="locations">
<field name="default_location_src_id" options="{'no_create': True}" attrs="{'required': [('code', 'in', ('internal', 'outgoing'))]}"/>
<field name="default_location_dest_id" options="{'no_create': True}" attrs="{'required': [('code', 'in', ('internal', 'incoming'))]}"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="stock_picking_type_action" model="ir.actions.act_window">
<field name="name">Inventory Overview</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">kanban,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new operation type
</p><p>
The operation type system allows you to assign each stock
operation a specific type which will alter its views accordingly.
On the operation type you could e.g. specify if packing is needed by default,
if it should show the customer.
</p>
</field>
</record>
<record id="action_picking_type_list" model="ir.actions.act_window">
<field name="name">Operations Types</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No transfer found. Let's create one!
</p><p>
Transfers allow you to move products from one location to another.
</p>
</field>
</record>
<menuitem
action="stock_picking_type_action"
id="stock_picking_type_menu"
parent="menu_stock_root" sequence="0"
name="Overview"/>
<menuitem id="menu_pickingtype" name="Operations Types" parent="stock.menu_warehouse_config" action="action_picking_type_list" sequence="5"/>
<record model="ir.ui.view" id="stock_picking_calendar">
<field name="name">stock.picking.calendar</field>
<field name="model">stock.picking</field>
@@ -722,128 +599,4 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('group_id','=',active_id)]</field>
</record>
<record id="stock_picking_type_kanban" model="ir.ui.view">
<field name="name">stock.picking.type.kanban</field>
<field name="model">stock.picking.type</field>
<field name="arch" type="xml">
<kanban class="oe_background_grey o_kanban_dashboard o_emphasize_colors o_stock_kanban" create="0" group_create="false">
<field name="color"/>
<field name="code" readonly="1"/>
<field name="count_picking_ready"/>
<field name="count_picking_draft"/>
<field name="count_picking_waiting"/>
<field name="count_picking_late"/>
<field name="count_picking_backorders"/>
<templates>
<t t-name="kanban-box">
<div t-if="['incoming', 'outgoing', 'internal'].indexOf(record.code.raw_value) > -1" t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''}" name="stock_picking">
<div>
<div t-attf-class="o_kanban_card_header">
<div class="o_kanban_card_header_title">
<div class="o_primary" t-if="!selection_mode">
<a type="object" name="get_stock_picking_action_picking_type">
<field name="name"/>
</a>
</div>
<div class="o_primary" t-if="selection_mode">
<field name="name"/>
</div>
<div class="o_secondary"><field class="o_secondary" name="warehouse_id" readonly="1" groups="stock.group_stock_multi_warehouses"/></div>
</div>
<div class="o_kanban_manage_button_section" t-if="!selection_mode">
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
</div>
</div>
<div class="container o_kanban_card_content" t-if="!selection_mode">
<div class="row">
<div class="col-6 o_kanban_primary_left">
<button class="btn btn-primary" name="get_action_picking_tree_ready" type="object">
<span t-if="record.code.raw_value =='incoming'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
<span t-if="record.code.raw_value =='outgoing'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
<span t-if="record.code.raw_value =='internal'"><t t-esc="record.count_picking_ready.value"/> To Process</span>
</button>
</div>
<div class="col-6 o_kanban_primary_right">
<div t-if="record.count_picking_ready.raw_value > 0" class="row">
</div>
<div t-if="record.count_picking_waiting.raw_value > 0" class="row">
<div class="col-12">
<a name="get_action_picking_tree_waiting" type="object">
<field name="count_picking_waiting"/>
Waiting
</a>
</div>
</div>
<div t-if="record.count_picking_late.raw_value > 0" class="row">
<div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_late" type="object">
<field name="count_picking_late"/>
Late
</a>
</div>
</div>
<div t-if="record.count_picking_backorders.raw_value > 0" class="row" name="picking_type_backorder_count">
<div class="col-12">
<a class="oe_kanban_stock_picking_type_list" name="get_action_picking_tree_backorder" type="object">
<field name="count_picking_backorders"/>
Back Orders
</a>
</div>
</div>
</div>
</div>
</div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
<div class="row">
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
<div role="menuitem" class="o_kanban_card_manage_title">
<span t-if="record.code.raw_value == 'internal'">Transfers</span>
<span t-else="">View</span>
</div>
<div role="menuitem">
<a name="get_stock_picking_action_picking_type" type="object">All</a>
</div>
<div role="menuitem">
<a name="get_action_picking_tree_ready" type="object">Ready</a>
</div>
<div role="menuitem">
<a name="get_action_picking_tree_waiting" type="object">Waiting</a>
</div>
<div role="menuitem">
<a name="get_action_picking_type_operations" type="object">Operations</a>
</div>
</div>
<div class="col-6 o_kanban_card_manage_section o_kanban_manage_new">
<div role="menuitem" class="o_kanban_card_manage_title">
<span>New</span>
</div>
<div role="menuitem">
<a name="%(action_picking_form)d" type="action" context="{'default_immediate_transfer': True}">Immediate Transfer</a>
</div>
<div role="menuitem">
<a name="%(action_picking_form)d" type="action">Planned Transfer</a>
</div>
</div>
</div>
<div t-if="widget.editable" class="o_kanban_card_manage_settings row">
<div class="col-8" role="menuitem" aria-haspopup="true">
<ul class="oe_kanban_colorpicker" data-field="color" role="menu"/>
</div>
<div role="menuitem" class="col-4">
<a class="dropdown-item" role="menuitem" type="edit">Configuration</a>
</div>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>