diff --git a/cfp/models.py b/cfp/models.py
index 74be745..2b3b40c 100644
--- a/cfp/models.py
+++ b/cfp/models.py
@@ -100,9 +100,10 @@ class ParticipantManager(models.Manager):
def get_queryset(self):
qs = super().get_queryset()
qs = qs.annotate(
- accepted_talk_count=Count(Case(When(talk__accepted=True, then='talk__pk'), output_field=models.IntegerField()), distinct=True),
+ accepted_talk_count=Count(Case(When(Q(talk__accepted=True) & (Q(talk__confirmed=True) | Q(talk__confirmed__isnull=True)), then='talk__pk'), output_field=models.IntegerField()), distinct=True),
pending_talk_count=Count(Case(When(talk__accepted=None, then='talk__pk'), output_field=models.IntegerField()), distinct=True),
refused_talk_count=Count(Case(When(talk__accepted=False, then='talk__pk'), output_field=models.IntegerField()), distinct=True),
+ canceled_talk_count=Count(Case(When(talk__confirmed=False, then='talk__pk'), output_field=models.IntegerField()), distinct=True),
)
return qs
@@ -154,7 +155,10 @@ class Participant(PonyConfModel):
@property
def accepted_talk_set(self):
- return self.talk_set.filter(accepted=True)
+ return self.talk_set.filter(accepted=True).exclude(confirmed=False)
+ @property
+ def canceled_talk_set(self):
+ return self.talk_set.filter(confirmed=False)
@property
def pending_talk_set(self):
return self.talk_set.filter(accepted=None)
diff --git a/cfp/templates/cfp/staff/participant_list.html b/cfp/templates/cfp/staff/participant_list.html
index 343d01a..8684f8c 100644
--- a/cfp/templates/cfp/staff/participant_list.html
+++ b/cfp/templates/cfp/staff/participant_list.html
@@ -81,6 +81,8 @@
{% blocktrans count pending=participant.pending_talk_count %}pending: {{ pending }}{% plural %}pending: {{ pending }}{% endblocktrans %}
—
{% blocktrans count refused=participant.refused_talk_count %}refused: {{ refused }}{% plural %}refused: {{ refused }}{% endblocktrans %}
+ —
+ {% blocktrans count canceled=participant.canceled_talk_count %}canceled: {{ canceled }}{% plural %}canceled: {{ canceled }}{% endblocktrans %}
{% if forloop.last %}