Compare commits
3 commits
6d9db86e30
...
7359b6f849
Author | SHA1 | Date | |
---|---|---|---|
7359b6f849 | |||
6bce856193 | |||
d2cbddec40 |
5 changed files with 13 additions and 25 deletions
|
@ -44,8 +44,7 @@ defmodule BdfrBrowser.HTTP.Plug do
|
||||||
|
|
||||||
tpl_args = [
|
tpl_args = [
|
||||||
subreddit: subreddit,
|
subreddit: subreddit,
|
||||||
dates: subreddit_record |> Post.date_listing() |> Repo.all(),
|
dates: subreddit_record |> Post.date_listing() |> Repo.all()
|
||||||
statistics: subreddit |> Subreddit.statistics() |> Repo.all()
|
|
||||||
]
|
]
|
||||||
|
|
||||||
content = render_template("subreddit", tpl_args)
|
content = render_template("subreddit", tpl_args)
|
||||||
|
@ -95,8 +94,7 @@ defmodule BdfrBrowser.HTTP.Plug do
|
||||||
|
|
||||||
tpl_args = [
|
tpl_args = [
|
||||||
subreddit: subreddit_names,
|
subreddit: subreddit_names,
|
||||||
dates: subreddit_records |> Post.date_listing() |> Repo.all(),
|
dates: subreddit_records |> Post.date_listing() |> Repo.all()
|
||||||
statistics: subreddit_names |> Subreddit.statistics() |> Repo.all()
|
|
||||||
]
|
]
|
||||||
|
|
||||||
content = render_template("subreddit", tpl_args)
|
content = render_template("subreddit", tpl_args)
|
||||||
|
|
|
@ -22,16 +22,4 @@ defmodule BdfrBrowser.Subreddit do
|
||||||
def names_without(hidden) do
|
def names_without(hidden) do
|
||||||
from(s in __MODULE__, select: s.name, where: s.name not in ^hidden, order_by: [asc: fragment("lower(?)", s.name)])
|
from(s in __MODULE__, select: s.name, where: s.name not in ^hidden, order_by: [asc: fragment("lower(?)", s.name)])
|
||||||
end
|
end
|
||||||
|
|
||||||
def statistics(subreddit) when is_binary(subreddit), do: statistics([subreddit])
|
|
||||||
|
|
||||||
def statistics(subreddits) when is_list(subreddits) do
|
|
||||||
from(s in __MODULE__,
|
|
||||||
join: p in assoc(s, :posts),
|
|
||||||
left_join: c in assoc(p, :comments),
|
|
||||||
select: {s.name, count(p.id), count(c.id)},
|
|
||||||
where: s.name in ^subreddits,
|
|
||||||
group_by: [s.name]
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
defmodule BdfrBrowser.Repo.Migrations.AddIndicesToMultipleTables do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
def change do
|
||||||
|
create index("posts", :author)
|
||||||
|
create index("posts", :posted_at)
|
||||||
|
create index("comments", :author)
|
||||||
|
create index("chats", :accounts)
|
||||||
|
end
|
||||||
|
end
|
|
@ -55,12 +55,4 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-grid gap-2 col-12 mx-auto">
|
|
||||||
<p class="text-secondary">
|
|
||||||
<%= for {name, post_count, comment_count} <- statistics do %>
|
|
||||||
<%= name %>: <%= post_count %> Posts; <%= comment_count %> Comments<br />
|
|
||||||
<% end %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<%= BdfrBrowser.RenderUtils.post_type_icon(post.url) %>
|
<%= BdfrBrowser.RenderUtils.post_type_icon(post.url) %>
|
||||||
<%= post.num_comments %> comment(s)
|
<%= post.num_comments %> comment(s)
|
||||||
-
|
-
|
||||||
<%= BdfrBrowser.RenderUtils.format_date(post.posted_at, :short) %></small>
|
<%= BdfrBrowser.RenderUtils.format_date(post.posted_at, :long) %></small>
|
||||||
</h6>
|
</h6>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Reference in a new issue