From 1ce358d55b53f734b9c53b2bc60e4c4d7643788c Mon Sep 17 00:00:00 2001 From: CosmicCoder96 Date: Wed, 30 Jan 2019 13:27:49 +0800 Subject: [PATCH] Event model: Add info about presence of sessions,speakers --- app/api/schema/events.py | 2 ++ app/models/event.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/app/api/schema/events.py b/app/api/schema/events.py index afcd14b55b..d51554a5e8 100644 --- a/app/api/schema/events.py +++ b/app/api/schema/events.py @@ -82,6 +82,8 @@ def validate_timezone(self, data, original_data): organizer_name = fields.Str(allow_none=True) is_map_shown = fields.Bool(default=False) has_organizer_info = fields.Bool(default=False) + has_sessions = fields.Bool(default=0, dump_only=True) + has_speakers = fields.Bool(default=0, dump_only=True) organizer_description = fields.Str(allow_none=True) is_sessions_speakers_enabled = fields.Bool(default=False) privacy = fields.Str(default="public") diff --git a/app/models/event.py b/app/models/event.py index 5cd5eaadd4..6a9456b943 100644 --- a/app/models/event.py +++ b/app/models/event.py @@ -18,6 +18,8 @@ from app.models.helpers.versioning import clean_up_string, clean_html from app.models.user import ATTENDEE, ORGANIZER from app.models.event_topic import EventTopic +from app.models.session import Session +from app.models.speaker import Speaker from app.models.search import sync from app.models.ticket import Ticket from app.models.ticket_holder import TicketHolder @@ -380,6 +382,15 @@ def tickets_sold(self): def revenue(self): return self.calc_revenue() + @property + def has_sessions(self): + return Session.query.filter_by(event_id=self.id).count() > 0 + + @property + def has_speakers(self): + return Speaker.query.filter_by(event_id=self.id).count() > 0 + + @event.listens_for(Event, 'after_update') @event.listens_for(Event, 'after_insert')