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.

223 lines
9.7 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_via_wizard"
  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. <separator string="Added workers" />
  159. <field name="added_shift_ids"/>
  160. <separator string="Expected workers" />
  161. <field name="expected_shift_ids" />
  162. <br/>
  163. <group col="1" string="Feedback"
  164. groups="beesdoo_shift.group_cooperative_admin">
  165. <field name="annotation" />
  166. <br/>
  167. <field name="feedback" />
  168. <br/>
  169. <field name="worker_nb_feedback" />
  170. <br/>
  171. <group>
  172. <field name="validated_by" readonly="True"/>
  173. </group>
  174. </group>
  175. </sheet>
  176. <div class="oe_chatter">
  177. <field name="message_ids"
  178. widget="mail_thread"
  179. groups="beesdoo_shift.group_cooperative_admin"
  180. />
  181. </div>
  182. </form>
  183. </field>
  184. </record>
  185. <!-- Actions -->
  186. <!-- This method would be better but library "fields" is not imported -->
  187. <!--
  188. domain="[('end_time','&gt;',fields.Datetime.to_string(datetime.date.today())),
  189. ('start_time','&lt;', fields.Datetime.to_string(datetime.date.today() + datetime.timedelta(days=1)))]" -->
  190. <act_window id="action_sheet_daily"
  191. name="Daily attendance sheets"
  192. res_model="beesdoo.shift.sheet"
  193. view_mode="tree,form"
  194. domain="[('end_time','&gt;', datetime.date.today().strftime('%Y-%m-%d 00:00:00')),
  195. ('start_time','&lt;', datetime.date.today().strftime('%Y-%m-%d 23:59:59'))]"
  196. />
  197. <!-- Top menu item -->
  198. <menuitem id="menu_sheet_top"
  199. name="Attendance Sheets"
  200. parent="menu_root"
  201. groups="beesdoo_shift.group_shift_attendance_sheet"
  202. />
  203. <!-- Menu actions -->
  204. <menuitem id="menu_sheet"
  205. name="Daily attendance sheets"
  206. parent="menu_sheet_top"
  207. action="action_sheet_daily"
  208. sequence="2"
  209. />
  210. </odoo>