From 775151c72d303b9ff26677065f52ac4652cee234 Mon Sep 17 00:00:00 2001 From: Karl Determe Date: Tue, 6 Oct 2026 16:22:23 +0200 Subject: [PATCH] feat: add notification services and observation views implementation --- loko/notifications/services.py | 16 +--------------- loko/observations/views.py | 8 ++++++++ 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/loko/notifications/services.py b/loko/notifications/services.py index ab9b9a1..a8d32ec 100644 --- a/loko/notifications/services.py +++ b/loko/notifications/services.py @@ -666,9 +666,7 @@ def get_or_create_observation_discussion(observation): """ Trouve ou crée la discussion associée à une observation. - Les participants sont : le créateur de l'observation + les membres des - équipes gestionnaires d'assets (is_assets_manager=True) pour la catégorie - concernée. + Les participants sont : le créateur de l'observation. Retourne (discussion, created). """ from .models import Discussion @@ -703,18 +701,6 @@ def get_or_create_observation_discussion(observation): if observation.created_by_id: participants.add(observation.created_by) - if observation.category_id: - try: - from contracts.models import CompanyMember - from django.contrib.auth.models import User as AuthUser - manager_users = AuthUser.objects.filter( - companymember__teams__is_assets_manager=True, - companymember__teams__asset_categories=observation.category, - ).distinct() - participants.update(manager_users) - except Exception: - pass - discussion.participants.set(participants) return discussion, True diff --git a/loko/observations/views.py b/loko/observations/views.py index 875ef1a..ec0d475 100644 --- a/loko/observations/views.py +++ b/loko/observations/views.py @@ -1000,6 +1000,8 @@ def observation_change_status(request, observation_id): if new_status == 'needs_info': from notifications.services import get_or_create_observation_discussion, post_message discussion, _created = get_or_create_observation_discussion(observation) + if request.user.is_authenticated: + discussion.participants.add(request.user) post_message( discussion=discussion, author=request.user, @@ -1016,6 +1018,8 @@ def observation_change_status(request, observation_id): ) from notifications.services import get_or_create_observation_discussion, post_message discussion, _created = get_or_create_observation_discussion(observation) + if request.user.is_authenticated: + discussion.participants.add(request.user) post_message( discussion=discussion, author=request.user, @@ -1282,6 +1286,8 @@ def observation_add(request, observation_id=None): ) from notifications.services import get_or_create_observation_discussion, post_message discussion, _created = get_or_create_observation_discussion(observation) + if request.user.is_authenticated: + discussion.participants.add(request.user) post_message( discussion=discussion, author=request.user, @@ -2004,6 +2010,8 @@ def observation_add_message(request, observation_id): ) discussion, _created = get_or_create_observation_discussion(observation) + if request.user.is_authenticated: + discussion.participants.add(request.user) files = request.FILES.getlist('attachments') or None post_message(discussion=discussion, author=request.user, content=content, files=files)