Skip to content

Final push#26

Merged
ThomasCandille merged 8 commits intomainfrom
develop
Mar 17, 2026
Merged

Final push#26
ThomasCandille merged 8 commits intomainfrom
develop

Conversation

@ThomasCandille
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings March 17, 2026 09:59
@ThomasCandille ThomasCandille merged commit b5121f8 into main Mar 17, 2026
3 checks passed
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the calendar UX (layout + inline event actions), adjusts various French UI labels, and adds backend support to sync accepted events to an admin Google Calendar.

Changes:

  • Frontend: adds custom FullCalendar event rendering with an inline delete button and updates calendar styling (slot height, text truncation).
  • Backend: introduces a Google Calendar sync service and triggers sync when events are accepted/approved.
  • Cleanup/copy: removes some inline comments and updates sidebar/modification labels; removes unused calendar CSS file.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
frontend/src/services/cardScanListener.ts Removes an inline comment around socket initialization.
frontend/src/pages/Calendar/FullCalendar.css Updates timegrid slot height; adds styles for custom event content + delete button; truncation rules.
frontend/src/pages/Calendar/CalendarComponent.css Removes a comment; retains external events + container styling.
frontend/src/pages/Calendar/Calendar.tsx Adds eventContent renderer with delete button; wires deletion via useEventActions; refactors refresh callback.
frontend/src/pages/Calendar/Calendar.css Deletes old calendar stylesheet (now covered elsewhere).
frontend/src/hooks/useModalManager.ts Removes a comment in modal effect section.
frontend/src/components/SidebarWelcome/SidebarWelcome.tsx Updates greeting text (“Bienvenue” → “Bonjour”).
frontend/src/components/SidebarCustomEvent/SidebarCustomEvent.tsx Updates sidebar label for predefined events.
frontend/src/components/SidebarCreateEvent/SidebarCreateEvent.tsx Updates sidebar label for custom event creation.
frontend/src/components/Modification/Modification.tsx Capitalizes/accents form labels.
frontend/src/components/CreateCustomEvent/CreateCustomEvent.tsx Adds simple client-side validation for end time after start; appends creator name to event title; shows error message.
frontend/src/components/CreateCustomEvent/CreateCustomEvent.css Adds styling for the new inline error message.
frontend/src/App.css Removes an inline comment; keeps same layout rule.
backend/services/google_calendar_service.py New service to create events in Google Calendar using refresh-token OAuth.
backend/services/email_service.py Removes docstrings from acceptance/rejection email methods.
backend/routes/users.py Removes some inline comments; keeps scan-expiration logic unchanged.
backend/routes/events.py Calls Google Calendar sync after event acceptance/approval; improves reject flow by checking delete result.
backend/main.py Removes an inline comment on SECRET_KEY.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 314 to +316
if result.data:
# Send notification email to the event creator
sync_event_to_google_calendar(event_data)

Comment on lines +162 to +193
.calendar-event-content {
position: relative;
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
box-sizing: border-box;
padding-right: 14px;
overflow: hidden;
}

.calendar-event-text {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}

.calendar-event-delete {
position: absolute;
top: -5px;
right: -1px;
width: 14px;
height: 14px;
border: none;
background: transparent;
color: #1a1a1a;
font-size: 20px;
line-height: 1;
cursor: pointer;
padding: 0;
}
Comment on lines +16 to +23
def _get_invitee_email() -> str | None:
invitee_email = os.getenv("GOOGLE_CALENDAR_INVITEE_EMAIL", "").strip()
return invitee_email or None


def _build_attendees(event_data: dict) -> list[dict]:
attendees: list[dict] = []
seen: set[str] = set()
Comment on lines 225 to 229
supabase.table("CreaLab_events").update({"accepted": True}).eq("id", event_id).execute()
message = "Événement approuvé avec succès"

sync_event_to_google_calendar(event_data)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants