-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MIG] shift_attendance: migration to 16.0
- Loading branch information
Showing
18 changed files
with
746 additions
and
492 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../../shift_attendance |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import setuptools | ||
|
||
setuptools.setup( | ||
setup_requires=['setuptools-odoo'], | ||
odoo_addon=True, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,31 @@ | ||
<odoo> | ||
<data noupdate="1"> | ||
<record id="ir_cron_generate_attendance_sheet" model="ir.cron"> | ||
<field name="name">Generate Attendance Sheets</field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="state">code</field> | ||
<field name="code">model._generate_attendance_sheet()</field> | ||
<field name="user_id" ref="base.user_root" /> | ||
<field name="interval_number">4</field> | ||
<field name="interval_type">minutes</field> | ||
<field name="numbercall">-1</field> | ||
<field name="doall" eval="False" /> | ||
<field name="active" eval="False" /> | ||
</record> | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo noupdate="1"> | ||
<record id="ir_cron_generate_attendance_sheet" model="ir.cron"> | ||
<field name="name">Generate Attendance Sheets</field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="state">code</field> | ||
<field name="code">model._generate_attendance_sheet()</field> | ||
<field name="user_id" ref="base.user_root" /> | ||
<field name="interval_number">4</field> | ||
<field name="interval_type">minutes</field> | ||
<field name="numbercall">-1</field> | ||
<field name="doall" eval="False" /> | ||
<field name="active" eval="False" /> | ||
</record> | ||
|
||
<record id="ir_cron_check_non_validated_sheet" model="ir.cron"> | ||
<field name="name">Check for non-validated sheets</field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="state">code</field> | ||
<field name="code">model._cron_non_validated_sheets()</field> | ||
<field name="interval_number">1</field> | ||
<field name="interval_type">days</field> | ||
<field name="numbercall">-1</field> | ||
<field name="doall" eval="False" /> | ||
<field | ||
name="nextcall" | ||
eval="datetime.now().replace(hour=00, minute=00, second=10)" | ||
/> | ||
<field name="active" eval="False" /> | ||
</record> | ||
</data> | ||
<record id="ir_cron_check_non_validated_sheet" model="ir.cron"> | ||
<field name="name">Check for non-validated sheets</field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="state">code</field> | ||
<field name="code">model._cron_non_validated_sheets()</field> | ||
<field name="interval_number">1</field> | ||
<field name="interval_type">days</field> | ||
<field name="numbercall">-1</field> | ||
<field name="doall" eval="False" /> | ||
<field | ||
name="nextcall" | ||
eval="datetime.now().replace(hour=00, minute=00, second=10)" | ||
/> | ||
<field name="active" eval="False" /> | ||
</record> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,126 +1,124 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<odoo noupdate="1"> | ||
<!-- Mail template are declared in a NOUPDATE block | ||
so users can freely customize/delete them --> | ||
<data noupdate="1"> | ||
<record id="email_template_non_attendance" model="mail.template"> | ||
<field name="name">Shift Non-attendance</field> | ||
<field name="subject">Non-attendance to your last shift.</field> | ||
<field | ||
name="partner_to" | ||
>${object.replaced_id.id or object.worker_id.id|safe}</field> | ||
<field name="model_id" ref="shift.model_shift_shift" /> | ||
<field name="auto_delete" eval="True" /> | ||
<field name="lang">${object.worker_id.lang}</field> | ||
<field | ||
name="body_html" | ||
><![CDATA[ | ||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> | ||
<record id="email_template_non_attendance" model="mail.template"> | ||
<field name="name">Shift Non-attendance</field> | ||
<field name="subject">Non-attendance to your last shift.</field> | ||
<field | ||
name="partner_to" | ||
>${object.replaced_id.id or object.worker_id.id|safe}</field> | ||
<field name="model_id" ref="shift.model_shift_shift" /> | ||
<field name="auto_delete" eval="True" /> | ||
<field name="lang">${object.worker_id.lang}</field> | ||
<field | ||
name="body_html" | ||
><![CDATA[ | ||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> | ||
% if object.replaced_id: | ||
<p>Hello ${object.replaced_id.name}, | ||
% if object.replaced_id: | ||
<p>Hello ${object.replaced_id.name}, | ||
<br><br>You have been recorded as non-attended during your last shift (${format_tz(object.start_time,object.replaced_id.tz or 'Europe/Brussels','%d.%m.%Y - %H:%M')}), | ||
and you were supposed to replace ${object.worker_id.name}. | ||
% endif | ||
<br><br>You have been recorded as non-attended during your last shift (${format_tz(object.start_time,object.replaced_id.tz or 'Europe/Brussels','%d.%m.%Y - %H:%M')}), | ||
and you were supposed to replace ${object.worker_id.name}. | ||
% endif | ||
% if not object.replaced_id: | ||
</p><p>Hello ${object.worker_id.name},</p> | ||
% if not object.replaced_id: | ||
</p><p>Hello ${object.worker_id.name},</p> | ||
<p>You have been recorded as non-attended during your last shift (${format_tz(object.start_time,object.worker_id.tz or 'Europe/Brussels','%d.%m.%Y - %H:%M')}). | ||
% endif | ||
<p>You have been recorded as non-attended during your last shift (${format_tz(object.start_time,object.worker_id.tz or 'Europe/Brussels','%d.%m.%Y - %H:%M')}). | ||
% endif | ||
% if object.worker_id.working_mode == 'regular': | ||
% if object.state == 'absent_0': | ||
<br><br>Super-cooperator assigned you 0 compensation, so you won't have any additionnal shift to do before your next regular shift. | ||
% endif | ||
% if object.state == 'absent_1': | ||
<br><br>Super-cooperator assigned you 1 compensation, so you have to attend one additionnal shift before your next regular shift. | ||
% endif | ||
% if object.state == 'absent_2': | ||
<br><br>Super-cooperator assigned you 2 compensations, so you have to attend two additionnal shifts before your next regular shift. | ||
% endif | ||
% if object.worker_id.working_mode == 'regular': | ||
% if object.state == 'absent_0': | ||
<br><br>Super-cooperator assigned you 0 compensation, so you won't have any additionnal shift to do before your next regular shift. | ||
% endif | ||
% if object.state == 'absent_1': | ||
<br><br>Super-cooperator assigned you 1 compensation, so you have to attend one additionnal shift before your next regular shift. | ||
% endif | ||
% if object.state == 'absent_2': | ||
<br><br>Super-cooperator assigned you 2 compensations, so you have to attend two additionnal shifts before your next regular shift. | ||
% endif | ||
% if object.replaced_id: | ||
You were supposed to replace ${object.worker_id.name}. | ||
You have to do ${(object.replaced_id.cooperative_status_ids.sr + object.replaced_id.cooperative_status_ids.sc) * -1 } shifts before your next regular shift.<br> | ||
% else: | ||
You have to do ${(object.worker_id.cooperative_status_ids.sr + object.worker_id.cooperative_status_ids.sc) * -1 } shifts before your next regular shift.<br> | ||
% endif | ||
% if object.replaced_id: | ||
You were supposed to replace ${object.worker_id.name}. | ||
You have to do ${(object.replaced_id.cooperative_status_ids.sr + object.replaced_id.cooperative_status_ids.sc) * -1 } shifts before your next regular shift.<br> | ||
% else: | ||
You have to do ${(object.worker_id.cooperative_status_ids.sr + object.worker_id.cooperative_status_ids.sc) * -1 } shifts before your next regular shift.<br> | ||
% endif | ||
% endif | ||
% if object.worker_id.working_mode == 'irregular': | ||
Your shift counter is at ${object.worker_id.cooperative_status_ids.sr}. | ||
% if object.worker_id.working_mode == 'irregular': | ||
Your shift counter is at ${object.worker_id.cooperative_status_ids.sr}. | ||
% if object.worker_id.cooperative_status_ids.future_alert_date: | ||
It should be superior or equal to 1 before the | ||
${object.worker_id.cooperative_status_ids.future_alert_date}. | ||
% endif | ||
<br> | ||
% endif | ||
% if object.worker_id.cooperative_status_ids.future_alert_date: | ||
It should be superior or equal to 1 before the | ||
${object.worker_id.cooperative_status_ids.future_alert_date}. | ||
% endif | ||
<br> | ||
% endif | ||
% if object.replaced_id: | ||
Your current status is "${object.replaced_id.cooperative_status_ids.get_status_value()}". | ||
% else: | ||
<br><br>Your current status is "${object.worker_id.cooperative_status_ids.get_status_value()}". | ||
% endif | ||
% if object.replaced_id: | ||
Your current status is "${object.replaced_id.cooperative_status_ids.get_status_value()}". | ||
% else: | ||
<br><br>Your current status is "${object.worker_id.cooperative_status_ids.get_status_value()}". | ||
% endif | ||
<br>If you have any question regarding this non-attendance, just answer this e-mail. | ||
</p> | ||
<br> | ||
<p>Cooperatively yours,<br> | ||
The Members' office volunteers</p> | ||
<p>${object.worker_id.company_id.name}.</p> | ||
<br>If you have any question regarding this non-attendance, just answer this e-mail. | ||
</p> | ||
<br> | ||
<p>Cooperatively yours,<br> | ||
The Members' office volunteers</p> | ||
<p>${object.worker_id.company_id.name}.</p> | ||
% if object.worker_id.company_id.street: | ||
${object.worker_id.company_id.street} | ||
% endif | ||
% if object.worker_id.company_id.street2: | ||
${object.worker_id.company_id.street2}<br> | ||
% endif | ||
% if object.worker_id.company_id.city or object.worker_id.company_id.zip: | ||
${object.worker_id.company_id.zip} ${object.worker_id.company_id.city}<br> | ||
% endif | ||
% if object.worker_id.company_id.country_id: | ||
${object.worker_id.company_id.state_id and ('%s, ' % object.worker_id.company_id.state_id.name) or ''} ${object.worker_id.company_id.country_id.name or ''}<br> | ||
% endif | ||
% if object.worker_id.company_id.phone: | ||
Phone: ${object.worker_id.company_id.phone} | ||
% endif | ||
% if object.worker_id.company_id.street: | ||
${object.worker_id.company_id.street} | ||
% endif | ||
% if object.worker_id.company_id.street2: | ||
${object.worker_id.company_id.street2}<br> | ||
% endif | ||
% if object.worker_id.company_id.city or object.worker_id.company_id.zip: | ||
${object.worker_id.company_id.zip} ${object.worker_id.company_id.city}<br> | ||
% endif | ||
% if object.worker_id.company_id.country_id: | ||
${object.worker_id.company_id.state_id and ('%s, ' % object.worker_id.company_id.state_id.name) or ''} ${object.worker_id.company_id.country_id.name or ''}<br> | ||
% endif | ||
% if object.worker_id.company_id.phone: | ||
Phone: ${object.worker_id.company_id.phone} | ||
% endif | ||
% if object.worker_id.company_id.website: | ||
<div> | ||
Web : <a href="${object.worker_id.company_id.website}">${object.worker_id.company_id.website}</a> | ||
</div> | ||
%endif | ||
% if object.worker_id.company_id.logo_url: | ||
% if object.worker_id.company_id.website: | ||
<div> | ||
<img src="${object.worker_id.company_id.logo_url}"> | ||
Web : <a href="${object.worker_id.company_id.website}">${object.worker_id.company_id.website}</a> | ||
</div> | ||
%endif | ||
%endif | ||
% if object.worker_id.company_id.logo_url: | ||
<div> | ||
<img src="${object.worker_id.company_id.logo_url}"> | ||
</div> | ||
]]></field> | ||
</record> | ||
%endif | ||
</div> | ||
]]></field> | ||
</record> | ||
|
||
<record id="email_template_non_validated_sheet" model="mail.template"> | ||
<field name="name">Non-validated sheet</field> | ||
<field | ||
name="subject" | ||
>[${object.day}] Non-validated sheet ${object.time_slot} </field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="auto_delete" eval="True" /> | ||
<field | ||
name="body_html" | ||
><![CDATA[ | ||
<record id="email_template_non_validated_sheet" model="mail.template"> | ||
<field name="name">Non-validated sheet</field> | ||
<field | ||
name="subject" | ||
>[${object.day}] Non-validated sheet ${object.time_slot} </field> | ||
<field name="model_id" ref="model_shift_sheet" /> | ||
<field name="auto_delete" eval="True" /> | ||
<field | ||
name="body_html" | ||
><![CDATA[ | ||
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> | ||
<p>${object.day} | ||
<br/><br/>The attendance sheet for ${object.time_slot} is not validated. | ||
<br/><br/>Please, do it as soon as possible so as to update workers' status. | ||
</p> | ||
<p>${object.day} | ||
<br/><br/>The attendance sheet for ${object.time_slot} is not validated. | ||
<br/><br/>Please, do it as soon as possible so as to update workers' status. | ||
</p> | ||
</div> | ||
]]></field> | ||
</record> | ||
</data> | ||
]]></field> | ||
</record> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,11 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<data noupdate="1"> | ||
<record id="param_card_support" model="ir.config_parameter"> | ||
<field name="key">shift_attendance.card_support</field> | ||
<field name="value">False</field> | ||
</record> | ||
<record | ||
id="param_attendance_sheet_generation_interval" | ||
model="ir.config_parameter" | ||
> | ||
<field | ||
name="key" | ||
>shift_attendance.attendance_sheet_generation_interval</field> | ||
<field name="value">15</field> | ||
</record> | ||
</data> | ||
<odoo noupdate="1"> | ||
<record id="param_card_support" model="ir.config_parameter"> | ||
<field name="key">shift_attendance.card_support</field> | ||
<field name="value">False</field> | ||
</record> | ||
<record id="param_attendance_sheet_generation_interval" model="ir.config_parameter"> | ||
<field name="key">shift_attendance.attendance_sheet_generation_interval</field> | ||
<field name="value">15</field> | ||
</record> | ||
</odoo> |
Oops, something went wrong.