fusion.clock.schedule.recurrence (repeat every N day/week/month/year; forever/until/N-times) re-fit from planning.recurrency onto per-day rows; daily generation cron; _fclk_on_leave skip; planner Repeat…/Stop-repeat UI + endpoints; recurrence + role indicators on cells. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
28 lines
927 B
Python
28 lines
927 B
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
from odoo import models, fields
|
|
|
|
|
|
class ResCompany(models.Model):
|
|
_inherit = 'res.company'
|
|
|
|
x_fclk_nfc_kiosk_location_id = fields.Many2one(
|
|
'fusion.clock.location',
|
|
string='Kiosk Location',
|
|
domain="[('company_id', '=', id)]",
|
|
help="Clock location bound to the on-site kiosk (NFC and PIN) for this company.",
|
|
)
|
|
fclk_planning_generation_months = fields.Integer(
|
|
string='Schedule Generation Horizon (months)',
|
|
default=6,
|
|
help="How many months ahead recurring shifts are pre-generated.",
|
|
)
|
|
fclk_self_unassign_days_before = fields.Integer(
|
|
string='Self-Unassign Cutoff (days before shift)',
|
|
default=1,
|
|
help="Employees may release an open shift they claimed up to this many "
|
|
"days before it starts.",
|
|
)
|