diff --git a/app/__pycache__/app.cpython-314.pyc b/app/__pycache__/app.cpython-314.pyc index eb9c683..8987ced 100644 Binary files a/app/__pycache__/app.cpython-314.pyc and b/app/__pycache__/app.cpython-314.pyc differ diff --git a/app/app.py b/app/app.py index 2ca5b70..695cbfc 100755 --- a/app/app.py +++ b/app/app.py @@ -43,6 +43,9 @@ def get_puzzle_numbers(cursor): def get_nav_numbers(puzzle_numbers, center): return [number for number in puzzle_numbers if center - 2 <= number <= center + 2] +def should_show_zero_link(center): + return center <= 2 + def get_puzzle_summaries(cursor): rows = cursor.execute( "SELECT number, author, creation_date FROM puzzle ORDER BY number" @@ -107,6 +110,7 @@ def render_puzzle(puzzle_number): author=author, creation_date=creation_date, nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(puzzle_number), current_puzzle=puzzle_number, ) @@ -127,7 +131,12 @@ def all_puzzles(): nav_numbers = get_nav_numbers(puzzle_numbers, nav_center) puzzles = get_all_puzzle_rows(cursor) - return render_template('all.html', nav_numbers=nav_numbers, puzzles=puzzles) + return render_template( + 'all.html', + nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(nav_center), + puzzles=puzzles, + ) @app.route('/new', methods=['GET', 'POST']) def new_puzzle(): @@ -139,7 +148,12 @@ def new_puzzle(): default_creation_date = today_display_date() if request.method == 'GET': - return render_template('new.html', creation_date=default_creation_date, nav_numbers=nav_numbers) + return render_template( + 'new.html', + creation_date=default_creation_date, + nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(nav_center), + ) author = request.form.get("author", "").strip() raw_creation_date = request.form.get("creation_date", "").strip() or default_creation_date @@ -160,6 +174,7 @@ def new_puzzle(): error="Author is required.", creation_date=raw_creation_date, nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(nav_center), form=request.form ), 400 @@ -169,6 +184,7 @@ def new_puzzle(): error='Creation date must be in the format "Day Month Year" (example: 15 March 2026).', creation_date=raw_creation_date, nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(nav_center), form=request.form ), 400 @@ -178,6 +194,7 @@ def new_puzzle(): error="Each category needs a name and exactly 4 words.", creation_date=raw_creation_date, nav_numbers=nav_numbers, + show_zero_link=should_show_zero_link(nav_center), form=request.form ), 400 @@ -198,6 +215,7 @@ def new_puzzle(): success=f"Saved puzzle #{number}.", creation_date=creation_date, nav_numbers=get_nav_numbers(puzzle_numbers + [number], number), + show_zero_link=should_show_zero_link(number), ) @app.route('/delete', methods=['GET', 'POST']) @@ -228,6 +246,7 @@ def delete_puzzle(): 'delete.html', puzzles=puzzles, nav_numbers=get_nav_numbers([puzzle["number"] for puzzle in puzzles], puzzles[-1]["number"] if puzzles else 0), + show_zero_link=should_show_zero_link(puzzles[-1]["number"] if puzzles else 0), deleted=request.args.get("deleted"), error=request.args.get("error"), ) diff --git a/app/templates/all.html b/app/templates/all.html index 02f254e..625231e 100644 --- a/app/templates/all.html +++ b/app/templates/all.html @@ -11,7 +11,9 @@