diff --git a/oser_backend/settings/production.py b/oser_backend/settings/production.py index f7a85fa5ef8d19b8838d9dd530ea1b29b36db2a9..1211646db84de6be968c5e27340ffc1206fc3c81 100644 --- a/oser_backend/settings/production.py +++ b/oser_backend/settings/production.py @@ -6,7 +6,12 @@ from aws.conf import * from .common import * -DEBUG = os.environ.get('DEBUG', False) +# NOTE: `or False` ensures the value is `False` (the boolean) +# if the value given in environment is false-y (e.g. empty string) +# Otherwise may lead to unexpected bugs. +# For example, SendGrid could send an empty string as the sandbox mode, +# leading to strange 400 Bad Request errors. +DEBUG = os.environ.get('DEBUG', False) or False ALLOWED_HOSTS = [ 'localhost', diff --git a/visits/admin.py b/visits/admin.py index 3e985031be01c689e9d2e718df9e5a412097e85e..4e1d0a2323c7ac0d2ff0fb9fb511b843be199675 100644 --- a/visits/admin.py +++ b/visits/admin.py @@ -17,7 +17,7 @@ class RegistrationsOpenFilter(admin.SimpleListFilter): https://docs.djangoproject.com/fr/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter """ - title = "état des inscriptions" + title = 'état des inscriptions' parameter_name = 'registrations_open' def lookups(self, request, model_admin): @@ -48,23 +48,27 @@ class VisitForm(forms.ModelForm): - Deadline must be before the date - End time must be after start time + + Keep in mind that values may be `None` if not provided in the form. """ cleaned_data = super().clean() date = cleaned_data.get('date') deadline = cleaned_data.get('deadline') start_time = cleaned_data.get('start_time') end_time = cleaned_data.get('end_time') - if deadline.date() >= date: - error = forms.ValidationError( - "La date limite d'inscription doit être avant la " - "date de la sortie." - ) - self.add_error('deadline', error) - if end_time <= start_time: - error = forms.ValidationError( - "L'heure de fin doit être après l'heure de début.") - self.add_error('start_time', error) - self.add_error('end_time', error) + if deadline is not None: + if deadline.date() >= date: + error = forms.ValidationError( + "La date limite d'inscription doit être avant la " + "date de la sortie." + ) + self.add_error('deadline', error) + if end_time is not None and start_time is not None: + if end_time <= start_time: + error = forms.ValidationError( + "L'heure de fin doit être après l'heure de début.") + self.add_error('start_time', error) + self.add_error('end_time', error) class ParticipationInline(admin.StackedInline): diff --git a/visits/models.py b/visits/models.py index 63fadd8684e1024d63dc718407bcc9f1d2df22e1..31944309f7d678cdb6268db0838c68a559e6126c 100644 --- a/visits/models.py +++ b/visits/models.py @@ -216,7 +216,7 @@ class Visit(models.Model): def get_site_url(self): site = Site.objects.get_current() - return f'https://{site.domain}/visits/{self.pk}' + return f'https://{site.domain}/membres/sorties/{self.pk}' def __str__(self): return str(self.title)