Move license notice to bottom of sidebar
Browse files- app/utils.py +10 -8
app/utils.py
CHANGED
|
@@ -271,14 +271,6 @@ def sidebar_branding() -> None:
|
|
| 271 |
pass
|
| 272 |
st.rerun()
|
| 273 |
|
| 274 |
-
# ── License notice ──
|
| 275 |
-
st.sidebar.markdown(
|
| 276 |
-
"<p style='font-size:0.7rem; color:#888; margin-top:16px;'>"
|
| 277 |
-
"© 2026 Hengzhe Zhao<br>"
|
| 278 |
-
"AGPL-3.0 & Commercial License</p>",
|
| 279 |
-
unsafe_allow_html=True,
|
| 280 |
-
)
|
| 281 |
-
|
| 282 |
# Developer mode prompt (admin users only)
|
| 283 |
if _is_admin_user() and not st.session_state.get("_dev_mode_active"):
|
| 284 |
import os
|
|
@@ -294,6 +286,16 @@ def sidebar_branding() -> None:
|
|
| 294 |
else:
|
| 295 |
st.error("Incorrect key.")
|
| 296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
|
| 298 |
def require_data() -> None:
|
| 299 |
"""Show a blocking message and stop if no data is loaded."""
|
|
|
|
| 271 |
pass
|
| 272 |
st.rerun()
|
| 273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 274 |
# Developer mode prompt (admin users only)
|
| 275 |
if _is_admin_user() and not st.session_state.get("_dev_mode_active"):
|
| 276 |
import os
|
|
|
|
| 286 |
else:
|
| 287 |
st.error("Incorrect key.")
|
| 288 |
|
| 289 |
+
# ── License notice (always at sidebar bottom) ──
|
| 290 |
+
st.sidebar.divider()
|
| 291 |
+
st.sidebar.markdown(
|
| 292 |
+
"<p style='font-size:0.7rem; color:#888; text-align:center;'>"
|
| 293 |
+
"© 2026 Hengzhe Zhao<br>"
|
| 294 |
+
"Dual-licensed: <a href='https://github.com/WilZ2200/prefero/blob/main/LICENSE' "
|
| 295 |
+
"target='_blank' style='color:#888;'>AGPL-3.0</a> & Commercial</p>",
|
| 296 |
+
unsafe_allow_html=True,
|
| 297 |
+
)
|
| 298 |
+
|
| 299 |
|
| 300 |
def require_data() -> None:
|
| 301 |
"""Show a blocking message and stop if no data is loaded."""
|