mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 16:14:36 +00:00
66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
from sqlalchemy import and_
|
|
from sqlalchemy.orm import load_only
|
|
|
|
from project import db
|
|
from project.models import (
|
|
AdminUnitRelation,
|
|
Event,
|
|
EventReference,
|
|
EventReferenceRequest,
|
|
EventReferenceRequestReviewStatus,
|
|
)
|
|
|
|
|
|
def create_event_reference_for_request(request):
|
|
result = EventReference.query.filter(
|
|
and_(
|
|
EventReference.event_id == request.event_id,
|
|
EventReference.admin_unit_id == request.admin_unit_id,
|
|
)
|
|
).first()
|
|
|
|
if result is None:
|
|
result = EventReference(
|
|
event_id=request.event_id, admin_unit_id=request.admin_unit_id
|
|
)
|
|
result.rating = 50
|
|
db.session.add(result)
|
|
|
|
return result
|
|
|
|
|
|
def get_reference_incoming_query(admin_unit):
|
|
return EventReference.query.filter(EventReference.admin_unit_id == admin_unit.id)
|
|
|
|
|
|
def get_reference_outgoing_query(admin_unit):
|
|
return EventReference.query.join(Event).filter(Event.admin_unit_id == admin_unit.id)
|
|
|
|
|
|
def get_reference_requests_incoming_query(admin_unit):
|
|
return EventReferenceRequest.query.filter(
|
|
and_(
|
|
EventReferenceRequest.review_status
|
|
!= EventReferenceRequestReviewStatus.verified,
|
|
EventReferenceRequest.admin_unit_id == admin_unit.id,
|
|
)
|
|
)
|
|
|
|
|
|
def get_reference_requests_incoming_badge_query(admin_unit):
|
|
return EventReferenceRequest.query.options(
|
|
load_only(EventReferenceRequest.id)
|
|
).filter(
|
|
and_(
|
|
EventReferenceRequest.review_status
|
|
== EventReferenceRequestReviewStatus.inbox,
|
|
EventReferenceRequest.admin_unit_id == admin_unit.id,
|
|
)
|
|
)
|
|
|
|
|
|
def get_relation_outgoing_query(admin_unit):
|
|
return AdminUnitRelation.query.filter(
|
|
AdminUnitRelation.source_admin_unit_id == admin_unit.id
|
|
)
|