Skip to content
Commits on Source (5)
......@@ -50,11 +50,8 @@ class SelfRegisteredSubjectCreateView(CreateView):
_('There have been errors while trying to send the confirmation mail.'),
)
return super().form_invalid(form, *args)
return super().form_valid(form, *args)
class SelfRegisteredSubjectCreatedView(TemplateView):
template_name = 'main/selfregisteredsubject_created.html'
form.save()
return self.response_class(self.request, 'main/selfregisteredsubject_created.html')
class SelfRegisteredSubjectConfirmView(TemplateView):
......@@ -72,19 +69,16 @@ class SelfRegisteredSubjectConfirmView(TemplateView):
class SelfRegisteredSubjectDeleteView(DeleteView):
model = SelfRegisteredSubject
template_name = 'main/selfregisteredsubject_delete.html'
def get_object(self):
return get_object_or_404(
SelfRegisteredSubject, verification_token=self.kwargs.get('token'), confirmed=False
)
def get_success_url(self):
return reverse('subject-deleted')
class SelfRegisteredSubjectDeletedView(TemplateView):
template_name = 'main/selfregisteredsubject_deleted.html'
def delete(self, request, *args, **kwargs):
subject = self.get_object()
subject.delete()
return self.response_class(request, 'main/selfregisteredsubject_deleted.html')
@method_decorator(csrf_exempt, 'dispatch')
......
......@@ -73,7 +73,7 @@ class TestSelfRegistrationDeleteView(TestCase):
)
url = '/delete/{}/'.format(subject.verification_token)
response = self.client.post(url)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.status_code, 200)
self.assertFalse(SelfRegisteredSubject.objects.filter(pk=subject.pk).exists())
def test_deletion_only_works_for_unconfirmed_subjects(self):
......
......@@ -21,26 +21,22 @@ from django.urls import path
from .main.views import SelfRegisteredSubjectConfirmView
from .main.views import SelfRegisteredSubjectCreateView
from .main.views import SelfRegisteredSubjectCreatedView
from .main.views import SelfRegisteredSubjectDeleteView
from .main.views import SelfRegisteredSubjectDeletedView
from .main.views import SelfRegistrationApiView
urlpatterns = [
path('admin/', admin.site.urls),
path('create/', SelfRegisteredSubjectCreateView.as_view(), name='subject-create'),
path('created/', SelfRegisteredSubjectCreatedView.as_view(), name='subject-created'),
path('', SelfRegisteredSubjectCreateView.as_view(), name='subject-create'),
path(
'confirm/<uuid:token>/',
SelfRegisteredSubjectConfirmView.as_view(),
name='subject-confirmed',
name='subject-confirm',
),
path(
'delete/<uuid:token>/',
SelfRegisteredSubjectDeleteView.as_view(),
name='subject-delete',
),
path('deleted/', SelfRegisteredSubjectDeletedView.as_view(), name='subject-deleted'),
path('api/subjects/', SelfRegistrationApiView.as_view(), name='api-subjects'),
]
......@@ -26,7 +26,7 @@ def send_confirmation_mail(selfregistered_subject, request):
from_email = None
to_email = selfregistered_subject.email
confirmation_link = request.build_absolute_uri(
reverse('subject-confirmed', args=[selfregistered_subject.verification_token])
reverse('subject-confirm', args=[selfregistered_subject.verification_token])
)
delete_link = request.build_absolute_uri(
reverse('subject-delete', args=[selfregistered_subject.verification_token])
......