2019-11-18 01:09:15 +01:00
|
|
|
defmodule PhilomenaWeb.CommissionController do
|
|
|
|
use PhilomenaWeb, :controller
|
|
|
|
|
2025-02-07 01:06:59 +01:00
|
|
|
alias Philomena.Commissions.SearchQuery
|
|
|
|
alias Philomena.Commissions
|
2019-11-18 01:09:15 +01:00
|
|
|
alias Philomena.Repo
|
|
|
|
|
2020-08-01 18:42:29 +02:00
|
|
|
plug PhilomenaWeb.MapParameterPlug, [param: "commission"] when action in [:index]
|
2019-12-04 16:00:41 +01:00
|
|
|
plug :preload_commission
|
|
|
|
|
2019-11-18 01:09:15 +01:00
|
|
|
def index(conn, params) do
|
2025-02-07 01:06:59 +01:00
|
|
|
commission_params = Map.get(params, "commission", %{})
|
|
|
|
|
|
|
|
{commissions, changeset} =
|
|
|
|
case Commissions.execute_search_query(commission_params) do
|
|
|
|
{:ok, commissions} ->
|
|
|
|
commissions = Repo.paginate(commissions, conn.assigns.scrivener)
|
|
|
|
changeset = Commissions.change_search_query(%SearchQuery{})
|
|
|
|
{commissions, changeset}
|
|
|
|
|
|
|
|
{:error, changeset} ->
|
|
|
|
{[], changeset}
|
|
|
|
end
|
2019-11-18 01:09:15 +01:00
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
render(conn, "index.html",
|
|
|
|
title: "Commissions",
|
|
|
|
commissions: commissions,
|
2025-02-07 01:06:59 +01:00
|
|
|
changeset: changeset,
|
2020-01-11 05:20:19 +01:00
|
|
|
layout_class: "layout--wide"
|
|
|
|
)
|
2019-11-18 01:09:15 +01:00
|
|
|
end
|
|
|
|
|
2019-12-04 16:00:41 +01:00
|
|
|
defp preload_commission(conn, _opts) do
|
|
|
|
user = conn.assigns.current_user
|
|
|
|
|
|
|
|
case user do
|
|
|
|
nil ->
|
|
|
|
conn
|
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
user ->
|
2019-12-04 16:00:41 +01:00
|
|
|
user = Repo.preload(user, :commission)
|
2020-07-28 22:56:26 +02:00
|
|
|
|
|
|
|
assign(conn, :current_user, user)
|
2019-12-04 16:00:41 +01:00
|
|
|
end
|
|
|
|
end
|
2019-12-16 20:24:38 +01:00
|
|
|
end
|