from django.conf import settings
from django.conf.urls.i18n import i18n_patterns
from django.urls import include, path, re_path
from django.contrib import admin
from django.views.generic import TemplateView
from django.views.generic.base import RedirectView

from wagtail.admin import urls as wagtailadmin_urls
from wagtail import urls as wagtail_urls
from wagtail.documents import urls as wagtaildocs_urls
from wagtail.contrib.sitemaps.views import sitemap

from search import views as search_views
from home import views as security_views

urlpatterns = [
    path("cms/2fa/", security_views.admin_two_factor, name="admin-2fa"),
    path("cms/2fa/setup/", security_views.admin_two_factor_setup, name="admin-2fa-setup"),
    path("cms/", include(wagtailadmin_urls)),
    path("documents/", include(wagtaildocs_urls)),
    path("sitemap.xml", sitemap),
    path("robots.txt", TemplateView.as_view(template_name="robots.txt", content_type="text/plain")),
    # Ohranimo avtoriteto že indeksiranih naslovov stare spletne strani.
    re_path(r"^predstavitev/?$", RedirectView.as_view(url="/#o-nas", permanent=True)),
    re_path(r"^podrocja-dela/?$", RedirectView.as_view(url="/#podrocja", permanent=True)),
    re_path(r"^odvetniki/?$", RedirectView.as_view(url="/#odvetnik", permanent=True)),
    re_path(r"^kje-se-nahajamo/?$", RedirectView.as_view(url="/#kontakt", permanent=True)),
    re_path(r"^lokacija/?$", RedirectView.as_view(url="/#kontakt", permanent=True)),
    re_path(r"^spletne-povezave/?$", RedirectView.as_view(url="/", permanent=True)),
]

if settings.ENABLE_DJANGO_ADMIN:
    urlpatterns.insert(0, path("django-admin/", admin.site.urls))


if settings.DEBUG:
    from django.conf.urls.static import static
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns

    # Serve static and media files from development server
    urlpatterns += staticfiles_urlpatterns()
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += i18n_patterns(
    path("search/", search_views.search, name="search"),
    # For anything not caught by a more specific rule above, hand over to
    # Wagtail's page serving mechanism. This should be the last pattern in
    # the list:
    path("", include(wagtail_urls)),
    # Alternatively, if you want Wagtail pages to be served from a subpath
    # of your site, rather than the site root:
    #    path("pages/", include(wagtail_urls)),
    prefix_default_language=False,
)
