decidim-verifications 0.23.6 → 0.24.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/app/commands/decidim/verifications/authorize_user.rb +30 -1
  4. data/app/commands/decidim/verifications/csv_census/admin/create_census_data.rb +2 -0
  5. data/app/commands/decidim/verifications/id_documents/admin/confirm_user_offline_authorization.rb +2 -2
  6. data/app/controllers/decidim/verifications/id_documents/admin/pending_authorizations_controller.rb +1 -1
  7. data/app/events/decidim/verifications/managed_user_error_event.rb +39 -0
  8. data/app/forms/decidim/verifications/sms/mobile_phone_form.rb +1 -1
  9. data/app/models/decidim/verifications/conflict.rb +8 -0
  10. data/app/models/decidim/verifications/csv_census/data.rb +1 -0
  11. data/app/queries/decidim/verifications/authorizations.rb +3 -2
  12. data/app/queries/decidim/verifications/authorizations_before_date.rb +5 -7
  13. data/app/services/decidim/authorization_handler.rb +1 -1
  14. data/app/views/decidim/verifications/authorizations/index.html.erb +3 -3
  15. data/app/views/dummy_authorization/_form.html.erb +2 -2
  16. data/config/locales/ar.yml +0 -9
  17. data/config/locales/ca.yml +0 -9
  18. data/config/locales/cs.yml +35 -25
  19. data/config/locales/de.yml +14 -6
  20. data/config/locales/el.yml +0 -9
  21. data/config/locales/en.yml +14 -6
  22. data/config/locales/es-MX.yml +0 -9
  23. data/config/locales/es-PY.yml +0 -9
  24. data/config/locales/es.yml +0 -9
  25. data/config/locales/eu.yml +0 -9
  26. data/config/locales/fi-plain.yml +13 -5
  27. data/config/locales/fi.yml +13 -5
  28. data/config/locales/fr-CA.yml +13 -5
  29. data/config/locales/fr.yml +13 -5
  30. data/config/locales/gl.yml +8 -9
  31. data/config/locales/hu.yml +0 -8
  32. data/config/locales/id-ID.yml +0 -9
  33. data/config/locales/is-IS.yml +0 -3
  34. data/config/locales/it.yml +0 -9
  35. data/config/locales/ja.yml +0 -9
  36. data/config/locales/lv.yml +0 -9
  37. data/config/locales/nl.yml +10 -6
  38. data/config/locales/no.yml +0 -9
  39. data/config/locales/pl.yml +17 -7
  40. data/config/locales/pt-BR.yml +0 -9
  41. data/config/locales/pt.yml +0 -9
  42. data/config/locales/ro-RO.yml +0 -9
  43. data/config/locales/ru.yml +0 -3
  44. data/config/locales/sk.yml +0 -9
  45. data/config/locales/sv.yml +0 -9
  46. data/config/locales/tr-TR.yml +5 -9
  47. data/config/locales/uk.yml +0 -3
  48. data/config/locales/zh-CN.yml +0 -9
  49. data/db/migrate/20201028161118_create_decidim_verifications_conflicts.rb +15 -0
  50. data/lib/decidim/verifications/default_action_authorizer.rb +5 -5
  51. data/lib/decidim/verifications/test/factories.rb +7 -0
  52. data/lib/decidim/verifications/version.rb +1 -1
  53. metadata +15 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 791db4bf82193932f6ed36c3ed3524121887e25673651fea8df10ace613b390e
4
- data.tar.gz: 7331ef3c2d1fe1b1c771e27a3942fb8a4b630f1bd87af45abbf6ea5a0b1486be
3
+ metadata.gz: 3d5ddc2f063d130e6be5d06e33784d853028039016a23b59db919bd27af35bd1
4
+ data.tar.gz: 27c829745ac4f5e43b8d46832fdf44df5c64e3b7117110fd43e4f71f8099c259
5
5
  SHA512:
6
- metadata.gz: 1e62cc9af0c383aa8415e94dc7a21d351ab687082bb1699142bbc393081ff3691cd416ae76e9a25ac5359439ac14a9339faad0fe81405d60bb2b4c9ed3b62885
7
- data.tar.gz: cf2ef69e155c8f19f9a8924be0c15f1e8e3a5a460307a316f957f26f03500fa2f9124d53b6f40f69bdc425c720cdeb9fa4371024b7289c72bcbca3107c75539f
6
+ metadata.gz: 037b12793b4b867c5119bf2d53bd992644a7a5af2d7f852cfc8ec27a7b1a444a5511fc204eb03415627828cfcade1efae24b449d7990abc7d259d60b28e1b0b8
7
+ data.tar.gz: 2cd89ffdb95eea642ba2cc14b0d53aa3cb61caf1a07c8c7dcc3bc567b299247cde82afa4dcd98d65653b27563b3b0a2497e113d4d6b6fe763bcd1a83aef8ad0e
data/README.md CHANGED
@@ -166,7 +166,7 @@ on the context where the authorization is being performed.
166
166
 
167
167
  For example, you can require authorization for supporting proposals in a participatory
168
168
  process, and also restrict it to users with postal codes 12345 and 12346. The
169
- [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
169
+ [example authorization handler](https://github.com/decidim/decidim/blob/develop/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
170
170
  included in this module allows to do that. As an admin user, you should visit
171
171
  the proposals componenent permissions screen, choose the `Example authorization`
172
172
  as the authorization handler name for the `vote` action and enter "12345, 12346"
@@ -204,8 +204,8 @@ Decidim::Verifications.register_workflow(:my_verification) do |workflow|
204
204
  end
205
205
  ```
206
206
 
207
- Check the [example authorization handler](https://github.com/decidim/decidim/blob/master/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
208
- and the [DefaultActionAuthorizer class](https://github.com/decidim/decidim/blob/master/decidim-verifications/lib/decidim/verifications/default_action_authorizer.rb)
207
+ Check the [example authorization handler](https://github.com/decidim/decidim/blob/develop/decidim-generators/lib/decidim/generators/app_templates/dummy_authorization_handler.rb)
208
+ and the [DefaultActionAuthorizer class](https://github.com/decidim/decidim/blob/develop/decidim-verifications/lib/decidim/verifications/default_action_authorizer.rb)
209
209
  for additional technical details.
210
210
 
211
211
  ## How Handlers work
@@ -241,8 +241,8 @@ See [Decidim](https://github.com/decidim/decidim).
241
241
 
242
242
  See [Decidim](https://github.com/decidim/decidim).
243
243
 
244
- [authorization handler base class]: https://github.com/decidim/decidim/blob/master/decidim-verifications/app/services/decidim/authorization_handler.rb
245
- [example SMS gateway]: https://github.com/decidim/decidim/blob/master/decidim-verifications/lib/decidim/verifications/sms/example_gateway.rb
244
+ [authorization handler base class]: https://github.com/decidim/decidim/blob/develop/decidim-verifications/app/services/decidim/authorization_handler.rb
245
+ [example SMS gateway]: https://github.com/decidim/decidim/blob/develop/decidim-verifications/lib/decidim/verifications/sms/example_gateway.rb
246
246
 
247
247
  [Decidim Barcelona]: https://github.com/AjuntamentdeBarcelona/decidim-barcelona/blob/master/app/services/census_authorization_handler.rb
248
248
  [Decidim Terrassa]: https://github.com/AjuntamentDeTerrassa/decidim-terrassa/blob/master/app/services/census_authorization_handler.rb
@@ -18,7 +18,12 @@ module Decidim
18
18
  #
19
19
  # Returns nothing.
20
20
  def call
21
- return broadcast(:invalid) unless handler.valid?
21
+ if handler.invalid?
22
+ conflict = create_verification_conflict
23
+ notify_admins(conflict) if conflict.present?
24
+
25
+ return broadcast(:invalid)
26
+ end
22
27
 
23
28
  Authorization.create_or_update_from(handler)
24
29
 
@@ -28,6 +33,30 @@ module Decidim
28
33
  private
29
34
 
30
35
  attr_reader :handler
36
+
37
+ def notify_admins(conflict)
38
+ Decidim::EventsManager.publish(
39
+ event: "decidim.events.verifications.managed_user_error_event",
40
+ event_class: Decidim::Verifications::ManagedUserErrorEvent,
41
+ resource: conflict,
42
+ affected_users: Decidim::User.where(admin: true)
43
+ )
44
+ end
45
+
46
+ def create_verification_conflict
47
+ authorization = Decidim::Authorization.find_by(unique_id: handler.unique_id)
48
+ return if authorization.blank?
49
+
50
+ conflict = Decidim::Verifications::Conflict.find_or_initialize_by(
51
+ current_user: handler.user,
52
+ managed_user: authorization.user,
53
+ unique_id: handler.unique_id
54
+ )
55
+
56
+ conflict.update(times: conflict.times + 1)
57
+
58
+ conflict
59
+ end
31
60
  end
32
61
  end
33
62
  end
@@ -20,7 +20,9 @@ module Decidim
20
20
  def call
21
21
  return broadcast(:invalid) unless @form.file
22
22
 
23
+ # rubocop:disable Rails/SkipsModelValidations
23
24
  CsvDatum.insert_all(@organization, @form.data.values)
25
+ # rubocop:enable Rails/SkipsModelValidations
24
26
  RemoveDuplicatesJob.perform_later(@organization)
25
27
 
26
28
  broadcast(:ok)
@@ -58,8 +58,8 @@ module Decidim
58
58
  .new(organization: form.current_organization, name: "id_documents", granted: false)
59
59
  .query
60
60
  .where("verification_metadata->'rejected' IS NULL")
61
- .where("verification_metadata->>'verification_type' = 'offline'")
62
- .find_by(user: authorization_user)
61
+ .where(user: authorization_user)
62
+ .find { |auth| auth.verification_metadata["verification_type"] == "offline" }
63
63
  end
64
64
 
65
65
  def authorization_user
@@ -22,7 +22,7 @@ module Decidim
22
22
  .new(organization: current_organization, name: "id_documents", granted: false)
23
23
  .query
24
24
  .where("verification_metadata->'rejected' IS NULL")
25
- .where("verification_metadata->>'verification_type' = 'online'")
25
+ .select { |auth| auth.verification_metadata["verification_type"] == "online" }
26
26
  end
27
27
 
28
28
  def has_offline_method?
@@ -0,0 +1,39 @@
1
+ # frozen-string_literal: true
2
+
3
+ module Decidim
4
+ module Verifications
5
+ class ManagedUserErrorEvent < Decidim::Events::SimpleEvent
6
+ delegate :profile_path, :profile_url, :name, to: :updated_user
7
+
8
+ def i18n_scope
9
+ "decidim.events.verifications.verify_with_managed_user"
10
+ end
11
+
12
+ def resource_path
13
+ profile_path
14
+ end
15
+
16
+ def resource_url
17
+ profile_url
18
+ end
19
+
20
+ def resource_title
21
+ updated_user.name
22
+ end
23
+
24
+ def default_i18n_options
25
+ super.merge({ managed_user_path: managed_user.profile_path, managed_user_name: managed_user.name })
26
+ end
27
+
28
+ private
29
+
30
+ def updated_user
31
+ @updated_user ||= Decidim::UserPresenter.new(resource.current_user)
32
+ end
33
+
34
+ def managed_user
35
+ @managed_user ||= Decidim::UserPresenter.new(resource.managed_user)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -26,7 +26,7 @@ module Decidim
26
26
  def mobile_phone_number
27
27
  return unless super
28
28
 
29
- super.gsub(/[^\+0-9]/, "")
29
+ super.gsub(/[^+0-9]/, "")
30
30
  end
31
31
 
32
32
  # The verification metadata to validate in the next step.
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim::Verifications
4
+ class Conflict < ApplicationRecord
5
+ belongs_to :current_user, class_name: "User"
6
+ belongs_to :managed_user, class_name: "User"
7
+ end
8
+ end
@@ -15,6 +15,7 @@ module Decidim
15
15
  # Returns nothing
16
16
  class Data
17
17
  attr_reader :errors, :values
18
+
18
19
  def initialize(file)
19
20
  @file = file
20
21
  @values = []
@@ -26,9 +26,10 @@ module Decidim
26
26
  scope = scope.where(name: name) unless name.nil?
27
27
  scope = scope.where(user: user) unless user.nil?
28
28
 
29
- if granted == true
29
+ case granted
30
+ when true
30
31
  scope = scope.where.not(granted_at: nil)
31
- elsif granted == false
32
+ when false
32
33
  scope = scope.where(granted_at: nil)
33
34
  end
34
35
 
@@ -34,13 +34,11 @@ module Decidim
34
34
 
35
35
  query = query.where("#{Decidim::Authorization.table_name}.created_at < ?", date) unless date.nil?
36
36
 
37
- query = if granted
38
- query.where.not(granted_at: nil)
39
- else
40
- query.where(granted_at: nil)
41
- end
42
-
43
- query
37
+ if granted
38
+ query.where.not(granted_at: nil)
39
+ else
40
+ query.where(granted_at: nil)
41
+ end
44
42
  end
45
43
 
46
44
  private
@@ -48,7 +48,7 @@ module Decidim
48
48
  #
49
49
  # Returns a String.
50
50
  def to_partial_path
51
- handler_name.sub!(/_handler$/, "") + "/form"
51
+ "#{handler_name.sub!(/_handler$/, "")}/form"
52
52
  end
53
53
 
54
54
  # Any data that the developer would like to inject to the `metadata` field
@@ -8,7 +8,7 @@
8
8
  <div class="card card--list">
9
9
  <% @granted_authorizations.each do |authorization| %>
10
10
  <% if authorization.expired? %>
11
- <%= link_to authorization_method(authorization).root_path(url_params), title: t(".expired_verification"), class: "card--list__item" do %>
11
+ <%= link_to authorization_method(authorization).root_path(**url_params), title: t(".expired_verification"), class: "card--list__item" do %>
12
12
  <% render partial: "granted_authorization", locals: { authorization: authorization } %>
13
13
  <% end %>
14
14
  <% elsif authorization.renewable? %>
@@ -29,7 +29,7 @@
29
29
  <% if @pending_authorizations.any? %>
30
30
  <div class="card card--list">
31
31
  <% @pending_authorizations.each do |authorization| %>
32
- <%= link_to authorization_method(authorization).resume_authorization_path(url_params) do %>
32
+ <%= link_to authorization_method(authorization).resume_authorization_path(**url_params) do %>
33
33
  <div class="card--list__item">
34
34
  <div class="card--list__text">
35
35
  <%= icon "reload", class: "card--list__icon", aria_label: t(".pending_verification"), role: "img" %>
@@ -56,7 +56,7 @@
56
56
  <% if unauthorized_methods.any? %>
57
57
  <div class="card card--list">
58
58
  <% unauthorized_methods.each do |unauthorized_method| %>
59
- <%= link_to unauthorized_method.root_path(url_params) do %>
59
+ <%= link_to unauthorized_method.root_path(**url_params) do %>
60
60
  <div class="card--list__item">
61
61
  <div class="card--list__text">
62
62
  <%= icon "lock-unlocked", class: "card--list__icon", aria_label: t(".unauthorized_verification"), role: "img" %>
@@ -1,10 +1,10 @@
1
1
  <% if request["postal_codes"].present?
2
2
  postal_codes = request["postal_codes"].split(",") %>
3
- <p><%= t("extra_explanation.postal_codes", scope: "decidim.verifications.dummy_authorization", postal_codes: postal_codes.join(", "), count: postal_codes.count) %></p>
3
+ <p><%= t("extra_explanation.postal_codes", scope: "decidim.verifications.dummy_authorization", postal_codes: postal_codes.join(", "), count: postal_codes.count, user_postal_code: request["user_postal_code"]) %></p>
4
4
  <% end %>
5
5
 
6
6
  <% if request["scope"] && (scope = Decidim::Scope.find(request["scope"]&.to_i)) %>
7
- <p><%= t("extra_explanation.scope", scope: "decidim.verifications.dummy_authorization", scope_name: translated_attribute(scope.name)) %></p>
7
+ <p><%= t("extra_explanation.scope", scope: "decidim.verifications.dummy_authorization", scope_name: translated_attribute(scope.name), user_scope_name: request["user_scope_name"]) %></p>
8
8
  <% end %>
9
9
 
10
10
  <div class="partial-demo">
@@ -24,14 +24,6 @@ ar:
24
24
  full_address: العنوان الكامل
25
25
  verification_code: شيفرة التأكيد
26
26
  decidim:
27
- admin:
28
- menu:
29
- authorization_workflows: التحقق
30
- admin_log:
31
- organization:
32
- update_id_documents_config: "%{user_name} بتحديث تكوين التحقق من وثائق الهوية"
33
- user:
34
- grant_id_documents_offline_verification: "%{user_name} التحقق من %{resource_name} باستخدام التحقق من مستندات الهوية دون اتصال"
35
27
  authorization_handlers:
36
28
  admin:
37
29
  csv_census:
@@ -103,7 +95,6 @@ ar:
103
95
  title: بيانات التعداد الحالية
104
96
  instructions:
105
97
  body: للقيام بذلك ، يجب عليك إدخال إدارة النظام وإضافة تصاريح csv_census إلى المؤسسة
106
- title: تحتاج إلى تنشيط التعداد CSV لهذه المنظمة
107
98
  new:
108
99
  file: ".csv ملف مع بيانات رسائل البريد الإلكتروني"
109
100
  submit: رفع ملف
@@ -34,16 +34,8 @@ ca:
34
34
  confirm: La revocació d'autoritzacions anteriors a aquesta data no es pot desfer. Segur que vols continuar?
35
35
  confirm_all: La revocació de totes les autoritzacions no es pot desfer. Segur que vols continuar?
36
36
  destroy_nok: S'ha produït un error al revocar les autoritzacions.
37
- destroy_ok: Totes les autoritzacions coincidents s'han revocat correctament!
38
37
  info: Hi ha un total de %{count} participants verificades.
39
38
  no_data: No hi ha participants verificades
40
- title: Revocació de les autoritzacions
41
- authorization_workflows: Verificacions
42
- admin_log:
43
- organization:
44
- update_id_documents_config: "%{user_name} ha actualitzat la configuració de verificació mitjançant documents d'identitat"
45
- user:
46
- grant_id_documents_offline_verification: "%{user_name} ha verificat %{resource_name} utilitzant la verificació presencial mitjançant documents d'identitat"
47
39
  authorization_handlers:
48
40
  admin:
49
41
  csv_census:
@@ -131,7 +123,6 @@ ca:
131
123
  title: Dades censals actuals
132
124
  instructions:
133
125
  body: Per fer-ho, has d'entrar al panell d'administració i afegir les autoritzacions de csv_census a l'organització
134
- title: Necessites activar el cens csv d'aquesta organització
135
126
  new:
136
127
  file: "fitxer .csv amb dades de correus electrònics"
137
128
  info: 'Ha de ser un document en format CSV amb una única columna indicant les adreces electròniques:'
@@ -7,21 +7,21 @@ cs:
7
7
  offline_explanation: Pokyny pro ověření offline
8
8
  online: Online
9
9
  id_document_information:
10
- document_number: Číslo dokladu (s písmeny)
10
+ document_number: Číslo dokladu (jen číslice)
11
11
  document_type: Typ dokumentu
12
12
  id_document_upload:
13
- document_number: Číslo dokladu (s písmeny)
13
+ document_number: Číslo dokladu (jen číslice)
14
14
  document_type: Typ dokumentu
15
15
  user: Uživatel
16
16
  verification_attachment: Naskenovaná kopie dokumentu
17
17
  offline_confirmation:
18
18
  email: Uživatelský e-mail
19
19
  postal_letter_address:
20
- full_address: Celá poštovní adresa
20
+ full_address: Celá adresa
21
21
  postal_letter_confirmation:
22
22
  verification_code: Ověřovací kód
23
23
  postal_letter_postage:
24
- full_address: Celá poštovní adresa
24
+ full_address: Celá adresa
25
25
  verification_code: Ověřovací kód
26
26
  decidim:
27
27
  admin:
@@ -34,16 +34,16 @@ cs:
34
34
  confirm: Zrušení před datem autorizace nelze vrátit zpět. Jste si jisti, že chcete pokračovat?
35
35
  confirm_all: Zrušení všech autorizací nelze vrátit zpět. Jste si jisti, že chcete pokračovat?
36
36
  destroy_nok: Při rušení autorizace došlo k chybě.
37
- destroy_ok: Všechny odpovídající autorizace byly úspěšně zrušeny!
37
+ destroy_ok: Všechny odpovídající autorizace byly úspěšně zrušeny.
38
38
  info: Celkem je %{count} ověřených účastníků.
39
39
  no_data: Žádní ověření účastníci
40
- title: Zrušení ověření
41
- authorization_workflows: Ověření
40
+ title: Zrušení autorizace
41
+ authorization_workflows: Autorizace
42
42
  admin_log:
43
43
  organization:
44
- update_id_documents_config: "%{user_name} aktualizovala konfiguraci ověření dokumentů identit"
44
+ update_id_documents_config: "%{user_name} aktualizoval konfiguraci autorizace dokladů totožnosti"
45
45
  user:
46
- grant_id_documents_offline_verification: "%{user_name} ověřeno %{resource_name} pomocí ověření dokumentů offline"
46
+ grant_id_documents_offline_verification: "%{user_name} ověřil %{resource_name} pomocí offline autorizace dokladů totožnosti"
47
47
  authorization_handlers:
48
48
  admin:
49
49
  csv_census:
@@ -52,19 +52,19 @@ cs:
52
52
  - Ověřit se mohou pouze účastníci s e-mailem v tomto souboru CSV
53
53
  id_documents:
54
54
  help:
55
- - Uživatelé vyplňují údaje o své totožnosti a nahrávají kopii svého dokladu.
55
+ - Uživatelé vyplní informace o své identitě a nahrají kopii dokumentu.
56
56
  - Vyplníte informace obsažené v nahraném obrázku.
57
- - Informace by se měly shodovat s tím, co uživatel vyplní.
57
+ - Informace by měly odpovídat uživateli, který vyplnil.
58
58
  - Pokud nemůžete informace zřetelně vidět nebo ji nelze ověřit, můžete žádost odmítnout a uživatel ji bude moci opravit.
59
59
  postal_letter:
60
60
  help:
61
- - Účastníci požádají o zaslání ověřovacího kódu na jejich poštovní adresu.
61
+ - Uživatelé požadují, aby jejich adresa byla odeslána ověřovacímu kódu.
62
62
  - Na adresu zasíláte dopis s ověřovacím kódem.
63
- - Označte dopis jako odeslaný.
64
- - Jakmile označíte dopis jako odeslaný, uživatel bude schopen kód zadat a tím se ověřit.
63
+ - Označte písmeno jako odesláno.
64
+ - Jakmile označíte odeslané písmeno, uživatel bude schopen kód zadat a ověřit.
65
65
  csv_census:
66
- explanation: Získejte ověření pomocí členství v organizaci
67
- name: Členství organizace
66
+ explanation: Získejte ověření pomocí členů organizace
67
+ name: Členové organizace
68
68
  direct: Přímo
69
69
  help: Pomoc
70
70
  id_documents:
@@ -75,6 +75,10 @@ cs:
75
75
  postal_letter:
76
76
  explanation: Pošleme vám poštovní dopis s kódem, který budete muset zadat, abychom mohli ověřit vaši adresu
77
77
  name: Kód v listovní zásilce
78
+ events:
79
+ verifications:
80
+ verify_with_managed_user:
81
+ notification_title: Účastník <a href="%{resource_path}">%{resource_title}</a> se pokusil ověřit údaji spravovaného účastníka <a href="%{managed_user_path}">%{managed_user_name}</a>
78
82
  verifications:
79
83
  authorizations:
80
84
  authorization_metadata:
@@ -90,7 +94,7 @@ cs:
90
94
  first_login:
91
95
  actions:
92
96
  another_dummy_authorization_handler: Ověřte proti jinému příkladu pověření pro autorizaci
93
- csv_census: Ověřte prostřednictvím členství v organizaci
97
+ csv_census: Ověřte prostřednictvím členů organizace
94
98
  dummy_authorization_handler: Ověřte proti příkladu pověření autorizace
95
99
  dummy_authorization_workflow: Ověřte proti pracovnímu postupu autorizace
96
100
  id_documents: Získejte ověření odesláním dokladu totožnosti
@@ -124,17 +128,17 @@ cs:
124
128
  success: Všechna data členů organizace byly smazány
125
129
  destroy:
126
130
  confirm: Odstranění veškerých kontaktů členů organizace nelze vrátit zpět. Jste si jistý, že chcete pokračovat?
127
- title: Smazat všechna data členství organizace
131
+ title: Smazat všechna data členů organizace
128
132
  index:
129
- data: Celkem načteno %{count} záznamů. Poslední datum načtení bylo %{due_date}
130
- empty: Nejsou data o členech organizace. Pomocí níže uvedeného formuláře je importujte souborem CSV.
133
+ data: Celkem bylo načteno celkem %{count} záznamů. Poslední nahraje datum %{due_date}
134
+ empty: Neexistují data o členech organizace. Pomocí níže uvedeného formuláře je importujte souborem CSV.
131
135
  title: Aktuální údaje o členech organizace
132
136
  instructions:
133
137
  body: Chcete-li to provést, musíte vstoupit do správy systému a přidat oprávnění prostřednictvím souboru csv s e-maily členů organizace
134
- title: Pro tuto organizaci musíte aktivovat csv s emaily členů
138
+ title: Musíte aktivovat CSV s kontakty členů organizace
135
139
  new:
136
140
  file: ".csv soubor s daty e-mailů"
137
- info: 'Musí být soubor ve formátu CSV obsahující pouze jeden sloupec s e-mailovou adresou:'
141
+ info: 'Must být soubor ve formátu CSV s pouze jedním sloupcem s e-mailovou adresou:'
138
142
  submit: Nahrát soubor
139
143
  title: Nahrajte nové členy organizace
140
144
  authorizations:
@@ -149,6 +153,12 @@ cs:
149
153
  many: 'Účast je omezena na uživatele s některým z následujících poštovních směrovacích čísel: %{postal_codes}.'
150
154
  other: 'Účast je omezena na uživatele s některým z následujících poštovních směrovacích čísel: %{postal_codes}.'
151
155
  scope: Účast je omezena na účastníky s rozsahem %{scope_name}.
156
+ user_postal_codes:
157
+ one: Účast je omezena na účastníky s poštovním kódem %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.
158
+ few: 'Účast je omezena na účastníky s poštovním kódem %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.'
159
+ many: 'Účast je omezena na účastníky s poštovními kódy %{postal_codes} a vaše poštovní směrovací číslo je %{user_postal_code}.'
160
+ other: 'Účast je omezena na účastníky s kterýmkoli z následujících poštovních kódů: %{postal_codes}. Vaše poštovní směrovací číslo je %{user_postal_code}.'
161
+ user_scope: Účast je omezena na účastníky s rozsahem %{scope_name} a váš rozsah je %{user_scope_name}.
152
162
  id_documents:
153
163
  admin:
154
164
  config:
@@ -206,8 +216,8 @@ cs:
206
216
  update:
207
217
  error: Při načítání dokumentu došlo k problému
208
218
  success: Dokument byl úspěšně obnoven
209
- dni: Občanský průkaz
210
- nie: Daňové identifikační číslo
219
+ dni: DNI
220
+ nie: Občanský průkaz
211
221
  passport: Cestovní pas
212
222
  postal_letter:
213
223
  admin:
@@ -231,7 +241,7 @@ cs:
231
241
  edit:
232
242
  send: Potvrdit
233
243
  title: Zadejte ověřovací kód, který jste obdrželi
234
- waiting_for_letter: Brzy pošleme dopis na Vaši adresu s Vaším ověřovacím kódem
244
+ waiting_for_letter: Na váš adresu vám brzy zašleme váš ověřovací kód
235
245
  new:
236
246
  send: Pošlete mi dopis
237
247
  title: Požádejte o ověřovací kód