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 @@
+
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"