docbrown/app/views/articles/_sidebar.html.erb
Anna Buianova 020912264e
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
2021-01-18 14:18:33 +03:00

31 lines
1.7 KiB
Text

<div id="sidebar-wrapper-left" class="sidebar-wrapper sidebar-wrapper-left crayons-layout__sidebar-left">
<aside class="side-bar" aria-label="Primary sidebar">
<% cache(release_adjusted_cache_key("main-sidebar-nav--#{user_signed_in?}"), expires_in: 15.minutes) do %>
<%= render "shared/auth_widget" unless user_signed_in? %>
<%= render "layouts/main_nav" %>
<%= render "layouts/sidebar_tags" %>
<% @sponsorships = Sponsorship.gold.live.includes(:organization).order(featured_number: :asc) %>
<%# the pattern .present?/.each has the advantage of issuing only a single SQL query to load objects in memory %>
<% if @sponsorships.present? %>
<div class="<%= "hidden" if user_signed_in? %> px-1" id="sponsorship-widget">
<h4 class="flex align-center fs-s ff-monospace fw-bold tt-uppercase mb-4">
<%= 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">
<%= 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 %>
<% cache("display-area-left-#{rand(5)}", expires_in: 5.minutes) do %>
<% @left_sidebar_ad = DisplayAd.for_display("sidebar_left") %>
<% if @left_sidebar_ad %>
<div class="crayons-sponsorship-widget" id="sponsorship-arbitrary-display-widget" data-id="<%= @left_sidebar_ad.id %>">
<%= @left_sidebar_ad.processed_html.html_safe %>
</div>
<% end %>
<% end %>
</aside>
</div>