Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Attendances
  3. Health Screen v 16.0
  4. Sales Conditions FAQ

Health Screen

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 30
Download for v 16.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Discuss (mail)
• Employees (hr)
Community Apps Dependencies Show
• Attendance Suite Base
• EH HR Platform Core
• Face Kiosk Attendance
• EH HR Compatibility
Lines of code 4677
Technical Name eh_hr_health_screen
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
ERP Heritage / Attendance

Health Screen for Face Kiosk

A configurable health declaration that runs at the attendance kiosk before face capture, blocks entry on flagged answers, and keeps an immutable audit trail of every declaration.

Free · LGPL-3FreeLGPL-3v1.0.0
Deny on flagged yes
Immutable audit trail
Per-company cadence
Token-authed endpoints
Daily retention sweep

Why this module

Health Screen for Face Kiosk

01 / GATE

Blocks before the face match

The declaration runs after the kiosk pairs and before face capture starts. A yes on any deny-flagged question records a denied declaration, logs a kiosk event, and stops the kiosk from advancing, so the person never reaches the face match step for that session.

02 / AUDIT

A snapshot that cannot rot

Each declaration stores the question text and answer as a JSON snapshot captured at submission. Reword or retire a question later and the historical rows are untouched. Declaration views are create-disabled and edit-disabled, and most roles have no write or unlink right.

03 / OWNERSHIP

Yours to keep

LGPL-3 source on disk. No activation key, no phone-home, no recurring licence. Operators write the prose for every question, set deny-on-yes per question, and choose the per-company retention horizon. Free today, free at renewal, because there is no renewal.

Day in the life

A reception tablet screens the morning shift.

The shift arrives at the kiosk. After the tablet pairs, the health screen intercepts the welcome screen and shows the company's active questions. A worker taps No down the list, taps Submit, and the kiosk records an allowed declaration and moves on to face capture. The next worker answers Yes to the unwell question, which is flagged deny-on-yes. The server records the declaration as denied, writes a kiosk event for the audit log, and returns a deny result, so the kiosk shows the entry-not-permitted screen and never starts face capture. With cadence set to once per local day, the first allowed answer is remembered on that device for the rest of the calendar day, so a worker stepping back to the tablet is not asked again. At day end the retention cron deletes declarations older than the company horizon in capped batches.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

AUDIT / SNAPSHOT

The answer row stores the question text at submission time, not a foreign key to the live question. Rewording or deactivating a question afterward never rewrites or corrupts an existing declaration.

RETENTION / BATCHED CRON

The daily retention sweep walks each company at its own horizon, caps the run at a batch limit so a large backlog cannot run unbounded, and reports progress through the cron progress hook for safe resumption.

MULTI-COMPANY / SCOPING

Questions with no company apply database-wide, while company-set questions stay scoped. Global record rules constrain both questions and declarations to the user's allowed companies.

ENDPOINTS / RATE LIMITED

The questions and submit endpoints authenticate by kiosk device token and are rate limited per token or client IP, returning 429 when over budget and 401 when the token is missing or revoked.

SUBMIT / DEFENSIVE PARSING

Submit rejects a non-array body, skips malformed entries and unknown question ids, and re-derives the deny decision server-side from each question's own deny-on-yes flag rather than trusting the client.

DECISION / NON-BLOCKING QUESTIONS

A question can be recorded for audit without blocking. A yes on a question that is not deny-flagged is stored in the snapshot but still returns allowed, so informational questions do not stop entry.

What is inside

Built to do the job, end to end.

  • Health question model. eh.hr.health.question holds yes or no prose, a sequence, a deny-on-yes flag, an active flag, and an optional company. Empty company means the question applies to every company. Four default questions ship seeded inactive for the operator to activate and edit.
  • Health declaration model. eh.hr.health.declaration is the read-only audit row: decision allowed or denied, the JSON answer snapshot, the kiosk site and device, a notes field, company, and a computed reference. List, form, and search views are create-disabled and edit-disabled.
  • Kiosk endpoints. A questions endpoint returns the active questions and cadence for the device's company, and a submit endpoint takes an array of yes or no answers and returns allowed or denied. Both reuse the kiosk device token and are rate limited.
  • Kiosk hook and settings. A JS hook injected into the face kiosk shell shows the declaration before face capture and remembers an allowed result for the day when cadence is once per local day. Company settings expose the enable toggle, cadence, and retention horizon, plus a daily retention cron.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is an add-on to the ERP Heritage face attendance kiosk and depends on eh_hr_attendance_base, eh_hr_face_kiosk, and eh_hr_core. It is not a standalone kiosk.
  • On a denial the module records a denied declaration, logs a kiosk event, and prevents the kiosk from advancing to face capture. It does not create or post a separate attendance-exception record.
  • The kiosk declaration is recorded before face identification, so the live kiosk row is not attributed to a specific employee. The employee link on the audit row is populated only when a declaration is created with an employee through the model.
  • Once-per-day cadence in the running kiosk is remembered client-side on the device. A server method to find a prior same-day allowed declaration exists and is tested but is not wired into the live kiosk flow.
  • Questions are yes or no only. There is no free-text answer, scoring, conditional branching, temperature capture, or document upload.
  • The deny screen instructs the person to speak with a manager. There is no built-in notification, escalation, or approval workflow to a supervisor.
Search

Odoo 16 health screen, attendance kiosk health declaration, COVID screening Odoo, fitness for work questionnaire, deny entry attendance, workplace health screening, kiosk pre-clock-in questions, hr_attendance health check, employee health declaration audit, face kiosk health screen

Work with ERP Heritage

Need this fitted to the way you work?

ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.

Build and tailor
Odoo Implementation, Customization and Development, scoped to your workflow.
Connect and move
Odoo Integration and Migration across systems and Odoo versions.
Run and support
Odoo Support and Training so your team stays productive after go live.
Plan and advise
Odoo Consultation and ERP Consulting, from discovery to roadmap.

We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

ArabicChinese (Simplified)Chinese (Traditional)DutchFrenchGermanHindiIndonesianItalianJapaneseKoreanPolishPortuguese (Brazil)RussianSpanishSwedishThaiTurkishVietnamese
ERP Heritage

Production-grade Odoo HR, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by ERP Heritage - Odoo Implementation • LinkedIn

v1.0.0 · LGPL-3 · Odoo 16 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with