diff --git a/data/model/legacy.py b/data/model/legacy.py index a62c1c1d5..02057583c 100644 --- a/data/model/legacy.py +++ b/data/model/legacy.py @@ -2046,7 +2046,15 @@ def list_repo_notifications(namespace_name, repository_name, event_name=None): def list_logs(start_time, end_time, performer=None, repository=None, namespace=None): - joined = LogEntry.select().join(User) + Performer = User.alias() + joined = (LogEntry.select(LogEntry, LogEntryKind, User, Performer) + .join(User) + .switch(LogEntry) + .join(Performer, JOIN_LEFT_OUTER, + on=(LogEntry.performer == Performer.id).alias('performer')) + .switch(LogEntry) + .join(LogEntryKind)) + if repository: joined = joined.where(LogEntry.repository == repository)