Skip to content

Commit

Permalink
Add email field to csv presenter (#121)
Browse files Browse the repository at this point in the history
* Add email to csv presenter

* Force if the user exists

* Add email check on specs

* Amend test

* Amend tests
  • Loading branch information
lastpotion committed Feb 15, 2017
1 parent c5da71a commit c6c4dfa
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 8 deletions.
5 changes: 5 additions & 0 deletions config/i18n-tasks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
base_locale: ca
locales: [ca, es]
ignore_unused:
- "decidim.features.hospitalet_surveys.name"
- "devise.mailer.invite_user.subject"
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ def to_data

def headers
CSV.generate_line(
[I18n.t("decidim_hospitalet.surveys.questions.categories")].concat(
[
I18n.t("decidim_hospitalet.surveys.questions.email"),
I18n.t("decidim_hospitalet.surveys.questions.categories")
].concat(
COMMON_FIELDS.map do |field|
I18n.t("decidim_hospitalet.surveys.questions.#{field}")
end
Expand All @@ -40,7 +43,10 @@ def headers
def fields
@surveys.map do |survey|
CSV.generate_line(
[survey.categories.map {|c| c.name[I18n.locale.to_s] }.join(";")].concat(
[
survey.user&.email,
survey.categories.map {|c| c.name[I18n.locale.to_s] }.join(";")
].concat(
COMMON_FIELDS.map { |field| survey.send(field) }
)
)
Expand Down
2 changes: 1 addition & 1 deletion engines/decidim_hospitalet-surveys/config/i18n-tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ base_locale: ca
locales: [ca, es]
ignore_unused:
- "decidim.features.hospitalet_surveys.name"
- "devise.mailer.invite_user.subject"
- "devise.mailer.invite_user.subject"
8 changes: 6 additions & 2 deletions engines/decidim_hospitalet-surveys/config/locales/ca.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,12 @@ ca:
questions:
age_group: Edat
authorize_lopd: Autoritzo
authorize_lopd_hint: (Dono la meva conformitat per a que les dades personals aportades s’incloguin als fitxers de protecció de dades de titularitat municipal, amb l’única finalitat que sigui em tramesa informació relativa a les activitats de la pròpia enquesta)
categories: 'Selecciona els 4 temes que trobis que són prioritaris en el teu barri per als propers 10 anys:'
authorize_lopd_hint: "(Dono la meva conformitat per a que les dades personals
aportades s’incloguin als fitxers de protecció de dades de titularitat municipal,
amb l’única finalitat que sigui em tramesa informació relativa a les activitats
de la pròpia enquesta)"
categories: 'Selecciona els 4 temes que trobis que són prioritaris en el teu
barri per als propers 10 anys:'
city: A quin municipi vius?
email: Correu electrònic
email_hint: Si omples aquest camp, es convidarà l'usuari a la plataforma i
Expand Down
5 changes: 4 additions & 1 deletion engines/decidim_hospitalet-surveys/config/locales/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ es:
questions:
age_group: Edad
authorize_lopd: Autorizo
authorize_lopd_hint: (Doy mi conformidad para que los datos personales aportados se incluyan en los ficheros de protección de datos de titularidad municipal, con la única finalidad que me sea enviada información relativa a las actividades relacionadas con la presente enquesta)
authorize_lopd_hint: "(Doy mi conformidad para que los datos personales aportados
se incluyan en los ficheros de protección de datos de titularidad municipal,
con la única finalidad que me sea enviada información relativa a las actividades
relacionadas con la presente enquesta)"
categories: 'Selecciona 4 temas que consideres que son prioritarios en tu
barrio para los próximos 10 años:'
city: "¿En qué municipio vives?"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,35 @@ module Surveys

subject { described_class.new(surveys) }

context "#to_data" do
describe "#to_data" do
let(:data) { subject.to_data }
let(:headers) { data.split("\n").first }

it "includes the headers" do
expect(headers).to include("Selecciona els 4 temes que trobis que són prioritaris en el teu barri per als propers 10 anys:")
end

it "includes the surveys data" do
it "includes survey categories" do
surveys.each do |survey|
expect(data).to include("#{survey.categories.map { |c| c.name["ca"] }.join(';')}")
end
end

it "includes user emails" do
surveys.each do |survey|
expect(data).to include("#{survey.user.email}")
end
end

context "when a survey doesn't have a user" do
before do
surveys.last.update_attribute(:user, nil)
end

it "works without user email" do
expect(data.split("\n").length).to eq(4)
end
end
end
end
end
Expand Down

0 comments on commit c6c4dfa

Please sign in to comment.