Files @ 5f1fc54d6e8e
Branch filter:

Location: symposion_app/pinaxcon/urls.py

bsturmfels
Update year to 2024

Date and location pending confirmation.
from account.forms import LoginUsernameForm
from account.views import LoginView
import debug_toolbar
from django.conf import settings
from django.conf.urls.static import static
from django.core.exceptions import ValidationError
from django.views.generic import RedirectView
from django.views.generic import TemplateView
from django.urls import include, path
from django.contrib.flatpages.views import flatpage

from django.contrib import admin

import symposion.views


class CustomLoginForm(LoginUsernameForm):
    def clean(self):
        # To use account.forms.LoginEmailForm, we need to enforce unique
        # emails. Since we probably already have duplicate emails in the system,
        # we'll defer that to next year.
        try:
            super().clean()
        except ValidationError as e:
            if '@' in self.cleaned_data['username']:
                raise ValidationError(
                    f'{e.message} Please login with your username, rather than your email.'
                )
            else:
                raise


urlpatterns = [
    # Trialling homepage via flatpages.
    # path('', TemplateView.as_view(template_name="homepage.html")),

    path('saml2/', include('djangosaml2.urls')),
    path('admin/', admin.site.urls),

    path("speaker/", include("symposion.speakers.urls")),
    path("proposals/", include("symposion.proposals.urls")),
    path("reviews/", include("symposion.reviews.urls")),
    path("schedule/", include("symposion.schedule.urls")),
    path("conference/", include("symposion.conference.urls")),

    path("teams/", include("symposion.teams.urls")),
    path('raffle/', include("pinaxcon.raffle.urls")),

    path("account/login/", LoginView.as_view(form_class=CustomLoginForm, template_name='account/login.html'), name="account_login"),
    path("account/", include("account.urls")),

    # Required by registrasion
    path('tickets/payments/', include('registripe.urls')),
    path('tickets/', include('registrasion.urls')),
    path('nested_admin/', include('nested_admin.urls')),
    path('checkin/', include('regidesk.urls')),
    path('pages/', include('django.contrib.flatpages.urls')),

    path('dashboard/', symposion.views.dashboard, name="dashboard"),
    path('boardingpass', RedirectView.as_view(pattern_name="regidesk:boardingpass")),

    # Debug Toolbar. Always include to ensure tests work.
    path('__debug__/', include(debug_toolbar.urls)),
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)