fix 0 link eligibility
This commit is contained in:
parent
63f2ccebbf
commit
c5280e3828
Binary file not shown.
23
app/app.py
23
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"),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
<body>
|
||||
<nav class="header-links">
|
||||
<a href="/all" class="active">all</a>
|
||||
{% if show_zero_link %}
|
||||
<a href="/0">0</a>
|
||||
{% endif %}
|
||||
{% for number in nav_numbers %}
|
||||
<a href="/{{ number }}">{{ number }}</a>
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
<body>
|
||||
<nav class="header-links">
|
||||
<a href="/all">all</a>
|
||||
{% if show_zero_link %}
|
||||
<a href="/0">0</a>
|
||||
{% endif %}
|
||||
{% for number in nav_numbers %}
|
||||
<a href="/{{ number }}">{{ number }}</a>
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
<body>
|
||||
<nav class="header-links">
|
||||
<a href="/all">all</a>
|
||||
{% if show_zero_link %}
|
||||
<a href="/0" class="{{ 'active' if current_puzzle == 0 else '' }}">0</a>
|
||||
{% endif %}
|
||||
{% for number in nav_numbers %}
|
||||
<a href="/{{ number }}" class="{{ 'active' if current_puzzle == number else '' }}">{{ number }}</a>
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
<body>
|
||||
<nav class="header-links">
|
||||
<a href="/all">all</a>
|
||||
{% if show_zero_link %}
|
||||
<a href="/0">0</a>
|
||||
{% endif %}
|
||||
{% for number in nav_numbers %}
|
||||
<a href="/{{ number }}">{{ number }}</a>
|
||||
{% endfor %}
|
||||
|
|
|
|||
Loading…
Reference in New Issue