Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mediatek/site-interludes
  • aeltheos/site-kwei
  • mediatek/site-kwei
3 results
Show changes
Commits on Source (38)
Showing
with 44 additions and 47 deletions
...@@ -112,7 +112,7 @@ Le site se gère depuis deux pages d'administration: ...@@ -112,7 +112,7 @@ Le site se gère depuis deux pages d'administration:
## En production ## En production
Le serveur a besoin d'être configuré pour HTTPS et d'être configuré pour livrer directement les fichiers situés des `/static/`. Le serveur a besoin d'être configuré pour HTTPS et d'être configuré pour livrer directement les fichiers situés dans `/static/` et `/media/`.
1. Installer les dépendances `make install` 1. Installer les dépendances `make install`
......
...@@ -12,16 +12,6 @@ ...@@ -12,16 +12,6 @@
<a class="button" href="{% url 'profile' %}">Annuler</a> <a class="button" href="{% url 'profile' %}">Annuler</a>
</div> </div>
</form> </form>
<h2> Mot de Passe </h2>
<h2>Changer mon mot de passe</h2> <a href ="{% url 'account_reset_password'% }" rel="text/html"> Réinitialisez votre mot de passe. </a>
<form method="post" action="{% url 'accounts:change_password' %}">
{% csrf_token %}
{{ password_form.as_html }}
<br>
<div class="flex">
<input type="submit" value="Valider">
<a class="button" href="{% url 'profile' %}">Annuler</a>
</div>
</form>
{% endblock %} {% endblock %}
...@@ -5,16 +5,5 @@ from accounts import views ...@@ -5,16 +5,5 @@ from accounts import views
app_name = "accounts" app_name = "accounts"
urlpatterns = [ urlpatterns = [
path("login/", views.LoginView.as_view(), name="login"),
path("logout/", views.LogoutView.as_view(), name="logout"),
path("create/", views.CreateAccountView.as_view(), name="create"),
path("update/", views.UpdateAccountView.as_view(), name="update"), path("update/", views.UpdateAccountView.as_view(), name="update"),
path("change_password/", views.UpdatePasswordView.as_view(), name="change_password"),
path('activate/<uidb64>/<token>/', views.ActivateAccountView.as_view(), name='activate'),
path("password_reset/", views.ResetPasswordView.as_view(), name="password_reset"),
path(
"password_reset/<uidb64>/<token>/",
views.ResetPasswordConfirmView.as_view(),
name="password_reset_confirm"
),
] ]
...@@ -46,22 +46,14 @@ ...@@ -46,22 +46,14 @@
<div class="qty">Participants</div> <div class="qty">Participants</div>
<div class="nb_big">{{ metrics.participants }}</div> <div class="nb_big">{{ metrics.participants }}</div>
</div> </div>
<div class="stat">
<div class="qty">Ulm</div>
<div class="nb_small">{{ metrics.ulm }}</div>
</div>
<div class="stat">
<div class="qty">Lyon</div>
<div class="nb_small">{{ metrics.lyon }}</div>
</div>
<div class="stat">
<div class="qty">Rennes</div>
<div class="nb_small">{{ metrics.rennes }}</div>
</div>
<div class="stat"> <div class="stat">
<div class="qty">Paris-Saclay</div> <div class="qty">Paris-Saclay</div>
<div class="nb_small">{{ metrics.saclay }}</div> <div class="nb_small">{{ metrics.saclay }}</div>
</div> </div>
<div class="stat">
<div class="qty">Extérieur</div>
<div class="nb_small">{{ metrics.exterieur }}</div>
</div>
<div class="stat"> <div class="stat">
<div class="qty">Non inscrits</div> <div class="qty">Non inscrits</div>
<div class="nb_small">{{ metrics.non_registered }}</div> <div class="nb_small">{{ metrics.non_registered }}</div>
......
...@@ -35,10 +35,8 @@ class AdminView(SuperuserRequiredMixin, TemplateView): ...@@ -35,10 +35,8 @@ class AdminView(SuperuserRequiredMixin, TemplateView):
) )
class metrics: class metrics:
participants = registered.count() participants = registered.count()
ulm = registered.filter(school=models.ParticipantModel.ENS.ENS_ULM).count()
lyon = registered.filter(school=models.ParticipantModel.ENS.ENS_LYON).count()
rennes = registered.filter(school=models.ParticipantModel.ENS.ENS_RENNES).count()
saclay = registered.filter(school=models.ParticipantModel.ENS.ENS_CACHAN).count() saclay = registered.filter(school=models.ParticipantModel.ENS.ENS_CACHAN).count()
exterieur = registered.filter(school=models.ParticipantModel.ENS.EXTERIEUR).count()
non_registered = EmailUser.objects.filter(is_active=True).count() - participants non_registered = EmailUser.objects.filter(is_active=True).count() - participants
# mugs = registered.filter(mug=True).count() # mugs = registered.filter(mug=True).count()
sleeps = registered.filter(sleeps=True).count() sleeps = registered.filter(sleeps=True).count()
......
...@@ -82,7 +82,8 @@ class ActivitySubmissionForm(FormRenderMixin, forms.ModelForm): ...@@ -82,7 +82,8 @@ class ActivitySubmissionForm(FormRenderMixin, forms.ModelForm):
"available_sunday_afternoon", "available_sunday_afternoon",
"constraints", "constraints",
"status", "needs", #"status",
"needs",
"comments", "comments",
) )
......
# Generated by Django 3.2.15 on 2022-08-21 13:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('home', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='activitymodel',
name='status',
field=models.CharField(blank=True, choices=[('P', 'En présentiel uniquement'), ('D', 'En distanciel uniquement'), ('2', 'Les deux')], default='P', max_length=1, verbose_name='Présentiel/distanciel'),
),
migrations.AlterField(
model_name='participantmodel',
name='school',
field=models.CharField(choices=[('C', 'ENS Paris-Saclay'), ('E', 'Extérieur')], max_length=1, verbose_name='ENS Paris-Saclay ou extérieur'),
),
]
...@@ -142,7 +142,10 @@ class ActivityModel(models.Model): ...@@ -142,7 +142,10 @@ class ActivityModel(models.Model):
"Contraintes particulières", max_length=2000, blank=True, null=True "Contraintes particulières", max_length=2000, blank=True, null=True
) )
status = models.CharField("Présentiel/distanciel", choices=Status.choices, max_length=1) status = models.CharField(
"Présentiel/distanciel", choices=Status.choices, max_length=1,
default=Status.PRESENT, blank=True
)
needs = models.TextField( needs = models.TextField(
"Besoin particuliers", max_length=2000, blank=True, null=True "Besoin particuliers", max_length=2000, blank=True, null=True
) )
...@@ -303,13 +306,14 @@ class ParticipantModel(models.Model): ...@@ -303,13 +306,14 @@ class ParticipantModel(models.Model):
class ENS(models.TextChoices): class ENS(models.TextChoices):
"""enum representant les ENS""" """enum representant les ENS"""
ENS_ULM = "U", _("ENS Ulm") #ENS_ULM = "U", _("ENS Ulm")
ENS_LYON = "L", _("ENS Lyon") #ENS_LYON = "L", _("ENS Lyon")
ENS_RENNES = "R", _("ENS Rennes") #ENS_RENNES = "R", _("ENS Rennes")
ENS_CACHAN = "C", _("ENS Paris Saclay") ENS_CACHAN = "C", _("ENS Paris-Saclay")
EXTERIEUR = "E", _("Extérieur")
user = models.OneToOneField(EmailUser, on_delete=models.CASCADE, related_name="Utilisateur") user = models.OneToOneField(EmailUser, on_delete=models.CASCADE, related_name="Utilisateur")
school = models.CharField("ENS de rattachement", choices=ENS.choices, max_length=1) school = models.CharField("ENS Paris-Saclay ou extérieur", choices=ENS.choices, max_length=1)
is_registered = models.BooleanField("est inscrit", default=False) is_registered = models.BooleanField("est inscrit", default=False)
...@@ -325,7 +329,7 @@ class ParticipantModel(models.Model): ...@@ -325,7 +329,7 @@ class ParticipantModel(models.Model):
# mug = models.BooleanField("commander une tasse", default=False) # mug = models.BooleanField("commander une tasse", default=False)
def __str__(self) -> str: def __str__(self) -> str:
school = self.ENS(self.school).label.replace("ENS ", "") if self.school else "" school = self.ENS(self.school).label if self.school else ""
return "{} {} ({})".format(self.user.first_name, self.user.last_name, school) return "{} {} ({})".format(self.user.first_name, self.user.last_name, school)
@property @property
......
home/static/imgs/2022/favicon.ico

36.6 KiB

home/static/imgs/2022/trois_ptits_pois.png

41.4 KiB

home/static/imgs/2022/trollune.png

255 KiB