Ben Sturmfels
9408a5c7bf
Also updated login form to prompt you to use your username if you fail to login with what looks like an email address.
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
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)
|