Files
crochet/crochet/urls.py
T
pablo 73109a268b
CI / test (push) Successful in 58s
CI / build (push) Successful in 29s
feat: improved UX
2026-07-20 11:21:29 +02:00

60 lines
2.8 KiB
Python

from django.contrib.auth import views as auth_views
from django.urls import path
from django.utils.translation import gettext_lazy as _
from crochet.forms import StyledAuthenticationForm
from crochet.views import (
AccountEmailUpdateView,
AccountHomeView,
AccountPasswordChangeView,
AccountSettingsView,
HomeView,
PatternCoverImageUploadView,
PatternCreateView,
PatternDeleteView,
PatternDetailView,
PatternEditView,
PatternImageUploadView,
PatternPdfView,
PatternSaveView,
RegisterView,
)
app_name = 'crochet'
# Cada ruta entera es una única cadena traducible (ver crochet/locale/), no
# la concatenación de un prefijo traducido con literales sueltos: Django solo
# recompila la regex de la ruta por idioma (ver LocaleRegexRouteDescriptor)
# si `route` sigue siendo el propio objeto perezoso de gettext_lazy al llegar
# a path(); en cuanto se concatena con '+' deja de serlo (se evalúa entero
# de golpe, con el idioma activo en ese momento, y queda fijo para siempre).
# Con esto, con i18n_patterns (ver config/urls.py) la URL sale traducida
# entera según el prefijo de idioma, p.ej. /en/pattern/<uuid>/edit/ frente a
# /es/patron/<uuid>/editar/.
urlpatterns = [
path('', name='home', view=HomeView.as_view()),
path(_('pattern/<uuid:uuid>/'), name='pattern_detail', view=PatternDetailView.as_view()),
path(_('pattern/<uuid:uuid>/edit/'), name='pattern_edit', view=PatternEditView.as_view()),
path(_('pattern/<uuid:uuid>/save/'), name='pattern_save', view=PatternSaveView.as_view()),
path(_('pattern/<uuid:uuid>/images/'), name='pattern_image_upload', view=PatternImageUploadView.as_view()),
path(_('pattern/<uuid:uuid>/cover/'), name='pattern_cover_upload', view=PatternCoverImageUploadView.as_view()),
path(_('pattern/<uuid:uuid>/pdf/'), name='pattern_pdf', view=PatternPdfView.as_view()),
path(_('pattern/<uuid:uuid>/delete/'), name='pattern_delete', view=PatternDeleteView.as_view()),
path(_('pattern/new/'), name='pattern_create', view=PatternCreateView.as_view()),
path(_('account/'), name='account_home', view=AccountHomeView.as_view()),
path(_('account/settings/'), name='account_settings', view=AccountSettingsView.as_view()),
path(_('account/settings/email/'), name='account_settings_email', view=AccountEmailUpdateView.as_view()),
path(
_('account/settings/password/'), name='account_settings_password',
view=AccountPasswordChangeView.as_view(),
),
path(_('account/register/'), name='register', view=RegisterView.as_view()),
path(
_('account/login/'), name='login',
view=auth_views.LoginView.as_view(
template_name='registration/login.html', authentication_form=StyledAuthenticationForm,
),
),
path(_('account/logout/'), name='logout', view=auth_views.LogoutView.as_view()),
]