Versionsoversigt
Ændringslog for programmet
1.2.0
Added the new quiz and rules gate, improved onboarding configuration, and fixed several frontend flow issues.
✨ Funktioner
- Added group-specific quiz pools so each group can choose from its own assigned questions instead of drawing from the full company-wide bank
- Added a quiz gate to the visitor flow, including a dedicated rules page and validation that sends visitors back to review the rules when they answer incorrectly
- Added a reusable quiz question bank with seeded English and Danish questions and answers
- Added optional expected read time on checkbox onboarding steps so visitors can be required to spend a minimum amount of time reading rules before accepting them
📈 Forbedringer
- Made the group quiz question selector use Odoo's native tag widget so admins can manage the pool more naturally
- Updated quiz and relation fields to use chatter tracking where it provides useful audit history
- Refreshed the group and frontdesk relation panels to feel more like standard Odoo backend settings screens
- Added dedicated backend search views for Checky records so list and kanban screens have quicker filters, including archived-record access where archive-first behavior now applies
- Added Danish translations for the new quiz flow, admin labels, and helper text
- Added explicit Checky reviewer, user, and administrator backend roles. Legacy Checky access groups are not mapped automatically on upgrade and no longer govern effective access, so admins must assign the new roles after updating
- Changed persistent Checky records to use archive-first lifecycle management. Users can no longer delete frontdesks, groups, items, onboarding steps, quiz configuration, or visits through normal access rules
- Cleaned up the Checky backend navigation so Configuration uses a flatter submenu layout and now includes a direct shortcut to the real Checky settings screen
- Restricted the reusable quiz question bank to each admin's allowed companies and tightened group quiz selection so admins can only pick active questions from the current company context
- Restored explicit onboarding-step ordering controls in the backend so administrators can drag and edit the sequence visitors see
- Reused the existing onboarding rules content for the quiz rules page so visitors see the same instructions in both flows
- Improved onboarding step administration so checkbox popup content uses a more natural Odoo editor layout and video steps accept full YouTube URLs while showing an inline preview
- Expanded quiz support so questions can have multiple correct answers and still be validated safely on the server
- Removed 'sequence' from the onboarding step form view
- Made the label name visible by default on the onboarding step list view
- Improved the visitor flow so frontdesks with no configured visit types now show a clear message, while groups with no checklist items are skipped automatically instead of showing an empty checklist page
🐞 Fejlrettelser
- Fixed the quiz flow so it no longer falls back to a global question bank when a group has no explicit quiz pool
- Fixed quiz configuration validation so enabled groups must now have enough valid current-company questions selected before they can be saved, while public quiz generation still filters out imported or cross-company inconsistencies defensively
- Fixed active quiz questions so they can no longer be saved in unusable states, and made quiz availability checks reuse the same filtered question pool more efficiently
- Fixed Checky quiz administration so only Checky administrators can change group quiz settings, quiz questions that are still assigned to groups can no longer be archived, onboarding steps now follow allowed-company access rules, and Checky Administrator membership is no longer auto-reseeded on update
- Fixed the remaining quiz administration edge cases so legacy hidden groups no longer broaden into the new reviewer role, quiz answers now follow the archive-only lifecycle like the rest of Checky configuration, generated quiz-attempt model metadata is preserved for upgrades and extensions, and empty pre-filtered quiz pools are counted consistently
- Fixed visit timing so duration starts at the actual check-in moment instead of record creation, draft visits no longer appear as ongoing kiosk visits, and the summary page keeps the displayed visit duration live while a visit is still open
- Fixed frontend quiz crashes caused by Owl event handling and template lookups
- Fixed group quiz configuration validation so the available question pool is interpreted consistently in the backend and public quiz flow
- Fixed account creation flow crashes caused by translated header and loading text being evaluated from the wrong Owl slot context on the next visitor pages
- Fixed the 'Open Checky' button in a Frontdesk being placed in the wrong place. It now exists in the header of the form element
- Fixed the Frontdesk kanban card so the associated work location field is loaded reliably, corrected the 'Used in Groups' backend label, and hardened the onboarding video preview HTML without removing the inline preview
- Fixed the language selector so website languages such as Danish use the correct website route code and no longer fail with a 404 or missing website context
- Fixed a frontend asset/template issue that could crash the Checky check-in flow before the app finished loading
- Fixed onboarding checkbox popups so long rule content is no longer hidden behind the action area at the bottom
- Fixed the onboarding checkbox interaction area so clicking anywhere on the visible row opens the rule popup as expected
- Fixed onboarding video links so privacy-enhanced youtube-nocookie embed URLs are accepted like normal YouTube links
1.1.3
Updated the changelog and improved a couple of frontend-facing details.
✨ Funktioner
- Added an optional QR handoff page after language selection, allowing visitors to scan a QR code and continue on their phone or continue on the current device
📈 Forbedringer
- Updated the changelog so the latest published history is clearer and better aligned with the current semantic version sequence
- Host notifications now show a clearer visit title in Odoo Discuss instead of falling back to a raw model/id label
- Added a per-frontdesk setting so the QR handoff page can be skipped entirely where that extra step is not wanted
🐞 Fejlrettelser
- Fixed an issue where an empty item description could appear as the literal text 'false' in the frontend
- Fixed Checky visit notifications so the subject is shown as a friendly message when a host is notified about a new visitor
- Fixed visitor search privacy so search results are only shown when five or fewer matches exist, preventing broader searches from exposing other visitors' details
- Fixed account search so it now looks across all individual contacts instead of only contacts previously created through Checky, while still excluding companies
1.1.2
Fixed styling that was too broad
🐞 Fejlrettelser
- Fixed a css styling target that was being applied too broadly. Now rather than hitting body, it only hits body when we're inside of a Checky page
1.1.1
Fixed warnings that arose due to Odoo 19 changes.
📈 Forbedringer
- Upgraded the Api to be using type 'jsonrpc' instead of the now deprecated 'json' type
- Changed how we handle unique constraints regarding the frontdesk id
- Aligned the changelog versioning with the addon manifest versioning so the published history follows a consistent semantic version sequence
- Fixed that we were adding new fields that used the same name as already existing fields when extending certain models
1.1.0
Updated for Odoo19.
📈 Forbedringer
- Updated Checky to now support Odoo 19
1.0.0
Checky now uses res.partner for visitors with optional company/contact linking and integrated profile photos.
✨ Funktioner
- Replaced custom Visitor model with an extension of res.partner; visitors are standard partners tagged with is_checky_visitor
- New setting to automatically link visitors to companies: creates/uses a company partner and adds the visitor as a child contact
- Visitor selfie now mirrors the partner avatar (image_1920), unifying profile images across Odoo
- Visitors menu/action now targets res.partner and shows only Checky visitors via a domain filter
0.5.1
Frontdesk refactor, configurable hosts, automated host notifications & mandatory-item enforcement
📈 Forbedringer
- Improved the clarity for the user when a selfie has been taken
🐞 Fejlrettelser
- Fixed an issue where the QR code would generate an incorrect link (would link to /app and not /lang)
0.5.0
Frontdesk refactor, configurable hosts, automated host notifications & mandatory-item enforcement
✨ Funktioner
- Introduced new 'Frontdesk' model, replacing the previous 'Location' model throughout the backend and frontend
- Admins can now configure which employees can be selected as 'hosts' directly in Checky Settings, instead of filtering by department
- When a guest checks in, the selected host automatically receives a clearly formatted notification (via OdooBot) in the Odoo inbox and chatter. Only the person selected as host is notified.
- Added “Mandatory” toggle on Items: admins can now mark individual checklist items as required
- Selfie camera component with platform-aware flow: iOS uses native <input type="file" capture="user">, while Android and (optionally) Desktop use an in-app live camera that prefers the front lens
📈 Forbedringer
- Updated all backend Python models, views, and SQL constraints to use the new Frontdesk concept, and refactored frontend and controllers to remove all legacy references to 'location_id' and replace with 'frontdesk_id' everywhere
- New Many2many field in settings makes it easy for admins to pick available hosts (employees) without needing to update departments or groups
- API endpoint for hosts now returns exactly the list chosen in settings (not filtered by department)
- Notifications sent to hosts use clear formatting (bold, line breaks), making it easy to spot who checked in, at which frontdesk, and when
- Changed Visit model so that certain field changes (e.g., status updates) are now automatically tracked and visible in the Chatter activity log
- All automated state changes and check-ins/check-outs performed via the public API (without authentication) are now attributed to the OdooBot system user, instead of the current admin or last logged-in user. This ensures better audit trails and avoids confusing user attribution in the Chatter history
- Improved server side validation to make sure a visit is created only when all needed data is present
- Added translations for all the new pieces of text that got added
- Made all columns in backend list views optional (using Odoo's optional="show"/"hide"), allowing each user to fully customize which fields are shown or hidden in visit, visitor, item, group, frontdesk, and onboarding-step lists, for a more flexible and user-friendly experience
- Combined capability checks prevent opening an empty popup on devices without a camera; popup only appears after a successful stream
0.4.2
Navigation, check-in improvements, and minor UI fixes
📈 Forbedringer
- Improved frontend and backend handling for optional host selection during check-in. Host field is now truly optional in both the visitor form and API
- Enhanced the navigation system with a new 'replaceWith' method in the PageManager to allow seamless skipping of auto-bypassed steps without polluting the history stack (e.g., skipping HostSelection if no hosts exist)
- Visit form (backend): Now displays 'No host selected' in the Host Details tab if a host was not assigned, for clearer operator UX
- In the Visits list view, the Host column now shows '-' if no host was selected, making it visually clear when a visit had no host
🐞 Fejlrettelser
- Fixed frontend error when host selection is skipped, preventing a TypeError caused by accessing properties of null
- Resolved issue where pressing Back from GroupSelection would get stuck in a skip-loop if HostSelection was bypassed automatically
- Check-in API and form now correctly support visits with no host selected (host_id is optional everywhere).
0.4.1
Minor changes and improvements
📈 Forbedringer
- Added more translations (specifically targeting the new settings page)
- Made the QR code better for Android, because Android seems to struggle reading QR codes without a white border around
0.4.0
Introduced notification engine, improved summary toasts, added auto check-out cron job, and redesigned Auto Check-Out settings for clearer, 24‑hour HH:MM input
✨ Funktioner
- Added a custom OWL-based notification/toast engine for the website frontend
- Implemented a scheduled auto check-out cron job for visits, configurable in settings
📈 Forbedringer
- Integrated notifications on the summary page for check-in and check-out flows
- Integrated notifications on the account creation page for successful account creation
- Improved feedback to users with clear, timely toasts after major actions
- Visit duration is now shown correctly for ongoing visits (updates dynamically while in progress)
- Auto Check-Out settings redesigned: stacked single-column layout with clearer labels and inline help for better readability
- “After X time” now accepts duration in HH:MM (e.g., 00:30, 02:25) using a 24-hour input
- Daily auto check-out time now uses 24-hour HH:MM (e.g., 11:45, 23:30) instead of decimal hours
- Applied a small backend SCSS override to ensure the stacked layout is consistent across themes
- More UI elements and feedback have been translated to Danish
- Translated notifications
🐞 Fejlrettelser
- Fixed an error on the version page, where too much content meant there was not enough room
0.3.1
Template engine fixes and UI copy refinements
📈 Forbedringer
- Fixed major issues with the website template system, changelog page now renders reliably
- Updated UI wording throughout the app to better match actual features and flows
- Small internal refactoring for clarity and maintainability
🐞 Fejlrettelser
- Resolved template loading errors that prevented the module from installing/upgrading
- Fixed an error where the 'Status Checklist' on the summary page would be empty, when trying to check-out
0.3.0
Introduced version overview and changelog page
✨ Funktioner
- Added a public version/changelog page at /checky/_versions, listing all recent changes, features, improvements, and bug fixes
📈 Forbedringer
- Versions and changes are now stored in a static changelog.json file for easy editing and transparency
0.2.0
Mobile-first polish, cleaner onboarding and navigation tweaks
📈 Forbedringer
- Loading popup is now fixed and perfectly centred on all screens
- Reduced global font-size slightly on mobile for better fit
- Shrunk mobile input fields to match new font-size
- Changed the “Back” button background colour to #242424
- Handled long Danish words (e.g. “Acknowledgements”) so they no longer cause horizontal scrolling
- Re-worded the “Purpose” helper text to a more suitable phrasing
- User-search: placeholder font-size reduced on mobile
- User-search: user can progress without selecting search results (item selection optional)
- Removed the *Duplicate* option across relevant Odoo views
- Host-selection page now auto-skips when no hosts are returned
🐞 Fejlrettelser
- User-search: “No results” message now only appears after an attempted search with zero matches
- User-search: cleaned up result text formatting
- Onboarding: multiple video steps now render instead of only the first one
0.1.0
Initial release for internal testing
✨ Funktioner
- Added full page flow to handle check-in and check-out
- Added the ability to select Danish as a language
- Added Odoo backend pages
- Added settings for the module, which utilizes the default Odoo settings page