journal: log references to the base Service instance (#68390)

This commit is contained in:
Benjamin Dauvergne 2022-09-13 11:20:48 +02:00
parent 1016ca0647
commit 467bb3c7df
2 changed files with 11 additions and 9 deletions

View File

@ -34,7 +34,8 @@ class EventTypeWithService(EventTypeDefinition):
data['service_name'] = str(service)
if not references:
references = []
references = [service] + references
# use a reference to the Service model, not a subclass
references = [Service(pk=service.pk)] + references
super().record(user=user, session=session, references=references, data=data, api=api)
@classmethod

View File

@ -51,7 +51,6 @@ from django.urls import reverse
from django.utils.encoding import force_text, iri_to_uri
from lxml import etree
from authentic2 import models
from authentic2.apps.journal.models import Event
from authentic2.utils import misc as utils_misc
@ -296,20 +295,22 @@ def text_content(node):
def assert_event(event_type_name, user=None, session=None, service=None, target_user=None, api=False, **data):
from authentic2.models import Service
qs = Event.objects.filter(type__name=event_type_name, api=api)
if user:
if user is not None:
qs = qs.filter(user=user)
else:
qs = qs.filter(user__isnull=True)
if session:
if session is not None:
qs = qs.filter(session=session.session_key)
else:
qs = qs.filter(session__isnull=True)
if service:
qs = qs.which_references(service)
else:
qs = qs.exclude(qs._which_references_query(models.Service))
if target_user:
if service is not None:
qs = qs.which_references(Service(pk=service.pk))
# else:
# qs = qs.exclude(qs._which_references_query(models.Service))
if target_user is not None:
qs = qs.which_references(target_user)
count = qs.count()