Code reference › domain › common

module

pretalx.common.domain.queries.log

Functions 3

actions_by(person)source
def actions_by(person):
    return (
        ActivityLog.objects.filter(person=person)
        .select_related("event")
        .prefetch_related("person", generic_event_prefetch())
    )
event_activity_log(event)source
def event_activity_log(event):
    return (
        ActivityLog.objects.filter(event=event)
        .select_related("person", "content_type", "event")
        .prefetch_related(generic_event_prefetch())
    )
generic_event_prefetch()source
def generic_event_prefetch():
    from pretalx.submission.models import Answer  # noqa: PLC0415 -- circular import

    models = [
        model
        for model in apps.get_models()
        if any(
            field.name == "event" and field.is_relation for field in model._meta.fields
        )
    ]
    ContentType.objects.get_for_models(Answer, *models)
    querysets = [model._base_manager.select_related("event__cfp") for model in models]
    querysets.append(Answer._base_manager.select_related("question__event"))
    return GenericPrefetch("content_object", querysets)