Skip to content

Conversation

@pyDez
Copy link
Collaborator

@pyDez pyDez commented Dec 18, 2025

@pyDez pyDez requested review from numahell and thibault December 18, 2025 11:05
@tristanrobert
Copy link

tristanrobert commented Dec 18, 2025

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.


def log_moulinette_event(self, moulinette, context, **kwargs):
if not moulinette.is_triage_valid():
super().log_moulinette_event(moulinette, context)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est ce que ce comportement est acceptable dans un Mixin ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ça me paraît aussi bizarre d'appeler une méthode d'une classe parente sur une mixin. Pourquoi ne pas l'avoir laissé dans la classe enfant ?

Il y a un test sur triage ici, qui vérifie avant que moulinette est sur triage et pas form :
https://github.com/MTES-MCT/envergo/pull/933/changes#diff-2eda7161f91966c43de31eb00616f3b0f93d417249644d5000ff61e14d41e2afR178

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La méthode de la classe enfant n'est pas appelée, elle est cachée par le mixin.
J'ai finalement mis l'ensemble des cas dans le Mixin, c'est de loin l'option la plus cohérente à mes yeux/

Copy link
Collaborator

@numahell numahell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pas grand chose à redire, à part un ou deux détails ça me paraît correct.


def log_moulinette_event(self, moulinette, context, **kwargs):
if not moulinette.is_triage_valid():
super().log_moulinette_event(moulinette, context)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ça me paraît aussi bizarre d'appeler une méthode d'une classe parente sur une mixin. Pourquoi ne pas l'avoir laissé dans la classe enfant ?

Il y a un test sur triage ici, qui vérifie avant que moulinette est sur triage et pas form :
https://github.com/MTES-MCT/envergo/pull/933/changes#diff-2eda7161f91966c43de31eb00616f3b0f93d417249644d5000ff61e14d41e2afR178

@pyDez pyDez requested a review from numahell January 5, 2026 08:10
Copy link
Collaborator

@numahell numahell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nickel

return url_with_params

def log_moulinette_event(self, moulinette, context, **kwargs):
if not moulinette.is_triage_valid():
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne comprends pas pourquoi il faut logguer un événement différent en fonction de l'état de la validation de la Moulinette. Un petit commentaire ne serait pas de refus ici.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai modifié un peu la structure, et ajouté un commentaire. C'est sans doute mieux.

return f"{self.name}"

@classmethod
def get_type(cls, user):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ça me semble peu clair et mal défini ce que signifie un « user type ». Par exemple le terme « administrator » veut-il dire avoir accès au backend (si on se réfère à la version technique du terme) ou avoir accès aux dossiers (version métier) ?

Par ailleurs, ça n'a pas vraiment de sens si on est côté Aménagement.

Cette fonction n'est utilisée que dans un cadre d'analytics, et n'est pas vraiment lié à la gestion fonctionnelle des utilisateurs. Pour cette raison, je l'aurais bien sortie de la classe User pour la déporter quelque part vers analytics.utils.get_user_type par exemple.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effectivement, ces labels n'ont pas beaucoup de sens nu d'un point de vue technique, ni d'un point de vue métier. Mais, à ce jour, on n'a pas vraiment d'équivalent métier ou technique qui m'aurait permis de répondre au besoin de tracking.
J'ai déplacé le tout (tel quel) dans l'app analytics pour que l'on ne soit pas tenter de réutiliser ce type en lui donnant plus de valeur que ce qu'il a vraiement.

@pyDez pyDez requested a review from thibault January 7, 2026 05:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants