Extract mark_seen logic
This commit is contained in:
parent
8ac07f4114
commit
2376114ee8
|
@ -5,10 +5,10 @@ from srht.database import db
|
|||
from srht.flask import loginrequired
|
||||
from srht.validation import Validation
|
||||
from todosrht.access import get_tracker, get_ticket
|
||||
from todosrht.tickets import add_comment
|
||||
from todosrht.tickets import add_comment, mark_seen
|
||||
from todosrht.types import Event, EventType
|
||||
from todosrht.types import Label, TicketLabel
|
||||
from todosrht.types import TicketAccess, TicketResolution, TicketSeen
|
||||
from todosrht.types import TicketAccess, TicketResolution
|
||||
from todosrht.types import TicketSubscription
|
||||
from todosrht.urls import ticket_url
|
||||
|
||||
|
@ -25,14 +25,7 @@ def ticket_GET(owner, name, ticket_id):
|
|||
is_subscribed = False
|
||||
tracker_sub = None
|
||||
if current_user:
|
||||
seen = (TicketSeen.query
|
||||
.filter(TicketSeen.user_id == current_user.id,
|
||||
TicketSeen.ticket_id == ticket.id)
|
||||
.one_or_none())
|
||||
if not seen:
|
||||
seen = TicketSeen(user_id=current_user.id, ticket_id=ticket.id)
|
||||
seen.update()
|
||||
db.session.add(seen)
|
||||
mark_seen(ticket, current_user)
|
||||
db.session.commit()
|
||||
|
||||
tracker_sub = (TicketSubscription.query
|
||||
|
|
|
@ -5,6 +5,7 @@ from srht.database import db
|
|||
from todosrht.email import notify
|
||||
from todosrht.types import Event, EventType, EventNotification
|
||||
from todosrht.types import TicketComment, TicketStatus, TicketSubscription
|
||||
from todosrht.types import TicketSeen
|
||||
from todosrht.urls import ticket_url
|
||||
|
||||
smtp_user = cfg("mail", "smtp-user", default=None)
|
||||
|
@ -135,3 +136,14 @@ def add_comment(user, ticket,
|
|||
db.session.commit()
|
||||
|
||||
return comment
|
||||
|
||||
def mark_seen(ticket, user):
|
||||
"""Mark the ticket as seen by user."""
|
||||
seen = TicketSeen.query.filter_by(user=user, ticket=ticket).one_or_none()
|
||||
if seen:
|
||||
seen.update() # Updates last_view time
|
||||
else:
|
||||
seen = TicketSeen(user_id=user.id, ticket_id=ticket.id)
|
||||
db.session.add(seen)
|
||||
|
||||
return seen
|
||||
|
|
Loading…
Reference in New Issue