from streamlit_calendar import calendar import streamlit as st from datetime import datetime from zoneinfo import ZoneInfo from data.solicitar_data import (get_event) import pandas as pd import json from pandasql import sqldf from auth import (get_id_cliente_reciclador) import url64 st.set_page_config(page_title="Lista de recolecciones", page_icon="📆", layout="wide") query_params = st.experimental_get_query_params() auth_token = url64.decode(query_params.get("t", [""])[0]) id_clientereciclador = None if query_params.get("demo", [None])[0] == "true": id_clientereciclador = 2 else: raw_token = query_params.get("t", [None])[0] if raw_token is not None: # Get user id from token id_clientereciclador = get_id_cliente_reciclador(raw_token) if id_clientereciclador is None: st.write("🔒 Parece que no tienes permiso para ver esto.") else: st.title("Lista de Recolección 🚚 📆") st.markdown('### © Blau tecnología para residuos | blaucorp.com ', unsafe_allow_html=True) data = get_event(id_clientereciclador) now = datetime.now(ZoneInfo('America/Mexico_City')) mode = st.selectbox( "Modo de calendario:", ( "Vista por dia y semana", "Vista de lista", "Vista Mensual", ) ) st.markdown('Significado de colores: Completado , Pendiente , Servicio con incidencia, Servicio Cancelado ', unsafe_allow_html=True ) calendar_options = { "editable": "false", "locale": "es", "firstDay": 1 } if mode == "Vista por dia y semana": calendar_options = { "editable": "false", "headerToolbar": { "left": "today prev,next", "center": "title", "right": "dayGridDay,dayGridWeek", }, "navLinks": "true", "initialDate": str(now), "initialView": "dayGridWeek", "locale": "es", "firstDay": 1 } elif mode == "Vista de lista": calendar_options = { "editable": "false", "navLinks": "false", "initialDate": str(now), "initialView": "listDay", "locale": "es", "firstDay": 1 } elif mode == "Vista Mensual": calendar_options = { "editable": "false", "navLinks": "true", "initialView": "multiMonthYear", "locale": "es", "firstDay": 1 } data_json = json.loads(data.to_json(orient='records', date_format='iso')) state = calendar( events=st.session_state.get("events", data_json), options=calendar_options, key=mode ) #Show the log of the click #st.write(state)