From cc7bccea4c3c9152b7427b232cbf4fdc85be68de Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Thu, 20 Nov 2014 12:03:16 -0500 Subject: [PATCH] Add the logentrykind and performer information to log listing. This makes the system much faster, since new queries are not needed for every log entry. --- data/model/legacy.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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)