@@ -531,6 +531,7 @@ defmodule Mobilizon.Events do
|
||||
|> events_for_ends_on(args)
|
||||
|> events_for_category(args)
|
||||
|> events_for_categories(args)
|
||||
|> events_for_languages(args)
|
||||
|> events_for_statuses(args)
|
||||
|> events_for_tags(args)
|
||||
|> events_for_location(args)
|
||||
@@ -1323,13 +1324,22 @@ defmodule Mobilizon.Events do
|
||||
defp events_for_category(query, _args), do: query
|
||||
|
||||
@spec events_for_categories(Ecto.Queryable.t(), map()) :: Ecto.Query.t()
|
||||
defp events_for_categories(query, %{category_one_of: category_one_of}) when length(category_one_of) > 0 do
|
||||
defp events_for_categories(query, %{category_one_of: category_one_of})
|
||||
when length(category_one_of) > 0 do
|
||||
where(query, [q], q.category in ^category_one_of)
|
||||
end
|
||||
|
||||
defp events_for_categories(query, _args), do: query
|
||||
|
||||
defp events_for_statuses(query, %{status_one_of: status_one_of}) when length(status_one_of) > 0 do
|
||||
defp events_for_languages(query, %{language_one_of: language_one_of})
|
||||
when length(language_one_of) > 0 do
|
||||
where(query, [q], q.language in ^language_one_of)
|
||||
end
|
||||
|
||||
defp events_for_languages(query, _args), do: query
|
||||
|
||||
defp events_for_statuses(query, %{status_one_of: status_one_of})
|
||||
when length(status_one_of) > 0 do
|
||||
where(query, [q], q.status in ^status_one_of)
|
||||
end
|
||||
|
||||
@@ -1622,6 +1632,7 @@ defmodule Mobilizon.Events do
|
||||
|
||||
def category_statistics do
|
||||
Event
|
||||
|> filter_local_or_from_followed_instances_events()
|
||||
|> group_by([e], e.category)
|
||||
|> select([e], {e.category, count(e.id)})
|
||||
|> Repo.all()
|
||||
|
||||
Reference in New Issue
Block a user