Files
odoo_source/addons/stock/views/stock_quant_views.xml
T
Michael Mattiello (mcm) 785b304876 [IMP] *: reduce shift in form views (xml)
* account, analytic, calendar, coupon, crm, crm_iap_lead_website,
  delivery, digest, event, event_crm, fleet, gamification, hr,
  hr_expense, hr_skills, im_livechat, lunch, mail, maintenance,
  mass_mailing, membership, mrp, point_of_sale, pos_mercury, product,
  purchase, purchase_requisition, sale_management, sales_team, sms,
  stock, stock_landed_costs, survey, website_crm_partner_assign,
  website_event_exhibitor, website_event_track, website_forum,
  website_slides, base

This commit removes oe_edit_only labels and adds placeholder
on fields in form views from a lot of apps to minimize the
shift when switching mode.

task 2330101
2021-02-02 12:40:22 +00:00

331 lines
17 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="quant_search_view" model="ir.ui.view">
<field name="name">stock.quant.search</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<search string="Quants">
<field name="product_id"/>
<field name="location_id"/>
<field name="package_id" groups="stock.group_tracking_lot"/>
<field name="lot_id" groups="stock.group_production_lot"/>
<field name="owner_id" groups="stock.group_tracking_owner"/>
<group expand='0' string='Filters'>
<filter name='internal_loc' string="Internal Locations" domain="[('location_id.usage','=', 'internal')]"/>
<filter name='transit_loc' string="Transit Locations" domain="[('location_id.usage' ,'=', 'transit')]"/>
<filter name="on_hand" string="On Hand" domain="[('on_hand', '=', True)]"/>
<separator/>
<filter name="negative" string="Negative Stock" domain="[('quantity', '&lt;', 0.0)]"/>
<filter name="positive" string="Positive Stock" domain="[('quantity', '&gt;', 0.0)]"/>
<filter name="reserved" string="Reservations" domain="[('reserved_quantity', '&gt;', 0.0)]"/>
<separator/>
<filter name="filter_in_date" date="in_date"/>
</group>
<group expand='0' string='Group by...'>
<filter string='Product' name="productgroup" context="{'group_by': 'product_id'}"/>
<filter string='Location' name="locationgroup" domain="[]" context="{'group_by': 'location_id'}"/>
<filter string='Owner' name="owner" context="{'group_by': 'owner_id'}" groups="stock.group_tracking_owner"/>
<filter string='Lot/Serial Number' name="Lot_Serial_number" context="{'group_by': 'lot_id'}" groups="stock.group_production_lot"/>
<filter string='Package' name="package" domain="[]" context="{'group_by': 'package_id'}" groups="stock.group_tracking_lot"/>
<filter string='Company' name="company" domain="[]" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_form_editable">
<field name="name">stock.quant.form.editable</field>
<field name="model">stock.quant</field>
<field eval="11" name="priority"/>
<field name="arch" type="xml">
<form string="Inventory Valuation" create="false" edit="false" delete="false">
<sheet>
<group>
<group>
<field name="tracking" invisible="1"/>
<field name="product_id" readonly="0" options="{'no_create': True}"/>
<field name="location_id" readonly="0" options="{'no_create': True}"/>
<field name="lot_id" groups="stock.group_production_lot"
attrs="{'readonly': [('tracking', 'not in', ['serial', 'lot'])], 'required': [('tracking', '!=', 'none')]}"
context="{'default_product_id': product_id, 'default_company_id': company_id}"/>
<field name="package_id" readonly="0" groups="stock.group_tracking_lot"/>
<field name="owner_id" readonly="0" groups="stock.group_tracking_owner" options="{'no_create': True}"/>
<field name='company_id' groups="base.group_multi_company"/>
</group>
<group>
<label for="inventory_quantity" string="Quantity On Hand"/>
<div class="o_row">
<field name="inventory_quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
</div>
<label for="reserved_quantity" string="Quantity Reserved"/>
<div class="o_row">
<field name="reserved_quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
</div>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_form">
<field name="name">stock.quant.form</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<form string="Inventory Valuation" create="false" edit="false" delete="false">
<sheet>
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" icon="fa-exchange" type="object" name="action_view_stock_moves" string="Product Moves"/>
</div>
<group>
<group>
<field name="product_id"/>
<field name="location_id" options="{'no_create': True}"/>
<field name="lot_id" groups="stock.group_production_lot"/>
<field name="package_id" groups="stock.group_tracking_lot"/>
<field name="owner_id" groups="stock.group_tracking_owner"/>
</group>
<group>
<label for="quantity" string="Quantity On Hand"/>
<div class="o_row">
<field name="quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
</div>
<label for="reserved_quantity" string="Quantity Reserved"/>
<div class="o_row">
<field name="reserved_quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
</div>
<field name="in_date" attrs="{'invisible': [('lot_id', '=', False)]}" groups="stock.group_production_lot"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_tree_editable">
<field name="name">stock.quant.tree.editable</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree editable="bottom"
create="1" edit="1" import="0" js_class="singleton_list"
sample="1">
<field name="id" invisible="1"/>
<field name="tracking" invisible="1"/>
<field name="product_id" attrs="{'readonly': [('id', '!=', False)]}"
invisible="context.get('single_product', False)"
readonly="context.get('single_product', False)" force_save="1"
options="{'no_create': True}"/>
<field name="location_id" attrs="{'readonly': [('id', '!=', False)]}"
invisible="context.get('hide_location', False)"
options="{'no_create': True}"/>
<field name="lot_id" groups="stock.group_production_lot"
attrs="{
'readonly': ['|', ('id', '!=', False), ('tracking', 'not in', ['serial', 'lot'])],
'required': [('tracking', '!=', 'none')]
}"
invisible="context.get('hide_lot', False)"
context="{'default_product_id': product_id, 'default_company_id': company_id}"/>
<field name="package_id" groups="stock.group_tracking_lot"
attrs="{'readonly': [('id', '!=', False)]}"/>
<field name="owner_id" groups="stock.group_tracking_owner"
attrs="{'readonly': [('id', '!=', False)]}"
options="{'no_create': True}"/>
<field name="quantity" string="On Hand Quantity"
invisible="1"/>
<field name="inventory_quantity" string="On Hand Quantity" decoration-danger="inventory_quantity &lt; 0"
readonly="0"/>
<field name="available_quantity" optional="show"/>
<field name="product_uom_id" groups="uom.group_uom"/>
<field name='company_id' groups="base.group_multi_company" optional="show"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_tree">
<field name="name">stock.quant.tree</field>
<field name="model">stock.quant</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree string="Inventory Valuation" js_class="inventory_report_list"
create="0" delete="0">
<field name="product_id" invisible="context.get('single_product', False)"/>
<field name="location_id" invisible="context.get('hide_location', False)"/>
<field name="lot_id" groups="stock.group_production_lot"
invisible="context.get('hide_lot', False)"/>
<field name="package_id" groups="stock.group_tracking_lot"/>
<field name="owner_id" groups="stock.group_tracking_owner"/>
<field name="available_quantity"/>
<field name="quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
<field name='company_id' groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_stock_quant_pivot">
<field name="name">stock.quant.pivot</field>
<field name="model">stock.quant</field>
<field name="arch" type="xml">
<pivot string="Inventory" sample="1">
<field name="product_id" type="row"/>
<field name="location_id" type="col"/>
<field name="quantity" type="measure"/>
</pivot>
</field>
</record>
<record id="stock_quant_view_graph" model="ir.ui.view">
<field name="name">stock.quant.graph</field>
<field name="model">stock.quant</field>
<field name="arch" type="xml">
<graph string="Stock Quant" sample="1">
<field name="location_id"/>
<field name="quantity" type="measure"/>
</graph>
</field>
</record>
<record model="ir.actions.server" id="action_view_quants"> <!-- Menu + python -->
<field name="name">Inventory</field>
<field name="model_id" ref="model_stock_quant"/>
<field name="state">code</field>
<field name="groups_id" eval="[(4, ref('stock.group_stock_user'))]"/>
<field name="code">
action = model.with_context(
search_default_internal_loc=1,
search_default_productgroup=1,
search_default_locationgroup=1,
).action_view_quants()
</field>
</record>
<record model="ir.actions.act_window" id="dashboard_open_quants"> <!-- Used in dashboard -->
<field name="name">Stock On Hand</field>
<field name="context">{'search_default_internal_loc': 1, 'search_default_productgroup':1, 'search_default_locationgroup':1}</field>
<field name="res_model">stock.quant</field>
</record>
<record model="ir.actions.act_window" id="location_open_quants"> <!-- Used in location -->
<field name="context">{'search_default_productgroup': 1}</field>
<field name="domain">[('location_id', 'child_of', active_ids)]</field>
<field name="name">Current Stock</field>
<field name="res_model">stock.quant</field>
</record>
<record id="quant_package_search_view" model="ir.ui.view">
<field name="name">stock.quant.package.search</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<search string="Package">
<field name="name" string="Package Name"/>
<field name="location_id"/>
<field name="packaging_id"/>
<group expand='0' string='Group by...'>
<filter string='Location' name="location" domain="[]" context="{'group_by' : 'location_id'}"/>
<filter string='Packaging' name="packaging" domain="[]" context="{'group_by' : 'packaging_id'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_quant_package_form">
<field name="name">stock.quant.package.form</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<form string="Package">
<header>
<button name="unpack" string="Unpack" type="object"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" name="action_view_picking"
string="Package Transfers" type="object"
widget="statinfo" icon="fa-arrows-v"/>
</div>
<div class="oe_title">
<label for="name" string="Package Reference"/>
<h1><field name="name" class="oe_inline" placeholder="e.g. PACK0000007"/></h1>
</div>
<group>
<group id='stock.package_location_group'>
<field name='company_id' groups="base.group_multi_company"/>
<field name='owner_id' groups="stock.group_tracking_owner"/>
<field name="location_id" options="{'no_create': True}"/>
</group>
</group>
<separator string="Content"/>
<field name="quant_ids">
<tree>
<field name="product_id"/>
<field name="lot_id" groups="stock.group_production_lot"/>
<field name="quantity"/>
<field name="product_uom_id" groups="uom.group_uom"/>
</tree>
</field>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_quant_package_tree">
<field name="name">stock.quant.package.tree</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<tree string="Package" sample="1">
<field name="display_name"/>
<field name="location_id" options="{'no_create': True}"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_quant_package_kanban">
<field name="name">stock.quant.package.kanban</field>
<field name="model">stock.quant.package</field>
<field name="arch" type="xml">
<kanban sample="1">
<templates>
<field name="name"/>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_kanban_record_top mb0">
<strong class="o_kanban_record_title"><field name="name"/></strong>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record model="ir.actions.act_window" id="action_package_view">
<field name="context">{}</field>
<field name="name">Packages</field>
<field name="res_model">stock.quant.package</field>
<field name="view_mode">kanban,tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new package
</p><p>
Packages are usually created via transfers (during pack operation) and can contain different products.
Once created, the whole package can be moved at once, or products can be unpacked and moved as single units again.
</p>
</field>
</record>
<menuitem id="menu_package" name="Packages" parent="menu_stock_inventory_control" action="action_package_view" groups="stock.group_tracking_lot" sequence="102"/>
<menuitem id="menu_valuation" name="Inventory Report"
parent="stock.menu_warehouse_report" sequence="100"
action="action_view_quants"/>
</odoo>