19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="hr_attendance_check_out_cron" model="ir.cron">
<field name="name">Attendance: Automatically check-out employees</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model._cron_auto_check_out()</field>
<field name="interval_number">4</field>
<field name="interval_type">hours</field>
</record>
<record id="hr_attendance_absence_cron" model="ir.cron">
<field name="name">Attendance: Detect Absences for employees</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model._cron_absence_detection()</field>
<field name="interval_number">4</field>
<field name="interval_type">hours</field>
</record>
</data>
</odoo>

View file

@ -1,20 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="True">
<data noupdate="1">
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4, ref('hr_attendance.group_hr_attendance_user'))]"/>
<field name="group_ids" eval="[(3, ref('hr_attendance.group_hr_attendance_manager'))]"/>
</record>
<record id="base.default_user_group" model="res.groups">
<field name="implied_ids" eval="[(4, ref('hr_attendance.group_hr_attendance_manager'))]"/>
</record>
<record id="hr.employee_al" model="hr.employee">
<field name="pin">0000</field>
<field name="barcode">123</field>
</record>
<record id="hr.employee_admin" model="hr.employee">
<field name="pin">0000</field>
<field name="barcode">456</field>
</record>
<record id="hr.employee_hne" model="hr.employee">
<field name="attendance_manager_id" ref="base.user_demo"/>
</record>
<record id="hr.employee_mit" model="hr.employee">
<field name="attendance_manager_id" ref="base.user_demo"/>
</record>
<record id="hr.employee_chs" model="hr.employee">
<field name="attendance_manager_id" ref="base.user_demo"/>
</record>
<record id="hr.employee_fme" model="hr.employee">
<field name="attendance_manager_id" ref="base.user_demo"/>
</record>
<record id="attendance_root1" model="hr.attendance">
<field eval="(datetime.now()+relativedelta(months=-1, days=-1)).strftime('%Y-%m-%d 08:00:24')" name="check_in"/>
<field eval="(datetime.now()+relativedelta(months=-1, days=-1)).strftime('%Y-%m-%d 12:01:33')" name="check_out"/>
@ -86,5 +104,45 @@
<field eval="(datetime.now()+relativedelta(months=-1)).strftime('%Y-%m-10 17:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_qdp"/>
</record>
<record id="attendance11" model="hr.attendance">
<field eval="(datetime.now()+timedelta(hours=-4)).strftime('%Y-%m-%d %H:%M:00')" name="check_in"/>
<field eval="(datetime.now()+timedelta(minutes=-30)).strftime('%Y-%m-%d %H:%M:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_hne"/>
<field name="overtime_status">to_approve</field>
</record>
<record id="attendance12" model="hr.attendance">
<field eval="(datetime.now()+timedelta(hours=-31)).strftime('%Y-%m-%d %H:%M:00')" name="check_in"/>
<field eval="(datetime.now()+timedelta(hours=-7)).strftime('%Y-%m-%d %H:%M:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_mit"/>
<field name="overtime_status">refused</field>
</record>
<record id="attendance12_message1" model="mail.message">
<field name="model">hr.attendance</field>
<field name="res_id" ref="attendance12"/>
<field name="body">She didn't check-out.
</field>
<field name="message_type">comment</field>
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="author_id" ref="base.partner_demo"/>
</record>
<record id="attendance13" model="hr.attendance">
<field eval="(datetime.now()+timedelta(hours=-7)).strftime('%Y-%m-%d %H:%M:10')" name="check_in"/>
<field eval="(datetime.now()+timedelta(hours=-2)).strftime('%Y-%m-%d %H:%M:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_mit"/>
<field name="overtime_status">approved</field>
</record>
<record id="attendance14" model="hr.attendance">
<field eval="(datetime.now()+timedelta(hours=-15)).strftime('%Y-%m-%d %H:%M:00')" name="check_in"/>
<field eval="(datetime.now()+timedelta(hours=-3)).strftime('%Y-%m-%d %H:%M:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_chs"/>
</record>
<record id="attendance14" model="hr.attendance">
<field name="validated_overtime_hours">2</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="hr_attendance_overtime_employee_schedule_rule" model="hr.attendance.overtime.rule" forcecreate="0">
<field name="name">Employee Schedule Rule</field>
<field name="base_off">quantity</field>
<field name="timing_type">schedule</field>
<field name="expected_hours_from_contract" eval="True"/>
<field name="paid" eval="True"/>
<field name="ruleset_id" ref="hr_attendance_default_ruleset"/>
</record>
<record id="hr_attendance_overtime_non_working_days_rule" model="hr.attendance.overtime.rule" forcecreate="0">
<field name="name">Non Working Days Rule</field>
<field name="base_off">timing</field>
<field name="timing_type">non_work_days</field>
<field name="paid" eval="True"/>
<field name="timing_start" eval="0.0"/>
<field name="timing_stop" eval="24.0"/>
<field name="ruleset_id" ref="hr_attendance_default_ruleset"/>
</record>
</data>
</odoo>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="hr_attendance_default_ruleset" model="hr.attendance.overtime.ruleset">
<field name="name">Default Ruleset</field>
<field name="country_id" eval="False"/>
<field name="company_id" eval="False"/>
<field name="rate_combination_mode">max</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Calendar -->
<record id="resource_calendar_std_38h" model="resource.calendar" forcecreate="1">
<field name="name">Standard 32 hours/week (4 work days, friday free)</field>
<field name="company_id" eval="False"/>
<field name="hours_per_day">8</field>
<field name="attendance_ids"
eval="[(5, 0, 0),
(0, 0, {'name': 'Monday Morning', 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Monday Lunch', 'dayofweek': '0', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Monday Afternoon', 'dayofweek': '0', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Tuesday Morning', 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Tuesday Lunch', 'dayofweek': '1', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Tuesday Afternoon', 'dayofweek': '1', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Wednesday Morning', 'dayofweek': '2', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Wednesday Lunch', 'dayofweek': '2', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Wednesday Afternoon', 'dayofweek': '2', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Thursday Morning', 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Thursday Lunch', 'dayofweek': '3', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Thursday Afternoon', 'dayofweek': '3', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
]"
/>
</record>
<!-- Employee -->
<record id="hr.employee_mw" model="hr.employee" forcecreate="1">
<field name="barcode">123</field>
</record>
<record id="hr.employee_eg" model="hr.employee" forcecreate="1">
<field name="resource_calendar_id" ref="resource_calendar_std_38h"/>
<field name="barcode">456</field>
</record>
<record id="hr.employee_sj" model="hr.employee" forcecreate="1">
<field name="pin">789</field>
</record>
</data>
</odoo>