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.

226 lines
9.9 KiB

  1. <odoo>
  2. <!-- Attendance Sheet Shifts Views -->
  3. <record model="ir.ui.view" id="sheet_view_search">
  4. <field name="name">Attendance Sheet Search</field>
  5. <field name="model">beesdoo.shift.sheet</field>
  6. <field name="arch" type="xml">
  7. <search>
  8. <field name="day" />
  9. <field name="validated_by" />
  10. <filter string="Annotated (unread)"
  11. domain="[('is_annotated', '=', True),
  12. ('is_read', '=', False)]" />
  13. <filter string="Annotated (read)"
  14. domain="[('is_annotated', '=', True),
  15. ('is_read', '=', True)]" />
  16. <separator />
  17. <filter string="Archived"
  18. domain="[('active', '=', False)]" />
  19. <group expand="1" string="Group By">
  20. <filter string="Day" name="gb_day"
  21. context="{'group_by' : 'start_time:day'}" />
  22. </group>
  23. </search>
  24. </field>
  25. </record>
  26. <record model="ir.ui.view" id="sheet_expected_view_tree">
  27. <field name="name">Expected Shifts List</field>
  28. <field name="model">beesdoo.shift.sheet.expected</field>
  29. <field name="arch" type="xml">
  30. <tree editable="bottom" create="false" delete="false" open="false"
  31. decoration-danger="state == 'absent'"
  32. decoration-success="state == 'done'">
  33. <field name="task_type_id" readonly="True" options="{'no_open': True}"/>
  34. <field name="super_coop_id" readonly="True" options="{'no_open': True}"/>
  35. <field name="worker_id" readonly="True" options="{'no_open': True}"/>
  36. <field name="working_mode" />
  37. <field name="replacement_worker_id"
  38. attrs="{'readonly':
  39. [('working_mode','=','irregular')]}"
  40. options="{'no_create': True, 'no_create_edit':True}"/>
  41. <field name="state" options="{'no_open': True}" />
  42. <field name="compensation_no"
  43. options="{'horizontal': true}"
  44. attrs="{
  45. 'invisible': [('state', 'in', ['done', False])]
  46. }"
  47. />
  48. </tree>
  49. </field>
  50. </record>
  51. <record model="ir.ui.view" id="sheet_added_view_tree">
  52. <field name="view_mode">tree</field>
  53. <field name="name">Added Shifts List</field>
  54. <field name="model">beesdoo.shift.sheet.added</field>
  55. <field name="arch" type="xml">
  56. <tree editable="bottom"
  57. decoration-success="state == 'done'">
  58. <field name="task_type_id"
  59. options="{'no_open': True, 'no_create': True, 'no_create_edit':True }" />
  60. <field name="worker_id"
  61. options="{'no_open': True, 'no_create': True, 'no_create_edit':True }" />
  62. <field name="working_mode" />
  63. <field name="is_compensation"
  64. attrs="{'invisible':
  65. [('working_mode','=','irregular')]}"/>
  66. <field name="state" readonly="True" />
  67. </tree>
  68. </field>
  69. </record>
  70. <record model="ir.ui.view" id="sheet_expected_view_form">
  71. <field name="view_mode">tree</field>
  72. <field name="name">Expected Shifts Form</field>
  73. <field name="model">beesdoo.shift.sheet.expected</field>
  74. <field name="arch" type="xml">
  75. <form readonly="True">
  76. <group string="Expected Shift" >
  77. <field name="task_type_id" options="{'no_open': True}" />
  78. <field name="worker_id" options="{'no_open': True}" />
  79. <field name="working_mode" options="{'no_open': True}" />
  80. <field name="replacement_worker_id" options="{'no_open': True}" />
  81. <field name="state" options="{'no_open': True}" />
  82. </group>
  83. </form>
  84. </field>
  85. </record>
  86. <record model="ir.ui.view" id="sheet_added_view_form">
  87. <field name="view_mode">tree</field>
  88. <field name="name">Added Shifts Form</field>
  89. <field name="model">beesdoo.shift.sheet.added</field>
  90. <field name="arch" type="xml">
  91. <form readonly="True" >
  92. <group>
  93. <field name="task_type_id" options="{'no_open': True}" />
  94. <field name="worker_id" options="{'no_open': True}" />
  95. <field name="working_mode" options="{'no_open': True}" />
  96. <field name="is_compensation" options="{'no_open': True}" />
  97. <field name="state" options="{'no_open': True}" />
  98. </group>
  99. </form>
  100. </field>
  101. </record>
  102. <!-- Attendance Sheets Views -->
  103. <record model="ir.ui.view" id="sheet_view_tree">
  104. <field name="name">Attendance Sheet List</field>
  105. <field name="model">beesdoo.shift.sheet</field>
  106. <field name="arch" type="xml">
  107. <tree create="false" delete="false" decoration-danger="state == 'not_validated'">
  108. <field name="week" />
  109. <field name="day" />
  110. <field name="time_slot" />
  111. <field name="max_worker_no" type="char"/>
  112. <field name="state" />
  113. <field name="validated_by" />
  114. <field name="is_annotated" />
  115. </tree>
  116. </field>
  117. </record>
  118. <record model="ir.ui.view" id="sheet_view_form">
  119. <field name="name">Attendance Sheet Form</field>
  120. <field name="model">beesdoo.shift.sheet</field>
  121. <field name="arch" type="xml">
  122. <form create="false" delete="false">
  123. <field name="_barcode_scanned" widget="barcode_handler"/>
  124. <header>
  125. <div>
  126. <field name="state" widget="statusbar" readonly="True" class="oe_inline"/>
  127. <button type="object"
  128. name="validate_with_checks"
  129. string="Validate Sheet"
  130. attrs="{'invisible': [('state', '=', 'validated')]}"
  131. />
  132. </div>
  133. <div class="oe_clear" />
  134. </header>
  135. <sheet>
  136. <div class="oe_button_box" name="button_box">
  137. <button name="button_mark_as_read" type="object"
  138. class="oe_stat_button" icon="fa-check"
  139. string="Mark as read"
  140. groups="beesdoo_shift.group_cooperative_admin"
  141. />
  142. <button name="toggle_active"
  143. type="object"
  144. groups="beesdoo_shift.group_cooperative_admin"
  145. class="oe_stat_button"
  146. icon="fa-archive">
  147. <field name="active" widget="boolean_button" options='{"terminology": "archive"}'/>
  148. </button>
  149. </div>
  150. <div class="oe_title">
  151. <h1>
  152. <field name="time_slot" />
  153. </h1>
  154. </div>
  155. <group>
  156. <field name="max_worker_no" />
  157. </group>
  158. <label string="If you encounter any issues, you can add an
  159. annotation during validation to notify permanent members."
  160. />
  161. <separator string="Added workers" />
  162. <field name="added_shift_ids"/>
  163. <separator string="Expected workers" />
  164. <field name="expected_shift_ids" />
  165. <br/>
  166. <group col="1" string="Feedback"
  167. groups="beesdoo_shift.group_cooperative_admin">
  168. <field name="annotation" />
  169. <br/>
  170. <field name="feedback" />
  171. <br/>
  172. <field name="worker_nb_feedback" />
  173. <br/>
  174. <group>
  175. <field name="validated_by" readonly="True"/>
  176. </group>
  177. </group>
  178. </sheet>
  179. <div class="oe_chatter">
  180. <field name="message_ids"
  181. widget="mail_thread"
  182. groups="beesdoo_shift.group_cooperative_admin"
  183. />
  184. </div>
  185. </form>
  186. </field>
  187. </record>
  188. <!-- Actions -->
  189. <!-- This method would be better but library "fields" is not imported -->
  190. <!--
  191. domain="[('end_time','&gt;',fields.Datetime.to_string(datetime.date.today())),
  192. ('start_time','&lt;', fields.Datetime.to_string(datetime.date.today() + datetime.timedelta(days=1)))]" -->
  193. <act_window id="action_sheet_daily"
  194. name="Daily attendance sheets"
  195. res_model="beesdoo.shift.sheet"
  196. view_mode="tree,form"
  197. domain="[('end_time','&gt;', datetime.date.today().strftime('%Y-%m-%d 00:00:00')),
  198. ('start_time','&lt;', datetime.date.today().strftime('%Y-%m-%d 23:59:59'))]"
  199. />
  200. <!-- Top menu item -->
  201. <menuitem id="menu_sheet_top"
  202. name="Attendance Sheets"
  203. parent="menu_root"
  204. groups="beesdoo_shift.group_shift_attendance_sheet"
  205. />
  206. <!-- Menu actions -->
  207. <menuitem id="menu_sheet"
  208. name="Daily attendance sheets"
  209. parent="menu_sheet_top"
  210. action="action_sheet_daily"
  211. sequence="2"
  212. />
  213. </odoo>