Stock Request kanban

stock_request_kanban
REPOSITORY
REPOSITORYOCA/stock-logistics-request
GIT
GIThttps://github.com/OCA/stock-logistics-request.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-request/tree/18.0/stock_request_kanban
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Marco Colombo
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-request
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-request:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
On most companies there are products that must be purchased often but
cannot be stored as a usual product because no consumption moves are
made. Usually, they are stored as consumables or putaway rules are
defined. In both cases, reordering rules cannot be used. This module
allows to use stock request as reordering rules for this kind of
products.

It is created following the concept of lean kanban cards.

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban list New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban list New
view_stock_request_tree stock.request.tree stock.request list Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True tracking=True args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals_list)
    @api.model_create_multi
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (1)
  • action_scan_kanban(self)

New fields (3)
  • active Boolean
    default=True
  • image_128 Image
    related='product_id.image_128'
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-request
GIT
GIThttps://github.com/OCA/stock-logistics-request.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-request/tree/17.0/stock_request_kanban
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSLois Rilo, Weblate, OCA-git-bot, oca-ci, Mateu Griful, JasminSForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-request
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-request:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
On most companies there are products that must be purchased often but
cannot be stored as a usual product because no consumption moves are
made. Usually, they are stored as consumables or putaway rules are
defined. In both cases, reordering rules cannot be used. This module
allows to use stock request as reordering rules for this kind of
products.

It is created following the concept of lean kanban cards.

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
view_stock_request_tree stock.request.tree stock.request tree Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True tracking=True args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals_list)
    @api.model_create_multi
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (1)
  • action_scan_kanban(self)

New fields (2)
  • active Boolean
    default=True
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-request
GIT
GIThttps://github.com/OCA/stock-logistics-request.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-request/tree/16.0/stock_request_kanban
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Matt Taylor
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-request
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-request:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
view_stock_request_tree stock.request.tree stock.request tree Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True tracking=True args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals_list)
    @api.model_create_multi
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/15.0/stock_request_kanban
VERSION
VERSION 1.1.3
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSLois Rilo, Miquel Raïch, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Bernat Puig Font, Núria Sancho
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:33
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
view_stock_request_tree stock.request.tree stock.request tree Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True tracking=True args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals)
    @api.model
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals)
    @api.model
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/14.0/stock_request_kanban
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSEnric Tobella, Lois Rilo, Miquel Raïch, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, oca-ci, Bernat Puig Font, Núria Sancho
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (16)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_assets_backend stock_request_kanban assets ir.ui.view qweb Inherits web.assets_backend
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
view_stock_request_tree stock.request.tree stock.request tree Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True tracking=True args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals)
    @api.model
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals)
    @api.model
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/13.0/stock_request_kanban
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ForgeFlow, Creu Blanca
COMMITTERS
COMMITTERSmreficent, OCA Transbot, oca-travis, OCA-git-bot, hveficent
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (16)
XML IDNameModelTypeStatus
product_product_form_view_kanban_card_button product.product.stock.request.kanban product.product div Inherits product.product_normal_form_view
product_template_form_view_bom_button product.template.stock.request.kanban product.template div Inherits product.product_template_only_form_view
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_assets_backend stock_request_kanban assets ir.ui.view qweb Inherits web.assets_backend
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
view_stock_request_tree stock.request.tree stock.request tree Inherits stock_request.view_stock_request_tree
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (9)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (1)
  • kanban_card_count Integer
    compute='_compute_kanban_card_count' compute_sudo=False args: '# Kanban Cards'
Public methods (1)
  • action_view_kanban_cards(self)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True track_visibility='onchange' args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
  • cancel(self)
  • close_inventory(self)
  • create(self, vals)
    @api.model
  • finish_inventory(self)
  • print_missing_kanbans(self)
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
  • to_draft(self)

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (2)
  • active Boolean
    default=True
  • product_template_id Many2one
    related='product_id.product_tmpl_id'
Public methods (3)
  • create(self, vals)
    @api.model
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • update_status(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/12.0/stock_request_kanban
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca, Eficent
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca, Eficent
COMMITTERS
COMMITTERSLois Rilo, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (7)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True track_visibility='onchange' args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
    @api.multi
  • cancel(self)
    @api.multi
  • close_inventory(self)
    @api.multi
  • create(self, vals)
    @api.model
  • finish_inventory(self)
    @api.multi
  • print_missing_kanbans(self)
    @api.multi
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
    @api.multi
  • to_draft(self)
    @api.multi

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (1)
  • active Boolean
    default=True
Public methods (3)
  • create(self, vals)
    @api.model
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (3)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/11.0/stock_request_kanban
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYReporting
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Creu Blanca, Eficent
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Creu Blanca, Eficent
COMMITTERS
COMMITTERSEnric Tobella, Lois Rilo, Jordi Ballester Alomar, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-warehouse:
    - stock_request
odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
report_kanban_label report_kanban_label ir.ui.view qweb New
report_simple_label report_simple_label ir.ui.view qweb New
stock_request_kanban_kanban_view stock.request.kanban.kanban stock.request.kanban kanban New
stock_request_kanban_search stock.request.kanban.search stock.request.kanban search New
stock_request_order_form stock.request.order.form stock.request.order xpath Inherits stock_request.stock_request_order_form
view_stock_inventory_kanban_form stock.inventory.kanban.form stock.inventory.kanban form New
view_stock_inventory_kanban_tree stock.inventory.kanban.tree stock.inventory.kanban tree New
view_stock_request_kanban_form stock.request.kanban.form stock.request.kanban form New
view_stock_request_kanban_tree stock.request.kanban.tree stock.request.kanban tree New
wizard_stock_inventory_kanban_form wizard.stock.inventory.kanban.form wizard.stock.inventory.kanban form New
wizard_stock_request_kanban_form wizard.stock.request.kanban.form wizard.stock.request.kanban form New
wizard_stock_request_order_kanban_form wizard.stock.request.order.kanban.form wizard.stock.request.order.kanban field Inherits wizard_stock_request_kanban_form
Models touched (7)

New fields (9)
  • count_missing_kanbans Integer
    compute='_compute_missing_kanban' readonly=True args: 'Missing Kanbans'
  • kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_kanban' args: 'stock.request.kanban'
  • location_ids Many2many → stock.location
    domain=[('usage', 'in', ['internal', 'transit'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Location' args: 'stock.location'
  • missing_kanban_ids Many2many → stock.request.kanban
    compute='_compute_missing_kanban' readonly=True args: 'stock.request.kanban'
  • name Char
    copy=False readonly=True states={'draft': [('readonly', False)]}
  • product_ids Many2many → product.product
    domain=[('type', 'in', ['product', 'consu'])] ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Products' args: 'product.product'
  • scanned_kanban_ids Many2many → stock.request.kanban
    copy=False readonly=True relation='stock_inventory_kanban_scanned_kanban' args: 'stock.request.kanban'
  • state Selection
    copy=False default='draft' readonly=True required=True track_visibility='onchange' args: [('draft', 'Draft'), ('in_progress', 'In progress'), ('finished', 'Finished'), ('closed', 'Closed'), ('cancelled', 'Cancelled')]
  • warehouse_ids Many2many → stock.warehouse
    ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Warehouse' args: 'stock.warehouse'
Public methods (8)
  • calculate_kanbans(self)
    @api.multi
  • cancel(self)
    @api.multi
  • close_inventory(self)
    @api.multi
  • create(self, vals)
    @api.model
  • finish_inventory(self)
    @api.multi
  • print_missing_kanbans(self)
    @api.multi
    Print the missing kanban cards in order to restore them
  • start_inventory(self)
    @api.multi
  • to_draft(self)
    @api.multi

New fields (1)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
Public methods (0)

No public methods.

New fields (1)
  • active Boolean
    default=True
Public methods (3)
  • create(self, vals)
    @api.model
  • get_barcode_format(self)
    @api.model
  • search_barcode(self, barcode)
    @api.model

New fields (1)
  • inventory_kanban_id Many2one → stock.inventory.kanban
    readonly=True args: 'stock.inventory.kanban'
Public methods (2)
  • barcode_ending(self)
  • validate_kanban(self, barcode)

New fields (1)
  • stock_request_id Many2one → stock.request
    readonly=True args: 'stock.request'
Public methods (3)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)

New fields (3)
  • kanban_id Many2one → stock.request.kanban
    readonly=True args: 'stock.request.kanban'
  • status Text
    default='Start scanning' readonly=True
  • status_state Integer
    default=0 readonly=True
Public methods (3)
  • barcode_ending(self)
  • on_barcode_scanned(self, barcode)
  • validate_kanban(self, barcode)
    It must return True if the kanban is valid, False otherwise :param barcode: :return:

New fields (1)
  • order_id Many2one → stock.request.order
    required=True args: 'stock.request.order'
Public methods (4)
  • barcode_ending(self)
  • stock_request_ending(self)
  • stock_request_kanban_values(self)
  • validate_kanban(self, barcode)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/stock-logistics-request
PULL REQUEST
PULL REQUEST[MIG] stock_request_kanban: Migration to 19.0 (#90)