mirror of https://gitlab.federez.net/re2o/re2o
7 changed files with 186 additions and 0 deletions
@ -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' |
|||
@ -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 |
|||
}, |
|||
), |
|||
} |
|||
@ -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 %} |
|||
@ -0,0 +1,3 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
|||
@ -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"), |
|||
] |
|||
@ -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 new issue