fix: Separate accepted talks from canceled ones. Help #13
This commit is contained in:
parent
787bc67794
commit
56179e1d67
|
@ -98,9 +98,10 @@ class ParticipantManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = super().get_queryset()
|
qs = super().get_queryset()
|
||||||
qs = qs.annotate(
|
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),
|
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),
|
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
|
return qs
|
||||||
|
|
||||||
|
@ -152,7 +153,10 @@ class Participant(PonyConfModel):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def accepted_talk_set(self):
|
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
|
@property
|
||||||
def pending_talk_set(self):
|
def pending_talk_set(self):
|
||||||
return self.talk_set.filter(accepted=None)
|
return self.talk_set.filter(accepted=None)
|
||||||
|
|
|
@ -81,6 +81,8 @@
|
||||||
<span class="text-warning">{% blocktrans count pending=participant.pending_talk_count %}pending: {{ pending }}{% plural %}pending: {{ pending }}{% endblocktrans %}</span>
|
<span class="text-warning">{% blocktrans count pending=participant.pending_talk_count %}pending: {{ pending }}{% plural %}pending: {{ pending }}{% endblocktrans %}</span>
|
||||||
—
|
—
|
||||||
<span class="text-danger">{% blocktrans count refused=participant.refused_talk_count %}refused: {{ refused }}{% plural %}refused: {{ refused }}{% endblocktrans %}</span>
|
<span class="text-danger">{% blocktrans count refused=participant.refused_talk_count %}refused: {{ refused }}{% plural %}refused: {{ refused }}{% endblocktrans %}</span>
|
||||||
|
—
|
||||||
|
<span class="text-danger">{% blocktrans count canceled=participant.canceled_talk_count %}canceled: {{ canceled }}{% plural %}canceled: {{ canceled }}{% endblocktrans %}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if forloop.last %}
|
{% if forloop.last %}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user