Optimize loading partials as collections (#12276)

* Load events' partials  as collections

* Load /admin/articles partials as collections

* Render sponsorships partial as collection

* Render organization articles partials as collection

* Load users articles partials as collections
This commit is contained in:
Anna Buianova 2021-01-18 14:18:33 +03:00 committed by GitHub
parent 3750ea6544
commit 020912264e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 36 deletions

View file

@ -130,18 +130,12 @@
<div class="col-12">
<% if @featured_articles.present? %>
<h2>Manually Featured Articles</h2>
<% @featured_articles.each do |article| %>
<%= render "individual_article", article: article %>
<% end %>
<%= render partial: "individual_article", collection: @featured_articles, as: :article %>
<% end %>
</div>
<div class="col-12">
<%= paginate @articles %>
<% @articles.each do |article| %>
<%= render "individual_article", article: article %>
<% end %>
<%= render partial: "individual_article", collection: @articles, as: :article %>
<%= paginate @articles %>
</div>
</main>

View file

@ -12,12 +12,10 @@
<%= SiteConfig.sponsor_headline %>
<%= inline_svg_tag("twemoji/heart.svg", aria: true, class: "crayons-icon crayons-icon--default ml-1", title: "Love") %>
</h4>
<div class="grid grid-cols-1 gap-6">
<% @sponsorships.each do |sponsorship| %>
<%= render "articles/single_sponsor", sponsorship: sponsorship %>
<% end %>
<a href="/sponsorships" class="crayons-btn crayons-btn--secondary fs-s">Become a sponsor</a>
</div>
<div class="grid grid-cols-1 gap-6">
<%= render partial: "articles/single_sponsor", collection: @sponsorships, as: :sponsorship %>
<a href="/sponsorships" class="crayons-btn crayons-btn--secondary fs-s">Become a sponsor</a>
</div>
</div>
<% end %>
<% end %>

View file

@ -24,9 +24,7 @@
Upcoming Events
</h1>
<% @events.each do |event| %>
<%= render "event", event: event %>
<% end %>
<%= render partial: "event", collection: @events, as: :event %>
<% if @events.none? %>
<div class="crayons-notice">
@ -38,11 +36,7 @@
<h1>
Past Events
</h1>
<%= render partial: "event", collection: @past_events, as: :event %>
<% end %>
<% @past_events.each do |event| %>
<%= render "event", event: event %>
<% end %>
</div>
</div>

View file

@ -1,7 +1,5 @@
<div id="organization-article-index"></div>
<% @stories.each_with_index do |story, i| %>
<%= render "articles/single_story", story: story, featured: false %>
<% end %>
<%= render partial: "articles/single_story", collection: @stories, as: :story, locals: { featured: false } %>
<% if @stories.size > 1 %>
<div class="placeholder-div"></div>
<% end %>

View file

@ -7,21 +7,17 @@
</h3>
</header>
<div class="p-4 pb-2 pt-3">
<% @pinned_stories.each do |story| %>
<%= render "articles/single_story", story: story, featured: false %>
<% end %>
<%= render partial: "articles/single_story", collection: @pinned_stories, as: :story, locals: { featured: false } %>
</div>
</div>
<% end %>
<% @stories.each_with_index do |story, i| %>
<%= render "articles/single_story", story: story, featured: false %>
<% if i == 0 && @comments.present? %>
<% if @stories.present? %>
<%= render "articles/single_story", story: @stories.first, featured: false %>
<% if @comments.present? %>
<%= render "users/comments_section" %>
<% end %>
<% end %>
<% if @stories.none? && @comments.present? %>
<%= render partial: "articles/single_story", collection: @stories[1, @stories.size], as: :story, locals: { featured: false } %>
<div class="placeholder-div"></div>
<% elsif @comments.present? %>
<%= render "users/comments_section" %>
<% end %>
<% if @stories.size > 1 %>
<div class="placeholder-div"></div>
<% end %>