Extract getting recent users
This commit is contained in:
parent
51aa558ba4
commit
e7aab9cbad
|
@ -8,13 +8,14 @@ from todosrht.access import get_tracker, get_ticket
|
|||
from todosrht.filters import invalidate_markup_cache
|
||||
from todosrht.search import find_usernames
|
||||
from todosrht.tickets import add_comment, mark_seen, assign, unassign
|
||||
from todosrht.types import Event, EventType
|
||||
from todosrht.types import Label, Ticket, TicketLabel
|
||||
from todosrht.trackers import get_recent_users
|
||||
from todosrht.types import Event, EventType, Label, TicketLabel
|
||||
from todosrht.types import TicketAccess, TicketResolution
|
||||
from todosrht.types import TicketSubscription, User
|
||||
from todosrht.urls import ticket_url
|
||||
from todosrht.webhooks import TrackerWebhook, TicketWebhook
|
||||
|
||||
|
||||
ticket = Blueprint("ticket", __name__)
|
||||
|
||||
def get_ticket_context(ticket, tracker, access):
|
||||
|
@ -28,15 +29,6 @@ def get_ticket_context(ticket, tracker, access):
|
|||
ticket_sub = TicketSubscription.query.filter_by(
|
||||
ticket=ticket, tracker=None, user=current_user).one_or_none()
|
||||
|
||||
# Find users who recently interacted with this tracker
|
||||
recent_user_events = (db.session.query(Event.id, User.username)
|
||||
.join(User, User.id == Event.user_id)
|
||||
.join(Ticket, Ticket.id == Event.ticket_id)
|
||||
.filter(Ticket.tracker_id == tracker.id)
|
||||
.order_by(Event.created.desc())
|
||||
.limit(20))
|
||||
recent_users = {e[1] for e in recent_user_events}
|
||||
|
||||
return {
|
||||
"tracker": tracker,
|
||||
"ticket": ticket,
|
||||
|
@ -46,7 +38,7 @@ def get_ticket_context(ticket, tracker, access):
|
|||
"access": access,
|
||||
"tracker_sub": tracker_sub,
|
||||
"ticket_sub": ticket_sub,
|
||||
"recent_users": recent_users,
|
||||
"recent_users": get_recent_users(tracker),
|
||||
}
|
||||
|
||||
@ticket.route("/<owner>/<name>/<int:ticket_id>")
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
from srht.database import db
|
||||
from todosrht.types import Event, Ticket, User
|
||||
|
||||
|
||||
def get_recent_users(tracker, limit=20):
|
||||
"""Find users who recently interacted with a tracker."""
|
||||
|
||||
recent_user_events = (db.session.query(Event.id, User.username)
|
||||
.join(User, User.id == Event.user_id)
|
||||
.join(Ticket, Ticket.id == Event.ticket_id)
|
||||
.filter(Ticket.tracker_id == tracker.id)
|
||||
.order_by(Event.created.desc())
|
||||
.limit(20))
|
||||
|
||||
return {e[1] for e in recent_user_events}
|
Loading…
Reference in New Issue