This commit introduces a new `/print` command that is restricted to authorized users.
The main changes are:
- Created `app/modules/print.py` to house the handler for the new command.
- The handler uses the existing `is_admin` function from `app/permissions.py` to check for authorization.
- Integrated the new command into `app/main.py`.
- Updated `tasks.md` to document the new feature.
- Implements `get_available_slots` to find open time slots.
- Implements `create_event` to schedule new events.
- Uses a service account for server-to-server authentication.
- Adds `GOOGLE_SERVICE_ACCOUNT_FILE` and `CALENDAR_ID` to the configuration.
- Updates `tasks.md` to reflect the completion of the integration.
- Includes error handling for Google Calendar API calls.
- Implements the `admin` module with a system status placeholder.
- Enhances the `onboarding` module to provide a dedicated menu for the `admin` role.
- Refactors the `button` handler in `main.py` to use a scalable, dictionary-based dispatcher for all module integrations.
- Updates `tasks.md` to mark the completion of all Phase 3 modules.
- Implements a multi-step conversational flow for team members to propose activities using `ConversationHandler`.
- Enhances the `aprobaciones` module to allow the owner to approve or reject proposals with inline keyboard buttons.
- Integrates the new conversational and approval workflows into the main application in `app/main.py`.
- Updates `tasks.md` to reflect the completion of the `equipo` and `aprobaciones` modules.
- Implements placeholder logic for the `agenda`, `citas`, `equipo`, `aprobaciones`, and `servicios` modules.
- Integrates all new module functions into the `button` handler in `app/main.py` to make the bot's menus functional.
- Fixes a newline formatting bug in the text responses to ensure they render correctly in Telegram.
- Updates `tasks.md` to reflect the progress on Phase 3.
- Implements the central orchestrator in `app/main.py` using `python-telegram-bot`.
- Integrates the `permissions` module to determine user roles based on chat IDs.
- Implements the `onboarding` module to provide role-based menus with inline keyboards.
- Adds a `CallbackQueryHandler` to handle button presses from the inline keyboards.
- Updates `tasks.md` to reflect the completion of Phase 2.
- Creates the initial project structure for the Talía bot, including the `app` and `app/modules` directories.
- Adds placeholder files for the core application logic, modules, and configuration.
- Includes a `Dockerfile` and `docker-compose.yml` for containerization.
- Adds a `requirements.txt` file with the necessary dependencies.
- Creates a `tasks.md` file to track development progress.