from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls.i18n import i18n_patterns
from django.contrib.sitemaps.views import sitemap
from apps.core.sitemaps import StaticViewSitemap
from apps.projects.sitemaps import ProjectSitemap
from apps.news.sitemaps import NewsSitemap

sitemaps = {
    'static': StaticViewSitemap,
    'projects': ProjectSitemap,
    'news': NewsSitemap,
}

urlpatterns = [
    path('i18n/', include('django.conf.urls.i18n')),
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='sitemap'),
]

urlpatterns += i18n_patterns(
    path('admin/', admin.site.urls),
    path('ckeditor/', include('ckeditor_uploader.urls')),
    path('accounts/', include('apps.accounts.urls')),
    path('newsletter/', include('apps.newsletter.urls')),
    path('reports/', include('apps.reports.urls')),
    path('', include('apps.core.urls')),
    path('', include('apps.corporate.urls')),
    path('projects/', include('apps.projects.urls')),
    path('news/', include('apps.news.urls')),
    path('gallery/', include('apps.gallery.urls')),
    path('careers/', include('apps.careers.urls')),
    path('tenders/', include('apps.tenders.urls')),
    prefix_default_language=False,
)

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
else:
    # Serve uploaded media through Django when DEBUG is off (Passenger has no /media alias)
    from django.urls import re_path
    from django.views.static import serve as _serve_media
    urlpatterns += [re_path(r'^media/(?P<path>.*)$', _serve_media, {'document_root': settings.MEDIA_ROOT})]

handler404 = 'django.views.defaults.page_not_found'