Coverage for ivatar/ivataraccount/urls.py: 100%
20 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 23:13 +0000
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-14 23:13 +0000
1# -*- coding: utf-8 -*-
2"""
3URLs for ivatar.ivataraccount
4"""
5from django.urls import path, re_path
7from django.contrib.auth.views import LogoutView
8from django.contrib.auth.views import (
9 PasswordResetDoneView,
10 PasswordResetConfirmView,
11 PasswordResetCompleteView,
12)
13from django.contrib.auth.views import PasswordChangeView, PasswordChangeDoneView
15from .views import ProfileView, PasswordResetView
16from .views import CreateView, PasswordSetView, AddEmailView
17from .views import RemoveUnconfirmedEmailView, ConfirmEmailView
18from .views import RemoveConfirmedEmailView, AssignPhotoEmailView
19from .views import RemoveUnconfirmedOpenIDView, RemoveConfirmedOpenIDView
20from .views import ImportPhotoView, RawImageView, DeletePhotoView
21from .views import UploadPhotoView, AssignPhotoOpenIDView
22from .views import AddOpenIDView, RedirectOpenIDView, ConfirmOpenIDView
23from .views import AssignBlueskyHandleToEmailView, AssignBlueskyHandleToOpenIdView
24from .views import CropPhotoView
25from .views import UserPreferenceView, UploadLibravatarExportView
26from .views import ResendConfirmationMailView
27from .views import IvatarLoginView
28from .views import DeleteAccountView
29from .views import ExportView
31# Define URL patterns, self documenting
32# To see the fancy, colorful evaluation of these use:
33# ./manager show_urls
34urlpatterns = [ # pylint: disable=invalid-name
35 path("new/", CreateView.as_view(), name="new_account"),
36 path("login/", IvatarLoginView.as_view(), name="login"),
37 path("logout/", LogoutView.as_view(next_page="/"), name="logout"),
38 path(
39 "password_change/",
40 PasswordChangeView.as_view(template_name="password_change.html"),
41 name="password_change",
42 ),
43 path(
44 "password_change/done/",
45 PasswordChangeDoneView.as_view(template_name="password_change_done.html"),
46 name="password_change_done",
47 ),
48 path(
49 "password_reset/",
50 PasswordResetView.as_view(template_name="password_reset.html"),
51 name="password_reset",
52 ),
53 path(
54 "password_reset/done/",
55 PasswordResetDoneView.as_view(template_name="password_reset_submitted.html"),
56 name="password_reset_done",
57 ),
58 path(
59 "reset/<uidb64>/<token>/",
60 PasswordResetConfirmView.as_view(template_name="password_change.html"),
61 name="password_reset_confirm",
62 ),
63 path(
64 "reset/done/",
65 PasswordResetCompleteView.as_view(template_name="password_change_done.html"),
66 name="password_reset_complete",
67 ),
68 path(
69 "export/",
70 ExportView.as_view(),
71 name="export",
72 ),
73 path("delete/", DeleteAccountView.as_view(), name="delete"),
74 path("profile/", ProfileView.as_view(), name="profile"),
75 re_path(
76 "profile/(?P<profile_username>.+)",
77 ProfileView.as_view(),
78 name="profile_with_profile_username",
79 ),
80 path("add_email/", AddEmailView.as_view(), name="add_email"),
81 path("add_openid/", AddOpenIDView.as_view(), name="add_openid"),
82 path("upload_photo/", UploadPhotoView.as_view(), name="upload_photo"),
83 path("password_set/", PasswordSetView.as_view(), name="password_set"),
84 re_path(
85 r"remove_unconfirmed_openid/(?P<openid_id>\d+)",
86 RemoveUnconfirmedOpenIDView.as_view(),
87 name="remove_unconfirmed_openid",
88 ),
89 re_path(
90 r"remove_confirmed_openid/(?P<openid_id>\d+)",
91 RemoveConfirmedOpenIDView.as_view(),
92 name="remove_confirmed_openid",
93 ),
94 re_path(
95 r"openid_redirection/(?P<openid_id>\d+)",
96 RedirectOpenIDView.as_view(),
97 name="openid_redirection",
98 ),
99 re_path(
100 r"confirm_openid/(?P<openid_id>\w+)",
101 ConfirmOpenIDView.as_view(),
102 name="confirm_openid",
103 ),
104 re_path(
105 r"confirm_email/(?P<verification_key>\w+)",
106 ConfirmEmailView.as_view(),
107 name="confirm_email",
108 ),
109 re_path(
110 r"remove_unconfirmed_email/(?P<email_id>\d+)",
111 RemoveUnconfirmedEmailView.as_view(),
112 name="remove_unconfirmed_email",
113 ),
114 re_path(
115 r"remove_confirmed_email/(?P<email_id>\d+)",
116 RemoveConfirmedEmailView.as_view(),
117 name="remove_confirmed_email",
118 ),
119 re_path(
120 r"assign_photo_email/(?P<email_id>\d+)",
121 AssignPhotoEmailView.as_view(),
122 name="assign_photo_email",
123 ),
124 re_path(
125 r"assign_photo_openid/(?P<openid_id>\d+)",
126 AssignPhotoOpenIDView.as_view(),
127 name="assign_photo_openid",
128 ),
129 re_path(
130 r"assign_bluesky_handle_to_email/(?P<email_id>\d+)",
131 AssignBlueskyHandleToEmailView.as_view(),
132 name="assign_bluesky_handle_to_email",
133 ),
134 re_path(
135 r"assign_bluesky_handle_to_openid/(?P<open_id>\d+)",
136 AssignBlueskyHandleToOpenIdView.as_view(),
137 name="assign_bluesky_handle_to_openid",
138 ),
139 re_path(r"import_photo/$", ImportPhotoView.as_view(), name="import_photo"),
140 re_path(
141 r"import_photo/(?P<email_addr>[\w.+-]+@[\w.]+.[\w.]+)",
142 ImportPhotoView.as_view(),
143 name="import_photo",
144 ),
145 re_path(
146 r"import_photo/(?P<email_id>\d+)",
147 ImportPhotoView.as_view(),
148 name="import_photo",
149 ),
150 re_path(
151 r"delete_photo/(?P<pk>\d+)", DeletePhotoView.as_view(), name="delete_photo"
152 ),
153 re_path(r"raw_image/(?P<pk>\d+)", RawImageView.as_view(), name="raw_image"),
154 re_path(r"crop_photo/(?P<pk>\d+)", CropPhotoView.as_view(), name="crop_photo"),
155 re_path(r"pref/$", UserPreferenceView.as_view(), name="user_preference"),
156 re_path(
157 r"upload_export/$", UploadLibravatarExportView.as_view(), name="upload_export"
158 ),
159 re_path(
160 r"upload_export/(?P<save>save)$",
161 UploadLibravatarExportView.as_view(),
162 name="upload_export",
163 ),
164 re_path(
165 r"resend_confirmation_mail/(?P<email_id>\d+)",
166 ResendConfirmationMailView.as_view(),
167 name="resend_confirmation_mail",
168 ),
169]