"""src URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, re_path, register_converter, include
from django.conf.urls.static import static
from django.conf import settings
from . import views
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.views.static import serve

class SeriesPathConverter:
    regex = '(sources|studies|proceedings|textbooks)'

    def to_python(self, value):
        return value

    def to_url(self, value):
        return value

register_converter( SeriesPathConverter, "series" )

urlpatterns = \
    [
        path( 'admin/', admin.site.urls ),
        path(
            '<series:series>/<int:publication_nr>/index.html',
            views.publication
        ),
        path(
            '<series:series>/<int:publication_nr>/<int:chapter_nr>/index.html',
            views.chapter
        ),
    ]

# django cms:
urlpatterns += \
    [
        re_path(r'^', include('cms.urls')),
    ]


# This is only needed when using runserver.
if settings.DEBUG:
    urlpatterns = [
        re_path(r'^media/(?P<path>.*)$', serve,
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        ] + staticfiles_urlpatterns() + urlpatterns