From 3f88f17e66101401b1bb89c8069ea9155c422d1e Mon Sep 17 00:00:00 2001 From: imimouni Date: Sat, 20 Feb 2021 23:37:07 +0200 Subject: [PATCH 1/3] fix: event backend and frontend creation --- app/database/models.py | 2 +- app/internal/event.py | 76 ++++++++++++------- app/routers/event.py | 6 +- .../event/edit_event_details_tab.html | 19 +++-- 4 files changed, 63 insertions(+), 40 deletions(-) diff --git a/app/database/models.py b/app/database/models.py index f06f6d54..b6f63bde 100644 --- a/app/database/models.py +++ b/app/database/models.py @@ -93,7 +93,7 @@ class Event(Base): content = Column(String) location = Column(String, nullable=True) is_google_event = Column(Boolean, default=False) - vc_link = Column(String) + vc_link = Column(String, nullable=True) color = Column(String, nullable=True) all_day = Column(Boolean, default=False) invitees = Column(String) diff --git a/app/internal/event.py b/app/internal/event.py index 5207761e..f0946a59 100644 --- a/app/internal/event.py +++ b/app/internal/event.py @@ -9,46 +9,56 @@ from app.database.models import Event -ZOOM_REGEX = re.compile(r'https://.*?\.zoom.us/[a-z]/.[^.,\b\s]+') +ZOOM_REGEX = re.compile(r"https://.*?\.zoom.us/[a-z]/.[^.,\b\s]+") def raise_if_zoom_link_invalid(vc_link): if ZOOM_REGEX.search(vc_link) is None: - raise HTTPException(status_code=HTTP_400_BAD_REQUEST, - detail="VC type with no valid zoom link") + raise HTTPException( + status_code=HTTP_400_BAD_REQUEST, + detail="VC type with no valid zoom link", + ) def get_invited_emails(invited_from_form: str) -> List[str]: invited_emails = [] - for invited_email in invited_from_form.split(','): - invited_email = invited_email.strip() - try: - validate_email(invited_email, check_deliverability=False) - except EmailSyntaxError: - logging.exception(f'{invited_email} is not a valid email address') - continue - invited_emails.append(invited_email) + if not invited_from_form: + invited_emails.append("") + else: + for invited_email in invited_from_form.split(","): + invited_email = invited_email.strip() + try: + validate_email(invited_email, check_deliverability=False) + except EmailSyntaxError: + logging.exception( + f"{invited_email} is not a valid email address", + ) + continue + invited_emails.append(invited_email) return invited_emails -def get_uninvited_regular_emails(session: Session, - owner_id: int, - title: str, - invited_emails: List[str]) -> Set[str]: +def get_uninvited_regular_emails( + session: Session, + owner_id: int, + title: str, + invited_emails: List[str], +) -> Set[str]: invitees_query = session.query(Event).with_entities(Event.invitees) - similar_events_invitees = invitees_query.filter(Event.owner_id == owner_id, - Event.title == title).all() + similar_events_invitees = invitees_query.filter( + Event.owner_id == owner_id, + Event.title == title, + ).all() regular_invitees = set() for record in similar_events_invitees: if record: - regular_invitees.update(record[0].split(',')) + regular_invitees.update(record[0].split(",")) return regular_invitees - set(invited_emails) -def check_diffs(checked_event: Event, - all_events: List[Event]): +def check_diffs(checked_event: Event, all_events: List[Event]): """Returns the repeated events and the week difference""" diffs = [] for event in all_events: @@ -65,22 +75,30 @@ def check_diffs(checked_event: Event, def find_pattern(session, event): - all_events_with_same_name = session.query(Event).filter( - Event.owner_id == event.owner_id, Event.title == event.title).all() + all_events_with_same_name = ( + session.query(Event) + .filter(Event.owner_id == event.owner_id, Event.title == event.title) + .all() + ) return check_diffs(event, all_events_with_same_name) -def get_messages(session: Session, - event: Event, - uninvited_contacts: Set[str]) -> List[str]: +def get_messages( + session: Session, + event: Event, + uninvited_contacts: Set[str], +) -> List[str]: messages = [] if uninvited_contacts: - messages.append(f'Forgot to invite ' - f'{", ".join(uninvited_contacts)} maybe?') + messages.append( + f"Forgot to invite " f'{", ".join(uninvited_contacts)} maybe?', + ) pattern = find_pattern(session, event) for weeks_diff in pattern: - messages.append(f'Same event happened {weeks_diff} weeks before too. ' - f'Want to create another one {weeks_diff} after too?') + messages.append( + f"Same event happened {weeks_diff} weeks before too. " + f"Want to create another one {weeks_diff} after too?", + ) return messages diff --git a/app/routers/event.py b/app/routers/event.py index a8e290bc..647e124a 100644 --- a/app/routers/event.py +++ b/app/routers/event.py @@ -72,7 +72,7 @@ async def create_event_api(event: EventModel, session=Depends(get_db)): db=session, title=event.title, start=event.start, - end=event.start, + end=event.end, content=event.content, owner_id=event.owner_id, location=event.location, @@ -117,7 +117,7 @@ async def create_new_event( location = data["location"] all_day = data["event_type"] and data["event_type"] == "on" - vc_link = data["vc_link"] + vc_link = data.get("vc_link") category_id = data.get("category_id") privacy = data["privacy"] privacy_kinds = [kind.name for kind in PrivacyKinds] @@ -132,7 +132,7 @@ async def create_new_event( invited_emails, ) - if vc_link is not None: + if vc_link: raise_if_zoom_link_invalid(vc_link) event = create_event( diff --git a/app/templates/partials/calendar/event/edit_event_details_tab.html b/app/templates/partials/calendar/event/edit_event_details_tab.html index 50a35296..a5e17fa5 100644 --- a/app/templates/partials/calendar/event/edit_event_details_tab.html +++ b/app/templates/partials/calendar/event/edit_event_details_tab.html @@ -40,13 +40,18 @@
- - - + + +
+ +
+ + +
+ +
+ +
From 2e027f96e03c29a2706a1aa4cc67d46ea6e4b159 Mon Sep 17 00:00:00 2001 From: imimouni Date: Sun, 21 Feb 2021 06:52:54 +0200 Subject: [PATCH 2/3] move all-day to right bottom row-end --- .../calendar/event/edit_event_details_tab.html | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/templates/partials/calendar/event/edit_event_details_tab.html b/app/templates/partials/calendar/event/edit_event_details_tab.html index a5e17fa5..7d538bd8 100644 --- a/app/templates/partials/calendar/event/edit_event_details_tab.html +++ b/app/templates/partials/calendar/event/edit_event_details_tab.html @@ -58,14 +58,6 @@
-
- - -
-
@@ -77,6 +69,12 @@
+ + +