12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- from nicegui import ui
- def main_demo() -> None:
- from datetime import datetime
- def format_date(date_str):
- # Parse the date string and format it consistently
- parsed_date = datetime.fromisoformat(date_str)
- return parsed_date.strftime('%Y-%m-%d %H:%M:%S')
- # def handle_calendar_click(event):
- # try:
- # start = format_date(event.args['info']['event']['start'])
- # end = format_date(event.args['info']['event']['end'])
- # title = event.args['info']['event']['title']
- # except Exception as e:
- # title = None
- # if title:
- # show_event_card(title, start, end)
- # def show_event_card(title, start, end):
- # card = ui.card().style("background-color: #f0f0f0; position: absolute; z-index: 10000; top: 50%; left: 50%; transform: translate(-50%, -50%);")
- # with card:
- # ui.label(title)
- # ui.button("Click me to remove the event!", on_click=lambda: (fullcal.remove_event(title=title.strip(), start=start, end=end), card.delete()))
- # ui.button("Close", on_click=lambda e: card.delete())
- # def add_event(fullcal):
- ui.add_head_html("<script src='https://cdn.jsdelivr.net/npm/fullcalendar@6.1.9/index.global.min.js'></script>")
- options = {
- "initialView": 'timeGridWeek',
- "slotMinTime": "05:00:00",
- "slotMaxTime": "22:00:00",
- "allDaySlot": False,
- "timeZone": 'local',
- "height": 'auto',
- "width": 'auto',
- "events": []
- }
- global fullcal
- # button1 = ui.button("Click me to add event", on_click=lambda: add_event(fullcal))
- # button = ui.button("Print out all the events", on_click=lambda: ui.notify(fullcal.get_events()))
- fullcal = ui.fullcalendar(options) # on_click=lambda e: handle_calendar_click(e)
- fullcal.addevent("Math 1b03", format_date("2023-11-18 09:30:00"), format_date("2023-11-18 10:20:00"), color="red")
- # main_demo()
- # ui.run()
|