From 34e552f7606541f9c99a13d51cfbbfee94db8e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sat, 5 Oct 2019 14:34:30 +0200 Subject: [PATCH 1/4] New 'events' app, first model The objective is to move (at some point) all the management logic in this app. Before that time: as long as the events app does not have all the features necessary to be used in production it is only available in dev mode and coexists with the old event system. When it's ready we'll move the old events in the new app (data migration) and remove the old system. --- cof/settings/dev.py | 4 ++ events/__init__.py | 0 events/admin.py | 4 ++ events/apps.py | 5 +++ events/migrations/0001_event.py | 67 +++++++++++++++++++++++++++++++++ events/migrations/__init__.py | 0 events/models.py | 31 +++++++++++++++ events/views.py | 0 8 files changed, 111 insertions(+) create mode 100644 events/__init__.py create mode 100644 events/admin.py create mode 100644 events/apps.py create mode 100644 events/migrations/0001_event.py create mode 100644 events/migrations/__init__.py create mode 100644 events/models.py create mode 100644 events/views.py diff --git a/cof/settings/dev.py b/cof/settings/dev.py index 3bf2f4f9..0920e538 100644 --- a/cof/settings/dev.py +++ b/cof/settings/dev.py @@ -15,6 +15,10 @@ DEBUG = True if TESTING: PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"] +# Only in development mode as long as the events app is not +# ready for production +INSTALLED_APPS += ["events"] + # --- # Apache static/media config diff --git a/events/__init__.py b/events/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/events/admin.py b/events/admin.py new file mode 100644 index 00000000..7be669c2 --- /dev/null +++ b/events/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from events.models import Event + +admin.site.register(Event) diff --git a/events/apps.py b/events/apps.py new file mode 100644 index 00000000..60b376ce --- /dev/null +++ b/events/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class EventsConfig(AppConfig): + name = "events" diff --git a/events/migrations/0001_event.py b/events/migrations/0001_event.py new file mode 100644 index 00000000..dc3a6bce --- /dev/null +++ b/events/migrations/0001_event.py @@ -0,0 +1,67 @@ +# Generated by Django 2.2.6 on 2019-10-05 12:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [] + + operations = [ + migrations.CreateModel( + name="Event", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=200, verbose_name="titre")), + ("location", models.CharField(max_length=200, verbose_name="lieu")), + ( + "start_date", + models.DateTimeField( + blank=True, null=True, verbose_name="date de début" + ), + ), + ( + "end_date", + models.DateTimeField( + blank=True, null=True, verbose_name="date de fin" + ), + ), + ( + "description", + models.TextField(blank=True, verbose_name="description"), + ), + ( + "image", + models.ImageField( + blank=True, + null=True, + upload_to="imgs/events/", + verbose_name="image", + ), + ), + ( + "registration_open", + models.BooleanField( + default=True, verbose_name="inscriptions ouvertes" + ), + ), + ( + "old", + models.BooleanField( + default=False, verbose_name="archiver (événement fini)" + ), + ), + ], + options={"verbose_name": "événement", "verbose_name_plural": "événements"}, + ) + ] diff --git a/events/migrations/__init__.py b/events/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/events/models.py b/events/models.py new file mode 100644 index 00000000..1fa3a96e --- /dev/null +++ b/events/models.py @@ -0,0 +1,31 @@ +from django.db import models +from django.utils.translation import gettext_lazy as _ + + +class Event(models.Model): + title = models.CharField(_("titre"), max_length=200) + location = models.CharField(_("lieu"), max_length=200) + start_date = models.DateTimeField(_("date de début"), blank=True, null=True) + end_date = models.DateTimeField(_("date de fin"), blank=True, null=True) + description = models.TextField(_("description"), blank=True) + image = models.ImageField( + _("image"), blank=True, null=True, upload_to="imgs/events/" + ) + registration_open = models.BooleanField(_("inscriptions ouvertes"), default=True) + old = models.BooleanField(_("archiver (événement fini)"), default=False) + + class Meta: + verbose_name = _("événement") + verbose_name_plural = _("événements") + + def __str__(self): + return self.title + + +# TODO: gérer les inscriptions + +# TODO: gérer les options (EventOption & EventOptionChoice de gestioncof) +# par exemple: "option végé au Mega (oui / non)" + +# TODO: gérer les champs commentaires (EventCommentField & EventCommentChoice) +# par exemple: "champ "allergies / régime particulier" au Mega diff --git a/events/views.py b/events/views.py new file mode 100644 index 00000000..e69de29b From 8119591c62228346faa3be505514b468015bbe41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sat, 5 Oct 2019 17:50:28 +0200 Subject: [PATCH 2/4] enable the "events" app in CI --- cof/settings/prod.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cof/settings/prod.py b/cof/settings/prod.py index 9e355ccb..8db28958 100644 --- a/cof/settings/prod.py +++ b/cof/settings/prod.py @@ -6,12 +6,14 @@ The settings that are not listed here are imported from .common import os from .common import * # NOQA -from .common import BASE_DIR, import_secret +from .common import BASE_DIR, INSTALLED_APPS, TESTING, import_secret DEBUG = False ALLOWED_HOSTS = ["cof.ens.fr", "www.cof.ens.fr", "dev.cof.ens.fr"] +if TESTING: + INSTALLED_APPS.append("events") STATIC_ROOT = os.path.join( os.path.dirname(os.path.dirname(BASE_DIR)), "public", "gestion", "static" From 9f2004bb5430b520ba7e0c71edf15297c5cb8f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sat, 5 Oct 2019 17:59:50 +0200 Subject: [PATCH 3/4] Add events in the coverage report --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index d45e6862..46792cd0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,6 +2,7 @@ source = bda cof + events gestioncof kfet petitscours From 97f682dfcdb5e7571b928eacadeb6df55350c696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sun, 6 Oct 2019 12:00:05 +0200 Subject: [PATCH 4/4] Update changelog --- CHANGELOG | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index de2db24d..3d787bf1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +* Le FUTUR ! + +- Nouveau module de gestion des événements (début d'implem, désactivé en prod) + +* Version 0.3 - ??? + - Un peu de pub pour KDEns sur la page d'accueil - Fix erreur 500 sur /bda/revente//manage - Si on essaie d'accéder au compte que qqn d'autre on a une 404 (et plus une 403)