diff --git a/agenda/conference.py b/agenda/conference.py index 5f8972f..2e60d6f 100644 --- a/agenda/conference.py +++ b/agenda/conference.py @@ -1,57 +1,28 @@ """Conferences.""" -import dataclasses -import decimal -from datetime import date, datetime - import yaml from .types import Event -@dataclasses.dataclass -class Conference: - """Conference.""" - - name: str - topic: str - location: str - start: date | datetime - end: date | datetime - venue: str | None = None - address: str | None = None - url: str | None = None - accommodation_booked: bool = False - transport_booked: bool = False - going: bool = False - registered: bool = False - speaking: bool = False - online: bool = False - price: decimal.Decimal | None = None - currency: str | None = None - - @property - def display_name(self) -> str: - """Add location if not already in conference name.""" - return ( - self.name - if self.location in self.name - else f"{self.name} ({self.location})" - ) - - def get_list(filepath: str) -> list[Event]: """Read conferences from a YAML file and return a list of Event objects.""" - return [ - Event( + with open(filepath, "r") as f: + data = yaml.safe_load(f) + + events = [] + for conf in data.get("conferences", []): + start_date = conf["start"] + end_date = conf["end"] + + # Skip the conference if it is before the input date. + event = Event( name="conference", - date=conf.start, - end_date=conf.end, - title=f"🎤 {conf.display_name}", - url=conf.url, + date=start_date, + end_date=end_date, + title=f'🎤 {conf["name"]} ({conf["location"]})', + url=conf.get("url"), ) - for conf in ( - Conference(**conf) - for conf in yaml.safe_load(open(filepath, "r"))["conferences"] - ) - ] + events.append(event) + + return events