feat(fusion_clock): NFC card enrollment wizard + employee form field

Adds a tap-driven enrollment workflow so managers can pair NFC/RFID
cards to employees using a USB HID reader at their desk:

- New wizard model fusion.clock.nfc.enrollment.wizard with auto-focused
  Card UID field, employee picker, and reassignment warning if the
  card is already held by someone else.
- Two actions: 'Enroll Card' (single) and 'Enroll & Next' (bulk).
- Menu entry under Fusion Clock root, manager-gated.
- Exposes x_fclk_nfc_card_uid on the Employee form Clock Settings
  section (next to Kiosk PIN) so it can be inspected/edited directly.
- Bumps manifest to 19.0.3.1.0 for asset cache bust.

Wizard reuses FusionClockNfcKiosk._normalize_uid so stored format
matches what the kiosk /tap endpoint looks up later. Reassignment
clears the UID from the previous holder and logs both events to the
activity log under 'card_enrollment'.
This commit is contained in:
gsinghpal
2026-05-15 18:55:42 -04:00
parent 152ed86c3a
commit c2646f59c4
7 changed files with 237 additions and 1 deletions

View File

@@ -97,6 +97,14 @@
sequence="50"
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
<!-- NFC Card Enrollment Wizard -->
<menuitem id="menu_fusion_clock_nfc_enrollment"
name="Enroll NFC Card"
parent="menu_fusion_clock_root"
action="action_fusion_clock_nfc_enrollment_wizard"
sequence="55"
groups="group_fusion_clock_manager"/>
<!-- Configuration Sub-Menu -->
<menuitem id="menu_fusion_clock_config"
name="Configuration"

View File

@@ -20,6 +20,9 @@
<field name="x_fclk_break_minutes"/>
<field name="x_fclk_kiosk_pin" password="True"
groups="fusion_clock.group_fusion_clock_manager"/>
<field name="x_fclk_nfc_card_uid"
placeholder="Tap card on USB reader, or paste UID"
groups="fusion_clock.group_fusion_clock_manager"/>
</group>
<group string="Status">
<field name="x_fclk_ontime_streak"/>