fix(fusion_clock): Anchor Date is a real date picker (Date field, manual persist)

The Pay Period Anchor Date was a free-text Char. Make it a fields.Date (date
picker) persisted manually in get_values/set_values as 'YYYY-MM-DD' under
fusion_clock.pay_period_start (res.config.settings Date fields don't round-trip
via config_parameter in Odoo 19). Reader code unchanged. Bump 3.15.1 -> 3.15.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-31 11:30:47 -04:00
parent 1a1ab2da4f
commit 31098c4d14
2 changed files with 21 additions and 4 deletions

View File

@@ -5,7 +5,7 @@
{
'name': 'Fusion Clock',
'version': '19.0.3.15.1',
'version': '19.0.3.15.2',
'category': 'Human Resources/Attendances',
'summary': 'Complete Employee T&A with Geofencing, Shifts, Penalties, Overtime, Kiosk, Dashboard & Payroll Export',
'description': """

View File

@@ -199,10 +199,15 @@ class ResConfigSettings(models.TransientModel):
default='biweekly',
help="How often attendance reports are generated.",
)
fclk_pay_period_start = fields.Char(
# NOTE: a real Date field (date picker), but NOT a config_parameter field —
# res.config.settings Date fields don't round-trip via config_parameter in
# Odoo 19, so it is persisted manually in get_values/set_values as a
# 'YYYY-MM-DD' string under fusion_clock.pay_period_start (same pattern as
# fclk_report_recipient_user_ids).
fclk_pay_period_start = fields.Date(
string='Pay Period Anchor Date',
config_parameter='fusion_clock.pay_period_start',
help="Start date for pay period calculations (YYYY-MM-DD format).",
help="The pay-period start date. Reports and the Bi-Weekly Period "
"filter/picker count forward from this anchor.",
)
fclk_auto_generate_reports = fields.Boolean(
string='Auto-Generate Reports',
@@ -293,6 +298,11 @@ class ResConfigSettings(models.TransientModel):
','.join(str(uid) for uid in self.fclk_report_recipient_user_ids.ids))
else:
ICP.set_param('fusion_clock.report_recipient_user_ids', '')
if self.fclk_pay_period_start:
ICP.set_param('fusion_clock.pay_period_start',
fields.Date.to_string(self.fclk_pay_period_start))
else:
ICP.set_param('fusion_clock.pay_period_start', '')
@api.model
def get_values(self):
@@ -308,4 +318,11 @@ class ResConfigSettings(models.TransientModel):
res['fclk_report_recipient_user_ids'] = [(6, 0, user_ids)]
except (ValueError, TypeError):
pass
anchor_str = ICP.get_param('fusion_clock.pay_period_start', '')
if anchor_str:
try:
# Truncate to 'YYYY-MM-DD' to tolerate any legacy datetime-ish value.
res['fclk_pay_period_start'] = fields.Date.to_date(anchor_str[:10])
except (ValueError, TypeError):
pass
return res