Files
Odoo-Modules/fusion_clock/__manifest__.py
gsinghpal c2646f59c4 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'.
2026-05-15 18:55:42 -04:00

106 lines
4.4 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2026 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
# Part of the Fusion Clock product family.
{
'name': 'Fusion Clock',
'version': '19.0.3.1.0',
'category': 'Human Resources/Attendances',
'summary': 'Complete Employee T&A with Geofencing, Shifts, Penalties, Overtime, Kiosk, Dashboard & Payroll Export',
'description': """
Fusion Clock - Complete Employee Time & Attendance
====================================================
A modern, mobile-first attendance module that provides:
* **Geofenced Clock-In/Out** - GPS and IP whitelist verification
* **Shift Scheduling** - Per-employee shift assignment with break management
* **Auto Clock-Out** - Automatic clock-out after shift + grace period
* **Penalty Tracking** - Auto-deduction for late clock-in and early clock-out
* **Overtime Tracking** - Daily and weekly overtime with configurable thresholds
* **Activity Logging** - Comprehensive audit trail of every attendance event
* **Absence Tracking** - Automatic detection with monthly/yearly counters
* **Leave Requests** - Portal-based leave requests with auto-approval
* **Timesheet Corrections** - Employee correction requests with approval workflow
* **Manager Dashboard** - Live status, alerts, and team overview
* **Kiosk Mode** - Shared-device clock-in/out with PIN verification
* **Photo Verification** - Optional selfie capture at clock-in
* **On-Time Streak** - Gamification with milestone tracking
* **CSV Export** - Configurable payroll-compatible export
* **Team Lead Views** - Filtered read-only access for direct reports
* **Pay Period Reports** - PDF reports with email automation
* **Employee Notifications** - Clock-in/out reminders and weekly summaries
* **Portal UI** - Dark-themed mobile-first portal with FAB and modals
* **Systray Widget** - Backend users can clock in/out from any Odoo page
Integrates natively with Odoo's hr.attendance module for full payroll compatibility.
""",
'author': 'Nexa Systems Inc.',
'website': 'https://nexasystems.io',
'license': 'OPL-1',
'depends': [
'hr_attendance',
'hr',
'portal',
'mail',
'resource',
],
'data': [
# Security
'security/security.xml',
'security/ir.model.access.csv',
# Data
'data/ir_config_parameter_data.xml',
'data/ir_cron_data.xml',
# Reports (must load before mail templates that reference them)
'report/clock_report_template.xml',
'report/clock_employee_report.xml',
# Mail templates
'data/mail_template_data.xml',
# Views - Backend
'views/clock_location_views.xml',
'views/hr_attendance_views.xml',
'views/clock_report_views.xml',
'views/clock_penalty_views.xml',
'views/res_config_settings_views.xml',
'views/clock_activity_log_views.xml',
'views/clock_leave_request_views.xml',
'views/clock_shift_views.xml',
'views/clock_correction_views.xml',
'views/clock_dashboard_views.xml',
'views/hr_employee_views.xml',
'views/clock_menus.xml',
# Views - Portal
'views/portal_clock_templates.xml',
'views/portal_timesheet_templates.xml',
'views/portal_report_templates.xml',
'views/kiosk_templates.xml',
'views/kiosk_nfc_templates.xml',
# Wizards
'wizard/clock_nfc_enrollment_views.xml',
],
'assets': {
'web.assets_frontend': [
'fusion_clock/static/src/css/portal_clock.css',
'fusion_clock/static/src/scss/nfc_kiosk.scss',
'fusion_clock/static/src/js/fusion_clock_portal.js',
'fusion_clock/static/src/js/fusion_clock_kiosk.js',
'fusion_clock/static/src/js/fusion_clock_nfc_kiosk.js',
],
'web.assets_backend': [
'fusion_clock/static/src/scss/fusion_clock.scss',
'fusion_clock/static/src/js/fusion_clock_systray.js',
'fusion_clock/static/src/xml/systray_clock.xml',
'fusion_clock/static/src/js/fusion_clock_dashboard.js',
'fusion_clock/static/src/xml/fusion_clock_dashboard.xml',
'fusion_clock/static/src/js/fusion_clock_location_map.js',
'fusion_clock/static/src/js/fusion_clock_location_places.js',
'fusion_clock/static/src/xml/fusion_clock_location.xml',
],
},
'installable': True,
'auto_install': False,
'application': True,
}