From 2cc8012731a440b0594543c197cf3b6fbcc0fdc3 Mon Sep 17 00:00:00 2001 From: echarp Date: Sun, 3 Mar 2019 16:30:16 +0000 Subject: [PATCH] Count by country in the markdown digest --- app/helpers/digest_helper.rb | 15 +++++++++++++++ app/views/digests/markdown.html.haml | 16 ++-------------- config/locales/views/en.yml | 2 +- config/locales/views/fr.yml | 2 +- config/locales/views/pt-BR.yml | 2 +- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/app/helpers/digest_helper.rb b/app/helpers/digest_helper.rb index 5237326e..c055500a 100644 --- a/app/helpers/digest_helper.rb +++ b/app/helpers/digest_helper.rb @@ -7,4 +7,19 @@ module DigestHelper description.gsub(/\[(\d)+\]/, "[#{id}_\\1]") end + + def count_by_country(events) + events.group_by { |e| e.region&.region || e.region }.collect do |region, es| + "#{region}: #{es.size}" + end.join ', ' + end + + # [country city] title - date + def to_title(event) + ["[#{event.region.region&.code || event.region&.code}", + "#{event.city}]", + "[#{event.title}](#{event_url event})", + '-', + display_date(event)].join ' ' + end end diff --git a/app/views/digests/markdown.html.haml b/app/views/digests/markdown.html.haml index 47eeabae..aa8fd873 100644 --- a/app/views/digests/markdown.html.haml +++ b/app/views/digests/markdown.html.haml @@ -1,11 +1,11 @@ - title = t '.title', week: @week.cweek, year: @week.year - description = capture_haml do - = t '.week', count: @events.count + = t '.week', count: @events.count, count_by_country: count_by_country(@events) - second_part = capture_haml do - @events.sort_by(&:start_time).each do |event| - [#{event.region.region.try(:code) || event.region.try(:code)} #{event.city}] [#{event.title}](#{event_url event}) - #{display_date event} + = to_title event \----- = renumber_footnotes event.id, to_markdown(event.description) \ @@ -24,18 +24,6 @@ %hr -:markdown - * [April](https://april.org) - * [Agenda du Libre](https://www.agendadulibre.org) - * [Carte des événements](#{maps_url future: false, period: - { year: @week.year, week: @week.cweek }}) - * [Proposer un événement](https://www.agendadulibre.org/events/new) - * [Annuaire des organisations](https://www.agendadulibre.org/orgas) - * [Agenda pour la semaine précédente](#{digest_url :markdown, - future: false, period: { year: @week.year, week: (@week - 1.week).cweek }}) - -%hr - .second_part :markdown #{second_part} diff --git a/config/locales/views/en.yml b/config/locales/views/en.yml index b2130964..965f96f8 100644 --- a/config/locales/views/en.yml +++ b/config/locales/views/en.yml @@ -310,7 +310,7 @@ description." digests: markdown: title: Agenda du Libre for week %{week} of the year %{year} - week: Week of %{count} events. + week: Week of %{count} events (%{count_by_country}). devise: sessions: diff --git a/config/locales/views/fr.yml b/config/locales/views/fr.yml index 7c76f09e..5e8f057e 100644 --- a/config/locales/views/fr.yml +++ b/config/locales/views/fr.yml @@ -326,7 +326,7 @@ description plus complète." digests: markdown: title: Agenda du Libre pour la semaine %{week} de l'année %{year} - week: Calendrier web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces %{count} événements est en seconde partie de dépêche. + week: Calendrier web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces %{count} événements (%{count_by_country}) est en seconde partie de dépêche. devise: sessions: diff --git a/config/locales/views/pt-BR.yml b/config/locales/views/pt-BR.yml index 7ba03f20..ab628d41 100644 --- a/config/locales/views/pt-BR.yml +++ b/config/locales/views/pt-BR.yml @@ -311,7 +311,7 @@ descrição mais completa." digests: markdown: title: Agenda Livre da semana %{week} do ano de %{year} - week: Semana com %{count} eventos. + week: Semana com %{count} eventos (%{count_by_country}). devise: sessions: