mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-23 15:33:45 +00:00
New signup form
This commit is contained in:
parent
c2a4b7dd66
commit
71a08a4b19
7 changed files with 186 additions and 0 deletions
0
portail/__init__.py
Normal file
0
portail/__init__.py
Normal file
36
portail/apps.py
Normal file
36
portail/apps.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# -*- mode: python; coding: utf-8 -*-
|
||||||
|
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il
|
||||||
|
# se veut agnostique au réseau considéré, de manière à être installable en
|
||||||
|
# quelques clics.
|
||||||
|
#
|
||||||
|
# Copyright © 2017-2020 Gabriel Détraz
|
||||||
|
# Copyright © 2017-2020 Lara Kermarec
|
||||||
|
# Copyright © 2017-2020 Augustin Lemesle
|
||||||
|
# Copyright © 2017-2020 Hugo Levy--Falk
|
||||||
|
# Copyright © 2017-2020 Jean-Romain Garnier
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
"""
|
||||||
|
This app provides a clean way to make a subscription,
|
||||||
|
to make a captive portal.
|
||||||
|
|
||||||
|
This is only sugar, this does not provide any model.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class PortailConfig(AppConfig):
|
||||||
|
name = 'portail'
|
51
portail/forms.py
Normal file
51
portail/forms.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# -*- mode: python; coding: utf-8 -*-
|
||||||
|
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il
|
||||||
|
# se veut agnostique au réseau considéré, de manière à être installable en
|
||||||
|
# quelques clics.
|
||||||
|
#
|
||||||
|
# Copyright © 2019 Gabriel Détraz
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
from django import forms
|
||||||
|
from django.contrib.auth.forms import UserCreationForm
|
||||||
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
from re2o.widgets import AutocompleteModelWidget
|
||||||
|
from users.models import Adherent
|
||||||
|
|
||||||
|
|
||||||
|
class AdherentForm(UserCreationForm):
|
||||||
|
# Champ permettant d'éviter au maximum les doublons d'utilisateurs
|
||||||
|
former_user_check = forms.BooleanField(
|
||||||
|
label=_("I certify that I have not had an account before."),
|
||||||
|
required=True,
|
||||||
|
help_text=_("If you already have an account, please use it. If your lost access to "
|
||||||
|
"it, please consider using the forgotten password button on the "
|
||||||
|
"login page or contacting support.")
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Adherent
|
||||||
|
fields = ("name", "surname", "pseudo", "email", "telephone", "password1", "password2", "room", "school",
|
||||||
|
"former_user_check",)
|
||||||
|
widgets = {
|
||||||
|
"school": AutocompleteModelWidget(url="/users/school-autocomplete"),
|
||||||
|
"room": AutocompleteModelWidget(
|
||||||
|
url="/topologie/room-autocomplete",
|
||||||
|
attrs={
|
||||||
|
"data-minimum-input-length": 3 # Only trigger autocompletion after 3 characters have been typed
|
||||||
|
},
|
||||||
|
),
|
||||||
|
}
|
17
portail/templates/portail/signup.html
Normal file
17
portail/templates/portail/signup.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load bootstrap3 i18n %}
|
||||||
|
|
||||||
|
{% block custom_js %}
|
||||||
|
{{ form.media }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h3>{% trans "Sign up" %}</h3>
|
||||||
|
<form class="form" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
{% bootstrap_form form %}
|
||||||
|
{% trans "Confirm" as tr_confirm %}
|
||||||
|
{% bootstrap_button tr_confirm button_type="submit" icon='ok' button_class='btn-success' %}
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
3
portail/tests.py
Normal file
3
portail/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
34
portail/urls.py
Normal file
34
portail/urls.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# -*- mode: python; coding: utf-8 -*-
|
||||||
|
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il
|
||||||
|
# se veut agnostique au réseau considéré, de manière à être installable en
|
||||||
|
# quelques clics.
|
||||||
|
#
|
||||||
|
# Copyright © 2019 Gabriel Détraz
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
"""
|
||||||
|
This app provides a clean way to make a subscription,
|
||||||
|
to make a captive portal.
|
||||||
|
|
||||||
|
This is only sugar, this does not provide any model.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.conf.urls import url
|
||||||
|
|
||||||
|
from .views import SignUpView
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
url(r"^signup/$", SignUpView.as_view(), name="signup"),
|
||||||
|
]
|
45
portail/views.py
Normal file
45
portail/views.py
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
# -*- mode: python; coding: utf-8 -*-
|
||||||
|
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il
|
||||||
|
# se veut agnostique au réseau considéré, de manière à être installable en
|
||||||
|
# quelques clics.
|
||||||
|
#
|
||||||
|
# Copyright © 2019 Gabriel Détraz
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
from django.contrib.auth import login
|
||||||
|
from django.db import transaction
|
||||||
|
from django.urls import reverse_lazy
|
||||||
|
from django.views.generic import CreateView
|
||||||
|
|
||||||
|
from .forms import AdherentForm
|
||||||
|
|
||||||
|
|
||||||
|
class SignUpView(CreateView):
|
||||||
|
form_class = AdherentForm
|
||||||
|
template_name = "portail/signup.html"
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super().get_context_data(**kwargs)
|
||||||
|
return context
|
||||||
|
|
||||||
|
@transaction.atomic
|
||||||
|
def form_valid(self, form):
|
||||||
|
ret = super().form_valid(form)
|
||||||
|
login(self.request, form.instance)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse_lazy("users:profil", args=(self.object.pk,))
|
Loading…
Reference in a new issue