From 8626167ac8eb832579ed453e742eebe346f46124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Mon, 31 Jul 2023 14:19:28 +0200 Subject: [PATCH 01/10] enable ziadost o volebny preukaz --- .../parliament_vote_app/application_forms/delivery.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/apps/parliament_vote_app/application_forms/delivery.html.erb b/app/views/apps/parliament_vote_app/application_forms/delivery.html.erb index 8dd346c6..315028e3 100644 --- a/app/views/apps/parliament_vote_app/application_forms/delivery.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/delivery.html.erb @@ -7,7 +7,7 @@ <%= render 'components/error_summary', form: @application_form %>

Potrebujete požiadať o hlasovací preukaz

Aby ste mohli v deň volieb voliť mimo vášho trvalého bydliska, musíte požiadať vašu obec o vydanie hlasovacieho preukazu – osobne alebo elektronicky. Hlasovací preukaz vás oprávňuje voliť z ktoréhokoľvek volebného okrsku v SR.

- <% if true %> + <% if false %>

Obce potrebné informácie k žiadostiam v súčastnosti ešte len zverejňujú, ak nám však necháte email, dáme Vám vedieť, keď už bude možné o hlasovací preukaz požiadať. Posledný termín na zaslanie žiadosti je 8. septembra.

<%= render 'apps/parliament_vote_app/application_forms/subscribe' %> <% else %> From c2c887909da1a00ac5d7fb3f17b30185a855c742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Mon, 7 Aug 2023 16:10:39 +0200 Subject: [PATCH 02/10] update vote preukaz --- .../authorized_person_send.html.erb | 54 ++++--- .../application_forms/send.html.erb | 54 ++++--- .../features/apps/parliament_vote_app_spec.rb | 146 +++++++++--------- 3 files changed, 125 insertions(+), 129 deletions(-) diff --git a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb index 94fb63e5..71bffc9e 100644 --- a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb @@ -3,36 +3,34 @@
-

Zaslanie žiadosti na úrad

+

Pošlite žiadosť na úrad

+ + <% if @application_form.municipality_email.present? %> + Otvorte + <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, + target: '_blank', + body: @application_form.from_slovakia_authorized_person_email_body, + subject: 'Žiadosť o hlasovací preukaz do parlamentých volieb.' + %> + alebo ju manuálne + skopírujte. + <% end %> +
style="display: none;"<% end %>> +

Skopírujte text žiadosti a pošlite ho na emailovú adresu obce.

+
+ +
+
<%= render 'municipality_email_warning' %> -

Pokyny

-
    -
  1. - <% if @application_form.municipality_email.present? %> - Otvorte - <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, - target: '_blank', - body: @application_form.from_slovakia_authorized_person_email_body, - subject: 'Žiadosť o hlasovací preukaz do parlamentých volieb.' - %> - alebo ju manuálne - skopírujte. - <% end %> -
    style="display: none;"<% end %>> -

    Skopírujte text žiadosti.

    -
    - -
    -
    -
  2. -
  3. - Odošlite na emailovú adresu obce<% if @application_form.municipality_email.present? %> <%= @application_form.municipality_email %><% end %>. -
  4. -
  5. - A potom <%= link_to 'pokračujte ďalej', end_apps_parliament_vote_app_application_forms_url %>. -
  6. -
+
+ + +
+ + <%= form_with url: end_apps_parliament_vote_app_application_forms_url, method: :get, local: true do |form| %> + <%= form.submit 'Pokračovať', id: 'nextButton', class: 'govuk-button govuk-!-margin-top-5', disabled: true %> + <% end %>
diff --git a/app/views/apps/parliament_vote_app/application_forms/send.html.erb b/app/views/apps/parliament_vote_app/application_forms/send.html.erb index cbc43e7c..fd2637d4 100644 --- a/app/views/apps/parliament_vote_app/application_forms/send.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/send.html.erb @@ -3,36 +3,34 @@
-

Zaslanie žiadosti na úrad

+

Pošlite žiadosť na úrad

+ + <% if @application_form.municipality_email.present? %> + Otvorte + <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, + target: '_blank', + body: @application_form.from_slovakia_email_body, + subject: 'Žiadosť o hlasovací preukaz do parlamentých volieb.' + %> + alebo ju manuálne + skopírujte. + <% end %> +
style="display: none;"<% end %>> +

Skopírujte text žiadosti a pošlite ho na emailovú adresu obce.

+
+ +
+
<%= render 'municipality_email_warning' %> -

Pokyny

-
    -
  1. - <% if @application_form.municipality_email.present? %> - Ak máte na zariadení emailového klienta, - <%= mail_to @application_form.municipality_email, 'kliknutím tu priamo otvorte pripravenú žiadosť. '.html_safe, - target: '_blank', - body: @application_form.from_slovakia_email_body, - subject: 'Žiadosť o hlasovací preukaz do parlamentných volieb.' - %> - Alternatívne kliknutím - tu žiadosť zobrazte a manuálne ju skopírujte do tela emailu. - <% end %> -
    style="display: none;"<% end %>> -

    Skopírujte text žiadosti.

    -
    - -
    -
    -
  2. -
  3. - Odošlite na emailovú adresu obce<% if @application_form.municipality_email.present? %> <%= @application_form.municipality_email %><% end %>. -
  4. -
  5. - A potom <%= link_to 'pokračujte ďalej', end_apps_parliament_vote_app_application_forms_url %>. -
  6. -
+
+ + +
+ + <%= form_with url: end_apps_parliament_vote_app_application_forms_url, method: :get, local: true do |form| %> + <%= form.submit 'Pokračovať', id: 'nextButton', class: 'govuk-button govuk-!-margin-top-5', disabled: true %> + <% end %>
diff --git a/spec/features/apps/parliament_vote_app_spec.rb b/spec/features/apps/parliament_vote_app_spec.rb index ef878c0c..ba5b06b6 100644 --- a/spec/features/apps/parliament_vote_app_spec.rb +++ b/spec/features/apps/parliament_vote_app_spec.rb @@ -25,54 +25,56 @@ def start expect(page).to have_content('Potrebujete požiadať o hlasovací preukaz') expect(page).to have_content('Aby ste mohli v deň volieb voliť mimo vášho trvalého bydliska, musíte požiadať vašu obec o vydanie hlasovacieho preukazu – osobne alebo elektronicky. Hlasovací preukaz vás oprávňuje voliť z ktoréhokoľvek volebného okrsku v SR.') - expect(page).to have_content('Obce potrebné informácie k žiadostiam v súčastnosti ešte len zverejňujú, ak nám však necháte email, dáme Vám vedieť, keď už bude možné o hlasovací preukaz požiadať. Posledný termín na zaslanie žiadosti je 8. septembra.') + expect(page).to have_content('Ako prevezmete hlasovací preukaz?') + expect(page).to have_content('Poštou') + expect(page).to have_content('Vyzdvihne ho za mňa iná osoba') + expect(page).to have_content('Osobne na úrade') end - # TODO: /app/views/apps/parliament_vote_app/application_forms/delivery.html.erb:13 "else" - # scenario 'As a citizen I want to request voting permit personally after the deadline' do - # travel_to Apps::ParliamentVoteApp::ApplicationForm::PICKUP_DEADLINE_DATE + 1.day - # start - # choose 'Áno' - # click_button 'Pokračovať' + scenario 'As a citizen I want to request voting permit personally after the deadline' do + travel_to Apps::ParliamentVoteApp::ApplicationForm::PICKUP_DEADLINE_DATE + 1.day + start + choose 'Áno' + click_button 'Pokračovať' - # choose 'Áno' - # click_button 'Pokračovať' + choose 'Áno' + click_button 'Pokračovať' - # choose 'Na Slovensku, mimo trvalého bydliska' - # click_button 'Pokračovať' + choose 'Na Slovensku, mimo trvalého bydliska' + click_button 'Pokračovať' - # expect(page).to have_field('Osobne na úrade', disabled: true) - # end + expect(page).to have_field('Osobne na úrade', disabled: true) + end - # scenario 'As a citizen I want to request voting permit by authorized person after the deadline' do - # travel_to Apps::ParliamentVoteApp::ApplicationForm::PICKUP_DEADLINE_DATE + 1.day - # start - # choose 'Áno' - # click_button 'Pokračovať' + scenario 'As a citizen I want to request voting permit by authorized person after the deadline' do + travel_to Apps::ParliamentVoteApp::ApplicationForm::PICKUP_DEADLINE_DATE + 1.day + start + choose 'Áno' + click_button 'Pokračovať' - # choose 'Áno' - # click_button 'Pokračovať' + choose 'Áno' + click_button 'Pokračovať' - # choose 'Na Slovensku, mimo trvalého bydliska' - # click_button 'Pokračovať' + choose 'Na Slovensku, mimo trvalého bydliska' + click_button 'Pokračovať' - # expect(page).to have_field('Vyzdvihne ho za mňa iná osoba', disabled: true) - # end + expect(page).to have_field('Vyzdvihne ho za mňa iná osoba', disabled: true) + end - # scenario 'As a citizen I want to request voting permit by post after the deadline' do - # travel_to Apps::ParliamentVoteApp::ApplicationForm::DELIVERY_BY_POST_DEADLINE_DATE + 1.day - # start - # choose 'Áno' - # click_button 'Pokračovať' + scenario 'As a citizen I want to request voting permit by post after the deadline' do + travel_to Apps::ParliamentVoteApp::ApplicationForm::DELIVERY_BY_POST_DEADLINE_DATE + 1.day + start + choose 'Áno' + click_button 'Pokračovať' - # choose 'Áno' - # click_button 'Pokračovať' + choose 'Áno' + click_button 'Pokračovať' - # choose 'Na Slovensku, mimo trvalého bydliska' - # click_button 'Pokračovať' + choose 'Na Slovensku, mimo trvalého bydliska' + click_button 'Pokračovať' - # expect(page).to have_field('Poštou', disabled: true) - # end + expect(page).to have_field('Poštou', disabled: true) + end scenario 'As a pernament citizen with I want to vote by post after the deadline' do travel_to Apps::ParliamentVoteApp::ApplicationForm::VOTE_BY_POST_DEADLINE_DATE + 1.day @@ -101,55 +103,53 @@ def start expect(page).to have_content('Termín na zaslanie žiadosti o voľbu poštou uplynul 9. augusta') end - # # TODO: /app/views/apps/parliament_vote_app/application_forms/delivery.html.erb:13 "else" - # scenario 'As a citizen I want to request voting permit personally' do - # start - # choose 'Áno' - # click_button 'Pokračovať' + scenario 'As a citizen I want to request voting permit personally' do + start + choose 'Áno' + click_button 'Pokračovať' - # choose 'Áno' - # click_button 'Pokračovať' + choose 'Áno' + click_button 'Pokračovať' - # choose 'Na Slovensku, mimo trvalého bydliska' - # click_button 'Pokračovať' + choose 'Na Slovensku, mimo trvalého bydliska' + click_button 'Pokračovať' - # choose 'Osobne' - # click_button 'Pokračovať' + choose 'Osobne' + click_button 'Pokračovať' - # expect(page).to have_content('Prevzatie hlasovacieho preukazu osobne') - # end + expect(page).to have_content('Prevzatie hlasovacieho preukazu osobne') + end - # scenario 'As a citizen I want to request voting permit via authorized person' do - # start - # choose 'Áno' - # click_button 'Pokračovať' + scenario 'As a citizen I want to request voting permit via authorized person' do + start + choose 'Áno' + click_button 'Pokračovať' - # choose 'Áno' - # click_button 'Pokračovať' + choose 'Áno' + click_button 'Pokračovať' - # choose 'Na Slovensku, mimo trvalého bydliska' - # click_button 'Pokračovať' + choose 'Na Slovensku, mimo trvalého bydliska' + click_button 'Pokračovať' - # choose 'Vyzdvihne ho za mňa iná osoba' - # click_button 'Pokračovať' + choose 'Vyzdvihne ho za mňa iná osoba' + click_button 'Pokračovať' - # fill_in 'Meno, priezvisko, titul', with: 'Ferko Mrkva', class: 'person' - # fill_in 'Rodné číslo', with: '123', class: 'person' - # fill_in 'Ulica', with: 'Pupavova 31' - # fill_in 'PSČ', with: '456' - # fill_in 'Obec', with: 'Bratislava - Karlova ves' - # fill_in 'Meno, priezvisko, titul', with: 'Jarko Mrkva', class: 'authorized-person' - # fill_in 'Číslo občianskeho preukazu', with: '567', class: 'authorized-person' - # click_button 'Pokračovať' + fill_in 'Meno, priezvisko, titul', with: 'Ferko Mrkva', class: 'person' + fill_in 'Rodné číslo', with: '123', class: 'person' + fill_in 'Ulica', with: 'Pupavova 31' + fill_in 'PSČ', with: '456' + fill_in 'Obec', with: 'Bratislava - Karlova ves' + fill_in 'Meno, priezvisko, titul', with: 'Jarko Mrkva', class: 'authorized-person' + fill_in 'Číslo občianskeho preukazu', with: '567', class: 'authorized-person' + click_button 'Pokračovať' - # expect(page).to have_content('Meno: Ferko Mrkva') - # expect(page).to have_content('Rodné číslo: 123') - # expect(page).to have_content('Trvalý pobyt: Pupavova 31, 456 Bratislava - Karlova ves') - # expect(page).to have_content('Preukaz vyzdvihne splnomocnená osoba: Meno: Jarko Mrkva Číslo občianskeho preukazu: 567') + expect(page).to have_content('Meno: Ferko Mrkva') + expect(page).to have_content('Rodné číslo: 123') + expect(page).to have_content('Trvalý pobyt: Pupavova 31, 456 Bratislava - Karlova ves') + expect(page).to have_content('Preukaz vyzdvihne splnomocnená osoba: Meno: Jarko Mrkva Číslo občianskeho preukazu: 567') - # click_link 'pokračujte ďalej' - # expect(page).to have_content('Gratulujeme') - # end + check 'Poslal/a som žiadosť na úrad' + end scenario 'As a citizen I want to vote at home address' do start From 4e76bec82ff4a5cd20dea0da8be7a89c7f9a825b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Mon, 14 Aug 2023 15:07:53 +0200 Subject: [PATCH 03/10] use google spreadsheets api v4 getting municipality emails --- .../_municipality_ui.html.erb | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/views/apps/parliament_vote_app/application_forms/_municipality_ui.html.erb b/app/views/apps/parliament_vote_app/application_forms/_municipality_ui.html.erb index 6c982d70..6220964e 100644 --- a/app/views/apps/parliament_vote_app/application_forms/_municipality_ui.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/_municipality_ui.html.erb @@ -56,21 +56,21 @@ /* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */ - var SPREADSHEET_JSON_URL = 'https://spreadsheets.google.com/feeds/list/1UWA_P-OrH-IvmZnqO89FF2OzQ3gdhQCi3HLRHKx4RZI/oc4boel/public/values?alt=json'; + var SPREADSHEET_JSON_URL = 'https://sheets.googleapis.com/v4/spreadsheets/1UWA_P-OrH-IvmZnqO89FF2OzQ3gdhQCi3HLRHKx4RZI/values/master!C2:K?alt=json&key=AIzaSyDEUeT4Ov9rkc6egolxX1ejoqqNwY7eAm8'; function convertSourceDataToMunicipality(data) { - var CONST_MUNICIPALITY = 'gsx$obec'; - var CONST_PRIMARY_EMAIL = 'gsx$editaciesemfinalakinyakoij'; - var CONST_EMAIL = 'gsx$emailprevolbupostou'; - var CONST_COUNTY = 'gsx$okres'; - var CONST_STATUS = 'gsx$status'; + var CONST_MUNICIPALITY = 5; + var CONST_PRIMARY_EMAIL = 1; + var CONST_EMAIL = 8; + var CONST_COUNTY = 6; + var CONST_STATUS = 0; var result = { - municipalityName: data[CONST_MUNICIPALITY]['$t'], - countyName: data[CONST_COUNTY]['$t'], - email: data[CONST_PRIMARY_EMAIL]['$t'] == '' ? data[CONST_EMAIL]['$t'] : data[CONST_PRIMARY_EMAIL]['$t'], + municipalityName: data[CONST_MUNICIPALITY], + countyName: data[CONST_COUNTY], + email: data[CONST_PRIMARY_EMAIL] == '' ? data[CONST_EMAIL] : data[CONST_PRIMARY_EMAIL], payload: { - status: data[CONST_STATUS]['$t'] + status: data[CONST_STATUS] } }; @@ -97,9 +97,9 @@ var municipalityIndices = {}; var result = []; - if (response.feed && response.feed.entry) + if (response.values) { - $.each(response.feed.entry, function (i, data) { + $.each(response.values, function (i, data) { var item = convertSourceDataToMunicipality(data); var countyName = item.countyName; From b9dc60410165af960c429fdc40745822719d0d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Mon, 14 Aug 2023 15:35:36 +0200 Subject: [PATCH 04/10] minor style fix in vote app --- .../application_forms/authorized_person_send.html.erb | 3 ++- .../apps/parliament_vote_app/application_forms/send.html.erb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb index 71bffc9e..a11ebfcc 100644 --- a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb @@ -6,7 +6,7 @@

Pošlite žiadosť na úrad

<% if @application_form.municipality_email.present? %> - Otvorte +

Otvorte <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, target: '_blank', body: @application_form.from_slovakia_authorized_person_email_body, @@ -14,6 +14,7 @@ %> alebo ju manuálne skopírujte. +

<% end %>
style="display: none;"<% end %>>

Skopírujte text žiadosti a pošlite ho na emailovú adresu obce.

diff --git a/app/views/apps/parliament_vote_app/application_forms/send.html.erb b/app/views/apps/parliament_vote_app/application_forms/send.html.erb index fd2637d4..3e9c9c8c 100644 --- a/app/views/apps/parliament_vote_app/application_forms/send.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/send.html.erb @@ -6,7 +6,7 @@

Pošlite žiadosť na úrad

<% if @application_form.municipality_email.present? %> - Otvorte +

Otvorte <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, target: '_blank', body: @application_form.from_slovakia_email_body, @@ -14,6 +14,7 @@ %> alebo ju manuálne skopírujte. +

<% end %>
style="display: none;"<% end %>>

Skopírujte text žiadosti a pošlite ho na emailovú adresu obce.

From 823e70bb257394223d0e4f1e6eee249762296f56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Thu, 17 Aug 2023 09:30:28 +0200 Subject: [PATCH 05/10] show email template even when email is present and show municipality email address --- .../authorized_person_send.html.erb | 29 ++++++++++--------- .../application_forms/send.html.erb | 29 ++++++++++--------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb index a11ebfcc..5568ef40 100644 --- a/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb +++ b/app/views/apps/parliament_vote_app/application_forms/authorized_person_send.html.erb @@ -5,19 +5,22 @@

Pošlite žiadosť na úrad

- <% if @application_form.municipality_email.present? %> -

Otvorte - <%= mail_to @application_form.municipality_email, 'pripravenú žiadosť v emailovom klientovi'.html_safe, - target: '_blank', - body: @application_form.from_slovakia_authorized_person_email_body, - subject: 'Žiadosť o hlasovací preukaz do parlamentých volieb.' - %> - alebo ju manuálne - skopírujte. -

- <% end %> -
style="display: none;"<% end %>> -

Skopírujte text žiadosti a pošlite ho na emailovú adresu obce.

+