You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
8.1 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <odoo>
  3. <!-- Mail template are declared in a NOUPDATE block
  4. so users can freely customize/delete them -->
  5. <data noupdate="0">
  6. <!-- TODO: improve with Jinja2 comparaison operators in v12.0 -->
  7. <record id="email_template_non_attendance" model="mail.template">
  8. <field name="name">Shift Non-attendance</field>
  9. <field name="subject">Non-attendance to your last shift.</field>
  10. <field name="partner_to">${object.replaced_id.id or object.worker_id.id|safe}</field>
  11. <field name="model_id" ref="model_beesdoo_shift_shift"/>
  12. <field name="auto_delete" eval="True"/>
  13. <field name="lang">${object.worker_id.lang}</field>
  14. <field name="body_html"><![CDATA[
  15. <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
  16. <p>Hello ${object.replaced_id.name or object.worker_id.name},
  17. <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')}).
  18. % if object.worker_id.working_mode == 'regular':
  19. % if object.state == 'absent_0':
  20. <br><br>The supercooperator assigned you 0 compensation shift.
  21. % endif
  22. % if object.state == 'absent_1':
  23. <br><br>The supercooperator assigned you 1 compensation shift.
  24. % endif
  25. % if object.state == 'absent_2':
  26. <br><br>The supercooperator assigned you 2 compensation shifts.
  27. % endif
  28. % if object.replaced_id:
  29. 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>
  30. % else:
  31. 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>
  32. % endif
  33. % endif
  34. % if object.worker_id.working_mode == 'irregular':
  35. Your shift counter is at ${object.worker_id.cooperative_status_ids.sr}.
  36. % if object.worker_id.cooperative_status_ids.future_alert_date:
  37. It should be superior or equal to 1 before the
  38. ${object.worker_id.cooperative_status_ids.future_alert_date}.
  39. % endif
  40. <br>
  41. % endif
  42. % if object.replaced_id:
  43. You were supposed to replace ${object.worker_id.name} and your
  44. current status is "${object.replaced_id.cooperative_status_ids.get_status_value()}".
  45. % else:
  46. <br><br>Your current status is "${object.worker_id.cooperative_status_ids.get_status_value()}".
  47. % endif
  48. <br>If you have any question regarding this non-attendance, just answer this e-mail.
  49. </p>
  50. <br>
  51. <p>Cooperatively yours,<br>
  52. The Members' office volunteers</p>
  53. <p>${object.worker_id.company_id.name}.</p>
  54. % if object.worker_id.company_id.street:
  55. ${object.worker_id.company_id.street}
  56. % endif
  57. % if object.worker_id.company_id.street2:
  58. ${object.worker_id.company_id.street2}<br>
  59. % endif
  60. % if object.worker_id.company_id.city or object.worker_id.company_id.zip:
  61. ${object.worker_id.company_id.zip} ${object.worker_id.company_id.city}<br>
  62. % endif
  63. % if object.worker_id.company_id.country_id:
  64. ${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>
  65. % endif
  66. % if object.worker_id.company_id.phone:
  67. Phone:&nbsp; ${object.worker_id.company_id.phone}
  68. % endif
  69. % if object.worker_id.company_id.website:
  70. <div>
  71. Web :&nbsp;<a href="${object.worker_id.company_id.website}">${object.worker_id.company_id.website}</a>
  72. </div>
  73. %endif
  74. % if object.worker_id.company_id.logo_url:
  75. <div>
  76. <img src="${object.worker_id.company_id.logo_url}">
  77. </div>
  78. %endif
  79. </div>
  80. ]]></field>
  81. </record>
  82. <record id="email_template_non_validated_sheet" model="mail.template">
  83. <field name="name">Non-validated sheet</field>
  84. <field name="subject">[${object.day}] Non-validated sheet ${object.time_slot}</field>
  85. <field name="model_id" ref="model_beesdoo_shift_sheet"/>
  86. <field name="auto_delete" eval="True"/>
  87. <field name="body_html"><![CDATA[
  88. <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
  89. <p>${object.day}
  90. <br/><br/>The attendance sheet for ${object.time_slot} is not validated.
  91. <br/><br/>Please, do it as soon as possible so as to update workers' status.
  92. </p>
  93. </div>
  94. ]]></field>
  95. </record>
  96. <record id="email_template_shift_summary" model="mail.template">
  97. <field name="name">Shift Summary</field>
  98. <field name="subject">Your next shift (${format_tz(object.start_time,object.worker_id.tz or 'Europe/Brussels','%d.%m.%Y - %H:%M')})</field>
  99. <field name="email_from">${object.worker_id.company_id.email}</field>
  100. <field name="partner_to">${object.replaced_id.id or object.worker_id.id|safe}</field>
  101. <field name="model_id" ref="model_beesdoo_shift_shift"/>
  102. <field name="auto_delete" eval="True"/>
  103. <field name="lang">${object.worker_id.lang}</field>
  104. <field name="body_html"><![CDATA[
  105. <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
  106. <p>Hello ${object.worker_id.name},</p>
  107. <p>You are awaited the ${format_tz(object.start_time,object.worker_id.tz or 'Europe/Brussels','%d.%m.%Y')}
  108. for the shift starting at ${format_tz(object.start_time,object.worker_id.tz or 'Europe/Brussels','%H:%M')}.
  109. <br/><br/>Please contact us at ${object.worker_id.company_id.email} if you have any trouble attending the shift.
  110. </p>
  111. <br/>
  112. <p>Sustainably yours,</p>
  113. <p>${object.worker_id.company_id.name}.</p>
  114. % if object.worker_id.company_id.street:
  115. ${object.worker_id.company_id.street}
  116. % endif
  117. % if object.worker_id.company_id.street2:
  118. ${object.worker_id.company_id.street2}<br/>
  119. % endif
  120. % if object.worker_id.company_id.city or object.worker_id.company_id.zip:
  121. ${object.worker_id.company_id.zip} ${object.worker_id.company_id.city}<br/>
  122. % endif
  123. % if object.worker_id.company_id.country_id:
  124. ${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/>
  125. % endif
  126. % if object.worker_id.company_id.phone:
  127. Phone:&nbsp; ${object.worker_id.company_id.phone}
  128. % endif
  129. % if object.worker_id.company_id.website:
  130. <div>
  131. Web :&nbsp;<a href="${object.worker_id.company_id.website}">${object.worker_id.company_id.website}</a>
  132. </div>
  133. %endif
  134. % if object.worker_id.company_id.logo_url:
  135. <div>
  136. <img src=${object.worker_id.company_id.logo_url}>
  137. </div>
  138. %endif
  139. </div>
  140. ]]></field>
  141. </record>
  142. </data>
  143. </odoo>