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)