{
    "name": "Xenoptics Mobile",
    "version": "19.0.1.18.0",
    "summary": "Mobile-first self-service pages: attendance check-in/out and leave requests",
    "description": """
Mobile-optimized self-service pages for the XENHR -> Odoo migration,
grouped under a dedicated "Odoo Mobile" app so an employee on a phone has
a single, touch-friendly place to do the two things they actually need on
the go, without wading through the full backend UI:

- Mobile Attendance: a live clock, current Present/Not-checked-in status,
  today's check-in/check-out times, this month's Present/Absent/Late
  summary, and one big Check In / Check Out button. Reuses Odoo core's own
  self-service attendance route (/hr_attendance/systray_check_in_out), so
  it inherits the exact same state transitions and GPS geofence
  enforcement (xeno_attendance's xeno.attendance.location) as the systray
  clock widget -- no new attendance logic.
- Mobile Leave Request: pick a leave type, start/end date and reason, submit
  (creates a normal hr.leave for the logged-in employee, which then flows
  through the existing multi-step approval chain untouched), plus a list of
  the employee's own recent requests with live status pills and a Cancel
  action (reuses core's own Cancel Time Off wizard) wherever core's
  can_cancel allows it.
- Mobile Leave Approval: for a supervisor/HOD/HR user, lists exactly the
  leaves awaiting their own approval-chain step (xeno_is_approver_for_me,
  the same field the desktop Leave Approval page's Pending My Approval
  section uses) with inline Approve/Reject and an optional note -- calls
  hr.leave's existing action_approve/action_refuse, no new approval logic.

Both pages are thin OWL front-ends over existing data/routes -- no new
models or approval logic. The layout is sized for a phone screen (single
column, large touch targets, a centered max-width column on wider screens)
and styled after XENHR's own mobile app (navy / accent-blue palette,
rounded white cards).

- Attendance page: "Leave Request"/"Leave Balance"/"Personal Info"/
  "Leave Approval" quick-action tiles (2x2 grid) at the bottom, jumping
  straight to those pages. Each of those pages, in turn, gets a small
  back/home icon in its own header to return to Attendance -- the app's
  de-facto home page.
- Mobile login redirect: a logged-in internal user whose browser
  User-Agent looks like a phone/tablet is sent straight to the Odoo
  Mobile Attendance page instead of the regular desktop home screen (only
  the plain post-login "/odoo" case is touched -- an explicit `redirect`
  param, portal users, and MFA partial-login flows are left untouched).
- Mobile Personal Info: the same self-service surface as the desktop
  Personal Information page (xeno_theme_slate) -- contact/address/
  emergency-contact fields and document upload -- just a phone-sized
  presentation over the identical backend RPCs, no separate logic.
""",
    "author": "Xenoptics",
    "license": "LGPL-3",
    "category": "Human Resources",
    "depends": ["hr_holidays", "hr_attendance", "xeno_attendance", "xeno_leave", "xeno_theme_slate"],
    "data": [
        "views/mobile_menu.xml",
    ],
    "assets": {
        "web.assets_backend": [
            "xeno_mobile/static/src/scss/mobile.scss",
            "xeno_mobile/static/src/js/mobile_attendance.js",
            "xeno_mobile/static/src/xml/mobile_attendance.xml",
            "xeno_mobile/static/src/js/mobile_leave.js",
            "xeno_mobile/static/src/xml/mobile_leave.xml",
            "xeno_mobile/static/src/js/mobile_balance.js",
            "xeno_mobile/static/src/xml/mobile_balance.xml",
            "xeno_mobile/static/src/js/mobile_personal_info.js",
            "xeno_mobile/static/src/xml/mobile_personal_info.xml",
            "xeno_mobile/static/src/js/mobile_leave_approval.js",
            "xeno_mobile/static/src/xml/mobile_leave_approval.xml",
            "xeno_mobile/static/src/js/mobile_team_leaves.js",
            "xeno_mobile/static/src/xml/mobile_team_leaves.xml",
        ],
    },
    "installable": True,
    "application": False,
}
