Fix event stats participants / going incoherent

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2020-06-18 16:24:00 +02:00
parent 79b00641df
commit ab517bc0cd
3 changed files with 27 additions and 18 deletions

View File

@ -63,11 +63,11 @@
$tc( $tc(
"{available}/{capacity} available places", "{available}/{capacity} available places",
participation.event.options.maximumAttendeeCapacity - participation.event.options.maximumAttendeeCapacity -
(participation.event.participantStats.going - 1), participation.event.participantStats.participant,
{ {
available: available:
participation.event.options.maximumAttendeeCapacity - participation.event.options.maximumAttendeeCapacity -
(participation.event.participantStats.going - 1), participation.event.participantStats.participant,
capacity: participation.event.options.maximumAttendeeCapacity, capacity: participation.event.options.maximumAttendeeCapacity,
} }
) )

View File

@ -174,11 +174,11 @@
$tc( $tc(
"{available}/{capacity} available places", "{available}/{capacity} available places",
event.options.maximumAttendeeCapacity - event.options.maximumAttendeeCapacity -
(event.participantStats.going - 1), event.participantStats.participant,
{ {
available: available:
event.options.maximumAttendeeCapacity - event.options.maximumAttendeeCapacity -
(event.participantStats.going - 1), event.participantStats.participant,
capacity: event.options.maximumAttendeeCapacity, capacity: event.options.maximumAttendeeCapacity,
} }
) )
@ -186,8 +186,8 @@
</span> </span>
<span v-else> <span v-else>
{{ {{
$tc("No one is going to this event", event.participantStats.going - 1, { $tc("No one is going to this event", event.participantStats.participant, {
going: event.participantStats.going - 1, going: event.participantStats.participant,
}) })
}} }}
</span> </span>
@ -197,10 +197,12 @@
{{ {{
$tc( $tc(
"{available}/{capacity} available places", "{available}/{capacity} available places",
event.options.maximumAttendeeCapacity - event.participantStats.going, event.options.maximumAttendeeCapacity -
event.participantStats.participant,
{ {
available: available:
event.options.maximumAttendeeCapacity - event.participantStats.going, event.options.maximumAttendeeCapacity -
event.participantStats.participant,
capacity: event.options.maximumAttendeeCapacity, capacity: event.options.maximumAttendeeCapacity,
} }
) )
@ -208,8 +210,8 @@
</span> </span>
<span v-else> <span v-else>
{{ {{
$tc("No one is going to this event", event.participantStats.going, { $tc("No one is going to this event", event.participantStats.participant, {
going: event.participantStats.going, going: event.participantStats.participant,
}) })
}} }}
</span> </span>

View File

@ -107,24 +107,31 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
{:ok, %{total: 0, elements: []}} {:ok, %{total: 0, elements: []}}
end end
def stats_participants_going(%EventParticipantStats{} = stats, _args, _resolution) do
{:ok, stats.participant + stats.moderator + stats.administrator + stats.creator}
end
def stats_participants( def stats_participants(
%Event{participant_stats: %EventParticipantStats{} = stats, id: event_id} = _event, %Event{participant_stats: %EventParticipantStats{} = stats, id: event_id} = _event,
_args, _args,
%{context: %{current_user: %User{id: user_id} = _user}} = _resolution %{context: %{current_user: %User{id: user_id} = _user}} = _resolution
) do ) do
going = stats.participant + stats.moderator + stats.administrator + stats.creator
if Events.is_user_moderator_for_event?(user_id, event_id) do if Events.is_user_moderator_for_event?(user_id, event_id) do
{:ok, Map.put(stats, :going, going)} {:ok,
Map.put(
stats,
:going,
stats.participant + stats.moderator + stats.administrator + stats.creator
)}
else else
{:ok, %{going: going}} {:ok, %{participant: stats.participant}}
end end
end end
def stats_participants(
%Event{participant_stats: %EventParticipantStats{participant: participant}},
_args,
_resolution
) do
{:ok, %EventParticipantStats{participant: participant}}
end
def stats_participants(_event, _args, _resolution) do def stats_participants(_event, _args, _resolution) do
{:ok, %EventParticipantStats{}} {:ok, %EventParticipantStats{}}
end end