diff --git a/app/data_access/regulatory_alerts_summary.py b/app/data_access/regulatory_alerts_summary.py index e7dc0508..947a7a14 100644 --- a/app/data_access/regulatory_alerts_summary.py +++ b/app/data_access/regulatory_alerts_summary.py @@ -8,6 +8,9 @@ class AlertsGroup(graphene.ObjectType): class RegulatoryAlertsSummary(graphene.ObjectType): + has_any_computation = graphene.Boolean( + description="Indique s'il y a des données pour le mois." + ) month = graphene.String(description="Mois correspondant aux données.") total_nb_alerts = graphene.Int( description="Nombre d'alertes total sur le mois." diff --git a/app/domain/regulatory_alerts_summary.py b/app/domain/regulatory_alerts_summary.py index ca8dd472..7e9891be 100644 --- a/app/domain/regulatory_alerts_summary.py +++ b/app/domain/regulatory_alerts_summary.py @@ -1,5 +1,6 @@ from dateutil.relativedelta import relativedelta +from app import db from app.data_access.regulation_computation import ( get_regulation_checks_by_unit, ) @@ -8,7 +9,7 @@ RegulatoryAlertsSummary, ) from app.helpers.submitter_type import SubmitterType -from app.models import RegulatoryAlert +from app.models import RegulatoryAlert, RegulationComputation from app.models.regulation_check import UnitType, RegulationCheckType @@ -50,6 +51,19 @@ def query_alerts(_start_date, _end_date, _user_ids, count_only=True): return current_month_alerts, previous_month_alerts_count +def has_any_regulation_computation(month, user_ids): + start_date = month + end_date = month + relativedelta(months=1) + db.session.query( + RegulationComputation.query.filter( + RegulationComputation.user_id.in_(user_ids), + RegulationComputation.day >= start_date, + RegulationComputation.day < end_date, + RegulatoryAlert.submitter_type == SubmitterType.ADMIN, + ).exists() + ).scalar() + + def get_regulatory_alerts_summary(month, user_ids, unique_user_id=False): current_month_alerts, previous_month_alerts_count = query_alerts_for_month( month=month, user_ids=user_ids