From 52f574678d01363416eac47d185480f40ae0c044 Mon Sep 17 00:00:00 2001 From: Evarin Date: Fri, 28 Dec 2018 00:20:14 +0100 Subject: [PATCH] =?UTF-8?q?Interfaces=20et=20scolarit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- avisstage/models.py | 16 ++++++ avisstage/templates/avisstage/perso.html | 64 ++++++++++++++++-------- experiENS/settings_base.py | 2 +- requirements.txt | 1 + 4 files changed, 61 insertions(+), 22 deletions(-) diff --git a/avisstage/models.py b/avisstage/models.py index e15ddba..6c596ef 100644 --- a/avisstage/models.py +++ b/avisstage/models.py @@ -2,6 +2,9 @@ from __future__ import unicode_literals +from allauth.account.models import EmailAddress +from allauth.socialaccount.models import SocialAccount + from django.db import models from django.db.models.signals import post_save from django.contrib.auth.models import User @@ -9,6 +12,7 @@ from django.contrib.gis.db import models as geomodels from django.template.defaultfilters import slugify from django.forms.widgets import DateInput from django.urls import reverse + from django.utils import timezone from django.utils.html import strip_tags @@ -47,6 +51,18 @@ class Normalien(models.Model): def stages_publics(self): return self.stages.filter(public=True).order_by('-date_debut') + @property + def en_scolarite(self): + return SocialAccount.objects.filter(user_id=self.user_id, + provider="clipper").exists() + + def has_nonENS_email(self): + a = EmailAddress.objects.filter(user_id=self.user_id, + verified=True) \ + .exclude(email__endswith="ens.fr") + print(a) + return a.exists() + # Hook à la création d'un nouvel utilisateur : récupération de ses infos par LDAP def create_user_profile(sender, instance, created, **kwargs): if created: diff --git a/avisstage/templates/avisstage/perso.html b/avisstage/templates/avisstage/perso.html index 8f0b235..6876666 100644 --- a/avisstage/templates/avisstage/perso.html +++ b/avisstage/templates/avisstage/perso.html @@ -6,6 +6,49 @@ {% block content %}

Bonjour {{ user.profil.nom }} !

+
+

Mon compte

+
+ {% if user.profil.en_scolarite %} +

Statut : En scolarité

+

Vous pouvez accéder à l'ensemble du site, et aux fiches de stages.

+

Quand vous n'aurez plus de compte clipper (après votre scolarité), votre accès sera restreint à vos propres expériences, que vous pourrez ajouter, modifier, supprimer.

+

Pensez à renseigner une adresse e-mail non-ENS pour conserver cet accès, et permettre aux futur⋅e⋅s normalien⋅ne⋅s de toujours vous contacter !

+ {% else %} +

Statut : Archicube

+

Vous ne pouvez plus accéder qu'à vos propres expériences pour les modifier, et tenir à jour votre profil.

+

Si vous êtes encore en scolarité, merci de vous reconnecter en passant par le serveur d'authentification de l'ENS pour mettre à jour votre statut.

+ {% endif %} +
+

Le statut est mis à jour automatiquement chaque année selon le mode de connexion que vous utilisez.

+ {% if not user.profil.has_nonENS_email %}

Vous n'avez pas renseigné d'adresse mail autre que celle de l'ENS. Pensez à le faire !

{% endif %} +

Gérer les adresses e-mail liées à mon compte

+ {% if not user.password %}

Vous n'avez pas créé de mot de passe interne à ExperiENS. Pensez-y pour garder l'accès au site quand vous n'aurez plus de compte clipper !

{% endif %} +

Changer mon mot de passe ExperiENS

+

Votre nom d'utilisateur pour la connexion directement sur ExperiENS est {{ user.username }}.

+
+ +
+

Mon profil public Modifier mes infos

+ {% with object=user.profil %} +
+
+

Promotion : {{ object.promotion }}

+

+ {% if object.contactez_moi %} + Contact : {{ object.mail }} + {% endif %} +

+
+ {% if object.bio %} +
{{ object.bio|linebreaks }}
+ {% else %} +

Vous n'avez rien mis ici. Écrivez un peu à propos de vous !

+ {% endif %} +
+ {% endwith %} +
+

Mes stages

- -
-

Mon profil public Modifier mes infos

- {% with object=user.profil %} -
-
-

Promotion : {{ object.promotion }}

-

- {% if object.contactez_moi %} - Contact : {{ object.mail }} - {% endif %} -

-
- {% if object.bio %} -
{{ object.bio|linebreaks }}
- {% else %} -

Vous n'avez rien mis ici. Écrivez un peu à propos de vous !

- {% endif %} -
- {% endwith %} -
{% endblock %} diff --git a/experiENS/settings_base.py b/experiENS/settings_base.py index 52c8aee..e56e17e 100644 --- a/experiENS/settings_base.py +++ b/experiENS/settings_base.py @@ -127,7 +127,7 @@ SOCIALACCOUNT_ADAPTER='allauth_ens.adapter.LongTermClipperAccountAdapter' LOGIN_URL = reverse_lazy('account_login') LOGOUT_URL = reverse_lazy('account_logout') - +LOGIN_REDIRECT_URL = reverse_lazy('avisstage:perso') LOGGING = { 'version': 1, diff --git a/requirements.txt b/requirements.txt index 0a5d3fa..08eceff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,3 +9,4 @@ pytz==2018.* django-tastypie==0.14.* lxml==4.2.* django-elasticsearch-dsl==0.4.* +django-allauth-ens==1.1.*