diff --git a/loko/interventions/models.py b/loko/interventions/models.py index 683bb59..2396f30 100644 --- a/loko/interventions/models.py +++ b/loko/interventions/models.py @@ -738,11 +738,21 @@ class Intervention(models.Model): return self.assigned_team.company.name return "" + BLOCKED_CONTRACT_DISPLAY_STATUSES = ('in_preparation', 'to_be_approved', 'to_be_planned') + @property def is_contract_blocked(self): """Retourne True si l'intervention est marquée bloquée ou si son contrat est actuellement bloqué.""" return bool(self.is_blocked_due_to_contract or (self.contract and getattr(self.contract, 'is_blocked', False))) + @property + def show_contract_blocked_warning(self): + """ + Indique si l'avertissement / badge de marché bloqué doit être affiché. + Uniquement affiché pour les interventions en préparation, à approuver ou à planifier. + """ + return bool(self.is_contract_blocked and self.status in self.BLOCKED_CONTRACT_DISPLAY_STATUSES) + def get_status_color(self): return { "in_preparation": "secondary", diff --git a/loko/interventions/static/interventions/interventions_index.js b/loko/interventions/static/interventions/interventions_index.js index 3646849..eed40b7 100644 --- a/loko/interventions/static/interventions/interventions_index.js +++ b/loko/interventions/static/interventions/interventions_index.js @@ -496,8 +496,9 @@ function statusFormatter(value, row) { html += ` `; } - // Add blocked due to contract indicator if present - if (row && (row.is_blocked_due_to_contract || (row.contract && row.contract.is_blocked))) { + // Add blocked due to contract indicator if present (only for in_preparation, to_be_approved, to_be_planned) + const blockedStatuses = ['in_preparation', 'to_be_approved', 'to_be_planned']; + if (row && (row.is_blocked_due_to_contract || (row.contract && row.contract.is_blocked)) && blockedStatuses.includes(row.status || value)) { html += ` `; } diff --git a/loko/interventions/templates/interventions/_interventions_list_mobile.html b/loko/interventions/templates/interventions/_interventions_list_mobile.html index 6598054..bbc49ac 100644 --- a/loko/interventions/templates/interventions/_interventions_list_mobile.html +++ b/loko/interventions/templates/interventions/_interventions_list_mobile.html @@ -52,7 +52,7 @@ {{ intervention.code }} {{ intervention.title }} {{ intervention.get_status_display }} - {% if intervention.is_contract_blocked %} + {% if intervention.show_contract_blocked_warning %} {% translate "Marché bloqué" %} diff --git a/loko/interventions/templates/interventions/detail/card_info.html b/loko/interventions/templates/interventions/detail/card_info.html index 83191de..bec750c 100644 --- a/loko/interventions/templates/interventions/detail/card_info.html +++ b/loko/interventions/templates/interventions/detail/card_info.html @@ -31,7 +31,7 @@ {% endif %} {% endif %} {{ intervention.title }} - {% if intervention.is_contract_blocked %} + {% if intervention.show_contract_blocked_warning %} {% translate "Marché bloqué" %} @@ -84,7 +84,7 @@ {% endif %} - {% if intervention.is_contract_blocked %} + {% if intervention.show_contract_blocked_warning %}