decidim-core 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/decidim_core_manifest.js +1 -0
  3. data/app/assets/images/decidim/icons.svg +1 -1
  4. data/app/assets/javascripts/decidim.js.es6 +3 -0
  5. data/app/assets/javascripts/decidim/form_filter.component.js.es6 +39 -6
  6. data/app/assets/javascripts/decidim/form_filter.component.test.js +13 -10
  7. data/app/assets/javascripts/decidim/impersonation.js.es6 +16 -0
  8. data/app/assets/javascripts/decidim/select2.field.js.es6 +47 -0
  9. data/app/assets/javascripts/decidim/select2.js.es6 +8 -0
  10. data/app/assets/stylesheets/decidim/_decidim.scss +3 -0
  11. data/app/assets/stylesheets/decidim/extras/_announcement.scss +3 -0
  12. data/app/assets/stylesheets/decidim/extras/_callout.scss +1 -1
  13. data/app/assets/stylesheets/decidim/extras/_impersonation-bar.scss +22 -0
  14. data/app/assets/stylesheets/decidim/extras/_process_stats.scss +1 -1
  15. data/app/assets/stylesheets/decidim/extras/_proposal_form.scss +7 -0
  16. data/app/assets/stylesheets/decidim/extras/_reference.scss +1 -1
  17. data/app/assets/stylesheets/decidim/extras/_register_form.scss +1 -1
  18. data/app/assets/stylesheets/decidim/extras/_social_icons_mini.scss +1 -1
  19. data/app/assets/stylesheets/decidim/layouts/_home.scss +1 -1
  20. data/app/assets/stylesheets/decidim/layouts/_view.scss +1 -1
  21. data/app/assets/stylesheets/decidim/map.css +1 -1
  22. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +1 -1
  23. data/app/assets/stylesheets/decidim/modules/_callout.scss +1 -1
  24. data/app/assets/stylesheets/decidim/modules/_datepicker.scss +1 -1
  25. data/app/assets/stylesheets/decidim/modules/_definition-data.scss +1 -1
  26. data/app/assets/stylesheets/decidim/modules/_extra.scss +1 -1
  27. data/app/assets/stylesheets/decidim/modules/_flag.scss +1 -1
  28. data/app/assets/stylesheets/decidim/modules/_footer.scss +1 -1
  29. data/app/assets/stylesheets/decidim/modules/_forms.scss +1 -1
  30. data/app/assets/stylesheets/decidim/modules/_help.scss +1 -1
  31. data/app/assets/stylesheets/decidim/modules/_pagination.scss +1 -1
  32. data/app/assets/stylesheets/decidim/modules/_process-info.scss +1 -1
  33. data/app/assets/stylesheets/decidim/modules/_reference.scss +1 -1
  34. data/app/assets/stylesheets/decidim/modules/_reveal.scss +1 -1
  35. data/app/assets/stylesheets/decidim/modules/_signup.scss +1 -1
  36. data/app/assets/stylesheets/decidim/modules/_static-pages.scss +1 -1
  37. data/app/assets/stylesheets/decidim/modules/_tags.scss +1 -1
  38. data/app/assets/stylesheets/decidim/modules/_title-action.scss +1 -1
  39. data/app/assets/stylesheets/decidim/modules/_user-form.scss +1 -1
  40. data/app/assets/stylesheets/decidim/modules/_video.scss +1 -1
  41. data/app/assets/stylesheets/decidim/plugins/_select2.scss +63 -0
  42. data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +1 -1
  43. data/app/commands/decidim/invite_user.rb +5 -2
  44. data/app/controllers/concerns/decidim/devise_controllers.rb +6 -0
  45. data/app/controllers/concerns/decidim/impersonate_users.rb +67 -0
  46. data/app/controllers/concerns/decidim/needs_authorization.rb +0 -4
  47. data/app/controllers/decidim/application_controller.rb +7 -0
  48. data/app/controllers/decidim/devise/invitations_controller.rb +7 -0
  49. data/app/controllers/decidim/errors_controller.rb +1 -1
  50. data/app/controllers/decidim/features/base_controller.rb +1 -1
  51. data/app/controllers/decidim/participatory_process_widgets_controller.rb +0 -2
  52. data/app/controllers/decidim/scopes_controller.rb +29 -0
  53. data/app/forms/decidim/attachment_form.rb +14 -0
  54. data/app/forms/decidim/invite_user_form.rb +12 -1
  55. data/app/helpers/decidim/application_helper.rb +1 -0
  56. data/app/helpers/decidim/attachments_helper.rb +11 -0
  57. data/app/helpers/decidim/decidim_form_helper.rb +9 -8
  58. data/app/helpers/decidim/icon_helper.rb +12 -2
  59. data/app/helpers/decidim/participatory_process_helper.rb +0 -24
  60. data/app/helpers/decidim/scopes_helper.rb +15 -0
  61. data/app/helpers/decidim/translations_helper.rb +1 -1
  62. data/app/mailers/decidim/reported_mailer.rb +1 -1
  63. data/app/models/decidim/abilities/admin_ability.rb +1 -0
  64. data/app/models/decidim/abilities/everyone_ability.rb +2 -0
  65. data/app/models/decidim/abilities/user_manager_ability.rb +35 -0
  66. data/app/models/decidim/impersonation_log.rb +35 -0
  67. data/app/models/decidim/organization.rb +9 -0
  68. data/app/models/decidim/participatory_process.rb +1 -4
  69. data/app/models/decidim/scope.rb +65 -1
  70. data/app/models/decidim/scope_type.rb +16 -0
  71. data/app/models/decidim/user.rb +35 -4
  72. data/app/presenters/decidim/participatory_process_stats_presenter.rb +1 -1
  73. data/app/queries/decidim/freetext_scopes.rb +39 -0
  74. data/app/services/decidim/resource_search.rb +7 -6
  75. data/app/uploaders/decidim/attachment_uploader.rb +1 -1
  76. data/app/views/decidim/account/delete.html.erb +1 -1
  77. data/app/views/decidim/application/_documents.html.erb +4 -2
  78. data/app/views/decidim/participatory_processes/_statistics.html.erb +1 -1
  79. data/app/views/decidim/participatory_processes/show.html.erb +4 -0
  80. data/app/views/decidim/reported_mailer/hide.html.erb +1 -1
  81. data/app/views/decidim/reported_mailer/report.html.erb +1 -1
  82. data/app/views/decidim/shared/_announcement.html.erb +5 -0
  83. data/app/views/decidim/shared/_feature_announcement.html.erb +5 -0
  84. data/app/views/decidim/shared/_flag_modal.html.erb +1 -1
  85. data/app/views/decidim/shared/_tags.html.erb +10 -0
  86. data/app/views/devise/mailer/invitation_instructions.html.erb +13 -0
  87. data/app/views/devise/mailer/invitation_instructions.text.erb +11 -0
  88. data/app/views/layouts/decidim/_application.html.erb +1 -0
  89. data/app/views/layouts/decidim/_impersonation_warning.html.erb +10 -0
  90. data/app/views/layouts/decidim/_wrapper.html.erb +1 -1
  91. data/app/views/pages/home/_statistics.html.erb +1 -1
  92. data/app/views/pages/home/_sub_hero.html.erb +1 -1
  93. data/config/locales/ca.yml +10 -1
  94. data/config/locales/en.yml +9 -0
  95. data/config/locales/es.yml +10 -1
  96. data/config/locales/eu.yml +22 -1
  97. data/config/locales/fi.yml +1 -1
  98. data/config/locales/fr.yml +60 -0
  99. data/config/locales/it.yml +1 -1
  100. data/config/locales/nl.yml +1 -1
  101. data/config/locales/pl.yml +91 -0
  102. data/config/routes.rb +2 -0
  103. data/db/migrate/20170605162500_add_hierarchy_to_scopes.rb +70 -0
  104. data/db/migrate/20170713131206_add_admin_to_users.rb +6 -1
  105. data/db/migrate/20170713131308_migrate_user_roles_to_participatory_process_roles.rb +5 -1
  106. data/db/migrate/20170720135441_add_managed_to_users.rb +7 -0
  107. data/db/migrate/20170720140610_set_email_unique_in_organization_condition_for_managed_users.rb +12 -0
  108. data/db/migrate/20170724130558_create_impersonation_logs.rb +15 -0
  109. data/db/migrate/20170727125445_add_roles_to_users.rb +7 -0
  110. data/db/migrate/20170804125402_attachment_description_nullable.rb +7 -0
  111. data/db/migrate/20170808080905_add_announcement_to_participatory_processes.rb +7 -0
  112. data/db/migrate/20170809084005_add_scopes_enabled_to_participatory_processes.rb +7 -0
  113. data/db/seeds.rb +34 -10
  114. data/lib/decidim/core.rb +11 -5
  115. data/lib/decidim/core/engine.rb +1 -0
  116. data/lib/decidim/core/test.rb +2 -0
  117. data/lib/decidim/core/test/factories.rb +59 -22
  118. data/lib/decidim/core/test/shared_examples/announcements_examples.rb +58 -0
  119. data/lib/decidim/core/test/shared_examples/comments_examples.rb +15 -29
  120. data/lib/decidim/core/test/shared_examples/errors.rb +1 -1
  121. data/lib/decidim/core/test/shared_examples/has_attachments.rb +4 -9
  122. data/lib/decidim/core/test/shared_examples/manage_moderations_examples.rb +1 -8
  123. data/lib/decidim/core/test/shared_examples/paginated_resource_examples.rb +2 -2
  124. data/lib/decidim/core/test/shared_examples/process_announcements_examples.rb +33 -0
  125. data/lib/decidim/core/test/shared_examples/reports_examples.rb +1 -2
  126. data/lib/decidim/core/version.rb +6 -2
  127. data/lib/decidim/faker/localized.rb +4 -4
  128. data/lib/decidim/filter_form_builder.rb +7 -0
  129. data/lib/decidim/form_builder.rb +34 -5
  130. data/lib/decidim/scopable.rb +33 -0
  131. data/lib/decidim/settings_manifest.rb +10 -2
  132. data/lib/decidim/translatable_attributes.rb +0 -1
  133. metadata +61 -17
  134. data/app/helpers/decidim/organization_scopes_helper.rb +0 -42
  135. data/db/seeds/city3.jpeg +0 -0
  136. data/lib/tasks/factory_girl.rake +0 -17
@@ -38,13 +38,14 @@ module Decidim
38
38
  # in order to select those elements that do not have a scope_id set we use
39
39
  # `"global"` as parameter, and in the method we do the needed changes to search
40
40
  # properly.
41
- #
42
- # You can use the `search_organization_scopes` helper method, defined in
43
- # `Decidim::OrganizationScopesHelper`, to render the collection needed for the
44
- # `collection_check_boxes` form method.
45
41
  def search_scope_id
46
- clean_scope_ids = [scope_id].flatten.map { |id| id == "global" ? nil : id }
47
- query.where(decidim_scope_id: clean_scope_ids)
42
+ clean_scope_ids = [scope_id].flatten
43
+
44
+ conditions = []
45
+ conditions << "decidim_scope_id IS NULL" if clean_scope_ids.delete("global")
46
+ conditions.concat(["? = ANY(decidim_scopes.part_of)"] * clean_scope_ids.count) if clean_scope_ids.any?
47
+
48
+ query.includes(:scope).references(:decidim_scopes).where(conditions.join(" OR "), *clean_scope_ids.map(&:to_i))
48
49
  end
49
50
 
50
51
  private
@@ -41,7 +41,7 @@ module Decidim
41
41
  #
42
42
  # Returns a Boolean.
43
43
  def image?(new_file)
44
- content_type = model.try(:content_type) || new_file.content_type
44
+ content_type = model.content_type || new_file.content_type
45
45
  content_type.to_s.start_with? "image"
46
46
  end
47
47
 
@@ -27,4 +27,4 @@
27
27
  <% end %>
28
28
  </div>
29
29
  </div>
30
- </div>
30
+ </div>
@@ -8,9 +8,11 @@
8
8
  <div>
9
9
  <a href="<%= document.url %>" class="card__link">
10
10
  <h6 class="card--list__heading heading6">
11
- <%= translated_attribute(document.title) %> <small><%= document.file_type %> <%= number_to_human_size(document.file_size) %></small>
11
+ <%= attachment_title(document) %> <small><%= document.file_type %> <%= number_to_human_size(document.file_size) %></small>
12
12
  </h6>
13
- <span class="text-small"><%= translated_attribute(document.description) %></span>
13
+ <% if document.description.present? %>
14
+ <span class="text-small"><%= translated_attribute(document.description) %></span>
15
+ <% end %>
14
16
  </a>
15
17
  </div>
16
18
  </div>
@@ -7,4 +7,4 @@
7
7
  <%= stats.highlighted %>
8
8
  </div>
9
9
  </div>
10
- </section>
10
+ </section>
@@ -6,6 +6,10 @@
6
6
  twitter_handler: current_organization.twitter_handler
7
7
  }) %>
8
8
 
9
+ <% if translated_attribute(current_participatory_process.announcement).present? %>
10
+ <%= render partial: "decidim/shared/announcement", locals: { announcement: current_participatory_process.announcement } %>
11
+ <% end %>
12
+
9
13
  <div class="row column">
10
14
  <div class="row">
11
15
  <div class="columns medium-7 mediumlarge-8">
@@ -6,4 +6,4 @@
6
6
 
7
7
  <p>
8
8
  <%= link_to t(".manage_moderations"), manage_moderations_url %>
9
- </p>
9
+ </p>
@@ -6,4 +6,4 @@
6
6
 
7
7
  <p>
8
8
  <%= link_to t(".manage_moderations"), manage_moderations_url %>
9
- </p>
9
+ </p>
@@ -0,0 +1,5 @@
1
+ <div class="row column">
2
+ <div class="callout secondary announcement">
3
+ <%== translated_attribute announcement %>
4
+ </div>
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <% if translated_attribute(current_settings.announcement).present? %>
2
+ <%= render partial: "decidim/shared/announcement", locals: { announcement: current_settings.announcement } %>
3
+ <% elsif translated_attribute(feature_settings.announcement).present? %>
4
+ <%= render partial: "decidim/shared/announcement", locals: { announcement: feature_settings.announcement } %>
5
+ <% end %>
@@ -17,4 +17,4 @@
17
17
  <%= f.submit t(".report") %>
18
18
  <% end %>
19
19
  <% end %>
20
- </div>
20
+ </div>
@@ -0,0 +1,10 @@
1
+ <% if resource.category.present? || has_visible_scopes?(resource) %>
2
+ <ul class="tags <%= tags_class_extra %>" >
3
+ <% if resource.category.present? %>
4
+ <li><%= link_to translated_attribute(resource.category.name), resource_locator(resource).index(filter: { category_id: resource.category.id }) %></li>
5
+ <% end %>
6
+ <% if has_visible_scopes?(resource) %>
7
+ <li><%= link_to translated_attribute(resource.scope.name), resource_locator(resource).index(filter: { scope_id: [resource.scope.id] }) %></li>
8
+ <% end %>
9
+ </ul>
10
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <p><%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %></p>
2
+
3
+ <p>
4
+ <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: @resource.organization.name) %>
5
+ </p>
6
+
7
+ <p><%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim.root_path, host: @resource.organization.host) %></p>
8
+
9
+ <% if @resource.invitation_due_at %>
10
+ <p><%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :long)) %></p>
11
+ <% end %>
12
+
13
+ <p><%= t("devise.mailer.invitation_instructions.ignore").html_safe %></p>
@@ -0,0 +1,11 @@
1
+ <%= t("devise.mailer.invitation_instructions.hello", email: @resource.name) %>
2
+
3
+ <%= t("devise.mailer.invitation_instructions.someone_invited_you", application: @resource.organization.name) %>
4
+
5
+ <%= accept_invitation_url(@resource, invitation_token: @token, invite_redirect: decidim.root_path, host: @resource.organization.host) %>
6
+
7
+ <% if @resource.invitation_due_at %>
8
+ <%= t("devise.mailer.invitation_instructions.accept_until", due_date: l(@resource.invitation_due_at, format: :long)) %>
9
+ <% end %>
10
+
11
+ <%= strip_tags t("devise.mailer.invitation_instructions.ignore") %>
@@ -14,6 +14,7 @@
14
14
  </head>
15
15
 
16
16
  <body>
17
+ <%= render partial: 'layouts/decidim/impersonation_warning' %>
17
18
  <%= render partial: 'layouts/decidim/cookie_warning' %>
18
19
 
19
20
  <%= render 'layouts/decidim/wrapper' do %>
@@ -0,0 +1,10 @@
1
+ <% if current_user&.managed? %>
2
+ <div class="impersonation-warning" data-session-ends-at="<%= impersonation_session_ends_at.iso8601 %>">
3
+ <%= t('.description_html', user_name: current_user.name) %>
4
+ <%= t('.expire_time_html', minutes: impersonation_session_remaining_duration_in_minutes) %>
5
+ <div class="impersonation-warning__action">
6
+ <%= button_to t('.close_session'), decidim_admin.close_session_managed_user_impersonations_path(current_user), class: "button tiny impersonation-bar__button" %>
7
+ </div>
8
+ </div>
9
+ <%= javascript_include_tag "decidim/impersonation" %>
10
+ <% end %>
@@ -85,7 +85,7 @@
85
85
  <% if current_organization.static_pages.any? %>
86
86
  <ul class="footer-nav">
87
87
  <% current_organization.static_pages.each do |page| %>
88
- <li><%= link_to translated_attribute(page.title), decidim.page_path(page) %></a></li>
88
+ <li><%= link_to translated_attribute(page.title), decidim.page_path(page) %></li>
89
89
  <% end %>
90
90
  </ul>
91
91
  <% end %>
@@ -11,4 +11,4 @@
11
11
  </div>
12
12
  </div>
13
13
  </div>
14
- </section>
14
+ </section>
@@ -8,4 +8,4 @@
8
8
  <% end %>
9
9
  </div>
10
10
  </div>
11
- </section>
11
+ </section>
@@ -158,6 +158,8 @@ ca:
158
158
  default_image: Imatge predeterminada
159
159
  errors:
160
160
  error: Hi ha un error en aquest camp.
161
+ managed_users:
162
+ expired_session: La sessió de suplantació actual ha caducat.
161
163
  menu:
162
164
  home: Inici
163
165
  more_information: Més informació
@@ -234,6 +236,8 @@ ca:
234
236
  create:
235
237
  error: S'ha produït un error en denunciar. Torna-ho a intentar.
236
238
  success: La denúncia s'ha creat amb èxit i serà revisada per un administrador.
239
+ scopes:
240
+ global: Àmbit global
237
241
  shared:
238
242
  action_authorization_modal:
239
243
  incomplete:
@@ -302,6 +306,7 @@ ca:
302
306
  errors:
303
307
  messages:
304
308
  content_type_whitelist_error: El tipus de fitxer no és vàlid
309
+ cycle_detected: Un dels pares de l'àmbit d'aplicació no pot ser un dels seus descendents
305
310
  file_size_is_less_than_or_equal_to: la mida del fitxer ha de ser menor que o igual a %{count}
306
311
  invalid_manifest: Arxiu de manifest invàlid
307
312
  invalid_participatory_process: Procés participatiu invàlid
@@ -329,6 +334,10 @@ ca:
329
334
  navigation: Navegació
330
335
  sign_in: Entra
331
336
  sign_up: Registra't
337
+ impersonation_warning:
338
+ close_session: Tanca la sessió
339
+ description_html: Esteu suplantant l'usuari <b>%{user_name}</b>.
340
+ expire_time_html: La vostra sessió caducarà en <b><span class="minutes">%{minutes}</span> minutes</b>.
332
341
  participatory_process_groups:
333
342
  participatory_process_group:
334
343
  browse: Explorar
@@ -437,4 +446,4 @@ ca:
437
446
  last: Última &raquo;
438
447
  next: Següent &rsaquo;
439
448
  previous: "&lsaquo; Anterior"
440
- truncate: "&hellip;"
449
+ truncate: "&hellip;"
@@ -159,6 +159,8 @@ en:
159
159
  default_image: Default image
160
160
  errors:
161
161
  error: There's an error in this field.
162
+ managed_users:
163
+ expired_session: The current impersonation session has expired.
162
164
  menu:
163
165
  home: Home
164
166
  more_information: More information
@@ -235,6 +237,8 @@ en:
235
237
  create:
236
238
  error: An error ocurred while creating the report. Please, try it again.
237
239
  success: The report has been created successfully and it will be reviewed by an admin.
240
+ scopes:
241
+ global: Global scope
238
242
  shared:
239
243
  action_authorization_modal:
240
244
  incomplete:
@@ -303,6 +307,7 @@ en:
303
307
  errors:
304
308
  messages:
305
309
  content_type_whitelist_error: The file type is not valid
310
+ cycle_detected: a scope's parent can't be one of its descendants
306
311
  file_size_is_less_than_or_equal_to: file size must be less than or equal to %{count}
307
312
  invalid_manifest: Invalid manifest
308
313
  invalid_participatory_process: Invalid participatory process
@@ -330,6 +335,10 @@ en:
330
335
  navigation: Navigation
331
336
  sign_in: Sign In
332
337
  sign_up: Sign Up
338
+ impersonation_warning:
339
+ close_session: Close session
340
+ description_html: You are impersonating the user <b>%{user_name}</b>.
341
+ expire_time_html: Your session will expire in <b><span class="minutes">%{minutes}</span> minutes</b>.
333
342
  participatory_process_groups:
334
343
  participatory_process_group:
335
344
  browse: Browse
@@ -158,6 +158,8 @@ es:
158
158
  default_image: Imagen predeterminada
159
159
  errors:
160
160
  error: Hay un error en este campo.
161
+ managed_users:
162
+ expired_session: La sesión de suplantación actual ha caducado.
161
163
  menu:
162
164
  home: Inicio
163
165
  more_information: Más información
@@ -234,6 +236,8 @@ es:
234
236
  create:
235
237
  error: Se ha producido un error al denunciar el contenido. Por favor, inténtalo otra vez.
236
238
  success: La denuncia se ha creado correctament y será revisada por un administrador.
239
+ scopes:
240
+ global: Ámbito global
237
241
  shared:
238
242
  action_authorization_modal:
239
243
  incomplete:
@@ -302,6 +306,7 @@ es:
302
306
  errors:
303
307
  messages:
304
308
  content_type_whitelist_error: El tipo de archivo no es válido
309
+ cycle_detected: el padre de un ámbito no puede ser uno de sus descendientes
305
310
  file_size_is_less_than_or_equal_to: el tamaño del archivo debe ser menor que o igual a %{count}
306
311
  invalid_manifest: Manifiesto inválido
307
312
  invalid_participatory_process: Proceso participativo inválido
@@ -329,6 +334,10 @@ es:
329
334
  navigation: Navegación
330
335
  sign_in: Entra
331
336
  sign_up: Regístrate
337
+ impersonation_warning:
338
+ close_session: Cerrar la sesión
339
+ description_html: Te estás haciendo pasar por el usuario <b>%{user_name}</b>.
340
+ expire_time_html: Su sesión expirará en <b><span class="minutes">%{minutes}</span> minutos</b>.
332
341
  participatory_process_groups:
333
342
  participatory_process_group:
334
343
  browse: Explorar
@@ -437,4 +446,4 @@ es:
437
446
  last: Última &raquo;
438
447
  next: Siguiente &rsaquo;
439
448
  previous: "&lsaquo; Anterior"
440
- truncate: "&hellip;"
449
+ truncate: "&hellip;"
@@ -1,6 +1,8 @@
1
1
  eu:
2
2
  activemodel:
3
3
  attributes:
4
+ account:
5
+ delete_reason: Zure kontua ezabatzeko arrazoia
4
6
  report:
5
7
  details: Iruzkin gehigarriak
6
8
  user:
@@ -8,6 +10,7 @@ eu:
8
10
  name: Zure izena
9
11
  password: Pasahitza
10
12
  password_confirmation: Baieztatu zure pasahitz berria
13
+ remove_avatar: Kendu avatar-a
11
14
  user_group_document_number: Egiaztagiri-zenbakia
12
15
  user_group_name: Erakundearen izena
13
16
  user_group_phone: Erakundearen telefonoa
@@ -31,6 +34,17 @@ eu:
31
34
  image_too_big: Irudia pisuegia da
32
35
  decidim:
33
36
  account:
37
+ delete:
38
+ alert: Ekintza hau ezin da desegin. Zure kontua ezabatzen baduzu, ezin izango duzu saioa hasi.
39
+ confirm:
40
+ close: Itxi leihoa
41
+ ok: Bai, nire kontua ezabatu nahi dut
42
+ question: Ziur zure kontua ezabatu nahi duzula?
43
+ title: Ezabatu nire kontua
44
+ explanation: Mesedez, zure kontu ezabatu nahi izateko arrazoia azaldu (aukerakoa).
45
+ destroy:
46
+ error: Errore bat gertatu da zure kontua ezabatzean.
47
+ success: Zure kontua ezabatu egin da.
34
48
  show:
35
49
  change_password: Aldatu pasahitza
36
50
  update_account: Eguneratu kontua
@@ -104,6 +118,13 @@ eu:
104
118
  shared:
105
119
  omniauth_buttons:
106
120
  or: Edo
121
+ errors:
122
+ internal_server_error:
123
+ title: Arazo bat izan da gure zerbitzariarekin
124
+ try_later: Mesedez beranduago saiatu.
125
+ not_found:
126
+ back_home: Itzuli hasierara
127
+ content_doesnt_exist: Helbide hau okerra da edo ezabatua izan da.
107
128
  export_mailer:
108
129
  export:
109
130
  ready: Atxikita aurkituko duzu zure esportazioaren bertsio trinkotua.
@@ -380,4 +401,4 @@ eu:
380
401
  last: Azkena &raquo;
381
402
  next: Hurrengoa &rsaquo;
382
403
  previous: "&lsaquo; Aurrekoa"
383
- truncate: "&hellip;"
404
+ truncate: "&hellip;"
@@ -358,4 +358,4 @@ fi:
358
358
  last: Viimeinen &raquo;
359
359
  next: Seuraava &rsaquo;
360
360
  previous: "&lsaquo; Edellinen"
361
- truncate: "&hellip;"
361
+ truncate: "&hellip;"
@@ -1,6 +1,8 @@
1
1
  fr:
2
2
  activemodel:
3
3
  attributes:
4
+ account:
5
+ delete_reason: Pour quelle raison de supprimez-vous votre compte ?
4
6
  report:
5
7
  details: Commentaires additionnels
6
8
  user:
@@ -8,6 +10,7 @@ fr:
8
10
  name: Votre nom
9
11
  password: Nouveau mot de passe
10
12
  password_confirmation: Confirmez votre nouveau mot de passe
13
+ remove_avatar: Supprimer l'avatar
11
14
  user_group_document_number: Numéro de document de l'organisation
12
15
  user_group_name: Nom de l'organisation
13
16
  user_group_phone: Téléphone de l'organisation
@@ -31,6 +34,17 @@ fr:
31
34
  image_too_big: L'image est trop grande
32
35
  decidim:
33
36
  account:
37
+ delete:
38
+ alert: Cette action ne peut pas être annulée. Si vous supprimez votre compte, vous ne pourrez plus vous connecter.
39
+ confirm:
40
+ close: Fermer la fenêtre
41
+ ok: Oui, je souhaite supprimer mon compte
42
+ question: Êtes-vous sûr de vouloir supprimer votre compte?
43
+ title: Supprimer mon compte
44
+ explanation: Veuillez indiquer la raison pour laquelle vous souhaitez supprimer votre compte (facultatif).
45
+ destroy:
46
+ error: Une erreur s'est produite lors de la suppression de votre compte.
47
+ success: Votre compte a été supprimé avec succès.
34
48
  show:
35
49
  change_password: Changer de mot de passe
36
50
  update_account: Mettre à jour votre compte
@@ -104,6 +118,14 @@ fr:
104
118
  shared:
105
119
  omniauth_buttons:
106
120
  or: Ou
121
+ errors:
122
+ internal_server_error:
123
+ title: Il y a eu un problème avec notre serveur
124
+ try_later: Veuillez réessayer plus tard.
125
+ not_found:
126
+ back_home: Retour à l'accueil
127
+ content_doesnt_exist: Cette adresse web est incorrecte ou n'existe plus.
128
+ title: La page que vous recherchez ne peut être trouvée
107
129
  export_mailer:
108
130
  export:
109
131
  ready: Vous trouverez ci-joint une version zippée de votre exportation.
@@ -131,6 +153,9 @@ fr:
131
153
  proposal: Propositions
132
154
  result: Résultats
133
155
  forms:
156
+ current_file: Fichier actuel
157
+ current_image: Image actuelle
158
+ default_image: Image par défaut
134
159
  errors:
135
160
  error: Ce champ contient une erreur.
136
161
  menu:
@@ -151,6 +176,8 @@ fr:
151
176
  success: Vos paramètres de notifications ont été mis à jour avec succès.
152
177
  own_user_groups:
153
178
  index:
179
+ pending: En attente
180
+ rejected: Refusée
154
181
  verified: Vérifié
155
182
  pages:
156
183
  index:
@@ -178,17 +205,36 @@ fr:
178
205
  participatory_structure: Organisations concernées
179
206
  scope: Zone d'application
180
207
  target: Public visé
208
+ statistics:
209
+ answers_count: Réponses
210
+ comments_count: Commentaires
211
+ headline: Activité
212
+ meetings_count: Rencontres
213
+ pages_count: Pages
214
+ processes_count: Processus participatifs
215
+ projects_count: Projets
216
+ proposals_count: Propositions
217
+ results_count: Résultats
218
+ surveys_count: Enquêtes
219
+ users_count: Participants
220
+ votes_count: Votes
181
221
  reported_mailer:
182
222
  hide:
183
223
  hello: Bonjour %{name},
224
+ manage_moderations: Gérer les modérations
225
+ report_html: <p>Le <a href="%{url}">contenu suivant</a> a été masqué automatiquement.</p>
184
226
  subject: Une ressource a été cachée automatiquement
185
227
  report:
186
228
  hello: Bonjour %{name},
229
+ manage_moderations: Gérer les modérations
230
+ report_html: <p>Le <a href="%{url}">contenu</a> suivant a été signalé.</p>
187
231
  subject: Une ressource a été signalée
188
232
  reports:
189
233
  create:
190
234
  error: Une erreur s'est produite lors de la création du rapport. Veuillez essayer à nouveau.
191
235
  success: Le contenu a été signalé, il sera examiné par un administrateur.
236
+ scopes:
237
+ global: Portée globale
192
238
  shared:
193
239
  action_authorization_modal:
194
240
  incomplete:
@@ -223,6 +269,8 @@ fr:
223
269
  sign_up: S'inscrire
224
270
  reference:
225
271
  reference: 'Référence: %{reference}'
272
+ results_per_page:
273
+ label: 'Résultats par page :'
226
274
  share_modal:
227
275
  close_window: Fermer la fenêtre
228
276
  share: Partager
@@ -263,6 +311,8 @@ fr:
263
311
  too_many_marks: Utilise trop de signes de ponctuations
264
312
  too_much_caps: Utilise trop de majuscule
265
313
  too_short: Est trop court
314
+ forms:
315
+ required: Champs obligatoires
266
316
  invisible_captcha:
267
317
  sentence_for_humans: Si vous êtes humain, ignorez ce champ
268
318
  timestamp_error_message: Désolé, c'était trop rapide ! Veuillez le renvoyer.
@@ -279,6 +329,10 @@ fr:
279
329
  navigation: Navigation
280
330
  sign_in: Se connecter
281
331
  sign_up: S'inscrire
332
+ impersonation_warning:
333
+ close_session: Fermer la session
334
+ description_html: Vous agissez en tant que l'utilisateur <b>%{user_name}</b>.
335
+ expire_time_html: Votre session expirera dans <b><span class="minutes">%{minutes}</span> minutes</b>.
282
336
  participatory_process_groups:
283
337
  participatory_process_group:
284
338
  browse: Naviguer
@@ -315,6 +369,7 @@ fr:
315
369
  user_profile:
316
370
  account: Compte
317
371
  authorizations: Autorisations
372
+ delete_my_account: Supprimer mon compte
318
373
  notifications_settings: Paramètres des notifications
319
374
  title: Paramètres utilisateur
320
375
  user_groups: Organisations
@@ -345,12 +400,17 @@ fr:
345
400
  active_step: Etape en cours
346
401
  see_all_processes: Voir tous les processus participatifs
347
402
  statistics:
403
+ answers_count: Réponses
348
404
  comments_count: Commentaires
349
405
  headline: État actuel de %{organization}
350
406
  meetings_count: Rencontres
407
+ pages_count: Pages
351
408
  processes_count: Processus participatifs
409
+ projects_count: Projets
352
410
  proposals_count: Propositions
353
411
  results_count: Résultats
412
+ surveys_count: Enquêtes
413
+ users_count: Participants
354
414
  votes_count: Votes
355
415
  sub_hero:
356
416
  register: S'inscrire