79 lines
3.6 KiB
Python
79 lines
3.6 KiB
Python
# illustrations/urls.py
|
|
from django.contrib import admin
|
|
from django.urls import path, re_path
|
|
from django.contrib.auth import views as auth_views
|
|
from django.views.generic import TemplateView # NEW: for manifest / service worker / offline
|
|
|
|
from core import views as core_views
|
|
from core import views_user_features as feat_views # NEW
|
|
from core import views_tts
|
|
|
|
urlpatterns = [
|
|
# Core app
|
|
path("", core_views.search_page, name="search"),
|
|
path("search/", core_views.search_page, name="search"),
|
|
|
|
path("entry/new/", core_views.entry_add, name="entry_add"),
|
|
path("entry/<int:entry_id>/", core_views.entry_view, name="entry_view"),
|
|
path("entry/<int:entry_id>/edit/", core_views.entry_edit, name="entry_edit"),
|
|
path("entry/<int:entry_id>/delete/", core_views.entry_delete, name="entry_delete"),
|
|
|
|
path("nav/next/", core_views.nav_next, name="nav_next"),
|
|
path("nav/prev/", core_views.nav_prev, name="nav_prev"),
|
|
|
|
path("stats/", core_views.stats_page, name="stats"),
|
|
|
|
# Tools already in your project
|
|
path("tools/normalize-scripture/", core_views.normalize_scripture, name="normalize_scripture"),
|
|
path("tools/normalize-source/", core_views.normalize_source, name="normalize_source"),
|
|
path("tools/normalize-subjects/", core_views.normalize_subjects, name="normalize_subjects"),
|
|
path("api/tts/<int:entry_id>/", views_tts.api_tts_for_entry, name="api_tts_for_entry"),
|
|
path("settings/delete-all/", core_views.delete_all_entries, name="delete_all_entries"),
|
|
path("tools/import/", core_views.import_wizard, name="import_wizard"),
|
|
path("api/set-highlight-hits/", feat_views.api_set_highlight_hits, name="api_set_highlight_hits"),
|
|
path("tools/announcements/", core_views.announcement_tools, name="announcement_tools"),
|
|
path("tools/login-attempts/", core_views.login_attempts, name="login_attempts"),
|
|
path("announcements/dismiss/<int:pk>/", core_views.dismiss_announcement, name="dismiss_announcement"),
|
|
path("tools/clear-history/", core_views.clear_history, name="clear_history"),
|
|
|
|
# Export/Import/etc (keep what you use)
|
|
path("export/", core_views.export_csv, name="export_csv"),
|
|
# path("import/", core_views.import_wizard, name="import_wizard"), # if you expose it
|
|
|
|
# Auth
|
|
path("login/", core_views.login_view, name="login"),
|
|
path("logout/", auth_views.LogoutView.as_view(next_page="/login/"), name="logout"),
|
|
path('admin/', admin.site.urls),
|
|
|
|
# --- NEW: per-user features APIs ---
|
|
path("api/set-font-size/", feat_views.api_set_font_size, name="api_set_font_size"),
|
|
path("api/get-prefs/", feat_views.api_get_prefs, name="api_get_prefs"),
|
|
path("api/log-search/", feat_views.api_log_search, name="api_log_search"),
|
|
path("api/get-search-history/", feat_views.api_get_search_history, name="api_get_search_history"),
|
|
path("api/log-view/<int:entry_id>/", feat_views.api_log_view, name="api_log_view"),
|
|
path("api/get-recent-views/", feat_views.api_get_recent_views, name="api_get_recent_views"),
|
|
path("settings/", core_views.settings_home, name="settings_home"),
|
|
|
|
# --- NEW (PWA) ---
|
|
re_path(
|
|
r"^manifest\.webmanifest$",
|
|
TemplateView.as_view(
|
|
template_name="pwa/manifest.webmanifest",
|
|
content_type="application/manifest+json",
|
|
),
|
|
name="manifest",
|
|
),
|
|
re_path(
|
|
r"^service-worker\.js$",
|
|
TemplateView.as_view(
|
|
template_name="pwa/service-worker.js",
|
|
content_type="application/javascript",
|
|
),
|
|
name="service_worker",
|
|
),
|
|
path(
|
|
"offline/",
|
|
TemplateView.as_view(template_name="pwa/offline.html"),
|
|
name="offline",
|
|
),
|
|
] |