32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
"""
|
|
Custom Flask CLI commands.
|
|
"""
|
|
|
|
import click
|
|
from flask.cli import with_appcontext
|
|
from app.services.work_hours_service import calculate_and_store_real_work_hours
|
|
from app import db # Import db if direct session manipulation is needed, or rely on app context
|
|
from flask import current_app
|
|
|
|
@click.command("process-real-hours")
|
|
@with_appcontext
|
|
def process_real_hours_command():
|
|
"""
|
|
Manually triggers the calculation and storage of real work hours.
|
|
This processes WorkEvents and updates the UserRealWorkSummary table.
|
|
Useful for initial data backfilling, testing, or ad-hoc runs.
|
|
"""
|
|
current_app.logger.info("Manual trigger for process-real-hours command received.")
|
|
try:
|
|
calculate_and_store_real_work_hours(current_app)
|
|
current_app.logger.info("process-real-hours command finished successfully.")
|
|
except Exception as e:
|
|
current_app.logger.error(f"Error during process-real-hours command: {e}", exc_info=True)
|
|
click.echo(f"An error occurred: {e}")
|
|
|
|
def register_cli_commands(app):
|
|
"""
|
|
Registers custom CLI commands with the Flask application.
|
|
"""
|
|
app.cli.add_command(process_real_hours_command)
|
|
app.logger.info("Registered custom CLI commands.") |