mirror of
https://github.com/marcogll/telegram_new_socias.git
synced 2026-01-13 13:15:16 +00:00
feat: Implementar flujo de conversación /horario
Se ha implementado un nuevo flujo de conversación para que los usuarios puedan definir su horario de trabajo a través del comando . Cambios: 1. **Nuevo **: Se ha añadido un nuevo archivo JSON que define las preguntas y los estados de la conversación para la definición de horarios. 2. **Actualización de **: Se ha añadido el comando a la lista de comandos del bot para que sea visible en el menú de Telegram. El existente carga dinámicamente este nuevo flujo, haciéndolo disponible para los usuarios sin necesidad de cambios adicionales en la lógica principal del bot.
This commit is contained in:
115
conv-flows/horario.json
Normal file
115
conv-flows/horario.json
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
{
|
||||||
|
"flow_name": "horario",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"state": 0,
|
||||||
|
"variable": "INTRO_READ",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "ANTES DE DEFINIR TUS HORARIOS\n\nLee con atención:\n\n• Estos horarios se usarán para control de asistencia y reportes\n• Selecciona únicamente los botones disponibles\n• El sistema convertirá automáticamente a formato 24 hrs\n\nCuando estés listo, continúa.",
|
||||||
|
"options": ["Continuar"],
|
||||||
|
"next_step": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 1,
|
||||||
|
"variable": "SHORT_NAME",
|
||||||
|
"type": "text",
|
||||||
|
"question": "¿Cómo te dicen normalmente?",
|
||||||
|
"next_step": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 2,
|
||||||
|
"variable": "MONDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Lunes · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 3,
|
||||||
|
"variable": "MONDAY_OUT",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Lunes · Hora de salida",
|
||||||
|
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
|
||||||
|
"next_step": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 4,
|
||||||
|
"variable": "TUESDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Martes · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 5,
|
||||||
|
"variable": "TUESDAY_OUT",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Martes · Hora de salida",
|
||||||
|
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
|
||||||
|
"next_step": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 6,
|
||||||
|
"variable": "WEDNESDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Miércoles · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 7,
|
||||||
|
"variable": "WEDNESDAY_OUT",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Miércoles · Hora de salida",
|
||||||
|
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
|
||||||
|
"next_step": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 8,
|
||||||
|
"variable": "THURSDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Jueves · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 9,
|
||||||
|
"variable": "THURSDAY_OUT",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Jueves · Hora de salida",
|
||||||
|
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
|
||||||
|
"next_step": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 10,
|
||||||
|
"variable": "FRIDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Viernes · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 11,
|
||||||
|
"variable": "FRIDAY_OUT",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Viernes · Hora de salida",
|
||||||
|
"options": ["4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM"],
|
||||||
|
"next_step": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 12,
|
||||||
|
"variable": "SATURDAY_IN",
|
||||||
|
"type": "keyboard",
|
||||||
|
"question": "Sábado · Hora de entrada",
|
||||||
|
"options": ["10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM"],
|
||||||
|
"next_step": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"state": 13,
|
||||||
|
"variable": "SATURDAY_OUT",
|
||||||
|
"type": "info",
|
||||||
|
"question": "Sábado · Hora de salida\n\nLa salida del sábado queda registrada automáticamente a las 6:00 PM.",
|
||||||
|
"next_step": -1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
main.py
1
main.py
@@ -89,6 +89,7 @@ async def post_init(application: Application):
|
|||||||
await application.bot.set_my_commands([
|
await application.bot.set_my_commands([
|
||||||
BotCommand("start", "Mostrar menú principal"),
|
BotCommand("start", "Mostrar menú principal"),
|
||||||
# BotCommand("welcome", "Registro de nuevas empleadas"), # Se maneja dinámicamente
|
# BotCommand("welcome", "Registro de nuevas empleadas"), # Se maneja dinámicamente
|
||||||
|
BotCommand("horario", "Definir horario de trabajo"),
|
||||||
BotCommand("vacaciones", "Solicitar vacaciones"),
|
BotCommand("vacaciones", "Solicitar vacaciones"),
|
||||||
BotCommand("permiso", "Solicitar permiso por horas"),
|
BotCommand("permiso", "Solicitar permiso por horas"),
|
||||||
BotCommand("links", "Links útiles"),
|
BotCommand("links", "Links útiles"),
|
||||||
|
|||||||
Reference in New Issue
Block a user