258 lines
15 KiB
XML
258 lines
15 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<record id="res_config_settings_view_form_fusion_clock" model="ir.ui.view">
|
|
<field name="name">res.config.settings.view.form.fusion.clock</field>
|
|
<field name="model">res.config.settings</field>
|
|
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
|
|
<field name="priority">95</field>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//form" position="inside">
|
|
<app data-string="Fusion Clock" string="Fusion Clock" name="fusion_clock" groups="fusion_clock.group_fusion_clock_manager">
|
|
|
|
<!-- Work Schedule -->
|
|
<block title="Work Schedule" name="fclk_work_schedule">
|
|
<setting string="Default Clock-In Time" help="The scheduled start time for employees (used when no shift is assigned).">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_default_clock_in_time" class="col-lg-3"/>
|
|
<field name="fclk_default_clock_in_time" widget="float_time"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
<setting string="Default Clock-Out Time" help="The scheduled end time for employees.">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_default_clock_out_time" class="col-lg-3"/>
|
|
<field name="fclk_default_clock_out_time" widget="float_time"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Break Settings -->
|
|
<block title="Break Settings" name="fclk_break_settings">
|
|
<setting string="Auto-Deduct Break" help="Automatically deduct unpaid break from worked hours.">
|
|
<field name="fclk_auto_deduct_break"/>
|
|
<div class="content-group" invisible="not fclk_auto_deduct_break">
|
|
<div class="row mt16">
|
|
<label for="fclk_default_break_minutes" class="col-lg-3"/>
|
|
<field name="fclk_default_break_minutes"/>
|
|
<span class="ms-1">minutes</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_break_threshold_hours" class="col-lg-3"/>
|
|
<field name="fclk_break_threshold_hours" widget="float_time"/>
|
|
<span class="ms-1">(only deduct if shift exceeds this)</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Auto Clock-Out & Grace Period -->
|
|
<block title="Auto Clock-Out" name="fclk_auto_clockout">
|
|
<setting string="Enable Auto Clock-Out" help="Automatically clock out employees after shift + grace period.">
|
|
<field name="fclk_enable_auto_clockout"/>
|
|
<div class="content-group" invisible="not fclk_enable_auto_clockout">
|
|
<div class="row mt16">
|
|
<label for="fclk_grace_period_minutes" class="col-lg-3"/>
|
|
<field name="fclk_grace_period_minutes"/>
|
|
<span class="ms-1">minutes grace after scheduled end</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_max_shift_hours" class="col-lg-3"/>
|
|
<field name="fclk_max_shift_hours" widget="float_time"/>
|
|
<span class="ms-1">max shift safety net</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Penalties -->
|
|
<block title="Penalty Tracking" name="fclk_penalties">
|
|
<setting string="Enable Penalties" help="Track late clock-in and early clock-out with automatic deductions.">
|
|
<field name="fclk_enable_penalties"/>
|
|
<div class="content-group" invisible="not fclk_enable_penalties">
|
|
<div class="row mt16">
|
|
<label for="fclk_penalty_grace_minutes" class="col-lg-3"/>
|
|
<field name="fclk_penalty_grace_minutes"/>
|
|
<span class="ms-1">minutes grace before penalty</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_penalty_deduction_minutes" class="col-lg-3"/>
|
|
<field name="fclk_penalty_deduction_minutes"/>
|
|
<span class="ms-1">minutes deducted per penalty</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Office User & Notifications -->
|
|
<block title="Office User & Notifications" name="fclk_notifications">
|
|
<setting string="Office User" help="User who receives all attendance-related activity notifications.">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_office_user_id" class="col-lg-3"/>
|
|
<field name="fclk_office_user_id"/>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_very_late_threshold_minutes" class="col-lg-3"/>
|
|
<field name="fclk_very_late_threshold_minutes"/>
|
|
<span class="ms-1">minutes late before office user is notified</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_max_monthly_absences" class="col-lg-3"/>
|
|
<field name="fclk_max_monthly_absences"/>
|
|
<span class="ms-1">absences before office user is alerted</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
<setting string="Employee Notifications" help="Send clock-in/out reminders to employees.">
|
|
<field name="fclk_enable_employee_notifications"/>
|
|
<div class="content-group" invisible="not fclk_enable_employee_notifications">
|
|
<div class="row mt16">
|
|
<label for="fclk_reminder_before_shift_minutes" class="col-lg-3"/>
|
|
<field name="fclk_reminder_before_shift_minutes"/>
|
|
<span class="ms-1">minutes after shift start to remind</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_reminder_before_end_minutes" class="col-lg-3"/>
|
|
<field name="fclk_reminder_before_end_minutes"/>
|
|
<span class="ms-1">minutes before shift end to remind</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
<setting string="Weekly Summary" help="Send weekly attendance summary to employees on Monday.">
|
|
<field name="fclk_send_weekly_summary"/>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Overtime -->
|
|
<block title="Overtime" name="fclk_overtime">
|
|
<setting string="Enable Overtime Tracking" help="Track hours beyond scheduled shift.">
|
|
<field name="fclk_enable_overtime"/>
|
|
<div class="content-group" invisible="not fclk_enable_overtime">
|
|
<div class="row mt16">
|
|
<label for="fclk_daily_overtime_threshold" class="col-lg-3"/>
|
|
<field name="fclk_daily_overtime_threshold" widget="float_time"/>
|
|
<span class="ms-1">daily net hours threshold</span>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_weekly_overtime_threshold" class="col-lg-3"/>
|
|
<field name="fclk_weekly_overtime_threshold" widget="float_time"/>
|
|
<span class="ms-1">weekly net hours threshold</span>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Location & Verification -->
|
|
<block title="Location & Verification" name="fclk_location_verification">
|
|
<setting string="IP Fallback" help="Allow IP-based verification when GPS is unavailable.">
|
|
<field name="fclk_enable_ip_fallback"/>
|
|
</setting>
|
|
<setting string="Photo Verification" help="Require selfie on clock-in (controlled per location).">
|
|
<field name="fclk_enable_photo_verification"/>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Kiosk -->
|
|
<block title="Kiosk Mode" name="fclk_kiosk">
|
|
<setting string="Enable Kiosk" help="Allow shared-device clock-in/out.">
|
|
<field name="fclk_enable_kiosk"/>
|
|
<div class="content-group" invisible="not fclk_enable_kiosk">
|
|
<div class="row mt16">
|
|
<field name="fclk_kiosk_pin_required"/>
|
|
<label for="fclk_kiosk_pin_required" class="ms-1"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Corrections -->
|
|
<block title="Corrections" name="fclk_corrections">
|
|
<setting string="Enable Correction Requests" help="Allow employees to request timesheet corrections.">
|
|
<field name="fclk_enable_correction_requests"/>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Pay Period -->
|
|
<block title="Pay Period" name="fclk_pay_period">
|
|
<setting string="Pay Period Schedule" help="Defines how often reports are generated.">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_pay_period_type" class="col-lg-3"/>
|
|
<field name="fclk_pay_period_type"/>
|
|
</div>
|
|
<div class="row mt8">
|
|
<label for="fclk_pay_period_start" class="col-lg-3"/>
|
|
<field name="fclk_pay_period_start"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Reports -->
|
|
<block title="Reports & Email" name="fclk_reports">
|
|
<setting string="Auto-Generate Reports" help="Automatically generate reports at the end of each pay period.">
|
|
<field name="fclk_auto_generate_reports"/>
|
|
</setting>
|
|
<setting string="Send Employee Copies" help="Email individual reports to each employee.">
|
|
<field name="fclk_send_employee_reports"/>
|
|
</setting>
|
|
<setting string="Manager Report Recipients" help="Comma-separated emails for batch report delivery.">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_report_recipient_emails" class="col-lg-3"/>
|
|
<field name="fclk_report_recipient_emails" class="o_input" placeholder="manager@company.com"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
<setting string="CSV Column Mapping" help="Custom column names for CSV export (JSON format).">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_csv_column_mapping" class="col-lg-3"/>
|
|
<field name="fclk_csv_column_mapping" class="o_input"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Clock Locations -->
|
|
<block title="Clock Locations" name="fclk_locations">
|
|
<setting string="Manage Locations" help="Configure geofenced clock-in/out locations.">
|
|
<div class="content-group">
|
|
<div class="mt16">
|
|
<button name="%(fusion_clock.action_fusion_clock_location)d" type="action"
|
|
string="Manage Locations" class="btn btn-primary" icon="fa-map-marker"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Google Maps -->
|
|
<block title="Google Maps" name="fclk_google_maps">
|
|
<setting string="Google Maps API Key" help="Required for location geocoding and map previews.">
|
|
<div class="content-group">
|
|
<div class="row mt16">
|
|
<label for="fclk_google_maps_api_key" class="col-lg-3"/>
|
|
<field name="fclk_google_maps_api_key" class="o_input" placeholder="AIza..." password="True"/>
|
|
</div>
|
|
</div>
|
|
</setting>
|
|
</block>
|
|
|
|
<!-- Sounds -->
|
|
<block title="Sounds" name="fclk_sounds">
|
|
<setting string="Clock Sounds" help="Play audio feedback on clock-in and clock-out.">
|
|
<field name="fclk_enable_sounds"/>
|
|
</setting>
|
|
</block>
|
|
|
|
</app>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|