mirror of https://gitlab.crans.org/bde/nk20
Guests can't be invited since the activity is started
This commit is contained in:
parent
fb5796d35e
commit
fcb4da2db3
|
@ -1,6 +1,6 @@
|
||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
from datetime import timedelta
|
from datetime import timedelta, datetime
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
@ -41,6 +41,9 @@ class GuestForm(forms.ModelForm):
|
||||||
def clean(self):
|
def clean(self):
|
||||||
cleaned_data = super().clean()
|
cleaned_data = super().clean()
|
||||||
|
|
||||||
|
if self.activity.date_start > datetime.now():
|
||||||
|
self.add_error("inviter", _("You can't invite someone once the activity is started."))
|
||||||
|
|
||||||
one_year = timedelta(days=365)
|
one_year = timedelta(days=365)
|
||||||
|
|
||||||
qs = Guest.objects.filter(
|
qs = Guest.objects.filter(
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
from datetime import timedelta
|
from datetime import timedelta, datetime
|
||||||
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -212,6 +212,10 @@ class Guest(models.Model):
|
||||||
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
|
||||||
one_year = timedelta(days=365)
|
one_year = timedelta(days=365)
|
||||||
|
|
||||||
|
if not force_insert:
|
||||||
|
if self.activity.date_start > datetime.now():
|
||||||
|
raise ValidationError(_("You can't invite someone once the activity is started."))
|
||||||
|
|
||||||
qs = Guest.objects.filter(
|
qs = Guest.objects.filter(
|
||||||
first_name=self.first_name,
|
first_name=self.first_name,
|
||||||
last_name=self.last_name,
|
last_name=self.last_name,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
@ -61,6 +61,8 @@ class ActivityDetailView(LoginRequiredMixin, DetailView):
|
||||||
.filter(PermissionBackend.filter_queryset(self.request.user, Guest, "view")))
|
.filter(PermissionBackend.filter_queryset(self.request.user, Guest, "view")))
|
||||||
ctx["guests"] = table
|
ctx["guests"] = table
|
||||||
|
|
||||||
|
ctx["activity_started"] = datetime.now(timezone.utc) > self.object.date_start
|
||||||
|
|
||||||
return ctx
|
return ctx
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -176,35 +176,6 @@ class NoteSpecial(Note):
|
||||||
return self.special_type
|
return self.special_type
|
||||||
|
|
||||||
|
|
||||||
class NoteCommon(Note):
|
|
||||||
"""
|
|
||||||
A :model:`note.Note` for special accounts, where real money enter or leave the system
|
|
||||||
- bank check
|
|
||||||
- credit card
|
|
||||||
- bank transfer
|
|
||||||
- cash
|
|
||||||
- refund
|
|
||||||
This Type of Note is not associated to a :model:`auth.User` or :model:`member.Club` .
|
|
||||||
"""
|
|
||||||
note_name = models.CharField(
|
|
||||||
max_length=255,
|
|
||||||
unique=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
club = models.ForeignKey(
|
|
||||||
Club,
|
|
||||||
on_delete=models.PROTECT,
|
|
||||||
verbose_name=_("club"),
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = _("common note")
|
|
||||||
verbose_name_plural = _("common notes")
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return self.note_name
|
|
||||||
|
|
||||||
|
|
||||||
class Alias(models.Model):
|
class Alias(models.Model):
|
||||||
"""
|
"""
|
||||||
points toward a :model:`note.NoteUser` or :model;`note.NoteClub` instance.
|
points toward a :model:`note.NoteUser` or :model;`note.NoteClub` instance.
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
{% if "view_"|has_perm:activity %}
|
{% if "view_"|has_perm:activity %}
|
||||||
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_update' pk=activity.pk %}"> {% trans "edit"|capfirst %}</a>
|
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_update' pk=activity.pk %}"> {% trans "edit"|capfirst %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if activity.activity_type.can_invite %}
|
{% if activity.activity_type.can_invite and not activity_started %}
|
||||||
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_invite' pk=activity.pk %}"> {% trans "Invite" %}</a>
|
<a class="btn btn-primary btn-sm my-1" href="{% url 'activity:activity_invite' pk=activity.pk %}"> {% trans "Invite" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue