Search-first registry interface that protects beneficiary privacy by requiring users to search before viewing registrants. Replaces browse-all list views with a custom search portal showing recently viewed records. Tracks view history per user and provides auditor-only bypass for compliance purposes.
- Search-first landing page with no records loaded by default (privacy-by-design)
- Quick search across name, ID numbers, phone, and email with 3-character minimum
- Advanced filters for registrant type (individual/group) and registration date range
- Recently viewed section showing user's last 10 accessed registrants with avatars
- Automatic view tracking when registrant forms are opened
- Archive/unarchive permission enforcement (officers and managers only)
- Auditor bypass group for browse-all access to full registrant lists
| Model | Description |
|---|---|
spp.registry.view.history |
Tracks user's recently viewed registrants with timestamps |
res.partner (extended) |
Adds view tracking on form open and archive restrictions |
After installing:
- Navigate to Settings > Users & Companies > Users
- Grant
Auditor (Browse All)privilege only to users with legitimate audit responsibilities - Verify search portal appears at Registry > Search for registry users
- Test that non-auditor users cannot access Registry > Browse All (Audit) submenu
- Default landing: Registry > Search (replaces individuals/groups menus for non-auditors)
- Auditor menus: Registry > Browse All (Audit) > All Individuals / All Groups
- Recently viewed: Displayed in search portal below the search form
| Group | Access |
|---|---|
spp_registry.group_registry_read |
Full CRUD on view history (restricted to own records via IR rule) |
spp_registry_search.group_registry_search_auditor |
Bypass search requirement, access browse-all menus |
Archive/unarchive permission check enforces these groups:
base.group_systemspp_security.group_spp_adminspp_registry.group_registry_managerspp_registry.group_registry_officer
- Override
res.partner.get_formview_action()to customize view tracking behavior - Inherit
spp.registry.view.history.get_recent_registrants()to modify area filtering or result format - Override
res.partner._check_archive_permission()to add custom permission logic - Extend OWL component
spp_registry_search.search_portalto modify search interface
spp_registry
Table of contents
- Initial migration to OpenSPP2
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
- OpenSPP.org
Current maintainers:
This module is part of the OpenSPP/OpenSPP2 project on GitHub.
You are welcome to contribute.




