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.

68 lines
2.3 KiB

5 years ago
5 years ago
5 years ago
[ADD] Improve Shift management après avoir généré les shifts pour une semaine, rediriger vers les shifts générés : ok Ajouter un supercoopérateur au niveau du template de shift. Pas de champs related car il faut pouvoir gérer les remplacements entre supercoopérateurs. : Rajouter un boolean sur res.users pour dire qu'ils sont super coopérateur du coup on peut choisir qu'un utilisateur super coopérateur : Ok Sur la vue des shifts, permettre de sélectionner un ensemble de shifts pour pouvoir changer son supercoopérateur en une action : Ok Avoir une vue des shifts par défaut plus lisible que le calendrier : KANBAN avec TODAY par défaut et les colonnes selon le type de shift : ok Dans la vue KANBAN du planning des semaines, faire un tri sur la start date pour que ça ressemble à une vue calendrier :ok Droits d'accès : 3 groupes : modifier un shift existant et confirmer son statut : absence/présence générer et supprimer des shifts à partir du template modifier le template des semaines et gérer la config En réfléchissant à ceux qui vont gérer les présences : il faudrait avoir une vue facile sur les shifts du jour et une manière simple de dire présent/absent/remplacé pour l'ensemble des coopérateurs présents (éviter de devoir chaque fois sélectionner le shift, cliquer sur le statut, aller au shift suivant, cliquer sur le statut...). J'ai fait un nouveau point de menu avec une vue Kanban grouper par status, il suffit de faire du drag and drop pour changer le status, les shifts sont aussi filtré sur aujourd'hui et seulement ceux ayant un worker assigné.
8 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. """
  2. Created on 2 janv. 2017
  3. @author: Thibault Francois
  4. """
  5. from odoo import _, api, fields, models
  6. class GenerateShiftTemplate(models.TransientModel):
  7. _name = "beesddoo.shift.generate_shift_template"
  8. _description = "beesddoo.shift.generate_shift_template"
  9. day_ids = fields.Many2many(
  10. "beesdoo.shift.daynumber",
  11. relation="template_gen_day_number_rel",
  12. column1="wizard_id",
  13. column2="day_id",
  14. )
  15. planning_id = fields.Many2one("beesdoo.shift.planning", required=True)
  16. type_id = fields.Many2one(
  17. "beesdoo.shift.type",
  18. default=lambda self: self._context.get("active_id"),
  19. )
  20. line_ids = fields.One2many(
  21. "beesddoo.shift.generate_shift_template.line", "wizard_id"
  22. )
  23. @api.multi
  24. def generate(self):
  25. self.ensure_one()
  26. ids = []
  27. for day in self.day_ids:
  28. for line in self.line_ids:
  29. shift_template_data = {
  30. "name": "%s" % self.type_id.name,
  31. "planning_id": self.planning_id.id,
  32. "task_type_id": self.type_id.id,
  33. "day_nb_id": day.id,
  34. "start_time": line.start_time,
  35. "end_time": line.end_time,
  36. "duration": line.end_time - line.start_time,
  37. "worker_nb": line.worker_nb,
  38. }
  39. new_rec = self.env["beesdoo.shift.template"].create(
  40. shift_template_data
  41. )
  42. ids.append(new_rec.id)
  43. return {
  44. "name": _("Generated Shift Template"),
  45. "type": "ir.actions.act_window",
  46. "view_type": "form",
  47. "view_mode": "kanban,tree,form",
  48. "res_model": "beesdoo.shift.template",
  49. "target": "current",
  50. "domain": [("id", "in", ids)],
  51. "context": {"group_by": "day_nb_id"},
  52. }
  53. class GenerateShiftTemplateLine(models.TransientModel):
  54. _name = "beesddoo.shift.generate_shift_template.line"
  55. _description = "beesddoo.shift.generate_shift_template.line"
  56. wizard_id = fields.Many2one("beesddoo.shift.generate_shift_template")
  57. start_time = fields.Float(required=True)
  58. end_time = fields.Float(required=True)
  59. worker_nb = fields.Integer(default=1)