Repository
OCA/shopfloor-app · module folder · Try on Runboat
Module version
Category
Inventory
Folder size
0.25 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
https://github.com/OCA/shopfloor-app
Last tracking update
2026-08-11 11:13:01
Authors
Camptocamp, Akretion, Odoo Community Association (OCA), BCIM
Maintainers
Camptocamp, Akretion, Odoo Community Association (OCA), BCIM
Committers
Simone Orsi, Michael Tietz, SilvioC2C, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
OCA/connector:
OCA/rest-framework:
OCA/server-tools:
OCA/web-api:
odoo/odoo:
- web
Python dependencies
apispec, cerberus, parse-accept-language, pyquerystring, cachetools
System dependencies
None
Required by
shopfloor, shopfloor_example, shopfloor_mobile_base, shopfloor_rest_log, shopfloor_workstation
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`.

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
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
HTTP endpoints (2)
Route(s)HandlerAuthTypeMethodsFlags
/shopfloor/api-docs/<tech_name(shopfloor.app):collection>/<string:service_name>.json ApiDocsController.shopfloor_api public http ALL
/shopfloor/api-docs/<tech_name(shopfloor.app):collection>, /shopfloor/api-docs/<tech_name(shopfloor.app):collection>/index.html ApiDocsController.shopfloor_index public http GET
Models touched (5)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (16)
  • 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.'
Public methods (4)
  • action_open_app(self)
  • action_open_app_docs(self)
  • action_view_menu_items(self)
  • api_url_for_service(self, service_name, endpoint=None)
    Handy method to generate services' API URLs for current app.

New fields (6)
  • 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
Public methods (0)

No public methods.

New fields (4)
  • 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
Public methods (0)

No public methods.

New fields (3)
  • 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'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • has_option(self, key)
  • write(self, vals)

Loading…

Loading…

Loading…