footer + favicon
This commit is contained in:
1 parent
5d30dde316
commit
434793d89e
5 files changed
+48
-1
No files matched your search
@@ -22,7 +22,10 @@ def create_app() -> Flask:
|
|||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_globals() -> dict:
|
def inject_globals() -> dict:
|
||||||
return {"is_admin": is_admin()}
|
return {
|
||||||
|
"app_version": app.config["APP_VERSION"],
|
||||||
|
"is_admin": is_admin(),
|
||||||
|
}
|
||||||
|
|
||||||
app.register_blueprint(public_bp)
|
app.register_blueprint(public_bp)
|
||||||
app.register_blueprint(admin_bp)
|
app.register_blueprint(admin_bp)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ BASE_DIR = Path(__file__).resolve().parent
|
|||||||
DATA_PATH = BASE_DIR / "data" / "entries.csv"
|
DATA_PATH = BASE_DIR / "data" / "entries.csv"
|
||||||
|
|
||||||
ELIGIBLE_MIN_SESSIONS = 3
|
ELIGIBLE_MIN_SESSIONS = 3
|
||||||
|
APP_VERSION = "v1.8.4"
|
||||||
|
|
||||||
|
|
||||||
def load_local_env(env_path: Path) -> None:
|
def load_local_env(env_path: Path) -> None:
|
||||||
@@ -29,6 +30,7 @@ load_local_env(BASE_DIR / ".env")
|
|||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
|
APP_VERSION: str = APP_VERSION
|
||||||
SECRET_KEY: str = os.getenv("SECRET_KEY", "change-this-before-deploying")
|
SECRET_KEY: str = os.getenv("SECRET_KEY", "change-this-before-deploying")
|
||||||
ADMIN_USERNAME: str = os.getenv("ADMIN_USERNAME", "admin")
|
ADMIN_USERNAME: str = os.getenv("ADMIN_USERNAME", "admin")
|
||||||
ADMIN_PASSWORD: str = os.getenv("ADMIN_PASSWORD", "change-me")
|
ADMIN_PASSWORD: str = os.getenv("ADMIN_PASSWORD", "change-me")
|
||||||
|
|||||||
@@ -116,6 +116,37 @@ h1, h2, h3, h4 { margin: 0; }
|
|||||||
padding-right: 28px;
|
padding-right: 28px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.site-footer {
|
||||||
|
margin-top: clamp(44px, 6vw, 76px);
|
||||||
|
padding-top: 18px;
|
||||||
|
border-top: 1px solid var(--divider);
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr auto 1fr;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px 18px;
|
||||||
|
color: var(--faintest);
|
||||||
|
font-size: 12.5px;
|
||||||
|
}
|
||||||
|
.site-footer span {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.site-footer span:nth-child(2) {
|
||||||
|
color: var(--muted);
|
||||||
|
justify-self: center;
|
||||||
|
}
|
||||||
|
.site-footer span:nth-child(3) {
|
||||||
|
justify-self: end;
|
||||||
|
}
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.site-footer {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
justify-items: start;
|
||||||
|
}
|
||||||
|
.site-footer span:nth-child(2),
|
||||||
|
.site-footer span:nth-child(3) {
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ================================================================
|
/* ================================================================
|
||||||
FLASH MESSAGES
|
FLASH MESSAGES
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 26">
|
||||||
|
<rect width="26" height="26" rx="5" fill="#9b8cf0"/>
|
||||||
|
<path d="M13 5.22 20.78 13 13 20.78 5.22 13Z" fill="#0f0f12"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 188 B |
@@ -4,6 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>{% block title %}myboker.org{% endblock %}</title>
|
<title>{% block title %}myboker.org{% endblock %}</title>
|
||||||
|
<link rel="icon" href="{{ url_for('static', filename='favicon.svg') }}" type="image/svg+xml">
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/tokens.css') }}">
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/tokens.css') }}">
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
||||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||||
@@ -47,6 +48,12 @@
|
|||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
|
|
||||||
|
<footer class="site-footer" aria-label="Site footer">
|
||||||
|
<span>© 2026 myboker.org</span>
|
||||||
|
<span>Version {{ app_version }}</span>
|
||||||
|
<span>cedarline.digital</span>
|
||||||
|
</footer>
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in new issue
Block a user