diff --git a/app/__init__.py b/app/__init__.py index 1a8682f..5912f7d 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -46,6 +46,7 @@ def create_app(config_name='default'): from app.routes.admin import admin_bp from app.routes.extra_files import extra_files_bp from app.routes.moc import bp as moc_bp + from app.routes.backup import backup_bp app.register_blueprint(auth_bp) app.register_blueprint(main_bp) @@ -54,6 +55,7 @@ def create_app(config_name='default'): app.register_blueprint(admin_bp) app.register_blueprint(extra_files_bp) app.register_blueprint(moc_bp) + app.register_blueprint(backup_bp) # Import models to ensure they're registered with SQLAlchemy from app.models.user import User @@ -67,14 +69,23 @@ def create_app(config_name='default'): os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], 'covers'), exist_ok=True) os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], 'thumbnails'), exist_ok=True) os.makedirs(os.path.join(app.config['UPLOAD_FOLDER'], 'extra_files'), exist_ok=True) + + # Create backup directory + os.makedirs(app.config['BACKUP_FOLDER'], exist_ok=True) + + # Register CLI commands (flask backup create/list/verify/restore) + from app.cli import register_cli + register_cli(app) # Context processor for global template variables @app.context_processor def inject_global_vars(): from app.services.brickset_api import BricksetAPI + from datetime import datetime return { 'app_name': 'LEGO Instructions Manager', - 'brickset_available': BricksetAPI.is_configured() + 'brickset_available': BricksetAPI.is_configured(), + 'current_year': datetime.now().year } return app