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
......@@ -17,33 +17,31 @@
à l'honneur durant ce week-end de trois jours.
</p>
<p>
Cette année, c'est au tour de l'ENS Ulm d'organiser les interludes.
L'événement a habituellement lieu en février mais à cause du COVID,
il a été retardé. Cette année il est prévu
{% if settings.date_start %}{% if settings.date_end %}
le week-end du <strong>{{ settings.date_start.day }}-{{ settings.date_end }}</strong>.
{% else %}
le week-end du <strong>{{ settings.date_start }}</strong>.
{% endif %}
{% else %}
à une date non-fixée.
{% endif %}
</p>
Cette année, c'est au tour de l'{{ settings.hosting_school }} d'organiser les interludes.
Elles auront lieu
{% if settings.date_start %}{% if settings.date_end %}
le week-end du <strong>{{ settings.date_start.day }}-{{ settings.date_end }}</strong>.
{% else %}
le week-end du <strong>{{ settings.date_start }}</strong>.
{% endif %}
{% else %}
à une date non-fixée.
{% endif %}
</p>
<h2>Inscriptions</h2>
<h3>Inscription à l'événement</h3>
<p>
La situation actuelle ne se prête malheureusement pas à un tel événement. Nous ne pouvons donc
que proposer un événement à distance, qui passera principalement par un serveur discord.
Vous trouverez une liste de sites utiles pour jouer en ligne dans la
<a href="{% url 'FAQ' %}">FAQ</a> et sur le serveur discord.
L'inscription à l'événement,
à l'hébergement et aux repas se fait sur <a
href="https://www.helloasso.com/associations/bureau-ludique-de-l-ens-de-lyon/evenements/interludes-ens-de-lyon">le
formulaire HelloAsso</a>
</p>
<h2>Inscriptions</h2>
<ul class="messagelist"><li class="info">
Les interlude étant à distance cette année, les inscriptions sont facultatives.
</li></ul>
<h3>Inscription aux activités</h3>
<p>
Ce site vous permettra de vous <a href="{% url 'inscription' %}">inscrire à l'événement</a> et
de <a href="{% url 'activites' %}">voir les activités</a> qui y seront proposées. L'événement est
<strong>gratuit</strong>.
Une fois votre inscription à l'événement effectuée, vous pourrez vous <a href="{% url 'inscription'%}">inscrire aux activités</a>
</p>
{% if settings.inscriptions_start and settings.inscriptions_end %}
<p>Les inscriptions seront ouvertes
......@@ -56,13 +54,32 @@
<p>Les inscriptions fermerons le <strong>{{ settings.inscriptions_end|date:"l d F Y à H:i" }}</strong>.</p>
{% endif %}
<h2>Tarifs</h2>
<p>
Les tarifs sont différenciés entre salarié·es et non-salarié·es.
<ul>
<li><strong>Participation à l'événement :</strong> 6€/4€</li>
<li><strong>Repas (du vendredi soir au dimanche midi) :</strong> 10€/6€</li>
<li><strong>Logement en tente :</strong> 3€</li>
</ul>
</p>
<h2>Menu des repas</h2>
<p>
Cette année, le menu sera entièrement végétarien, avec options végan et/ou sans gluten possibles.
<ul>
<li><strong>Vendredi soir :</strong> Chili sin carne, riz & compote</li>
<li><strong>Samedi midi :</strong> Brunch (Salade bar, Croques pesto-mozza, Houmous, Gâteaux)</li>
<li><strong>Samedi soir :</strong> Soupe de saison & Tartiflette (option vegan : gratin de pommes de terre aux champignons)</li>
<li><strong>Dimanche midi :</strong> Sandwich au choix</li>
</ul>
<p>Pour plus de détails, consultez la <a href="{% url 'FAQ' %}">FAQ</a>.</p>
<h2>Liens divers</h2>
<ul>
<li>Le code source de ce site est sur <a href="https://git.eleves.ens.fr/dlesbre/site-interludes">gitlab</a>.</li>
<li>Un historique des interludes avec leurs visuels, site webs et photos est sur le <a href="https://wiki.crans.org/VieBdl/InterLudes">wiki de Paris-Saclay</a>.</li>
</ul>
<ul>
<li>Le code source de ce site est sur <a href="https://github.com/Pantoofle/site-interludes">github</a>.</li>
<li>Un historique des interludes avec leurs visuels, site webs et photos est sur le <a
href="https://wiki.crans.org/VieBdl/InterLudes">wiki de Paris-Saclay</a>.</li>
</ul>
{% endblock %}
......@@ -3,13 +3,19 @@
{% block nav_inscription %}current{% endblock %}
{% block "content" %}
<h2>Inscriptions</h2>
<h2>Inscriptions à l'événement</h2>
<p>L'inscription à l'événement,
l'hébergement et aux repas se fait sur <a
href="https://www.helloasso.com/associations/bureau-ludique-de-l-ens-de-lyon/evenements/interludes-ens-de-lyon">le
formulaire HelloAsso</a>.</p>
<h2>Inscriptions aux activités</h2>
{% if settings.inscriptions_not_open_yet %}
<p>Les inscriptions ne sont pas encores ouvertes.</p>
<p>Les inscriptions aux activités ne sont pas encores ouvertes.</p>
<p>Leur ouverture est prévue le <strong>{{ settings.inscriptions_start|date:"l d F Y à H:i" }}</strong>.</p>
<p>Nous communiquerons par mail via les BDE des différentes écoles pour leur ouverture.</p>
{% elif settings.inscriptions_have_closed %}
<p>Les inscriptions sont fermées.</p>
<p>Les inscriptions aux activités sont fermées.</p>
<p>
Les inscriptions cette année sont facultatives,
tu peux quand même rejoindre le {% if settings.discord_link %}<a href="{{ settings.discord_link }}">serveur discord</a>{% else %}serveur discord{% endif %} et participer aux jeux libres et
......@@ -19,7 +25,7 @@
<p>Pour tout problème, contacter&nbsp;:<br><span class="antispam">{{ settings.contact_email_reversed }}</span></p>
{% endif %}
{% else %}
<p>Les inscriptions ne sont pas encores ouvertes ou ont été fermées.</p>
<p>Les inscriptions aux activités ne sont pas encores ouvertes ou ont été fermées.</p>
<p>Nous communiquerons par mail via les BDE des différentes écoles pour leur ouverture.</p>
{% endif %}
{% endblock %}
......@@ -4,36 +4,31 @@
{% block nav_inscription %}current{% endblock %}
{% block "content" %}
<h2>Inscriptions</h2>
<ul class="messagelist">
<li class="info">
Il est possible que nous n'ayons pas le droit de faire dormir les participants et/ou
de distribuer des repas pendant l'événement pour des raisons sanitaires.<br>
Nous communiquerons les mesures exactes quelques jours avant l'événement.
</li>
</ul>
<h2>Inscription à l'événement</h2>
L'inscription à l'événement,
à l'hébergement et aux repas se fait sur <a
href="https://www.helloasso.com/associations/bureau-ludique-de-l-ens-de-lyon/evenements/interludes-ens-de-lyon">le
formulaire HelloAsso</a>
<h2>Inscription aux activités</h2>
Une fois votre inscription à l'événement effectuée, vous pourrez
vous inscrire à certaines activités sur cette page. La plupart des
activités ne demandent pas d'inscription et seront en libre accès
durant tout l'événement, mais certaines demandent une inscription à
l'avance.
<form id="main_form" method="post" action="{% url 'inscription' %}">
{% csrf_token %}
Cette année, l'événement est entièrement subventionné par le <a class="external" href="https://cof.ens.fr/">COF</a>. L'inscription est gratuite
(mais n'inclut pas les frais de transport jusqu'à Paris).
<p>{{ form.school.label_tag }} {{ form.school }}</p>
<p>{{ form.sleeps.label_tag }} {{ form.sleeps }}</p>
<h3>Repas</h3>
<table>
<tr><td>Vendredi soir&nbsp;:</td><td>{{ form.meal_friday_evening }}</td></tr>
<tr><td>Samedi matin&nbsp;:</td><td>{{ form.meal_saturday_morning }}</td></tr>
<tr><td>Samedi midi&nbsp;:</td><td>{{ form.meal_saturday_midday }}</td></tr>
<tr><td>Samedi soir&nbsp;:</td><td>{{ form.meal_saturday_evening }}</td></tr>
<tr><td>Dimanche matin&nbsp;:</td><td>{{ form.meal_sunday_morning }}</td></tr>
<tr><td>Dimanche midi&nbsp;:</td><td>{{ form.meal_sunday_midday }}</td></tr>
</table>
<p>{{ form.meal_friday_evening.label_tag }} {{ form.meal_friday_evening }} </p>
<p>{{ form.meal_saturday_morning.label_tag }} {{ form.meal_saturday_morning }} </p>
<p>{{ form.meal_saturday_midday.label_tag }} {{ form.meal_saturday_midday }}</p>
<p>{{ form.meal_saturday_evening.label_tag }} {{ form.meal_saturday_evening }} </p>
<p>{{ form.meal_sunday_morning.label_tag }} {{ form.meal_sunday_morning}} </p>
<p>{{ form.meal_sunday_midday.label_tag }} {{ form.meal_sunday_midday }}</p>
<p>Vous êtes considéré⋅e commme extérieur si vous n'êtes pas actuellement scolarisé⋅e ou inscrit⋅e à l'ENS Paris-Saclay. Nous avons besoin de cette information pour transmettre la liste des extérieurs à l'administration de l'ENS.</p>
<h3>Choix d'activités</h3>
......@@ -47,8 +42,6 @@
<p>Si vous vous inscrivez à une activité qui nécessite préparation, nous communiquerons
votre email aux orgas pour qu'iels puissent vous contacter.
</p>
{% if formset.non_form_errors %}
{{ formset.non_form_errors }}
{% endif %}
......
......@@ -4,9 +4,8 @@
{% block "content" %}
<h2>Inscriptions</h2>
<p>Vous devez être connecté pour pouvoir vous inscrire à l'événement.</p>
<p>Aller à la page de <a href="{% url 'accounts:login' %}">connexion</a> pour vous connectez
ou à celle de <a href="{% url 'accounts:create' %}">création de compte</a> si vous n'avez pas de compte.</p>
<p>Vous devez être connecté pour pouvoir vous inscrire à des activités.
<p>Aller à la page de <a href="{% url 'account_login' %}">connexion</a> pour vous connecter ou créer un compte.
{% if settings.inscriptions_end %}
<p>Les inscriptions seront ouvertes jusqu'au {{ settings.inscriptions_end|date:"l d F Y à H:i" }})</p>
{% endif %}
......
......@@ -65,18 +65,18 @@
{% endif %}
</ul>
{% else %}
<strong>Vous n'êtes pas incrit à l'événement.</strong>
<strong>Vous n'avez pas encore renseigné vos choix d'activités.</strong>
{% if not settings.inscriptions_open %}
{% if settings.inscriptions_not_open_yet %}
<p>Les inscriptions ne sont pas encores ouvertes. Elles ouvrirons le <strong>{{ settings.inscriptions_start|date:"l d F Y à H:i" }}</strong>.</p>
<p>Les inscriptions aux activités ne sont pas encores ouvertes. Elles ouvrirons le <strong>{{ settings.inscriptions_start|date:"l d F Y à H:i" }}</strong>.</p>
{% elif settings.inscriptions_have_closed %}
<p>Les inscriptions sont fermées.</p>
<p>Les inscriptions aux activités sont fermées.</p>
{% else %}
<p>Les inscriptions ne sont pas encores ouvertes ou ont été fermées.</p>
<p>Les inscriptions aux activités ne sont pas encores ouvertes ou ont été fermées.</p>
{% endif %}
{% elif settings.inscriptions_end %}
<p>les inscriptions sont ouvertes jusqu'au {{ settings.inscriptions_end|date:"l d F Y à H:i" }}).</p>
<p>les inscriptions aux activités sont ouvertes jusqu'au {{ settings.inscriptions_end|date:"l d F Y à H:i" }}).</p>
{% endif %}
<br><br>
{% endif %}
......@@ -102,7 +102,7 @@
{% endif %}
<a class="button" href="{% url 'accounts:update' %}">Modifier mes informations</a>
<a class="button" href="{% url 'accounts:logout' %}">Déconnexion</a>
<a class="button" href="{% url 'account_logout' %}">Déconnexion</a>
</div>
{% endblock %}
......@@ -15,14 +15,14 @@ urlpatterns = [
path('activites/', views.ActivityView.as_view(), name = 'activites'),
path('activites/nouvelle/', views.ActivitySubmissionView.as_view(), name = 'activity_submission'),
path('faq/', views.FAQView.as_view(), name = 'FAQ'),
path("profile/", views.ProfileView.as_view(), name="profile"),
path("profil/", views.ProfileView.as_view(), name="profile"),
path('favicon.ico', RedirectView.as_view(url='/static/imgs/favicon.ico')),
path(
'sitemap.xml', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'
),
path('admin_pages/', include(('admin_pages.urls', 'admin_pages'), namespace="admin_pages")),
path('accounts/', include("accounts.urls")),
path('comptes/', include("accounts.urls")),
]
if settings.DEBUG:
......
......@@ -51,7 +51,7 @@ class ActivityView(TemplateView):
class FAQView(TemplateView):
"""Vue pour la FAQ"""
template_name = "faq-distanciel.html"
template_name = "faq.html"
# ==============================
......@@ -92,7 +92,7 @@ class RegisterSignIn(TemplateView):
class RegisterUpdateView(LoginRequiredMixin, TemplateView):
"""Vue pour s'inscrire et modifier son inscription"""
template_name = "inscription/form-distanciel.html"
template_name = "inscription/form.html"
form_class = InscriptionForm
formset_class = formset_factory(form=ActivityForm, extra=3, formset=BaseActivityFormSet)
success_url = reverse_lazy("profile")
......@@ -178,6 +178,15 @@ class ActivitySubmissionView(LoginRequiredMixin, FormView):
settings = SiteSettings.load()
return settings.activity_submission_open
def get_initial(self):
init = super().get_initial()
user = self.request.user
init.update({
"host_name": "{} {}".format(user.first_name, user.last_name),
"host_email": user.email,
})
return init
def not_open(self, request):
"""Appelé quand le formulaire est désactivé"""
messages.error(request, "La soumission d'activité est desactivée")
......@@ -193,11 +202,11 @@ class ActivitySubmissionView(LoginRequiredMixin, FormView):
return self.not_open(request)
form = self.form_class(request.POST)
if not form.is_valid():
context = self.get_context_data
context = self.get_context_data()
context["form"] = form
return render(request, self.template_name, context)
form.save(user=request.user)
form.save()
messages.success(request, "Votre activité a bien été enregistrée. Elle sera affichée sur le site après relecture par les admins.")
return redirect(self.success_url, permanent=False)
......
......@@ -37,6 +37,8 @@ def import_secret(name):
except AttributeError:
raise RuntimeError("Secret missing: {}".format(name))
SITE_ID=1
SECRET_KEY = import_secret("SECRET_KEY")
DB_NAME = import_secret("DB_NAME")
......@@ -56,7 +58,7 @@ EMAIL_USE_SSL = True
DEBUG = True
# FIXME - set hosts in production
ALLOWED_HOSTS = []
ALLOWED_HOSTS = ["127.0.0.1", "localhost","kwei-dev.crans.org"]
if DEBUG:
# This will display emails in Console.
......@@ -84,12 +86,19 @@ INSTALLED_APPS = [
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
'django.contrib.sites',
'home.apps.HomeConfig',
'admin_pages.apps.AdminPagesConfig',
'accounts.apps.AccountsConfig',
'site_settings.apps.SiteSettingsConfig',
'shared.apps.SharedConfig',
# allauth support.
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth_note_kfet',
]
MIDDLEWARE = [
......@@ -138,6 +147,7 @@ DATABASES = {
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
# Password validation
......@@ -145,6 +155,19 @@ AUTHENTICATION_BACKENDS = (
AUTH_USER_MODEL = 'accounts.EmailUser'
AUTH_PROFILE_MODULE = 'home.ParticipantModel'
# Tell oauth how the user is configured.
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_AUTHENTICATION_METHOD = "email"
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
SOCIALACCOUNT_PROVIDERS = {
'notekfet': {
'DOMAIN': 'note-dev.crans.org', # À remplacer si nécessaire
# 'SCOPE': ['1_1'], # Adapter les scopes demandées (par défaut lecture des champs utilisateur⋅rice)
},
}
AUTH_PASSWORD_VALIDATORS = [
{ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', },
......@@ -159,7 +182,7 @@ SESSION_COOKIE_AGE = 3600
# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/
LANGUAGE_CODE = 'fr-fr'
LANGUAGE_CODE = 'fr'
TIME_ZONE = 'CET'
......
......@@ -16,7 +16,12 @@ Including another URLconf
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
]
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('comptes/', include('allauth.urls')),
path('', include('home.urls')),
]
Django~=3.2.7
django-allauth~=0.51.0
\ No newline at end of file
let
pkgs = import <nixpkgs> {};
in pkgs.mkShell {
buildInputs = [
pkgs.python3
pkgs.python39Packages.django
pkgs.python39Packages.pip
];
shellHook = ''
# Tells pip to put packages into $PIP_PREFIX instead of the usual locations.
# See https://pip.pypa.io/en/stable/user_guide/#environment-variables.
export PIP_PREFIX=$(pwd)/_build/pip_packages
export PYTHONPATH="$PIP_PREFIX/${pkgs.python3.sitePackages}:$PYTHONPATH"
export PATH="$PIP_PREFIX/bin:$PATH"
unset SOURCE_DATE_EPOCH
'';
}
\ No newline at end of file
# The website version number
WEBSITE_VERSION = "1.2.8"
WEBSITE_VERSION_DATE = "2021-05-06"
WEBSITE_VERSION = "2.0.0-beta"
WEBSITE_VERSION_DATE = "2021-10-05"
WEBSITE_FULL_VERSION = "{} - {}".format(
WEBSITE_VERSION, WEBSITE_VERSION_DATE
)
# Update this to force reload of cached css
CSS_VERSION = "1.1"
CSS_VERSION = "1.0"
# Generated by Django 3.2.7 on 2021-09-13 17:01
# Generated by Django 3.2.7 on 2021-10-05 18:45
from django.db import migrations, models
import site_settings.models
......@@ -22,6 +22,7 @@ class Migration(migrations.Migration):
('registrations_open', models.BooleanField(default=True, verbose_name='Ouvrir la création de compte')),
('inscriptions_open', models.BooleanField(default=False, verbose_name='Ouvrir les inscriptions')),
('activity_submission_open', models.BooleanField(default=False, help_text='Permet de proposer une activité via le formulaire dédié', verbose_name="Ouvrir l'ajout d'activité")),
('show_host_emails', models.BooleanField(default=False, help_text='Ces mail sont affichés sur la page activités pour que les gens puissent les contacter', verbose_name="Afficher les mails des orgas d'activités")),
('inscriptions_start', models.DateTimeField(blank=True, help_text="Cette date n'est qu'informative. Les inscription s'ouvrent via la checkbox uniquement", null=True, verbose_name='Ouverture des inscriptions')),
('inscriptions_end', models.DateTimeField(blank=True, help_text="Cette date n'est qu'informative. Les inscription se ferment via la checkbox uniquement", null=True, verbose_name='Fermeture des inscriptions')),
('display_planning', models.BooleanField(default=False, verbose_name='Afficher le planning')),
......
# Generated by Django 3.2.9 on 2021-11-07 19:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('site_settings', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='sitesettings',
name='hosting_school',
field=models.CharField(blank=True, max_length=50, null=True, verbose_name="École hébergeant l'événement"),
),
]
......@@ -9,7 +9,8 @@ from django.utils.timezone import now
class Colors(models.TextChoices):
"""Couleur d'affichage dans le planning
Leur code HTML est hardcodé dans la template "_planning.html"."""
Leur code HTML est hardcodé dans la template '_planning.html'."""
RED = "a", "Rouge"
ORANGE = "b", "Orange"
YELLOW = "c", "Jaune"
......@@ -67,16 +68,26 @@ class SingletonModel(models.Model):
class SiteSettings(SingletonModel):
"""Réglages globaux du site"""
contact_email = models.EmailField("Email contact", blank=True, null=True)
hosting_school = models.CharField(
"École hébergeant l'événement", max_length=50, blank=True, null=True
)
date_start = models.DateField("Date de début", blank=True, null=True)
date_end = models.DateField("Date de fin", blank=True, null=True)
registrations_open = models.BooleanField("Ouvrir la création de compte", default=True)
inscriptions_open = models.BooleanField("Ouvrir les inscriptions", default=False)
activity_submission_open = models.BooleanField(
"Ouvrir l'ajout d'activité", default=False,
help_text="Permet de proposer une activité via le formulaire dédié"
)
show_host_emails = models.BooleanField(
"Afficher les mails des orgas d'activités", default=False,
help_text="Ces mail sont affichés sur la page activités pour que les gens puissent les contacter",
)
inscriptions_start = models.DateTimeField("Ouverture des inscriptions",
blank=True, null=True,
......@@ -98,8 +109,6 @@ class SiteSettings(SingletonModel):
help_text="Suppose que l'allocation des activités a été effectuée."
)
discord_link = models.CharField(
"Lien du serveur discord", max_length=200, blank=True, null=True
)
......