Skip to content

Commit f0a959a

Browse files
authored
Merge pull request #1358 from code-corps/fix-organization-icons
Fix organization icons to use ImagePresenter and fix the seeds
2 parents c6f8bbf + d87fe5f commit f0a959a

File tree

4 files changed

+22
-13
lines changed

4 files changed

+22
-13
lines changed

lib/code_corps/presenters/image_presenter.ex

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
defmodule CodeCorps.Presenters.ImagePresenter do
2-
alias CodeCorps.{Project, User}
2+
alias CodeCorps.{Organization, Project, User}
33
alias CodeCorps.Cloudex.CloudinaryUrl
44

55
@large_options %{crop: "fill", height: 500, width: 500}
66

7+
def large(%Organization{} = organization), do: do_large(organization, "organization")
78
def large(%Project{} = project), do: do_large(project, "project")
89
def large(%User{} = user), do: do_large(user, "user")
910

@@ -12,6 +13,7 @@ defmodule CodeCorps.Presenters.ImagePresenter do
1213

1314
@thumb_options %{crop: "fill", height: 100, width: 100}
1415

16+
def thumbnail(%Organization{} = organization), do: do_thumbnail(organization, "organization")
1517
def thumbnail(%Project{} = project), do: do_thumbnail(project, "project")
1618
def thumbnail(%User{} = user), do: do_thumbnail(user, "user")
1719

lib/code_corps_web/views/organization_view.ex

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
defmodule CodeCorpsWeb.OrganizationView do
22
@moduledoc false
3-
alias CodeCorps.Cloudex.CloudinaryUrl
3+
alias CodeCorps.Presenters.ImagePresenter
44
use CodeCorpsWeb, :view
55
use JaSerializer.PhoenixView
66

@@ -16,11 +16,7 @@ defmodule CodeCorpsWeb.OrganizationView do
1616
has_many :organization_github_app_installations, serializer: CodeCorpsWeb.OrganizationGithubAppInstallationView, identifiers: :always
1717
has_many :projects, serializer: CodeCorpsWeb.ProjectView, identifiers: :always
1818

19-
def icon_large_url(organization, _conn) do
20-
CloudinaryUrl.for(organization.cloudinary_public_id, %{crop: "fill", height: 500, width: 500}, "large", organization.default_color, "organization")
21-
end
19+
def icon_large_url(organization, _conn), do: ImagePresenter.large(organization)
2220

23-
def icon_thumb_url(organization, _conn) do
24-
CloudinaryUrl.for(organization.cloudinary_public_id, %{crop: "fill", height: 100, width: 100}, "thumb", organization.default_color, "organization")
25-
end
21+
def icon_thumb_url(organization, _conn), do: ImagePresenter.thumbnail(organization)
2622
end

priv/repo/seeds.exs

+5-5
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ defmodule SeedChangeset do
6060
@moduledoc false
6161

6262
alias CodeCorps.{
63-
TaskList,
63+
Helpers.RandomIconColor,
64+
Helpers.Slug,
6465
Organization,
66+
Services.MarkdownRendererService,
6567
SluggedRoute,
66-
Helpers.Slug,
67-
Helpers.RandomIconColor,
68-
Services.MarkdownRendererService
68+
TaskList
6969
}
7070
alias Ecto.Changeset
7171

@@ -76,7 +76,7 @@ defmodule SeedChangeset do
7676
|> Changeset.assoc_constraint(:owner)
7777
|> Changeset.put_change(:approved, true)
7878
|> Slug.generate_slug(:name, :slug)
79-
|> RandomIconColor.generate_icon_color(:slugged_route_changeset)
79+
|> RandomIconColor.generate_icon_color(:default_color)
8080

8181
slug = changeset |> Changeset.get_field(:slug)
8282
slugged_route_changeset =

test/lib/code_corps/presenters/image_presenter_test.exs

+11
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,33 @@ defmodule CodeCorps.Presenters.ImagePresenterTest do
55

66
alias CodeCorps.Presenters.ImagePresenter
77

8+
@organization build(:organization)
89
@project build(:project)
910
@user build(:user)
1011

1112
describe "large/1" do
13+
test "returns proper large image defaults for organization" do
14+
assert ImagePresenter.large(@organization) == "#{Application.get_env(:code_corps, :asset_host)}/icons/organization_default_large_.png"
15+
end
16+
1217
test "returns proper large image defaults for project" do
1318
assert ImagePresenter.large(@project) == "#{Application.get_env(:code_corps, :asset_host)}/icons/project_default_large_.png"
1419
end
20+
1521
test "returns proper large image defaults for user" do
1622
assert ImagePresenter.large(@user) == "#{Application.get_env(:code_corps, :asset_host)}/icons/user_default_large_.png"
1723
end
1824
end
1925

2026
describe "thumbnail/1" do
27+
test "returns proper thumbnail image defaults for organization" do
28+
assert ImagePresenter.thumbnail(@organization) == "#{Application.get_env(:code_corps, :asset_host)}/icons/organization_default_thumb_.png"
29+
end
30+
2131
test "returns proper thumbnail image defaults for project" do
2232
assert ImagePresenter.thumbnail(@project) == "#{Application.get_env(:code_corps, :asset_host)}/icons/project_default_thumb_.png"
2333
end
34+
2435
test "returns proper thumbnail image defaults for user" do
2536
assert ImagePresenter.thumbnail(@user) == "#{Application.get_env(:code_corps, :asset_host)}/icons/user_default_thumb_.png"
2637
end

0 commit comments

Comments
 (0)