Skip to content

Repository files navigation

Odoo Queue Screen

dn_queue_screen is an Odoo 19 queue-management and public-display module for general service desks, clinics, hospitals, and similar organizations. Each channel has an independent queue, display configuration, responsible operators, and revocable public URL.

Features

  • Token-protected public display with no backend login requirement.
  • Real-time call, recall, skip, done, cancel, and reset events over Odoo Bus.
  • Concurrency-safe automatic queue numbers maintained independently per channel.
  • One-click, concurrency-safe calling of the oldest waiting entry.
  • Server-backed display restoration after refresh or bus reconnection.
  • Responsive and accessible display for televisions, tablets, and small screens.
  • Optional room/counter numbers and configurable display colors.
  • Browser-compatible notification sound enabled by one user gesture.
  • Multi-company and responsible-operator isolation.
  • Separate Operator and Administrator privileges.
  • Python HTTP/model tests and frontend HOOT unit tests.

The canonical lifecycle and security behavior are documented in Queue Screen Workflow.

The optional Point of Sale integration is documented in Point of Sale Queue Integration.

Clinic check-in, consultation, routing, and optional appointments are documented in Clinic Queue Integration.

Requirements

  • Odoo 19.0
  • The standard Odoo bus addon
  • A browser with JavaScript enabled for the public display

No external Python package is required by the module at runtime.

Installation

  1. Clone the repository into a directory included in Odoo's addons_path:

    git clone https://github.com/dimastriann/odoo-queue-screen.git
  2. Restart Odoo, update the Apps list, and install Queue Screen Display.

  3. For an existing installation, upgrade dn_queue_screen after deploying a newer version so its security records and views are updated.

Install Queue Screen - Point of Sale (dn_queue_screen_pos) as well when paid POS orders should create collection tickets. It installs the base queue module and Point of Sale dependencies automatically.

Install Queue Screen - Clinic (dn_queue_screen_clinic) for patient-flow queues. Install Queue Screen - Clinic Appointments (dn_queue_screen_clinic_calendar) only when Odoo Calendar appointments should support check-in; the base clinic addon does not depend on Calendar.

Roles

Assign privileges from the user's Access Rights page:

  • Queue Screen / Operator can view assigned channels, create queue entries, and use their lifecycle actions. Operators cannot configure channels or delete queue entries.
  • Queue Screen / Administrator can configure and operate all channels in the user's allowed companies, clear queues, and revoke public screen links.

The built-in Administrator users receive the Queue Screen Administrator role when the module is installed.

Configuration

  1. Open Queue Screen > Configuration > Queue Channels.
  2. Create a channel and select its company and responsible operators.
  3. Configure its number prefix, padding, history limit, optional counter field, and display colors.
  4. Select Open Screen to launch its token-protected public display.

Treat the screen URL like a secret. Use Revoke Screen Link if it is exposed; the old URL immediately stops working.

Operation

  1. Open Queue Screen > Operations > Queue Operations.
  2. Create a queue entry for one of your assigned channels. Its next queue number is assigned automatically by the server.
  3. Use Call Next on the channel to call the oldest waiting entry, or use Call, Skip, Done, and Cancel on individual entries. Calling an active or skipped entry performs a recall.
  4. On each newly opened display, select Enable sound once. Browsers require this user gesture before notification audio is permitted.

The display reconnects to Odoo Bus automatically and reloads authoritative queue state after a connection interruption.

Security notes

  • Public routes validate the channel ID, active status, and full access token.
  • Display routes use read-only serialized data and never grant ORM access.
  • Authenticated records are restricted by allowed company and channel responsibility.
  • Lifecycle state and timestamps cannot be changed using generic ORM writes.

Testing

Use a dedicated test database and an unused localhost HTTP port. The localhost override ensures Odoo HttpCase requests reach the same test process even when the development configuration binds to another hostname.

python odoo-bin -c path/to/odoo.conf -d queue_screen_test `
    -i dn_queue_screen --http-interface=127.0.0.1 --http-port=18019 `
    --test-enable --stop-after-init --test-tags /dn_queue_screen

Run the module's frontend tests after installation:

python odoo-bin -c path/to/odoo.conf -d queue_screen_test `
    --http-interface=127.0.0.1 --http-port=18019 `
    --test-enable --stop-after-init `
    --test-tags="/web:WebSuite.test_unit_desktop[@dn_queue_screen]"

The frontend runner requires Chrome/Chromium and Odoo's test-only WebSocket client dependency. Runtime deployments do not require them.

License

LGPL-3

About

Queue Screen Display (Odoo) - Learning Session, for demo login [admin/admin]

Topics

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages