| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/shopfloor-app |
| GIT | |
| GIT | https://github.com/OCA/shopfloor-app.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/shopfloor-app/tree/18.0/shopfloor_base |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Simone Orsi, Michael Tietz, SilvioC2C, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/shopfloor-app |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/rest-framework: - base_rest OCA/server-tools: - jsonifier OCA/web-api: - endpoint_route_handler odoo/odoo: - base - web - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
apispec cerberus parse-accept-language pyquerystring cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Shopfloor is a barcode scanner application. This module provides REST APIs to support scenario. It needs a frontend to consume the backend APIs and provide screens for users on barcode devices. A default front-end application is provided by `shopfloor_mobile_base`. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
shopfloor_app_form_view |
shopfloor app form | shopfloor.app | form | New |
shopfloor_app_search_view |
shopfloor app search | shopfloor.app | search | New |
shopfloor_app_tree_view |
shopfloor app tree | shopfloor.app | list | New |
shopfloor_menu_form_view |
shopfloor menu form | shopfloor.menu | form | New |
shopfloor_menu_search_view |
shopfloor menu search | shopfloor.menu | search | New |
shopfloor_menu_tree_view |
shopfloor menu tree | shopfloor.menu | list | New |
shopfloor_profile_form_view |
shopfloor.profile form | shopfloor.profile | form | New |
shopfloor_profile_search_view |
shopfloor.profile search | shopfloor.profile | search | New |
shopfloor_profile_tree_view |
shopfloor.profile tree | shopfloor.profile | list | New |
shopfloor_scenario_form_view |
shopfloor.scenario form | shopfloor.scenario | form | New |
shopfloor_scenario_search_view |
shopfloor.scenario search | shopfloor.scenario | search | New |
shopfloor_scenario_tree_view |
shopfloor.scenario tree | shopfloor.scenario | list | New |
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
api_docs_url
Char
compute='_compute_url'
help='Public URL for api docs.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='Base route for endpoints attached to this app, public version.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='\n Base route for endpoints attached to this app,\n internal controller-ready version.\n '
app_version
Char
compute='_compute_app_version'
auth_type
Selection
default='user_endpoint'
selection='_selection_auth_type'
category
Selection
selection=[('', 'None')]
lang_id
Many2one → res.lang
help='If set, the app will be first loaded with this lang.'
string='Default language'
args: 'res.lang'
lang_ids
Many2many → res.lang
string='Available languages'
args: 'res.lang'
name
Char
required=True
translate=True
profile_ids
Many2many → shopfloor.profile
comodel_name='shopfloor.profile'
help="Profiles used by this app. This will determine menu items too.However this field is not required in case you don't need profiles and menu items from the backend."
string='Profiles'
profile_required
Boolean
compute='_compute_profile_required'
store=True
registered_routes
Text
compute='_compute_registered_routes'
compute_sudo=True
groups='base.group_no_one'
help='Technical field to allow developers to check registered routes on the form'
short_name
Char
help='Needed for app manifest'
required=True
translate=True
tech_name
Char
index=True
required=True
url
Char
compute='_compute_url'
help='Public URL to use the app.'
action_open_app(self)
action_open_app_docs(self)
action_view_menu_items(self)
api_url_for_service(self, service_name, endpoint=None)
active
Boolean
default=True
name
Char
required=True
translate=True
profile_id
Many2one → shopfloor.profile
help='Visible on this profile only'
string='Profile'
args: 'shopfloor.profile'
scenario_id
Many2one → shopfloor.scenario
auto_join=True
comodel_name='shopfloor.scenario'
ondelete='restrict'
required=True
scenario_key
Char
related='scenario_id.key'
sequence
Integer
No public methods.
active
Boolean
default=True
menu_ids
One2many → shopfloor.menu
comodel_name='shopfloor.menu'
help='Menus visible for this profile'
inverse_name='profile_id'
string='Menus'
name
Char
required=True
translate=True
sequence
Integer
default=0
No public methods.
key
Char
help="Identify scenario univocally. This value must match a service component's `usage`."
required=True
name
Char
required=True
translate=True
options_edit
Text
help='Configure options via JSON'
inverse='_inverse_options_edit'
create(self, vals_list)
has_option(self, key)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/wms |
| GIT | |
| GIT | https://github.com/OCA/wms.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/wms/tree/16.0/shopfloor_base |
| VERSION | |
| VERSION | 1.2.2 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| COMMITTERS | |
| COMMITTERS | Laurent Mignon (ACSONE), Denis Roussel, Weblate, OCA-git-bot, Simone Orsi, Michael Tietz, oca-ci, Nicolas Delbovier |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/wms |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/rest-framework: - base_rest OCA/server-tools: - jsonifier OCA/web-api: - endpoint_route_handler odoo/odoo: - base - web - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
apispec cerberus parse-accept-language pyquerystring cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
shopfloor_app_form_view |
shopfloor app form | shopfloor.app | form | New |
shopfloor_app_search_view |
shopfloor app search | shopfloor.app | search | New |
shopfloor_app_tree_view |
shopfloor app tree | shopfloor.app | tree | New |
shopfloor_menu_form_view |
shopfloor menu form | shopfloor.menu | form | New |
shopfloor_menu_search_view |
shopfloor menu search | shopfloor.menu | search | New |
shopfloor_menu_tree_view |
shopfloor menu tree | shopfloor.menu | tree | New |
shopfloor_profile_form_view |
shopfloor.profile form | shopfloor.profile | form | New |
shopfloor_profile_search_view |
shopfloor.profile search | shopfloor.profile | search | New |
shopfloor_profile_tree_view |
shopfloor.profile tree | shopfloor.profile | tree | New |
shopfloor_scenario_form_view |
shopfloor.scenario form | shopfloor.scenario | form | New |
shopfloor_scenario_search_view |
shopfloor.scenario search | shopfloor.scenario | search | New |
shopfloor_scenario_tree_view |
shopfloor.scenario tree | shopfloor.scenario | tree | New |
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
api_docs_url
Char
compute='_compute_url'
help='Public URL for api docs.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='Base route for endpoints attached to this app, public version.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='\n Base route for endpoints attached to this app,\n internal controller-ready version.\n '
app_version
Char
compute='_compute_app_version'
auth_type
Selection
default='user_endpoint'
selection='_selection_auth_type'
category
Selection
selection=[('', 'None')]
lang_id
Many2one → res.lang
help='If set, the app will be first loaded with this lang.'
string='Default language'
args: 'res.lang'
lang_ids
Many2many → res.lang
string='Available languages'
args: 'res.lang'
name
Char
required=True
translate=True
profile_ids
Many2many → shopfloor.profile
comodel_name='shopfloor.profile'
help="Profiles used by this app. This will determine menu items too.However this field is not required in case you don't need profiles and menu items from the backend."
string='Profiles'
profile_required
Boolean
compute='_compute_profile_required'
store=True
registered_routes
Text
compute='_compute_registered_routes'
compute_sudo=True
groups='base.group_no_one'
help='Technical field to allow developers to check registered routes on the form'
short_name
Char
help='Needed for app manifest'
required=True
translate=True
tech_name
Char
index=True
required=True
url
Char
compute='_compute_url'
help='Public URL to use the app.'
action_open_app(self)
action_open_app_docs(self)
action_view_menu_items(self)
api_url_for_service(self, service_name, endpoint=None)
active
Boolean
default=True
name
Char
required=True
translate=True
profile_id
Many2one → shopfloor.profile
help='Visible on this profile only'
string='Profile'
args: 'shopfloor.profile'
scenario
Char
string='Legacy scenario field'
scenario_id
Many2one → shopfloor.scenario
comodel_name='shopfloor.scenario'
compute='_compute_scenario_id'
inverse='_inverse_scenario_id'
ondelete='cascade'
readonly=False
required=True
store=True
scenario_key
Char
related='scenario_id.key'
sequence
Integer
No public methods.
active
Boolean
default=True
menu_ids
One2many → shopfloor.menu
comodel_name='shopfloor.menu'
help='Menus visible for this profile'
inverse_name='profile_id'
string='Menus'
name
Char
required=True
translate=True
sequence
Integer
default=0
No public methods.
key
Char
help="Identify scenario univocally. This value must match a service component's `usage`."
required=True
name
Char
required=True
translate=True
options_edit
Text
help='Configure options via JSON'
inverse='_inverse_options_edit'
create(self, vals_list)
has_option(self, key)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/wms |
| GIT | |
| GIT | https://github.com/OCA/wms.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/wms/tree/14.0/shopfloor_base |
| VERSION | |
| VERSION | 2.14.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| COMMITTERS | |
| COMMITTERS | Pierre Verkest, OCA Transbot, Sébastien Alix, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi, hparfr, Michael Tietz, oca-ci, JuMiSanAr |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/wms |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/rest-framework: - base_rest OCA/server-tools: - jsonifier OCA/web-api: - endpoint_route_handler odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
apispec cerberus parse-accept-language pyquerystring cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
shopfloor_app_form_view |
shopfloor app form | shopfloor.app | form | New |
shopfloor_app_search_view |
shopfloor app search | shopfloor.app | search | New |
shopfloor_app_tree_view |
shopfloor app tree | shopfloor.app | tree | New |
shopfloor_menu_form_view |
shopfloor menu form | shopfloor.menu | form | New |
shopfloor_menu_search_view |
shopfloor menu search | shopfloor.menu | search | New |
shopfloor_menu_tree_view |
shopfloor menu tree | shopfloor.menu | tree | New |
shopfloor_profile_form_view |
shopfloor.profile form | shopfloor.profile | form | New |
shopfloor_profile_search_view |
shopfloor.profile search | shopfloor.profile | search | New |
shopfloor_profile_tree_view |
shopfloor.profile tree | shopfloor.profile | tree | New |
shopfloor_scenario_form_view |
shopfloor.scenario form | shopfloor.scenario | form | New |
shopfloor_scenario_search_view |
shopfloor.scenario search | shopfloor.scenario | search | New |
shopfloor_scenario_tree_view |
shopfloor.scenario tree | shopfloor.scenario | tree | New |
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
api_docs_url
Char
compute='_compute_url'
help='Public URL for api docs.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='Base route for endpoints attached to this app, public version.'
api_route
Char
compute='_compute_api_route'
compute_sudo=True
help='\n Base route for endpoints attached to this app,\n internal controller-ready version.\n '
app_version
Char
compute='_compute_app_version'
auth_type
Selection
default='user_endpoint'
selection='_selection_auth_type'
category
Selection
selection=[('', 'None')]
lang_id
Many2one → res.lang
help='If set, the app will be first loaded with this lang.'
string='Default language'
args: 'res.lang'
lang_ids
Many2many → res.lang
string='Available languages'
args: 'res.lang'
name
Char
required=True
translate=True
profile_ids
Many2many → shopfloor.profile
comodel_name='shopfloor.profile'
help="Profiles used by this app. This will determine menu items too.However this field is not required in case you don't need profiles and menu items from the backend."
string='Profiles'
profile_required
Boolean
compute='_compute_profile_required'
store=True
registered_routes
Text
compute='_compute_registered_routes'
compute_sudo=True
groups='base.group_no_one'
help='Technical field to allow developers to check registered routes on the form'
short_name
Char
help='Needed for app manifest'
required=True
translate=True
tech_name
Char
index=True
required=True
url
Char
compute='_compute_url'
help='Public URL to use the app.'
action_open_app(self)
action_open_app_docs(self)
action_view_menu_items(self)
api_url_for_service(self, service_name, endpoint=None)
active
Boolean
default=True
name
Char
required=True
translate=True
profile_id
Many2one → shopfloor.profile
help='Visible on this profile only'
string='Profile'
args: 'shopfloor.profile'
scenario
Char
string='Legacy scenario field'
scenario_id
Many2one → shopfloor.scenario
comodel_name='shopfloor.scenario'
compute='_compute_scenario_id'
inverse='_inverse_scenario_id'
ondelete='cascade'
readonly=False
required=True
store=True
scenario_key
Char
related='scenario_id.key'
sequence
Integer
No public methods.
active
Boolean
default=True
menu_ids
One2many → shopfloor.menu
comodel_name='shopfloor.menu'
help='Menus visible for this profile'
inverse_name='profile_id'
string='Menus'
name
Char
required=True
translate=True
sequence
Integer
default=0
No public methods.
key
Char
help="Identify scenario univocally. This value must match a service component's `usage`."
required=True
name
Char
required=True
translate=True
options_edit
Text
help='Configure options via JSON'
inverse='_inverse_options_edit'
create(self, vals)
has_option(self, key)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/wms |
| GIT | |
| GIT | https://github.com/OCA/wms.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/wms/tree/13.0/shopfloor_base |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Inventory |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, Camptocamp, BCIM |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Sébastien Alix, oca-travis, Weblate, OCA-git-bot, Simone Orsi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/wms |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/rest-framework: - base_rest OCA/server-auth: - auth_api_key OCA/server-env: - server_environment OCA/server-tools: - base_jsonify odoo/odoo: - base - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
apispec cerberus parse-accept-language pyquerystring cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
shopfloor_menu_form_view |
shopfloor menu form | shopfloor.menu | form | New |
shopfloor_menu_search_view |
shopfloor menu search | shopfloor.menu | search | New |
shopfloor_menu_tree_view |
shopfloor menu tree | shopfloor.menu | tree | New |
shopfloor_profile_form_view |
shopfloor.profile form | shopfloor.profile | form | New |
shopfloor_profile_search_view |
shopfloor.profile search | shopfloor.profile | search | New |
shopfloor_profile_tree_view |
shopfloor.profile tree | shopfloor.profile | tree | New |
shopfloor_scenario_form_view |
shopfloor.scenario form | shopfloor.scenario | form | New |
shopfloor_scenario_search_view |
shopfloor.scenario search | shopfloor.scenario | search | New |
shopfloor_scenario_tree_view |
shopfloor.scenario tree | shopfloor.scenario | tree | New |
active
Boolean
default=True
name
Char
required=True
translate=True
profile_id
Many2one → shopfloor.profile
help='Visible on this profile only'
string='Profile'
args: 'shopfloor.profile'
scenario
Char
string='Legacy scenario field'
scenario_id
Many2one → shopfloor.scenario
comodel_name='shopfloor.scenario'
compute='_compute_scenario_id'
inverse='_inverse_scenario_id'
ondelete='cascade'
readonly=False
required=True
store=True
sequence
Integer
No public methods.
active
Boolean
default=True
menu_ids
One2many → shopfloor.menu
comodel_name='shopfloor.menu'
help='Menus visible for this profile'
inverse_name='profile_id'
string='Menus'
name
Char
required=True
No public methods.
key
Char
help="Identify scenario univocally. This value must match a service component's `usage`."
required=True
name
Char
required=True
translate=True
options_edit
Text
help='Configure options via JSON'
inverse='_inverse_options_edit'
create(self, vals)
has_option(self, key)
write(self, vals)