SSHurtado/ott-timetracker

★ 0Forks 0PythonGitHub ↗Compare

README

ott-timetracker 2.0

Herramienta de línea de comandos para generar el PDF de registro de jornada de la OTT a partir de:

  • periodo y día de inicio,
  • horario base (por CLI o perfil en .env),
  • incidencias (formato compacto o legado),
  • datos fijos de cabecera y firmas (desde .env).

El comando instalado es:

ott-timetracker

Instalación

git clone https://github.com/SSHurtado/ott-timetracker.git
cd ott-timetracker
python3 -m venv .venv
source .venv/bin/activate  # En Windows: .\.venv\Scripts\activate
pip install .

Verifica:

ott-timetracker --help

Configuración (.env)

La herramienta busca .env en el directorio actual (o en OTT_TIMETRACKER_ENV si defines esa variable de entorno).

Puedes crearlo o actualizarlo con asistente interactivo:

ott-timetracker --init-config

En el repo tienes una plantilla con datos ficticios:

.env.example

Claves principales:

  • EMPRESA
  • NOMBRE_TRABAJADOR
  • NIF_TRABAJADOR
  • CENTRO_TRABAJO
  • FIRMA_TRABAJADOR_NOMBRE
  • FIRMA_RESPONSABLE_NOMBRE
  • HORARIO_TRABAJADOR (fallback)
  • PERFIL_ACTIVO
  • HORARIO_PERFIL_<NOMBRE>

Ejemplo de perfiles:

PERFIL_ACTIVO=oficina
HORARIO_PERFIL_OFICINA=09:00-17:00
HORARIO_PERFIL_VERANO=08:00-15:00

Uso rápido

Sin argumentos de periodo, usa el mes actual (MM-YYYY):

ott-timetracker

Modo asistente interactivo (pregunta periodo, incidencias y confirmación final):

ott-timetracker --wizard

Con perfil:

ott-timetracker --perfil verano

Con horario explícito (sobrescribe perfil/.env):

ott-timetracker --horario "08:30-13:45"

Incidencias

Formato compacto (recomendado)

Separador |:

  • TEXTO|DD-DD
  • TEXTO|DD-DD|HH:MM-HH:MM

Ejemplo:

ott-timetracker \
  --periodo 04-2025 \
  --inicio 4 \
  --inc "Vacaciones|10-12" \
  --inc "Reducción|20|08:00-12:00"

Formato legado (compatibilidad)

Sigue disponible:

ott-timetracker \
  --periodo 04-2025 \
  --incidencia "Vacaciones" --dias-incidencia 10-12 \
  --incidencia "Reducción" --dias-incidencia 20-20 --horario-incidencia "08:00-12:00"

Previsualización sin generar PDF

ott-timetracker --dry-run

Muestra por consola:

  • periodo/horario/perfil usados,
  • tramos por día,
  • horas por día,
  • incidencias aplicadas,
  • total mensual previsto.

Salida

El PDF se genera en:

registros/registro_jornada_laboral_<mes><año>.pdf

Recursos en media/

Incluye plantillas PDF actualizadas:

  • registro_jornada_laboral.pdf
  • registro_jornada_laboral_fixed.pdf

Contributors

SSHurtado

Issues