Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 50fef3e65f35eebd6b88056c140aa6db25723241
  • 16.0 par défaut protégée
  • 18.0
  • 17.0
  • 14.0 protégée
  • 15.0 protégée
  • 12.0 protégée
  • 10.0 protégée
8 résultats

entrypoint.sh

Blame
  • multi_partner_release_wizard.py 3,36 Kio
    # Copyright 2022 Le Filament (https://le-filament.com)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
    
    from odoo import fields, models
    
    
    class MultiPartnerReleaseWizard(models.TransientModel):
        _name = "multi.partner.release.wizard"
        _description = "Wizard de création de release pour plusieurs clients"
    
        # ------------------------------------------------------
        # Fields declaration
        # ------------------------------------------------------
        user_id = fields.Many2one(
            comodel_name="res.users",
            string="Utilisateur",
            required=True,
            domain=[("share", "=", False)],
            default=lambda self: self.env.user,
        )
        partner_ids = fields.Many2many(
            comodel_name="res.partner",
            string="Client",
            required=True,
            domain=[("is_company", "=", True)],
        )
        release_date = fields.Datetime(
            string="Date de mise en production",
            default=lambda self: fields.Datetime.now(),
        )
        release_module_ids = fields.One2many(
            comodel_name="multi.partner.release.line.wizard",
            inverse_name="release_id",
            string="Modules mis à jour",
        )
        description = fields.Text("Description")
    
        # ------------------------------------------------------
        # Button actions
        # ------------------------------------------------------
        def create_releases(self):
            for partner in self.partner_ids:
                detail_module = []
                for module in self.release_module_ids:
                    detail_module.append(
                        (
                            0,
                            0,
                            {
                                "module_id": module.module_id.id,
                                "release_type": module.release_type,
                                "log": module.log,
                            },
                        )
                    )
                partner.write(
                    {
                        "release_ids": [
                            (
                                0,
                                0,
                                {
                                    "user_id": self.user_id.id,
                                    "release_date": self.release_date,
                                    "description": self.description,
                                    "release_module_ids": detail_module,
                                },
                            )
                        ]
                    }
                )
            return {
                "type": "ir.actions.client",
                "tag": "reload",
            }
    
    
    class MultiPartnerReleaseLineWizard(models.TransientModel):
        _name = "multi.partner.release.line.wizard"
        _description = "Modules de la release"
    
        # ------------------------------------------------------
        # Fields declaration
        # ------------------------------------------------------
        release_id = fields.Many2one(
            comodel_name="multi.partner.release.wizard",
            string="Releases",
            ondelete="cascade",
            copy=False,
        )
        module_id = fields.Many2one(
            comodel_name="res.partner.module",
            string="Module",
            required=True,
        )
        log = fields.Text("Liste des changements")
        release_type = fields.Selection(
            selection=[
                ("fix", "[fix]"),
                ("update", "[update]"),
                ("add", "[add]"),
                ("clean", "[clean]"),
            ],
            string="Type",
        )