Files
OSIT-AE-App-Svelte/documentation/MODULE__AE_Events_Badges.md
Scott Idem 3ae5b30c37 docs(badges): update badges and badge template documentation
MODULE__AE_Events_Badges: update Search & Filter section — visibility
select (3 options, manager-gated), result limit stepper table, badge
type filter hardcoding noted as known gap.

MODULE__AE_Events_Badge_Templates: add full cfg_json reference section
covering all keys (visibility, QR, alignment, header image, appearance,
fit_heights, controls_cfg). Update TODO — duplex/form/header cfg done;
badge_type_list→search wired as open item.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 19:46:59 -04:00

5.6 KiB
Raw Blame History

Aether Events — Badges

The Badges module manages event attendee records and their physical badge configurations. It supports multi-source imports, field protection for onsite edits, and multi-tier access control for self-service review.


Data Model & Hierarchy

Core Objects

  • Event Badge (event_badge): The attendee record containing name, title, affiliations, and tracking flags.
  • Badge Template (event_badge_template): The visual and structural configuration for printing (branding, layout, QR placement).

Relationships

  • Badge → Event: Many-to-one.
  • Badge → Template: Many-to-one (via event_badge_template_id).
  • Badge → Person: Optional link to core Aether Person record for unified profiles.

Critical Design Pattern: Override Fields

Purpose

The *_override fields pattern (established in 2018) protects data from being overwritten during scheduled cron syncs from external systems (iMIS, Novi, etc.). This ensures that staff corrections or attendee self-updates persist across multiple sync cycles.

How It Works

  1. Import: External systems populate REGULAR fields only.
  2. Display Logic: The UI displays the *_override field if it has a value; otherwise, it falls back to the regular field.
  3. HTML Rendering: Certain display fields (Name, Title, Affiliations, Location) support HTML markup for rich text formatting (bold, italics, line breaks) on the physical badge.

Standard Override Pairs

Regular Field Override Field Editable By HTML?
full_name full_name_override Staff, Attendee
professional_title professional_title_override Staff, Attendee
affiliations affiliations_override Staff, Attendee
location location_override Staff, Attendee
email email_override Staff Only No
badge_type badge_type_override Staff Only No

External System Integration

Aether acts as a Pull-Only consumer for registration data. It does not push changes back to external systems, maintaining them as the source of truth for base registration while Aether handles the "Onsite Truth."

Supported Sources

  • iMIS, Novi AMS, Impexium (Associations)
  • Zoom, Cvent (Registrations)
  • Confex (Abstracts/Presenters)
  • Custom CSV/Excel

Access Control & Permissions

Level Access
Authenticated View own badge, limited self-edit (overrides only).
Trusted Search all badges, view all, reprint existing badges.
Administrator Full CRUD, bulk operations, override any field.
Manager All Admin + Event/Template configuration.

Attendee Self-Service (/review)

Attendees can access their own record via a passcode-gated link (typically ?passcode=...). This allows them to verify their info and provide preferred name/title overrides before printing.


Search & Filter Capabilities

  • Fulltext Search: Matches against a consolidated default_qry_str (Name, email, IDs).
  • Multi-Word Logic: Queries like "Scott Idem" are split and treated as LIKE %Scott% AND LIKE %Idem%.
  • QR Scan Search: Scanning an attendee's QR code (from a confirmation email or old badge) immediately jumps to their record.
  • Advanced Filters (Trusted + Edit Mode): Badge Type, Printed Status, Affiliations, Sort Order.

Visibility Filter (Trusted + Edit Mode)

Three-option select controlling which records are shown:

Option Who can set it Effect
Default Any Hides hidden and disabled badges
Show Hidden Trusted Shows hidden badges alongside normal ones
Show Disabled + Hidden Manager only Shows all records regardless of enable/hide flags

Result Limit Stepper (Edit Mode)

Controls the maximum number of results returned. Only visible in edit mode.

Access Level Range Step
Below Trusted Fixed 25
Trusted 25 250 25
Manager+ 25 2550 25 up to 250, then 100

Badge Type Filter — Known Limitation

The badge type dropdown in the search form uses a hardcoded list, not the template's badge_type_list. This means the codes shown in the filter may not match the codes used by the current event's template. This is a known gap — the fix requires passing the template object into the search component. Until resolved, staff can still search by name/email and filter results manually.


Print Tracking

Aether tracks the lifecycle of every physical badge to prevent unauthorized reprints and monitor kiosk activity.

Field Purpose
print_count Increments on every "Print Badge" action.
print_first_datetime Timestamp of the very first print.
print_last_datetime Timestamp of the most recent print.

Operational Note: Reprints triggered via the Edit Mode shortcut do not increment the count; only the formal "Print Badge" workflow does.


Route Map (Badges)

URL Purpose
/events/[id]/badges Main search and attendee list.
/events/[id]/badges/templates Badge template management.
/events/[id]/badges/[id]/print The actual print-ready render page.
/events/[id]/badges/[id]/review Attendee-facing self-service form.

👉 MODULE__AE_Events_Badge_Templates.md (Technical reference for layouts) 👉 GUIDE__AE_Events_Badges_Onsite.md (Hardware & station setup) 👉 GUIDE__AE_Events_Onsite_Runbook.md (Onsite operational checklists)