Skip to content
Extraits de code Groupes Projets
Valider c5400a1c rédigé par jordan's avatar jordan
Parcourir les fichiers

[add] use field sale_project_suivi_ids

parent c81ed9e5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -53,13 +53,14 @@ class SaleProject(models.Model): ...@@ -53,13 +53,14 @@ class SaleProject(models.Model):
tracking=1, tracking=1,
default=_get_default_admin_state_id, default=_get_default_admin_state_id,
) )
sale_project_suivi_ids = fields.One2many( sale_project_suivi_ids = fields.Many2many(
comodel_name="sale.project.suivi", comodel_name="sale.project.suivi",
inverse_name="sale_project_id", string="Suivi étape", tracking=2,
string="Suivi étape",
related="admin_state_id.sale_project_suivi_ids",
tracking=2,
) )
is_sale_project_suivi_empty = fields.Boolean(
string='Pas de suivi pour cette étape',
compute='_compute_is_sale_project_suivi_empty',
required=False)
sale_project_advancement_ids = fields.Many2many( sale_project_advancement_ids = fields.Many2many(
comodel_name="sale.project.advancement", comodel_name="sale.project.advancement",
string="Avancement", tracking=3 string="Avancement", tracking=3
...@@ -114,7 +115,19 @@ class SaleProject(models.Model): ...@@ -114,7 +115,19 @@ class SaleProject(models.Model):
@api.depends('intervention_ids') @api.depends('intervention_ids')
def _compute_intervention_counter(self): def _compute_intervention_counter(self):
for res in self: for res in self:
res.intervention_counter = self.env['sale.intervention'].search_count([('project_id', '=', self.id)]) res.intervention_counter = \
self.env['sale.intervention'].search_count(
[('project_id', '=', self.id)])
def _compute_is_sale_project_suivi_empty(self):
for r in self:
sale_project_suivi_count = \
self.env['sale.project.suivi'].search_count(
[('sale_project_admin_state_id',
'=', self.admin_state_id.id)])
r.is_sale_project_suivi_empty = True \
if sale_project_suivi_count == 0 else False
# ------------------------------------------------------ # ------------------------------------------------------
# Onchange / Constraints # Onchange / Constraints
# ------------------------------------------------------ # ------------------------------------------------------
...@@ -178,9 +191,9 @@ class SaleProjectSuivi(models.Model): ...@@ -178,9 +191,9 @@ class SaleProjectSuivi(models.Model):
_name = "sale.project.suivi" _name = "sale.project.suivi"
_description = "Suivi étape" _description = "Suivi étape"
sale_project_admin_state_id = fields.Many2one(
string="Étape", comodel_name="sale.project.admin.state", required=True)
name = fields.Char(string="Suivi étape", required=True) name = fields.Char(string="Suivi étape", required=True)
sale_project_admin_state_id = fields.Many2one("sale.project.admin.state")
sale_project_id = fields.Many2one("sale.project")
class SaleProjectAdvancement(models.Model): class SaleProjectAdvancement(models.Model):
...@@ -211,7 +224,7 @@ class SaleProjectAdminState(models.Model): ...@@ -211,7 +224,7 @@ class SaleProjectAdminState(models.Model):
sale_project_suivi_ids = fields.One2many( sale_project_suivi_ids = fields.One2many(
comodel_name="sale.project.suivi", comodel_name="sale.project.suivi",
inverse_name="sale_project_admin_state_id", inverse_name="sale_project_admin_state_id",
string="Suivis", string="Suivi des étapes",
) )
@api.model @api.model
......
...@@ -79,10 +79,22 @@ ...@@ -79,10 +79,22 @@
</field> </field>
</record> </record>
<!-- List View Suivi des étapes-->
<record id="sale_project_suivi_view_list" model="ir.ui.view">
<field name="name">Suivi des étapes</field>
<field name="model">sale.project.suivi</field>
<field name="arch" type="xml">
<tree editable="top">
<field name="sale_project_admin_state_id" options='{"no_open": True, "no_create": True}'/>
<field name="name" />
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="sale_project_suivi_act_window"> <record model="ir.actions.act_window" id="sale_project_suivi_act_window">
<field name="name">Suivi des étapes</field> <field name="name">Suivi des étapes</field>
<field name="res_model">sale.project.suivi</field> <field name="res_model">sale.project.suivi</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree</field>
</record> </record>
<record model="ir.actions.act_window" id="sale_project_advancement_act_window"> <record model="ir.actions.act_window" id="sale_project_advancement_act_window">
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<group> <group>
<group> <group>
<field name="name" /> <field name="name" />
<field name="sale_project_suivi_ids" widget="many2many_tags" /> <field name="sale_project_suivi_ids" widget="many2many_tags" context="{'default_sale_project_admin_state_id': active_id}"/>
<field name="sequence"/> <field name="sequence"/>
</group> </group>
<group> <group>
......
...@@ -25,10 +25,6 @@ ...@@ -25,10 +25,6 @@
icon="fa-pagelines" icon="fa-pagelines"
/> />
</div> </div>
<field
name="sale_project_suivi_ids"
widget="many2many_checkboxes"
/>
<field name="sale_order_id" invisible="True" /> <field name="sale_order_id" invisible="True" />
<group name="required_infos" string="Projet"> <group name="required_infos" string="Projet">
...@@ -43,12 +39,23 @@ ...@@ -43,12 +39,23 @@
<field name="state" invisible="1"/> <field name="state" invisible="1"/>
</group> </group>
</group> </group>
<group>
<group> <group>
<field <field
name="sale_project_advancement_ids" name="sale_project_advancement_ids"
widget="many2many_checkboxes" widget="many2many_checkboxes"
/> />
</group> </group>
<group>
<field name="is_sale_project_suivi_empty" invisible="1"/>
<field
name="sale_project_suivi_ids"
widget="many2many_checkboxes"
domain="[('sale_project_admin_state_id', '=', admin_state_id)]"
attrs="{'invisible': [('is_sale_project_suivi_empty','=', True)]}"
/>
</group>
</group>
<group name="interventions" class="oe_read_only"> <group name="interventions" class="oe_read_only">
<field name="intervention_ids" mode="tree" style="pointer-events: none;" <field name="intervention_ids" mode="tree" style="pointer-events: none;"
context="{'search_default_group_by_intervention_type': True}"> context="{'search_default_group_by_intervention_type': True}">
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter