Commit 51dd0a9e authored by Hamza Dely's avatar Hamza Dely

Merge branch '24-differenciation-invites-activite' into 'master'

Resolve "Différenciation invités activité."

Closes #24

See merge request dely/note-kfet!5
parents 11d3c9e0 9125a7b1
......@@ -3,25 +3,3 @@
"""
from django import forms
from activites.models import Invite
class InvitationForm(forms.ModelForm):
"""
Un formulaire pour inviter une personne à une activité donnée
"""
class Meta:
model = Invite
fields = ['prenom', 'nom', 'invite_par']
def __init__(self, *args, **kwargs):
self.activite = kwargs.pop('activite')
super().__init__(*args, **kwargs)
def save(self, *args, **kwargs):
"""
Méthode save surchargée pour indiquer l'activité à laquelle
l'invité est convié.
"""
self.instance.activite = self.activite
return super().save(*args, **kwargs)
......@@ -83,11 +83,14 @@ class Invite(models.Model):
- nom [varchar(255)] : Nom de l'invité
- prenom [varchar(255)] : Prénom de l'invité
- naissance [tstz] : Date de naissance
- activite [int*] : Activité à laquelle l'invité participe
- invite_par [int*] : Adhérent invitant cette personne
- present [bool] : Invité présent à l'activité ?
"""
nom = models.CharField(max_length=255, null=False, blank=False)
prenom = models.CharField('prénom', max_length=255, null=False, blank=False)
naissance = models.DateField('date de naissance', null=False, blank=False)
activite = models.ForeignKey(
'activites.Activite', on_delete=models.CASCADE, verbose_name="activité",
null=False, blank=False, related_name="invites",
......@@ -101,7 +104,7 @@ class Invite(models.Model):
class Meta:
unique_together = [
# On invite une personne une seule fois à une activité donnée
('nom', 'prenom', 'activite'),
('nom', 'prenom', 'naissance', 'activite'),
]
default_permissions = []
permissions = [
......@@ -110,7 +113,7 @@ class Invite(models.Model):
]
def __str__(self):
return "Invité #%d : %s %s" % (self.id, self.prenom, self.nom)
return "Invité #%d : %s %s (%s)" % (self.id, self.prenom, self.nom, self.naissance)
def clean(self):
"""
......
......@@ -8,6 +8,7 @@
<tr>
<th>Prénom</th>
<th>Nom</th>
<th>Date de naissance</th>
<th>Est présent ?</th>
<th>Action</th>
</tr>
......@@ -17,6 +18,7 @@
<tr>
<td>{{ invite.prenom }}</td>
<td>{{ invite.nom }}</td>
<td>{{ invite.naissance|date }}</td>
<td{% if invite.present == True %} class="text-success"{% elif invite.present == False %} class="text-danger"{% endif %}>{{ invite.present|yesno("Présent,Absent,N/A") }}</td>
<td>
<div class="btn-toolbar" role="toolbar">
......@@ -35,13 +37,13 @@
</tr>
{% else %}
<tr>
<td colspan=4 class="text-center">
<td colspan=5 class="text-center">
<strong>Aucun invité pour cette activité</strong>
</td>
</tr>
{% endfor %}
<tr>
<td colspan=4 class="text-center">
<td colspan=5 class="text-center">
<a class="btn btn-primary" href="{{ url("activités:invitation", kwargs={'pk' : activite.id}) }}">Ajouter un invité</a>
</td>
</tr>
......
......@@ -24,7 +24,6 @@ from note_kfet.views.mixins import NoteMixin
from comptes.models import Adherent
from activites.models import Activite, Invite
from activites.forms import InvitationForm
from activites.filters import ActiviteRechercheFilter
### Vues concernant les activités
......@@ -216,7 +215,7 @@ class ActiviteInvitationView(NoteMixin, PermissionRequiredMixin, LoginRequiredMi
permission_required = D("activites.invite_inviter", Acl.LIMITE)
model = Invite
fields = ['prenom', 'nom', 'activite', 'invite_par']
fields = ['prenom', 'nom', 'naissance', 'activite', 'invite_par']
template_name = "activite_invitation.html"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment