diff --git a/src/core/models/teams/teams.py b/src/core/models/teams/teams.py index 09bcf763cf15155f767bf7cd24bd8d3007667ac0..e5f95667f39a51234330633bb71f83bb9bdd7ff5 100644 --- a/src/core/models/teams/teams.py +++ b/src/core/models/teams/teams.py @@ -10,6 +10,7 @@ from rules.predicates import is_superuser, predicate from core.fields import ConferenceReference from core.markdown import compile_translated_markdown_fields, store_relationships +from core.models.activitylog import ActivityLogEntry, ActivityLogMixin from core.models.invitation import Invitation from core.predicates import is_conference_staff @@ -39,7 +40,7 @@ def is_public_team(user: 'PlatformUser', team: 'Team | None' = None) -> bool: return not team.require_staff -class Team(RulesModelMixin, Group, metaclass=RulesModelBase): +class Team(RulesModelMixin, ActivityLogMixin, Group, metaclass=RulesModelBase): class Meta: rules_permissions = { 'view': is_conference_staff | is_public_team, @@ -101,3 +102,10 @@ class Team(RulesModelMixin, Group, metaclass=RulesModelBase): store_relationships(self.conference, self, render_results) return super().save(*args, update_fields=update_fields, **kwargs) + + def get_activity_log_kind_for_user(self, user: 'PlatformUser') -> ActivityLogEntry.Kind: + if self.members.filter(user=user).exists(): + return ActivityLogEntry.Kind.ENTITY + if user.is_superuser: + return ActivityLogEntry.Kind.STAFF + return ActivityLogEntry.Kind.OTHER