diff --git a/Gemfile.lock b/Gemfile.lock index b98bce40..fad1fa79 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -243,7 +243,7 @@ GEM timeout net-smtp (0.3.3) net-protocol - nio4r (2.5.9) + nio4r (2.7.0) nokogiri (1.15.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -288,7 +288,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (5.0.3) - puma (6.3.1) + puma (6.4.2) nio4r (~> 2.0) que (2.2.0) que-web (0.10.0) diff --git a/app/controllers/apps/ep_vote_app/application_forms_controller.rb b/app/controllers/apps/ep_vote_app/application_forms_controller.rb index c81f1207..0427965a 100644 --- a/app/controllers/apps/ep_vote_app/application_forms_controller.rb +++ b/app/controllers/apps/ep_vote_app/application_forms_controller.rb @@ -1,45 +1,62 @@ class Apps::EpVoteApp::ApplicationFormsController < ApplicationController - before_action :set_metadata, :check_inactive_eu_application + helper FormatDaysHelper + before_action :set_metadata, :check_inactive_ep_application, :disable_current_topic + before_action :disable_feedback, only: [:show, :delivery, :create] def show - @metadata.og.title = 'Voľby do Európskeho parlamentu' + render_step('start') + end - @application_form = Apps::EpVoteApp::ApplicationForm.new( - step: 'start' - ) - render 'start' + def delivery + return render_self if request.post? + render_step('delivery') + end + + def permanent_resident + return render_self if request.post? + render_step('permanent_resident') end def create + render_self + end + + private def render_self @application_form = Apps::EpVoteApp::ApplicationForm.new(form_params) @application_form.run(self) end - def end + private def render_step(step) + @application_form = Apps::EpVoteApp::ApplicationForm.new(step: step) + render step end - private - - def form_params + private def form_params params.require(:apps_ep_vote_app_application_form).permit( :step, - :place, + :place_first_round, + :place_second_round, :sk_citizen, :delivery, - :full_name, :pin, :nationality, + :full_name, :pin, :nationality, :maiden_name, + :authorized_person_full_name, :authorized_person_pin, :street, :pobox, :municipality, :same_delivery_address, :delivery_street, :delivery_pobox, :delivery_municipality, :delivery_country, - :municipality_email + :municipality_email, + :municipality_email_verified, + :permanent_resident, + :back ) end - def set_metadata - @metadata.og.image = 'og-ep-vote-app.png' - @metadata.og.description = 'Zistite kde a ako môžete voliť. Vybavte si hlasovací preukaz.' + private def set_metadata + @metadata.og.title = 'Žiadosť o hlasovací preukaz' + @metadata.og.image = 'https://volby.digital/images/share-2024.png' + @metadata.og.description = 'Aj keď budete počas volieb mimo trvalého pobytu, voliť sa dá. Stačí požiadať.' end - def check_inactive_eu_application + private def check_inactive_ep_application return if Apps::EpVoteApp::ApplicationForm.active? return redirect_to apps_ep_vote_app_application_forms_path if action_name != "show" render 'inactive' diff --git a/app/controllers/apps/ep_vote_app_old/application_forms_controller.rb b/app/controllers/apps/ep_vote_app_old/application_forms_controller.rb new file mode 100644 index 00000000..51844dc6 --- /dev/null +++ b/app/controllers/apps/ep_vote_app_old/application_forms_controller.rb @@ -0,0 +1,47 @@ +class Apps::EpVoteAppOld::ApplicationFormsController < ApplicationController + before_action :set_metadata, :check_inactive_eu_application + + def show + @metadata.og.title = 'Voľby do Európskeho parlamentu' + + @application_form = Apps::EpVoteApp::ApplicationForm.new( + step: 'start' + ) + render 'start' + end + + def create + @application_form = Apps::EpVoteApp::ApplicationForm.new(form_params) + @application_form.run(self) + end + + def end + end + + private + + def form_params + params.require(:apps_ep_vote_app_application_form).permit( + :step, + :place, + :sk_citizen, + :delivery, + :full_name, :pin, :nationality, + :street, :pobox, :municipality, + :same_delivery_address, + :delivery_street, :delivery_pobox, :delivery_municipality, :delivery_country, + :municipality_email + ) + end + + def set_metadata + @metadata.og.image = 'og-ep-vote-app.png' + @metadata.og.description = 'Zistite kde a ako môžete voliť. Vybavte si hlasovací preukaz.' + end + + def check_inactive_eu_application + return if Apps::EpVoteApp::ApplicationForm.active? + return redirect_to apps_ep_vote_app_application_forms_path if action_name != "show" + render 'inactive' + end +end diff --git a/app/models/apps/ep_vote_app/application_form.rb b/app/models/apps/ep_vote_app/application_form.rb index 9fe0a2b0..067c5bb9 100644 --- a/app/models/apps/ep_vote_app/application_form.rb +++ b/app/models/apps/ep_vote_app/application_form.rb @@ -1,85 +1,181 @@ module Apps module EpVoteApp class ApplicationForm - DELIVERY_BY_POST_DEADLINE_DATE = Date.new(2019, 5, 3) + FIRST_ROUND_DATE = Date.parse('2024-06-23') + FIRST_ROUND_REQUEST_SENDING_DEADLINE = FIRST_ROUND_DATE - 19.day + SECOND_ROUND_REQUEST_SENDING_DEADLINE = FIRST_ROUND_DATE - 9.day include ActiveModel::Model attr_accessor :step + attr_accessor :place_first_round + attr_accessor :place_second_round attr_accessor :place attr_accessor :sk_citizen + attr_accessor :permanent_resident attr_accessor :delivery attr_accessor :full_name, :pin - attr_writer :nationality + attr_accessor :authorized_person_full_name, :authorized_person_pin attr_accessor :street, :pobox, :municipality attr_accessor :same_delivery_address attr_accessor :delivery_street, :delivery_pobox, :delivery_municipality, :delivery_country attr_accessor :municipality_email + attr_accessor :municipality_email_verified + attr_accessor :back - validates_presence_of :place, message: 'Vyberte si jednu z možností', on: :place + validates_presence_of :place_second_round, message: 'Vyberte si jednu z možností v druhom kole', + on: [:place_second_round] validates_presence_of :sk_citizen, message: 'Vyberte áno pokiaľ ste občan Slovenskej republiky', on: :sk_citizen + validates_presence_of :permanent_resident, message: 'Vyberte áno pokiaľ máte trvalý pobyt na Slovensku', on: :permanent_resident validates_presence_of :delivery, message: 'Vyberte si spôsob prevzatia hlasovacieho preukazu', on: :delivery - validates_exclusion_of :delivery, in: ['post'], if: -> { Date.current > DELIVERY_BY_POST_DEADLINE_DATE }, - message: 'Termín na zaslanie hlasovacieho preukazu poštou už uplynul.', on: :delivery + validates_exclusion_of :delivery, in: %w(post authorized_person), + if: -> { request_sending_expired? }, + message: 'Lehota na zaslanie žiadosti o hlasovací preukaz uplynula 10.2.2020.', on: :delivery + validates_exclusion_of :delivery, in: %w(person), + if: -> { pickup_expired? }, + message: 'Termín na vybavenie hlasovacieho preukazu uplynul 28.2.2020.', on: :delivery - validates_presence_of :full_name, message: 'Meno je povinná položka', on: :identity - validates_presence_of :pin, message: 'Rodné číslo je povinná položka', on: :identity - validates_presence_of :nationality, message: 'Štátna príslušnosť je povinná položka', on: :identity + validates_presence_of :full_name, message: 'Meno je povinná položka', + on: [:identity, :world_abroad_permanent_resident, :authorized_person] + validates_presence_of :pin, message: 'Rodné číslo je povinná položka', + on: [:identity, :world_abroad_permanent_resident, :authorized_person] + # validate :pin_is_ok, on: [:identity, :world_abroad_permanent_resident, :authorized_person] + validates_presence_of :street, message: 'Zadajte ulicu alebo názov obce ak obec nemá ulice', + on: [:identity, :authorized_person] + validates_presence_of :pobox, message: 'Zadajte poštové smerové čislo', + on: [:identity, :authorized_person] + validates_presence_of :municipality, message: 'Vyberte obec', + on: [:identity, :authorized_person] - validates_presence_of :street, message: 'Zadajte ulicu a číslo alebo číslo domu', on: :address - validates_presence_of :pobox, message: 'Zadajte poštové smerové čislo', on: :address - validates_presence_of :municipality, message: 'Vyberte obec', on: :address + validates_presence_of :authorized_person_full_name, message: 'Meno splnomocnenej osoby je povinná položka', + on: [:authorized_person] + validates_presence_of :authorized_person_pin, message: 'Číslo občianskeho preukazu splnomocnenej osoby je povinná položka', + on: [:authorized_person] - validates_presence_of :same_delivery_address, on: :delivery_address - validates_presence_of :delivery_street, message: 'Zadajte ulicu a číslo alebo číslo domu', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } - validates_presence_of :delivery_pobox, message: 'Zadajte poštové smerové čislo', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } - validates_presence_of :delivery_municipality, message: 'Zadajte obec', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } - validates_presence_of :delivery_country, message: 'Zadajte štát', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } + validates_presence_of :same_delivery_address, message: 'Zadajte kam chcete zaslať hlasovací preukaz', + on: :delivery_address + validates_presence_of :delivery_street, message: 'Zadajte ulicu alebo názov obce ak obec nemá ulice', + on: [:delivery_address, :world_abroad_permanent_resident], + if: -> (f) { f.custom_delivery_address? } + validates_presence_of :delivery_pobox, message: 'Zadajte poštové smerové čislo', + on: [:delivery_address, :world_abroad_permanent_resident], + if: -> (f) { f.custom_delivery_address? } + validates_presence_of :delivery_municipality, message: 'Zadajte obec', + on: [:delivery_address, :world_abroad_permanent_resident], + if: -> (f) { f.custom_delivery_address? } + validates_presence_of :delivery_country, message: 'Zadajte štát', + on: [:delivery_address, :world_abroad_permanent_resident], + if: -> (f) { f.custom_delivery_address? } def self.active? - false + Date.current < FIRST_ROUND_DATE + 14.day end - def nationality - return @nationality unless @nationality.blank? - return 'Slovenská republika' if sk_citizen == 'yes' + def minv_email + "volby@minv.sk" end - def same_delivery_address? - same_delivery_address == '1' + def year + FIRST_ROUND_DATE.year + end + + def custom_delivery_address? + same_delivery_address == '0' || step == 'world_abroad_permanent_resident' + end + + def municipality_email_verified? + municipality_email_verified == "OK" end def full_address "#{street}, #{pobox} #{municipality}" end - def email_body - if same_delivery_address? - email_body_delivery = 'Preukaz prosím zaslať na adresu trvalého pobytu.' + def go_back? + back == "true" + end + + def place_choice + if place_first_round == 'sk' + if place_second_round == 'sk' + 'obe kolá' + else + 'prvé kolo' + end else - email_body_delivery = "Preukaz prosím zaslať na korešpondenčnú adresu: #{delivery_street}, #{delivery_pobox} #{delivery_municipality}, #{delivery_country}" + 'druhé kolo' end + end - <<-TEXT -Dobrý deň, + def pickup_remaining_days + if place_first_round == 'sk' + (FIRST_ROUND_DATE - Date.current).to_i - 1 + else + (FIRST_ROUND_DATE - Date.current).to_i + 13 + end + end -týmto žiadam o vydanie hlasovacieho preukazu pre voľby do Európskeho parlamentu v roku 2019. + def request_sending_remaining_days + if place_first_round == 'sk' + (FIRST_ROUND_REQUEST_SENDING_DEADLINE - Date.current).to_i + else + (SECOND_ROUND_REQUEST_SENDING_DEADLINE - Date.current).to_i + end + end -Moje identifikačné údaje sú: + def pickup_expired? + pickup_remaining_days < 0 + end -Meno: #{full_name} -Rodné číslo: #{pin} -Trvalý pobyt: #{street}, #{pobox} #{municipality} -Štátna príslušnosť: #{nationality} + def first_round_expired? + (FIRST_ROUND_DATE - Date.current).to_i < 0 + end -#{email_body_delivery} + def request_sending_expired? + request_sending_remaining_days < 0 + end -Zároveň žiadam o zaslanie potvrdenia, že ste túto žiadosť prijali. + def from_slovakia_email_body + ActionController::Base.new.render_to_string( + partial: "apps/ep_vote_app/application_forms/from_slovakia_email_body", + locals: { model: self }, + ).gsub(/\n/, "\r\n") + end -Ďakujem. - TEXT + def from_slovakia_authorized_person_email_body + ActionController::Base.new.render_to_string( + partial: "apps/ep_vote_app/application_forms/from_slovakia_authorized_person_email_body", + locals: { model: self }, + ).gsub(/\n/, "\r\n") + end + + private def pin_is_ok + return errors.add(:pin, 'Rodné číslo je pocinná položka') if pin.blank? + + begin + pin.to_i + rescue ArgumentError + return errors.add(:pin, 'Rodné číslo obsahuje neplatné znaky') + end + + pin = self.pin.gsub(%r{/}, '') + return errors.add(:pin, 'Rodné číslo nie je deliteľné číslom 11') if pin.length == 10 and pin.to_i % 11 != 0 + return errors.add(:pin, 'Rodné číslo má nesprávnu dĺžku') if pin.length != 10 and pin.length != 9 + + case pin[2..3].to_i + when 0, 13..50, 63..99 + return errors.add(:pin, 'Rodné číslo obsahuje neplatný mesiac') + end + + month = pin[2..3].to_i % 50 + year = pin[0..1].to_i + (pin[2..3].to_i > 12 ? 1900 : 2000) + begin + Date.new(year, month, pin[4..5].to_i) + rescue ArgumentError + errors.add(:pin, 'Rodné číslo obsahuje neplatný dátum') + end end def run(listener) @@ -90,63 +186,111 @@ def run(listener) place_step(listener) when 'sk_citizen' sk_citizen_step(listener) + when 'permanent_resident' + permanent_resident_step(listener) when 'delivery' delivery_step(listener) when 'identity' identity_step(listener) + when 'authorized_person' + authorized_person_step(listener) when 'address' address_step(listener) when 'delivery_address' delivery_address_step(listener) + when 'world_abroad_permanent_resident' + world_abroad_permanent_resident_step(listener) + when 'non_sk_nationality' + non_sk_nationality(listener) + when 'home' + home(listener) end end - private - - - def start_step(listener) - self.step = 'place' - listener.render :place + private def start_step(listener) + self.step = 'sk_citizen' + listener.render :sk_citizen end - def place_step(listener) - if valid?(:place) - case place - when 'home' - listener.redirect_to action: :home - when 'sk' - self.step = 'sk_citizen' - listener.render :sk_citizen - when 'eu' - listener.redirect_to action: :eu - when 'world' - listener.redirect_to action: :world + private def sk_citizen_step(listener) + if go_back? + self.step = 'start' + listener.render :start + elsif valid?(:sk_citizen) + case sk_citizen + when 'yes' + self.step = 'permanent_resident' + listener.render :permanent_resident + when 'no' + listener.redirect_to action: :non_sk_nationality end else - listener.render :place + listener.render :sk_citizen end end - def sk_citizen_step(listener) - if valid?(:sk_citizen) - case sk_citizen + private def permanent_resident_step(listener) + if go_back? + self.step = 'sk_citizen' + listener.render :sk_citizen + elsif valid?(:permanent_resident) + case permanent_resident when 'yes' - self.step = 'delivery' - listener.render :delivery + self.step = 'place' + listener.render :place when 'no' - listener.redirect_to action: :non_sk_nationality + listener.redirect_to action: :world end else - listener.render :sk_citizen + listener.render :permanent_resident + end + end + + private def place_step(listener) + if go_back? + self.step = 'permanent_resident' + listener.render :permanent_resident + elsif valid?(:place) + if first_round_expired? + if valid?(:place_second_round) + if place_second_round == 'sk' + self.place_first_round = 'home' + self.place_second_round = place_second_round + self.step = 'delivery' + listener.render :delivery + else + listener.redirect_to action: :home + end + else + listener.render :place + end + else + if place_first_round == 'sk' || place_second_round == 'sk' + self.place_first_round = place_first_round + self.place_second_round = place_second_round + self.step = 'delivery' + listener.render :delivery + else + listener.redirect_to action: :home + end + end + else + listener.render :place end end - def delivery_step(listener) - if valid?(:delivery) + private def delivery_step(listener) + if go_back? + self.step = 'place' + listener.render :place + elsif valid?(:delivery) case delivery when 'post' self.step = 'identity' listener.render :identity + when 'authorized_person' + self.step = 'authorized_person' + listener.render :authorized_person when 'person' listener.redirect_to action: :person end @@ -155,31 +299,67 @@ def delivery_step(listener) end end - - def identity_step(listener) - if valid?(:identity) - self.step = 'address' - listener.render :address + private def identity_step(listener) + if go_back? + self.step = 'delivery' + listener.render :delivery + elsif valid?(:identity) + self.step = 'delivery_address' + listener.render :delivery_address else listener.render :identity end end - def address_step(listener) - if valid?(:address) - self.step = 'delivery_address' + private def delivery_address_step(listener) + if go_back? + self.step = 'identity' + listener.render :identity + elsif valid?(:delivery_address) + self.step = 'send' + listener.render :send + else listener.render :delivery_address + end + end + + private def authorized_person_step(listener) + if go_back? + self.step = 'delivery' + listener.render :delivery + elsif valid?(:authorized_person) + self.step = 'authorized_person_send' + listener.render :authorized_person_send else - listener.render :address + self.step = 'authorized_person' + listener.render :authorized_person end end - def delivery_address_step(listener) - if valid?(:delivery_address) - self.step = 'send' - listener.render :send + private def world_abroad_permanent_resident_step(listener) + if go_back? + self.step = 'permanent_resident' + listener.render :permanent_resident else - listener.render :delivery_address + listener.render :world_abroad_permanent_resident + end + end + + private def non_sk_nationality(listener) + if go_back? + self.step = 'sk_citizen' + listener.render :sk_citizen + else + listener.render :non_sk_nationality + end + end + + private def home(listener) + if go_back? + self.step = 'place' + listener.render :place + else + listener.render :home end end end diff --git a/app/models/apps/ep_vote_app_old/application_form.rb b/app/models/apps/ep_vote_app_old/application_form.rb new file mode 100644 index 00000000..7b7a48a6 --- /dev/null +++ b/app/models/apps/ep_vote_app_old/application_form.rb @@ -0,0 +1,187 @@ +module Apps + module EpVoteAppOld + class ApplicationForm + DELIVERY_BY_POST_DEADLINE_DATE = Date.new(2024, 6, 3) + + include ActiveModel::Model + + attr_accessor :step + attr_accessor :place + attr_accessor :sk_citizen + attr_accessor :delivery + attr_accessor :full_name, :pin + attr_writer :nationality + attr_accessor :street, :pobox, :municipality + attr_accessor :same_delivery_address + attr_accessor :delivery_street, :delivery_pobox, :delivery_municipality, :delivery_country + attr_accessor :municipality_email + + validates_presence_of :place, message: 'Vyberte si jednu z možností', on: :place + + validates_presence_of :sk_citizen, message: 'Vyberte áno pokiaľ ste občan Slovenskej republiky', on: :sk_citizen + + validates_presence_of :delivery, message: 'Vyberte si spôsob prevzatia hlasovacieho preukazu', on: :delivery + validates_exclusion_of :delivery, in: ['post'], if: -> { Date.current > DELIVERY_BY_POST_DEADLINE_DATE }, + message: 'Termín na zaslanie hlasovacieho preukazu poštou už uplynul.', on: :delivery + + validates_presence_of :full_name, message: 'Meno je povinná položka', on: :identity + validates_presence_of :pin, message: 'Rodné číslo je povinná položka', on: :identity + validates_presence_of :nationality, message: 'Štátna príslušnosť je povinná položka', on: :identity + + validates_presence_of :street, message: 'Zadajte ulicu a číslo alebo číslo domu', on: :address + validates_presence_of :pobox, message: 'Zadajte poštové smerové čislo', on: :address + validates_presence_of :municipality, message: 'Vyberte obec', on: :address + + validates_presence_of :same_delivery_address, on: :delivery_address + validates_presence_of :delivery_street, message: 'Zadajte ulicu a číslo alebo číslo domu', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } + validates_presence_of :delivery_pobox, message: 'Zadajte poštové smerové čislo', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } + validates_presence_of :delivery_municipality, message: 'Zadajte obec', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } + validates_presence_of :delivery_country, message: 'Zadajte štát', on: :delivery_address, unless: ->(f) { f.same_delivery_address? } + + def self.active? + true + end + + def nationality + return @nationality unless @nationality.blank? + return 'Slovenská republika' if sk_citizen == 'yes' + end + + def same_delivery_address? + same_delivery_address == '1' + end + + def full_address + "#{street}, #{pobox} #{municipality}" + end + + def email_body + if same_delivery_address? + email_body_delivery = 'Preukaz prosím zaslať na adresu trvalého pobytu.' + else + email_body_delivery = "Preukaz prosím zaslať na korešpondenčnú adresu: #{delivery_street}, #{delivery_pobox} #{delivery_municipality}, #{delivery_country}" + end + + <<-TEXT +Dobrý deň, + +týmto žiadam o vydanie hlasovacieho preukazu pre voľby do Európskeho parlamentu v roku 2019. + +Moje identifikačné údaje sú: + +Meno: #{full_name} +Rodné číslo: #{pin} +Trvalý pobyt: #{street}, #{pobox} #{municipality} +Štátna príslušnosť: #{nationality} + +#{email_body_delivery} + +Zároveň žiadam o zaslanie potvrdenia, že ste túto žiadosť prijali. + +Ďakujem. + TEXT + end + + def run(listener) + case step + when 'start' + start_step(listener) + when 'place' + place_step(listener) + when 'sk_citizen' + sk_citizen_step(listener) + when 'delivery' + delivery_step(listener) + when 'identity' + identity_step(listener) + when 'address' + address_step(listener) + when 'delivery_address' + delivery_address_step(listener) + end + end + + private + + + def start_step(listener) + self.step = 'place' + listener.render :place + end + + def place_step(listener) + if valid?(:place) + case place + when 'home' + listener.redirect_to action: :home + when 'sk' + self.step = 'sk_citizen' + listener.render :sk_citizen + when 'eu' + listener.redirect_to action: :eu + when 'world' + listener.redirect_to action: :world + end + else + listener.render :place + end + end + + def sk_citizen_step(listener) + if valid?(:sk_citizen) + case sk_citizen + when 'yes' + self.step = 'delivery' + listener.render :delivery + when 'no' + listener.redirect_to action: :non_sk_nationality + end + else + listener.render :sk_citizen + end + end + + def delivery_step(listener) + if valid?(:delivery) + case delivery + when 'post' + self.step = 'identity' + listener.render :identity + when 'person' + listener.redirect_to action: :person + end + else + listener.render :delivery + end + end + + + def identity_step(listener) + if valid?(:identity) + self.step = 'address' + listener.render :address + else + listener.render :identity + end + end + + def address_step(listener) + if valid?(:address) + self.step = 'delivery_address' + listener.render :delivery_address + else + listener.render :address + end + end + + def delivery_address_step(listener) + if valid?(:delivery_address) + self.step = 'send' + listener.render :send + else + listener.render :delivery_address + end + end + end + end +end diff --git a/app/views/apps/ep_vote_app/application_forms/_back.html.erb b/app/views/apps/ep_vote_app/application_forms/_back.html.erb new file mode 100644 index 00000000..7334ee6b --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_back.html.erb @@ -0,0 +1,9 @@ + +<%= form.hidden_field :back, value: false %> + diff --git a/app/views/apps/ep_vote_app/application_forms/_from_slovakia_authorized_person_email_body.text.erb b/app/views/apps/ep_vote_app/application_forms/_from_slovakia_authorized_person_email_body.text.erb new file mode 100644 index 00000000..0ac047dc --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_from_slovakia_authorized_person_email_body.text.erb @@ -0,0 +1,19 @@ +Dobrý deň, + +týmto žiadam o vydanie hlasovacieho preukazu pre voľby prezidenta Slovenskej republiky. Žiadam o vydanie preukazu pre <%= model.place_choice %> volieb. + +Moje identifikačné údaje sú: + +Meno: <%= model.full_name %> +Rodné číslo: <%= model.pin %> +Trvalý pobyt: <%= model.street %>, <%= model.pobox%> <%= model.municipality %> +Štátna príslušnosť: slovenská + +Preukaz vyzdvihne splnomocnená osoba: + +Meno: <%= model.authorized_person_full_name %> +Číslo občianskeho preukazu: <%= model.authorized_person_pin %> + +Zároveň žiadam o zaslanie potvrdenia, že ste túto žiadosť prijali. + +Ďakujem. diff --git a/app/views/apps/ep_vote_app/application_forms/_from_slovakia_email_body.text.erb b/app/views/apps/ep_vote_app/application_forms/_from_slovakia_email_body.text.erb new file mode 100644 index 00000000..ddad751b --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_from_slovakia_email_body.text.erb @@ -0,0 +1,21 @@ +Dobrý deň, + +týmto žiadam o vydanie hlasovacieho preukazu pre voľby prezidenta Slovenskej republiky. Žiadam o vydanie preukazu pre <%= model.place_choice %> volieb. + +Moje identifikačné údaje sú: + +Meno: <%= model.full_name %> +Rodné číslo: <%= model.pin %> +Trvalý pobyt: <%= model.street %>, <%= model.pobox%> <%= model.municipality %> +Štátna príslušnosť: slovenská + +<% unless model.custom_delivery_address? %> +Preukaz prosím zaslať na adresu trvalého pobytu. +<% else %> +Preukaz prosím zaslať na korešpondenčnú adresu: +<%= model.delivery_street %>, <%= model.delivery_pobox %> <%= model.delivery_municipality %>, <%= model.delivery_country %> +<% end %> + +Zároveň žiadam o zaslanie potvrdenia, že ste túto žiadosť prijali. + +Ďakujem. diff --git a/app/views/apps/ep_vote_app/application_forms/_municipality_ui.html.erb b/app/views/apps/ep_vote_app/application_forms/_municipality_ui.html.erb new file mode 100644 index 00000000..df02eb44 --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_municipality_ui.html.erb @@ -0,0 +1,236 @@ + + +<%= stylesheet_link_tag 'accessible-autocomplete', media: 'all', 'data-turbolinks-track': 'reload' %> +<%= javascript_include_tag 'apps/ep_vote_app/libs.js', 'data-turbolinks-track': 'reload' %> + diff --git a/app/views/apps/ep_vote_app/application_forms/_next_vote_notifications.html.erb b/app/views/apps/ep_vote_app/application_forms/_next_vote_notifications.html.erb new file mode 100644 index 00000000..78c36270 --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_next_vote_notifications.html.erb @@ -0,0 +1,7 @@ +<%= render_notification_subscription_component ['NextVoteSubscription', 'NewsletterSubscription'] do %> +
Ak sa vám táto aplikácia páčila, môžete sa zapojiť a pomôcť nám s vývojom či obsahom, alebo nás <%= link_to 'podporte finančne', 'https://slovensko.digital/podpora' %>.
+Na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+ diff --git a/app/views/apps/ep_vote_app/application_forms/_subscribe.html.erb b/app/views/apps/ep_vote_app/application_forms/_subscribe.html.erb new file mode 100644 index 00000000..68e21097 --- /dev/null +++ b/app/views/apps/ep_vote_app/application_forms/_subscribe.html.erb @@ -0,0 +1,3 @@ +<%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] do %> +Vygenorovanú žiadosť potrebujete poslať z Vašej emailovej adresy na príslušnú adresu obce: + <%= mail_to @application_form.municipality_email, @application_form.municipality_email, + target: '_blank', + body: @application_form.from_slovakia_authorized_person_email_body, + subject: 'Žiadosť o hlasovací preukaz do prezidentských volieb.' + %> +
+ <% else %> +Vygenorovanú žiadosť potrebujete poslať z Vašej emailovej adresy na príslušnú emailovú adresu obce + <%= @application_form.municipality %>
+Emailovú adresu je možné nájsť na webovej stránke obce.
+ <% end %> +Aby ste mohli hlasovať aj mimo trvalého bydliska, potrebujete hlasovací preukaz.
- <%= form_for @application_form, :builder => AppFormBuilder do |f| %> - <%= f.hidden_field :step %> - <%= f.hidden_field :sk_citizen %> -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 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/ep_vote_app/application_forms/subscribe' %> + <% else %> + <%= form_for @application_form, :builder => AppFormBuilder, url: request.original_url do |f| %> + <%= render 'apps/ep_vote_app/application_forms/back', form: f %> + <%= render 'components/error_summary', form: @application_form %> + <%= f.hidden_field :step %> + <%= f.hidden_field :sk_citizen %> + <%= f.hidden_field :place_first_round %> + <%= f.hidden_field :place_second_round %> +Nezabudnite ísť voliť a voľte zodpovedne.
+Nezabudnite voliť a voľte zodpovedne.
+Ak ste odoslali žiadosť na úrad, do 3 dní by ste mali od obce dostať potvrdenie o prijatí.
+Volebný preukaz si so sebou musíte vziať, aj keď sa nakoniec rozhodnete voliť v mieste trvalého bydliska.
- <%= render_notification_subscription_component ['EpApplicationFormSubscription', 'NewsletterSubscription'] do %> -Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov' , root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Pre hlasovanie v mieste svojho trvalého bydliska, stačí vo volebnej miestnosti predložiť občiansky preukaz.
- - <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] do %> -Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+V čase volieb volíte vo volebnom okrsku, v ktorom ste zapísaný podľa miesta vášho trvalého bydliska.
+O volebnom okrsku informuje obec v oznámení o čase a miesta konania volieb. V deň konania volieb si nezabudnite do volebnej miestnosti priniesť občiansky preukaz.
+ <%= render 'apps/ep_vote_app/application_forms/subscribe' %>Aktivujte si upozornenia na email, aby ste na tie budúce voľby nezabudli.
- <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] %> +- Občania iného členského štátu EÚ, ktorí majú v SR trvalý, alebo povolený pobyt môžu voliť po zápise do zoznamu voličov v obci, kde majú trvalý pobyt. - Žiadosť a vyhlásenie bolo potrebné podať osobne najneskôr do 15. apríla 2019. Ak ste tak neurobili, je nám to ľúto, ale nemôžete voliť na Slovensku. + Vo voľbách prezidenta Slovenskej republiky (prezidentské voľby) môžu voliť len občania Slovenskej republiky.
- <%= render_notification_subscription_component ['NextVoteSubscription', 'NewsletterSubscription'] do %> -Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+ <%= render 'apps/ep_vote_app/application_forms/subscribe' %>Na to aby ste nemali trvalý pobyt na Slovensku, museli ste si ho odhlásiť.
+ <%= f.radio_button :permanent_resident, 'yes', label: "Áno" %> + <%= f.radio_button :permanent_resident, 'no', + label: "Nie, mám odhlásený trvalý pobyt zo Slovenska", + hint: "Pri odhlasovaní trvalého pobytu sa odovzdáva občiansky preukaz. Ak ste ho odovzdali, zvoľte túto možnosť." + %> + <% end %> + + <%= f.submit 'Pokračovať' %> + <% end %> +Hlasovací preukaz Vám vystavia na počkanie na obecnom úrade v mieste trvalého bydliska. Osobne si preukaz vybavíte najneskôr v posledný pracovný deň pred voľbami, samozrejme len počas pracovných hodín úradu.
- - <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] do %> -Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Hlasovací preukaz vám vystavia na počkanie na obecnom úrade v mieste trvalého bydliska. Osobne si preukaz vybavíte najneskôr v posledný pracovný deň pred voľbami, počas pracovných hodín úradu.
+ <%= render 'apps/ep_vote_app/application_forms/subscribe' %>+ Prvé kolo sa už konalo +
+Vygenerovanú žiadosť potrebujete poslať z Vašej emailovej adresy na príslušnú adresu obce: + <%= mail_to @application_form.municipality_email, @application_form.municipality_email, + target: '_blank', + body: @application_form.from_slovakia_email_body, + subject: 'Žiadosť o hlasovací preukaz do prezidentských volieb.' + %> +
+ <% else %> +Vygenerovanú žiadosť potrebujete poslať z Vašej emailovej adresy na príslušnú emailovú adresu obce + <%= @application_form.municipality %>
+Emailovú adresu je možné nájsť na webovej stránke obce.
+ <% end %> +Skopírujte text žiadosti.
-Pomocou tejto služby zistíte kde a ako môžete hlasovať a taktiež Vám pomôže vytvoriť žiadosť o hlasovací preukaz, aby ste mohli voliť mimo trvalého bydliska.
-Používaním tejto služby súhlasíte so spracovaním osobných údajov v rozsahu nevyhnutnom pre určenie spôsobu voľby a vytvorenie žiadosti o hlasovací preukaz.
+Prezidentské voľby na Slovensku budú 23. marca a prípadné druhé kolo 6. apríla 2024. Hlasovať je možné jedine osobne na území Slovenska.
+Ak budete počas volieb mimo trvalého bydliska, táto služba vám pomôže vytvoriť žiadosť o hlasovací preukaz tak, aby ste na nič dôležité nezabudli. Je to veľmi jednoduché a trvá to len pár minút.
+O hlasovací preukaz môžete požiadať osobne na úrade pre prvé kolo ešte do 22. marca a pre druhé kolo do 5. apríla.
+Používaním tejto služby súhlasíte so spracovaním osobných údajov v rozsahu nevyhnutnom pre určenie spôsobu voľby a vytvorenie žiadosti o hlasovací preukaz. Následne sú všetky údaje nenávratne zmazané.
<%= form_for @application_form do |f| %>Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Ak nemáte trvalý pobyt na Slovensku, môžete prísť voliť kdekoľvek na území Slovenska. Potrebujete sa preukázať slovenským pasom.
+Okrsková volebná komisia takéhoto voliča dopíše do zoznamu voličov, čo zaznamená v jeho slovenskom cestovnom doklade a poskytne mu na podpis čestné vyhlásenie o trvalom pobyte v cudzine, ktoré pripojí k zoznamu voličov.
+Aby ste mohli hlasovať aj mimo trvalého bydliska, potrebujete hlasovací preukaz.
+ <%= form_for @application_form, :builder => AppFormBuilder do |f| %> + <%= f.hidden_field :step %> + <%= f.hidden_field :sk_citizen %> +Nezabudnite ísť voliť a voľte zodpovedne.
+ + <%= render_notification_subscription_component ['EpApplicationFormSubscription', 'NewsletterSubscription'] do %> +Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov' , root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Pre hlasovanie v mieste svojho trvalého bydliska, stačí vo volebnej miestnosti predložiť občiansky preukaz.
+ + <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] do %> +Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Aktivujte si upozornenia na email, aby ste na tie budúce voľby nezabudli.
+ <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] %> ++ Občania iného členského štátu EÚ, ktorí majú v SR trvalý, alebo povolený pobyt môžu voliť po zápise do zoznamu voličov v obci, kde majú trvalý pobyt. + Žiadosť a vyhlásenie bolo potrebné podať osobne najneskôr do 15. apríla 2019. Ak ste tak neurobili, je nám to ľúto, ale nemôžete voliť na Slovensku. +
+ + <%= render_notification_subscription_component ['NextVoteSubscription', 'NewsletterSubscription'] do %> +Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Hlasovací preukaz Vám vystavia na počkanie na obecnom úrade v mieste trvalého bydliska. Osobne si preukaz vybavíte najneskôr v posledný pracovný deň pred voľbami, samozrejme len počas pracovných hodín úradu.
+ + <%= render_notification_subscription_component ['VoteSubscription', 'NewsletterSubscription'] do %> +Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+Skopírujte text žiadosti.
+Pomocou tejto služby zistíte kde a ako môžete hlasovať a taktiež Vám pomôže vytvoriť žiadosť o hlasovací preukaz, aby ste mohli voliť mimo trvalého bydliska.
+Používaním tejto služby súhlasíte so spracovaním osobných údajov v rozsahu nevyhnutnom pre určenie spôsobu voľby a vytvorenie žiadosti o hlasovací preukaz.
+ <%= form_for @application_form do |f| %> +Ak sa Vám táto aplikácia páčila, na portáli Návody.Digital nájdete <%= link_to 'množstvo ďalších návodov', root_path %> ako vyriešiť aj iné životné situácie, ktoré si vyžadujú kontakt so štátnou byrokraciou.
+