diff --git a/app.py b/app.py index c669e8e..8d70fcb 100644 --- a/app.py +++ b/app.py @@ -17,7 +17,7 @@ from blueprints.data_imports import data_imports_bp from blueprints.users import users_bp from blueprints.sessions import sessions_bp from blueprints.admin_locations import admin_locations_bp -from blueprints.counting import counting_bp # Add this import +from blueprints.counting import counting_bp from utils import login_required # Register Blueprints @@ -25,7 +25,7 @@ app.register_blueprint(data_imports_bp) app.register_blueprint(users_bp) app.register_blueprint(sessions_bp) app.register_blueprint(admin_locations_bp) -app.register_blueprint(counting_bp) # Add this registration +app.register_blueprint(counting_bp) # V1.0: Use environment variable for production, fallback to demo key for development app.secret_key = os.environ.get('SCANLOOK_SECRET_KEY', 'scanlook-demo-key-replace-for-production') @@ -36,7 +36,7 @@ app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=1) # 1. Define the version -APP_VERSION = '0.10.0' +APP_VERSION = '0.11.0' # 2. Inject it into all templates automatically @app.context_processor diff --git a/blueprints/__pycache__/counting.cpython-313.pyc b/blueprints/__pycache__/counting.cpython-313.pyc index d337f5f..07feb82 100644 Binary files a/blueprints/__pycache__/counting.cpython-313.pyc and b/blueprints/__pycache__/counting.cpython-313.pyc differ diff --git a/blueprints/__pycache__/data_imports.cpython-313.pyc b/blueprints/__pycache__/data_imports.cpython-313.pyc index acb87fb..6575814 100644 Binary files a/blueprints/__pycache__/data_imports.cpython-313.pyc and b/blueprints/__pycache__/data_imports.cpython-313.pyc differ diff --git a/blueprints/counting.py b/blueprints/counting.py index 5872f1c..94bb7be 100644 --- a/blueprints/counting.py +++ b/blueprints/counting.py @@ -79,6 +79,9 @@ def start_bin_count(session_id): if not sess: flash('Session not found or archived', 'warning') return redirect(url_for('dashboard')) + if not sess['master_baseline_timestamp']: + flash('Master File not uploaded. Please upload it before starting bins.', 'warning') + return redirect(url_for('counting.my_counts', session_id=session_id)) location_name = request.form.get('location_name', '').strip().upper() @@ -144,6 +147,9 @@ def count_location(session_id, location_count_id): if not sess: flash('Session not found or archived', 'warning') return redirect(url_for('dashboard')) + if not sess['master_baseline_timestamp']: + flash('Master File not uploaded. Please upload it before starting bins.', 'warning') + return redirect(url_for('counting.my_counts', session_id=session_id)) location = query_db(''' SELECT * FROM LocationCounts diff --git a/blueprints/data_imports.py b/blueprints/data_imports.py index fcb802f..8ebd24b 100644 --- a/blueprints/data_imports.py +++ b/blueprints/data_imports.py @@ -152,4 +152,4 @@ def upload_master(session_id): finally: conn.close() - return redirect(url_for('sessions. session_detail', session_id=session_id)) \ No newline at end of file + return redirect(url_for('sessions.session_detail', session_id=session_id)) \ No newline at end of file diff --git a/templates/my_counts.html b/templates/my_counts.html index 5265fde..e6d2b1a 100644 --- a/templates/my_counts.html +++ b/templates/my_counts.html @@ -9,10 +9,19 @@ ← Back to Dashboard

My Active Counts

{{ count_session.session_name }}

+ {% if not count_session.master_baseline_timestamp %} +

Master File not uploaded yet. Please contact an admin before starting bins.

+ {% endif %} + {% if count_session.master_baseline_timestamp %} + {% else %} + + {% endif %}