diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index ad3f3ec75..b9871047a 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -2902,24 +2902,6 @@ table { } } -.feed-description { - - p { - font-size: $small-font-size; - margin-bottom: 0; - } -} - -.feed-content { - - .debate, - .proposal { - margin-bottom: 0; - margin-top: 0; - padding: $line-height / 2 0; - } -} - .figure-card { display: flex; margin: 0 0 $line-height; diff --git a/app/assets/stylesheets/widgets/feeds/feed.scss b/app/assets/stylesheets/widgets/feeds/feed.scss new file mode 100644 index 000000000..b7e293c7a --- /dev/null +++ b/app/assets/stylesheets/widgets/feeds/feed.scss @@ -0,0 +1,20 @@ +.widget-feed { + + .feed-description { + + p { + font-size: $small-font-size; + margin-bottom: 0; + } + } + + .feed-content { + + .debate, + .proposal { + margin-bottom: 0; + margin-top: 0; + padding: $line-height / 2 0; + } + } +} diff --git a/app/assets/stylesheets/widgets/feeds/proposal.scss b/app/assets/stylesheets/widgets/feeds/proposal.scss new file mode 100644 index 000000000..6d8a5636f --- /dev/null +++ b/app/assets/stylesheets/widgets/feeds/proposal.scss @@ -0,0 +1,20 @@ +.feed-proposals .proposal { + @include grid-row-nest; + clear: both; + + .feed-image { + display: inline-block; + height: rem-calc(120); + overflow: hidden; + width: 100%; + + @include breakpoint(medium) { + height: rem-calc(96); + } + + img { + max-width: none; + width: 100%; + } + } +} diff --git a/app/assets/stylesheets/widgets/feeds/proposals.scss b/app/assets/stylesheets/widgets/feeds/proposals.scss deleted file mode 100644 index 863a45174..000000000 --- a/app/assets/stylesheets/widgets/feeds/proposals.scss +++ /dev/null @@ -1,22 +0,0 @@ -.feed-proposals { - - .proposal { - clear: both; - - .feed-image { - display: inline-block; - height: rem-calc(120); - overflow: hidden; - width: 100%; - - @include breakpoint(medium) { - height: rem-calc(96); - } - - img { - max-width: none; - width: 100%; - } - } - } -} diff --git a/app/components/widgets/feeds/debate_component.html.erb b/app/components/widgets/feeds/debate_component.html.erb new file mode 100644 index 000000000..ba93fa7c1 --- /dev/null +++ b/app/components/widgets/feeds/debate_component.html.erb @@ -0,0 +1,3 @@ +
+ <%= link_to debate.title, url_for(debate) %> +
diff --git a/app/components/widgets/feeds/debate_component.rb b/app/components/widgets/feeds/debate_component.rb new file mode 100644 index 000000000..28d726811 --- /dev/null +++ b/app/components/widgets/feeds/debate_component.rb @@ -0,0 +1,7 @@ +class Widgets::Feeds::DebateComponent < ApplicationComponent + attr_reader :debate + + def initialize(debate) + @debate = debate + end +end diff --git a/app/components/widgets/feeds/debates_component.html.erb b/app/components/widgets/feeds/debates_component.html.erb deleted file mode 100644 index ad1ab2a68..000000000 --- a/app/components/widgets/feeds/debates_component.html.erb +++ /dev/null @@ -1,13 +0,0 @@ -
-
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> -
"> - <%= link_to item.title, url_for(item) %> -
- <% end %> -
- - <%= link_to t("welcome.feed.see_all_debates"), debates_path, class: "see-all" %> -
diff --git a/app/components/widgets/feeds/debates_component.rb b/app/components/widgets/feeds/debates_component.rb deleted file mode 100644 index cdee45cbd..000000000 --- a/app/components/widgets/feeds/debates_component.rb +++ /dev/null @@ -1,7 +0,0 @@ -class Widgets::Feeds::DebatesComponent < ApplicationComponent - attr_reader :feed - - def initialize(feed) - @feed = feed - end -end diff --git a/app/components/widgets/feeds/feed_component.html.erb b/app/components/widgets/feeds/feed_component.html.erb new file mode 100644 index 000000000..3873e5ce5 --- /dev/null +++ b/app/components/widgets/feeds/feed_component.html.erb @@ -0,0 +1,11 @@ +
+
+

<%= t("welcome.feed.most_active.#{kind}") %>

+ + <% feed.items.each do |item| %> + <%= render item_component_class.new(item) %> + <% end %> +
+ + <%= link_to t("welcome.feed.see_all.#{kind}"), see_all_path, class: "see-all" %> +
diff --git a/app/components/widgets/feeds/feed_component.rb b/app/components/widgets/feeds/feed_component.rb new file mode 100644 index 000000000..b858db7c7 --- /dev/null +++ b/app/components/widgets/feeds/feed_component.rb @@ -0,0 +1,25 @@ +class Widgets::Feeds::FeedComponent < ApplicationComponent + attr_reader :feed + delegate :kind, to: :feed + + def initialize(feed) + @feed = feed + end + + def see_all_path + polymorphic_path(feed.items.model) + end + + private + + def item_component_class + case kind + when "proposals" + Widgets::Feeds::ProposalComponent + when "debates" + Widgets::Feeds::DebateComponent + when "processes" + Widgets::Feeds::ProcessComponent + end + end +end diff --git a/app/components/widgets/feeds/participation_component.html.erb b/app/components/widgets/feeds/participation_component.html.erb index 84e14dba8..f19bd0e4f 100644 --- a/app/components/widgets/feeds/participation_component.html.erb +++ b/app/components/widgets/feeds/participation_component.html.erb @@ -1,11 +1,7 @@
<% feeds.each do |feed| %> - <% if feed_proposals?(feed) %> - <%= render Widgets::Feeds::ProposalsComponent.new(feed) %> - <% end %> - - <% if feed_debates?(feed) %> - <%= render Widgets::Feeds::DebatesComponent.new(feed) %> + <% if feed_proposals?(feed) || feed_debates?(feed) %> + <%= render Widgets::Feeds::FeedComponent.new(feed) %> <% end %> <% end %>
diff --git a/app/components/widgets/feeds/process_component.html.erb b/app/components/widgets/feeds/process_component.html.erb new file mode 100644 index 000000000..ff7619cac --- /dev/null +++ b/app/components/widgets/feeds/process_component.html.erb @@ -0,0 +1,13 @@ +
+ <%= link_to url_for(process) do %> +
+ <%= image_tag("welcome_process.png", alt: "") %> +
+ <%= t("welcome.feed.process_label") %>
+

<%= process.title %>

+
+
+

<%= process.summary %>

+

<%= t("welcome.feed.see_process") %>

+ <% end %> +
diff --git a/app/components/widgets/feeds/process_component.rb b/app/components/widgets/feeds/process_component.rb new file mode 100644 index 000000000..5d9f79f0f --- /dev/null +++ b/app/components/widgets/feeds/process_component.rb @@ -0,0 +1,7 @@ +class Widgets::Feeds::ProcessComponent < ApplicationComponent + attr_reader :process + + def initialize(process) + @process = process + end +end diff --git a/app/components/widgets/feeds/processes_component.html.erb b/app/components/widgets/feeds/processes_component.html.erb deleted file mode 100644 index e492713d7..000000000 --- a/app/components/widgets/feeds/processes_component.html.erb +++ /dev/null @@ -1,21 +0,0 @@ -
-
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> - <%= link_to url_for(item) do %> -
"> - <%= image_tag("welcome_process.png", alt: "") %> -
- <%= t("welcome.feed.process_label") %>
-

<%= item.title %>

-
-
-

<%= item.summary %>

-

<%= t("welcome.feed.see_process") %>

- <% end %> - <% end %> - - <%= link_to t("welcome.feed.see_all_processes"), legislation_processes_path, class: "float-right see-all" %> -
-
diff --git a/app/components/widgets/feeds/processes_component.rb b/app/components/widgets/feeds/processes_component.rb deleted file mode 100644 index 00780a38b..000000000 --- a/app/components/widgets/feeds/processes_component.rb +++ /dev/null @@ -1,7 +0,0 @@ -class Widgets::Feeds::ProcessesComponent < ApplicationComponent - attr_reader :feed - - def initialize(feed) - @feed = feed - end -end diff --git a/app/components/widgets/feeds/proposal_component.html.erb b/app/components/widgets/feeds/proposal_component.html.erb new file mode 100644 index 000000000..b94696d51 --- /dev/null +++ b/app/components/widgets/feeds/proposal_component.html.erb @@ -0,0 +1,16 @@ +
+
"> + <%= link_to proposal.title, url_for(proposal) %>
+

<%= proposal.summary %>

+
+ + <% if proposal.image.present? %> +
+
+ <%= image_tag proposal.image_url(:thumb), + alt: proposal.image.title.unicode_normalize %> +
+
+ <% end %> +
diff --git a/app/components/widgets/feeds/proposal_component.rb b/app/components/widgets/feeds/proposal_component.rb new file mode 100644 index 000000000..243bb0649 --- /dev/null +++ b/app/components/widgets/feeds/proposal_component.rb @@ -0,0 +1,7 @@ +class Widgets::Feeds::ProposalComponent < ApplicationComponent + attr_reader :proposal + + def initialize(proposal) + @proposal = proposal + end +end diff --git a/app/components/widgets/feeds/proposals_component.html.erb b/app/components/widgets/feeds/proposals_component.html.erb deleted file mode 100644 index 2df0ab861..000000000 --- a/app/components/widgets/feeds/proposals_component.html.erb +++ /dev/null @@ -1,25 +0,0 @@ -
-
-

<%= t("welcome.feed.most_active.#{feed.kind}") %>

- - <% feed.items.each do |item| %> -
row"> -
"> - <%= link_to item.title, url_for(item) %>
-

<%= item.summary %>

-
- <% if item.image.present? %> -
-
- <%= image_tag item.image_url(:thumb), - alt: item.image.title.unicode_normalize %> -
-
- <% end %> -
- <% end %> -
- - <%= link_to t("welcome.feed.see_all_proposals"), proposals_path, class: "see-all" %> -
diff --git a/app/components/widgets/feeds/proposals_component.rb b/app/components/widgets/feeds/proposals_component.rb deleted file mode 100644 index d799c5516..000000000 --- a/app/components/widgets/feeds/proposals_component.rb +++ /dev/null @@ -1,7 +0,0 @@ -class Widgets::Feeds::ProposalsComponent < ApplicationComponent - attr_reader :feed - - def initialize(feed) - @feed = feed - end -end diff --git a/app/views/welcome/_processes.html.erb b/app/views/welcome/_processes.html.erb index d859703d8..d6d3ee1ae 100644 --- a/app/views/welcome/_processes.html.erb +++ b/app/views/welcome/_processes.html.erb @@ -1,7 +1,7 @@
<% @feeds.each do |feed| %> <% if feed_processes?(feed) %> - <%= render Widgets::Feeds::ProcessesComponent.new(feed) %> + <%= render Widgets::Feeds::FeedComponent.new(feed) %> <% end %> <% end %>
diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index a1c7a886c..05fc01c71 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -875,9 +875,10 @@ en: debates: "Most active debates" proposals: "Most active proposals" processes: "Open processes" - see_all_debates: See all debates - see_all_proposals: See all proposals - see_all_processes: See all processes + see_all: + debates: See all debates + proposals: See all proposals + processes: See all processes process_label: Process see_process: See process cards: diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index b9da8ab10..d5f998ecc 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -875,9 +875,10 @@ es: debates: "Debates más activos" proposals: "Propuestas más activas" processes: "Procesos abiertos" - see_all_debates: Ver todos los debates - see_all_proposals: Ver todas las propuestas - see_all_processes: Ver todos los procesos + see_all: + debates: Ver todos los debates + proposals: Ver todas las propuestas + processes: Ver todos los procesos process_label: Proceso see_process: Ver proceso cards: diff --git a/spec/system/admin/homepage/homepage_spec.rb b/spec/system/admin/homepage/homepage_spec.rb index a47793d1f..b6349376a 100644 --- a/spec/system/admin/homepage/homepage_spec.rb +++ b/spec/system/admin/homepage/homepage_spec.rb @@ -106,7 +106,7 @@ describe "Homepage", :admin do visit root_path expect(page).to have_content "Open processes" - expect(page).to have_css(".legislation_process", count: 3) + expect(page).to have_css(".legislation-process", count: 3) end xscenario "Deactivate"