Restructures the admin menu into a primary and secondary menu for better user experience.
The primary menu now shows the most common actions.
The secondary menu contains less frequent admin commands.
Refactors the Vikunja module to be triggered by a menu button instead of a command.
Adds "edit task" functionality to the Vikunja module.
Fixes a bug where the button dispatcher was calling a non-existent function.
This commit introduces a `ConversationHandler` for the `/vik` command, replacing the previous simple command.
The new implementation provides an interactive menu for users with admin permissions to:
- View their tasks from a hardcoded project (ID 1).
- Add new tasks to the same project.
The changes include:
- A new `ConversationHandler` in `app/modules/vikunja.py` to manage the interactive flow.
- Integration of the new handler in `app/main.py`.
- Removal of the old `/vik` command handler.
- A fix in `test_vikunja.py` to correctly load environment variables.
This commit introduces a new `/create_tag` command that initiates a conversational flow to collect user data and generate a Base64-encoded JSON string for NFC tag creation.
- Adds a new module `app/modules/create_tag.py` with a `ConversationHandler` to manage the multi-step data collection.
- Prompts the user for `name`, `num_emp`, `sucursal`, and `telegram_id`.
- Generates a Base64-encoded JSON string from the collected data.
- Integrates the new command into `app/main.py`.
- Implement `llm.py` with OpenAI API integration for smart responses.
- Implement `scheduler.py` to send a daily summary to the bot owner using `python-telegram-bot`'s `JobQueue`.
- Integrate the scheduler into the main application.
- Add `pytz` as a new dependency.
- Update `tasks.md` to mark all tasks as complete.
This commit introduces a new `/print` command that is restricted to authorized users. The command displays non-sensitive configuration details to administrators.
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.
- The command displays the Timezone, Calendar ID, and n8n Webhook URL.
- Integrated the new command into `app/main.py`.
- Updated `tasks.md` to document the new feature.
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.
This commit finalizes Phase 4 of the project by implementing the
LLM and scheduler integrations.
- Implements `get_smart_response` in `app/llm.py` to generate
AI-powered responses using the OpenAI API.
- Implements a daily summary scheduler in `app/scheduler.py` using
the `JobQueue` from `python-telegram-bot` for better integration
with the application's event loop.
- Adds `get_events_for_day` to `app/calendar.py` to fetch daily
events for the summary.
- Integrates the scheduler into the main application loop in
`app/main.py`.
- Improves the date formatting in the daily summary for better
readability.
- Updates `tasks.md` to reflect the completion of Phase 4.
- 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.