decidim-accountability 0.24.3 → 0.25.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/decidim/accountability/admin/import_results_controller.rb +2 -12
  3. data/app/controllers/decidim/accountability/admin/results_controller.rb +1 -1
  4. data/app/jobs/decidim/accountability/admin/import_results_csv_job.rb +3 -3
  5. data/app/models/decidim/accountability/result.rb +4 -14
  6. data/app/packs/entrypoints/decidim_accountability.js +4 -0
  7. data/app/packs/entrypoints/decidim_accountability_admin.js +1 -0
  8. data/app/{assets/images/decidim/accountability/icon.svg → packs/images/decidim/accountability/decidim_accountability_icon.svg} +0 -0
  9. data/app/{assets/javascripts/decidim/accountability/admin/accountability_admin.js.es6 → packs/src/decidim/accountability/admin/index.js} +1 -3
  10. data/app/{assets/javascripts/decidim/accountability/accountability.js.es6 → packs/src/decidim/accountability/index.js} +2 -3
  11. data/app/{assets/javascripts/decidim/accountability/version_diff.js.es6 → packs/src/decidim/accountability/version_diff.js} +0 -0
  12. data/app/packs/stylesheets/decidim/accountability/_accountability.scss +4 -0
  13. data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_cards.scss +0 -0
  14. data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_categories.scss +0 -0
  15. data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_lines_breadcrumb.scss +0 -0
  16. data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_results.scss +0 -0
  17. data/app/queries/decidim/accountability/metrics/results_metric_manage.rb +1 -1
  18. data/app/services/decidim/accountability/results_csv_importer.rb +1 -1
  19. data/app/views/decidim/accountability/admin/import_results/new.html.erb +1 -1
  20. data/app/views/decidim/accountability/admin/results/_form.html.erb +5 -3
  21. data/app/views/decidim/accountability/admin/results/edit.html.erb +1 -1
  22. data/app/views/decidim/accountability/admin/results/index.html.erb +2 -0
  23. data/app/views/decidim/accountability/admin/results/new.html.erb +1 -1
  24. data/app/views/decidim/accountability/results/home.html.erb +1 -1
  25. data/app/views/decidim/accountability/results/index.html.erb +0 -2
  26. data/app/views/decidim/accountability/versions/show.html.erb +1 -2
  27. data/config/assets.rb +10 -0
  28. data/config/locales/ca.yml +2 -0
  29. data/config/locales/cs.yml +2 -0
  30. data/config/locales/de.yml +2 -0
  31. data/config/locales/en.yml +4 -0
  32. data/config/locales/es-MX.yml +2 -0
  33. data/config/locales/es-PY.yml +2 -0
  34. data/config/locales/es.yml +2 -0
  35. data/config/locales/fi-plain.yml +2 -0
  36. data/config/locales/fi.yml +2 -0
  37. data/config/locales/fr-CA.yml +2 -0
  38. data/config/locales/fr-LU.yml +248 -0
  39. data/config/locales/fr.yml +2 -0
  40. data/config/locales/gl.yml +2 -0
  41. data/config/locales/hu.yml +29 -0
  42. data/config/locales/it.yml +2 -0
  43. data/config/locales/ja.yml +2 -0
  44. data/config/locales/lb-LU.yml +1 -0
  45. data/config/locales/nl.yml +2 -0
  46. data/config/locales/pl.yml +2 -0
  47. data/config/locales/pt-BR.yml +53 -4
  48. data/config/locales/pt.yml +26 -0
  49. data/config/locales/ro-RO.yml +2 -0
  50. data/config/locales/sv.yml +2 -0
  51. data/lib/decidim/accountability.rb +7 -0
  52. data/lib/decidim/accountability/admin_engine.rb +0 -4
  53. data/lib/decidim/accountability/component.rb +6 -2
  54. data/lib/decidim/accountability/engine.rb +1 -6
  55. data/lib/decidim/accountability/result_serializer.rb +1 -0
  56. data/lib/decidim/accountability/version.rb +1 -1
  57. metadata +37 -70
  58. data/app/assets/config/decidim_accountability_admin_manifest.js +0 -1
  59. data/app/assets/config/decidim_accountability_manifest.js +0 -2
  60. data/app/assets/stylesheets/decidim/accountability/_accountability.scss +0 -1
  61. data/config/locales/ja-JP.yml +0 -222
  62. data/vendor/assets/javascripts/diff.js +0 -1839
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 787999d4688a107c4864a0553213ce780c4716ee716ed81154b0295d63826f10
4
- data.tar.gz: 8a16fef18f80d49c6bcf1e33dea856acceee5f3ca51978757a105b7746dff6ad
3
+ metadata.gz: '05937f27998d8398e03091327a2d71cc4ad17aa1e891d3165334bf2469f017fc'
4
+ data.tar.gz: 264516e00dc81d540b1451f0e80291103d131dad488166d5df04346cd6f89d57
5
5
  SHA512:
6
- metadata.gz: 193f7419cc2a9fbb82596cbacb2368503ddde1005845da4e5a43fa500207764bac99aedd4a51c8fcde553b77ee5439513759157c87121a8c312693ef2628b61e
7
- data.tar.gz: 936ca8dad74d78cc24bef441dee6780aaa181a7ed834bfd83359bbcda877f295cfee9800f9f7388dbd96036a37935eebf0654ce05f3a4f617597b228033253f7
6
+ metadata.gz: b1e005e44bbd8d5c6c12e6eb69873140116c921a0b5aff1555f6da1754a9b64d5cdfac2548e737637585b5f735166da00af0c3dc2034ec6ecff8949c50f99897
7
+ data.tar.gz: 95eebdfdc17b1b5dbfcc330d124e1fcdba685576743e40a2f09af88415967d5b3e7c5309ce901e7110b4928d908b6b8cd7cbaf154d31f38d22291a18cb6f6d03
@@ -13,20 +13,10 @@ module Decidim
13
13
  @csv_file = params[:csv_file]
14
14
  redirect_to(new_import_path) && return if @csv_file.blank?
15
15
 
16
- Decidim::Accountability::Admin::ImportResultsCSVJob.perform_later(current_user, current_component, @csv_file.read.force_encoding("utf-8").encode("utf-8"))
16
+ Decidim::Accountability::Admin::ImportResultsCsvJob.perform_later(current_user, current_component, @csv_file.read.force_encoding("utf-8").encode("utf-8"))
17
17
 
18
18
  flash[:notice] = I18n.t("imports.create.success", scope: "decidim.accountability.admin")
19
- redirect_to import_results_path(current_participatory_process, current_component)
20
- end
21
-
22
- private
23
-
24
- def current_component
25
- @current_component ||= current_participatory_process.components.find(params[:component_id])
26
- end
27
-
28
- def current_participatory_process
29
- @current_participatory_process ||= ParticipatoryProcess.find_by(slug: params[:participatory_process_slug])
19
+ redirect_to import_results_path(current_participatory_space, current_component)
30
20
  end
31
21
  end
32
22
  end
@@ -7,7 +7,7 @@ module Decidim
7
7
  class ResultsController < Admin::ApplicationController
8
8
  include Decidim::ApplicationHelper
9
9
  include Decidim::SanitizeHelper
10
- include Decidim::Proposals::Admin::Picker
10
+ include Decidim::Proposals::Admin::Picker if Decidim::Accountability.enable_proposal_linking
11
11
  include Decidim::Accountability::Admin::Filterable
12
12
 
13
13
  helper_method :results, :parent_result, :parent_results, :statuses, :present
@@ -3,11 +3,11 @@
3
3
  module Decidim
4
4
  module Accountability
5
5
  module Admin
6
- class ImportResultsCSVJob < ApplicationJob
7
- queue_as :default
6
+ class ImportResultsCsvJob < ApplicationJob
7
+ queue_as :exports
8
8
 
9
9
  def perform(current_user, current_component, csv_file)
10
- importer = Decidim::Accountability::ResultsCSVImporter.new(current_component, csv_file, current_user)
10
+ importer = Decidim::Accountability::ResultsCsvImporter.new(current_component, csv_file, current_user)
11
11
 
12
12
  errors = importer.import!
13
13
 
@@ -12,7 +12,7 @@ module Decidim
12
12
  include Decidim::ScopableResource
13
13
  include Decidim::HasCategory
14
14
  include Decidim::HasReference
15
- include Decidim::Comments::Commentable
15
+ include Decidim::Comments::CommentableWithComponent
16
16
  include Decidim::Traceable
17
17
  include Decidim::Loggable
18
18
  include Decidim::DataPortability
@@ -66,16 +66,6 @@ module Decidim
66
66
  save!
67
67
  end
68
68
 
69
- # Public: Overrides the `commentable?` Commentable concern method.
70
- def commentable?
71
- component.settings.comments_enabled?
72
- end
73
-
74
- # Public: Overrides the `accepts_new_comments?` Commentable concern method.
75
- def accepts_new_comments?
76
- commentable? && !component.current_settings.comments_blocked
77
- end
78
-
79
69
  # Public: Overrides the `comments_have_alignment?` Commentable concern method.
80
70
  def comments_have_alignment?
81
71
  true
@@ -86,9 +76,9 @@ module Decidim
86
76
  true
87
77
  end
88
78
 
89
- # Public: Whether the object can have new comments or not.
90
- def user_allowed_to_comment?(user)
91
- can_participate_in_space?(user)
79
+ # Public: Overrides the `allow_resource_permissions?` Resourceable concern method.
80
+ def allow_resource_permissions?
81
+ true
92
82
  end
93
83
 
94
84
  ransacker :id_string do
@@ -0,0 +1,4 @@
1
+ import "src/decidim/accountability/index"
2
+
3
+ // Images
4
+ require.context("../images", true)
@@ -0,0 +1 @@
1
+ import "src/decidim/accountability/admin/index"
@@ -1,6 +1,4 @@
1
- // = require_self
2
-
3
- $(function() {
1
+ $(() => {
4
2
  $("#result_decidim_accountability_status_id").change(function () {
5
3
  /* eslint-disable no-invalid-this */
6
4
  const progress = $(this).find(":selected").data("progress")
@@ -1,6 +1,5 @@
1
- // = require diff
2
- // = require_tree .
3
- // = require_self
1
+ import "diff"
2
+ import "src/decidim/accountability/version_diff"
4
3
 
5
4
  $(() => {
6
5
  // Show category list on click when we are on a small scren
@@ -0,0 +1,4 @@
1
+ @import "stylesheets/decidim/accountability/accountability/cards";
2
+ @import "stylesheets/decidim/accountability/accountability/categories";
3
+ @import "stylesheets/decidim/accountability/accountability/lines_breadcrumb";
4
+ @import "stylesheets/decidim/accountability/accountability/results";
@@ -36,7 +36,7 @@ module Decidim
36
36
  manifest.participatory_spaces.call(@organization).public_spaces
37
37
  end
38
38
  @query = Decidim::Accountability::Result.select(:decidim_component_id)
39
- .where(component: visible_component_ids_from_spaces(spaces))
39
+ .where(component: visible_components_from_spaces(spaces))
40
40
  .joins(:component)
41
41
  .left_outer_joins(:category)
42
42
  @query = @query.where("decidim_accountability_results.created_at <= ?", end_time)
@@ -7,7 +7,7 @@ module Decidim
7
7
  # This class handles importing results from a CSV file.
8
8
  # Needs a `current_component` param with a `Decidim::component`
9
9
  # in order to import the results in that component.
10
- class ResultsCSVImporter
10
+ class ResultsCsvImporter
11
11
  include Decidim::FormFactory
12
12
 
13
13
  # Public: Initializes the service.
@@ -17,6 +17,6 @@
17
17
  <%= submit_tag t(".import"), class: "button" %>
18
18
  </div>
19
19
  <div class="import-process-info">
20
- <%= t(".info", link_new_status: new_status_path, link_new_result: new_result_path, link_export_csv: link_to(t(".link"), exports_path(@current_component, id: "results", format: "CSV"), method: :post)).try("html_safe") %>
20
+ <%= t(".info", link_new_status: new_status_path, link_new_result: new_result_path, link_export_csv: link_to(t(".link"), exports_path(current_component, id: "results", format: "CSV"), method: :post)).try("html_safe") %>
21
21
  </div>
22
22
  <% end %>
@@ -52,9 +52,11 @@
52
52
  </div>
53
53
  </div>
54
54
 
55
- <div class="row column">
56
- <%= proposals_picker(form, :proposals, proposals_picker_results_path) %>
57
- </div>
55
+ <% if Decidim::Accountability.enable_proposal_linking %>
56
+ <div class="row column">
57
+ <%= proposals_picker(form, :proposals, proposals_picker_results_path) %>
58
+ </div>
59
+ <% end %>
58
60
 
59
61
  <div class="row column">
60
62
  <% if @form.projects %>
@@ -6,4 +6,4 @@
6
6
  </div>
7
7
  <% end %>
8
8
 
9
- <%= javascript_include_tag "decidim/accountability/admin/accountability_admin" %>
9
+ <%= javascript_pack_tag "decidim_accountability_admin" %>
@@ -94,6 +94,8 @@
94
94
  <%= icon_link_to "paperclip", result_attachments_path(result), t("actions.attachments", scope: "decidim.accountability"), class: "action-icon--attachments" %>
95
95
  <% end %>
96
96
 
97
+ <%= resource_permissions_link(result) %>
98
+
97
99
  <% if allowed_to? :destroy, :result, result: result %>
98
100
  <%= icon_link_to "circle-x", result_path(result), t("actions.destroy", scope: "decidim.accountability"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.accountability", name: t("models.result.name", scope: "decidim.accountability.admin")) } %>
99
101
  <% end %>
@@ -6,4 +6,4 @@
6
6
  </div>
7
7
  <% end %>
8
8
 
9
- <%= javascript_include_tag "decidim/accountability/admin/accountability_admin" %>
9
+ <%= javascript_pack_tag "decidim_accountability_admin" %>
@@ -6,4 +6,4 @@
6
6
  </div>
7
7
  </div>
8
8
 
9
- <%= javascript_include_tag "decidim/accountability/accountability" %>
9
+ <%= javascript_pack_tag "decidim_accountability" %>
@@ -15,5 +15,3 @@
15
15
  <% end %>
16
16
  </div>
17
17
  </div>
18
-
19
- <%= javascript_include_tag("decidim/filters") %>
@@ -1,5 +1,4 @@
1
- <%= javascript_include_tag "diff.js" %>
2
- <%= javascript_include_tag "decidim/accountability/accountability" %>
1
+ <%= javascript_pack_tag "decidim_accountability" %>
3
2
  <div class="row accountability">
4
3
  <div class="small-12 columns">
5
4
  <%= render partial: "decidim/accountability/results/nav_breadcrumb", locals: { category: versioned_resource.parent.try(:category) || versioned_resource.try(:category) } %>
data/config/assets.rb ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ base_path = File.expand_path("..", __dir__)
4
+
5
+ Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
+ Decidim::Webpacker.register_entrypoints(
7
+ decidim_accountability: "#{base_path}/app/packs/entrypoints/decidim_accountability.js",
8
+ decidim_accountability_admin: "#{base_path}/app/packs/entrypoints/decidim_accountability_admin.js"
9
+ )
10
+ Decidim::Webpacker.register_stylesheet_import("stylesheets/decidim/accountability/accountability")
@@ -244,3 +244,5 @@ ca:
244
244
  result_project: Projectes inclosos en aquest resultat
245
245
  included_proposals:
246
246
  result_proposal: Propostes incloses en aquest resultat
247
+ statistics:
248
+ results_count: Resultats
@@ -248,3 +248,5 @@ cs:
248
248
  result_project: Projekty zahrnuté v tomto výsledku
249
249
  included_proposals:
250
250
  result_proposal: Návrhy zahrnuté v tomto výsledku
251
+ statistics:
252
+ results_count: Výsledky
@@ -244,3 +244,5 @@ de:
244
244
  result_project: Projekte in diesem Ergebnis enthalten
245
245
  included_proposals:
246
246
  result_proposal: Vorschläge in diesem Ergebnis enthalten
247
+ statistics:
248
+ results_count: Ergebnisse
@@ -205,6 +205,8 @@ en:
205
205
  label: Status
206
206
  components:
207
207
  accountability:
208
+ actions:
209
+ comment: Comment
208
210
  name: Accountability
209
211
  settings:
210
212
  global:
@@ -245,3 +247,5 @@ en:
245
247
  result_project: Projects included in this result
246
248
  included_proposals:
247
249
  result_proposal: Proposals included in this result
250
+ statistics:
251
+ results_count: Results
@@ -244,3 +244,5 @@ es-MX:
244
244
  result_project: Proyectos incluidos en este resultado
245
245
  included_proposals:
246
246
  result_proposal: Propuestas incluidas en este resultado
247
+ statistics:
248
+ results_count: Resultados
@@ -244,3 +244,5 @@ es-PY:
244
244
  result_project: Proyectos incluidos en este resultado
245
245
  included_proposals:
246
246
  result_proposal: Propuestas incluidas en este resultado
247
+ statistics:
248
+ results_count: Resultados
@@ -244,3 +244,5 @@ es:
244
244
  result_project: Proyectos incluidos en este resultado
245
245
  included_proposals:
246
246
  result_proposal: Propuestas incluidas en este resultado
247
+ statistics:
248
+ results_count: Resultados
@@ -244,3 +244,5 @@ fi-pl:
244
244
  result_project: Tähän tulokseen liittyvät suunnitelmat
245
245
  included_proposals:
246
246
  result_proposal: Tähän tulokseen liittyvät ehdotukset
247
+ statistics:
248
+ results_count: Tulosta
@@ -244,3 +244,5 @@ fi:
244
244
  result_project: Tähän tulokseen liittyvät suunnitelmat
245
245
  included_proposals:
246
246
  result_proposal: Tähän tulokseen liittyvät ehdotukset
247
+ statistics:
248
+ results_count: Tulosta
@@ -244,3 +244,5 @@ fr-CA:
244
244
  result_project: Projets inclus dans cette réalisation
245
245
  included_proposals:
246
246
  result_proposal: Propositions incluses dans cette réalisation
247
+ statistics:
248
+ results_count: Résultats
@@ -0,0 +1,248 @@
1
+ fr-LU:
2
+ activemodel:
3
+ attributes:
4
+ result:
5
+ decidim_accountability_status_id: Progression
6
+ decidim_category_id: Kategorie
7
+ decidim_scope_id: Uwennungsberäich
8
+ description: Description
9
+ end_date: Date de fin
10
+ progress: Avancement
11
+ project_ids: Projets inclus
12
+ proposals: Propositions incluses
13
+ start_date: Date de début
14
+ title: Titre
15
+ updated_at: Mise à jour à
16
+ status:
17
+ description: Description
18
+ key: Clé
19
+ name: Nom
20
+ progress: Avancement
21
+ timeline_entry:
22
+ description: Description
23
+ entry_date: Date
24
+ models:
25
+ decidim/accountability/proposal_linked_event: Proposition incluse dans une réalisation
26
+ decidim/accountability/result_progress_updated_event: Résultat du progrès mis à jour
27
+ activerecord:
28
+ models:
29
+ decidim/accountability/result:
30
+ one: Réalisation
31
+ other: Réalisations
32
+ decidim:
33
+ accountability:
34
+ actions:
35
+ attachment_collections: Dossiers
36
+ attachments: Pièces jointes
37
+ confirm_destroy: Êtes-vous sûr de vouloir supprimer ce %{name}?
38
+ destroy: Supprimer
39
+ edit: Modifier
40
+ import_csv: Importer un fichier CSV
41
+ new: Nouveau %{name}
42
+ preview: Aperçu
43
+ timeline_entries: Évolution de la réalisation
44
+ title: Actions
45
+ admin:
46
+ exports:
47
+ result_comments: Commentaires
48
+ results: Réalisations
49
+ import_results:
50
+ new:
51
+ import: Importer
52
+ info: "<p>Nous vous recommandons de suivre les étapes suivantes :</p><ol><li>Créez les statuts pour les résultats que vous souhaitez ajouter (<a href='%{link_new_status}' target='_blank'>lien</a>)</li><li>Créez au moins un résultat manuellement via ce panneau administrateur (<a href='%{link_new_result}' target='_blank'>lien</a>) avant d'utiliser l'import, pour comprendre ce que vous aurez besoin de remplir.</li><li>Téléchargez l'export en format CSV (%{link_export_csv})</li><li>Faites les modifications nécessaires. Vous pouvez uniquement changer les colonnes suivantes du fichier CSV : </li></ol><ul><li><b>category/id:</b> Identifiant de la catégorie</li><li><b>scope/id :</b> Identifiant du secteur</li><li><b>parent/id :</b> Identifiant du parent (pour les résultats liés). Optional</li><li><b>title/I18N:</b> Titre en langue X</li><li><b>description/I18N:</b> Description en langue X</li><li><b>start_date:</b> date à laquelle le résultat commence (format AAAA-MM-JJ)</li><li><b>end_date:</b> date à laquelle le résultat finit (format AAAA-MM-JJ)</li><li><b>status/id:</b> Identifiant du statut du résultat</li><li><b>progress:</b> Pourcentage (de 0 à 100) de l'exécution du résultat</li><li><b>proposals_ids:</b> Identifiant interne des propositions liées (séparées avec une virgule). La conversion en <span class='attribute-name'>URL de la proposition</span> se fait automatiquement.</li></ul>"
53
+ link: lien
54
+ title: Importer les résultats depuis un fichier CSV
55
+ imports:
56
+ create:
57
+ success: Le fichier a commencé à être importé. Vous recevrez un email dans les prochaines minutes avec le résultat de l'import
58
+ models:
59
+ result:
60
+ name: Réalisation
61
+ status:
62
+ name: Progression
63
+ timeline_entry:
64
+ name: Élément de chronologie
65
+ results:
66
+ create:
67
+ invalid: Un problème est survenu lors de la création de cette réalisation
68
+ success: Réalisation créée avec succès
69
+ destroy:
70
+ success: Réalisation supprimée avec succès
71
+ edit:
72
+ title: Modifier la réalisation
73
+ update: Mise à jour de la réalisation
74
+ index:
75
+ title: Réalisations
76
+ new:
77
+ create: Créer une réalisation
78
+ title: Nouvelle réalisation
79
+ update:
80
+ invalid: Un problème est survenu lors de la mise à jour de cette réalisation
81
+ success: Réalisation mise à jour avec succès
82
+ shared:
83
+ subnav:
84
+ statuses: Progrès
85
+ statuses:
86
+ create:
87
+ invalid: Un problème est survenu lors de la création de ce statut
88
+ success: Statut créé avec succès
89
+ destroy:
90
+ success: Statut supprimé avec succès
91
+ edit:
92
+ title: Modifier le statut
93
+ update: Mettre à jour le statut
94
+ index:
95
+ title: Statuts
96
+ new:
97
+ create: Créer un statut
98
+ title: Nouveau statut
99
+ update:
100
+ invalid: Un problème est survenu lors de la mise à jour de ce statut
101
+ success: Statut mis à jour avec succès
102
+ timeline_entries:
103
+ create:
104
+ invalid: Un problème est survenu lors de la création de cette élément de chronologie
105
+ success: Élément de chronologie créé avec succès
106
+ destroy:
107
+ success: Élément de chronologie supprimé avec succès
108
+ edit:
109
+ title: Modifier l'élément de chronologie
110
+ update: Mise à jour de l'élément de chronologie
111
+ index:
112
+ title: Étapes-clés de la réalisation
113
+ new:
114
+ create: Créer un élément de chronologie
115
+ title: Nouvel élément de chronologie
116
+ update:
117
+ invalid: Un problème est survenu lors de la mise à jour de cet élément de chronologie
118
+ success: Élément de chronologie mis à jour avec succès
119
+ admin_log:
120
+ result:
121
+ create: "%{user_name} a créé la réalisation %{resource_name} dans %{space_name}"
122
+ delete: "%{user_name} a supprimé la réalisation %{resource_name} dans %{space_name}"
123
+ update: "%{user_name} a mis à jour la réalisation %{resource_name} dans %{space_name}"
124
+ value_types:
125
+ parent_presenter:
126
+ not_found: 'Le parent n''a pas été trouvé dans la base de données (ID: %{id})'
127
+ content_blocks:
128
+ highlighted_results:
129
+ dates: Dates
130
+ results: Réalisations
131
+ unspecified: Non précisé
132
+ import_mailer:
133
+ import:
134
+ errors: Erreurs
135
+ errors_present: Un problème est survenu lors de l'import des résultats
136
+ row_number: Ligne
137
+ subject: Import des résultats réussi
138
+ success: Import des résultats réussi. Vous pouvez consulter les résultats dans l'interface d'administration.
139
+ last_activity:
140
+ new_result_at_html: "<span>Nouvelle réalisation %{link}</span>"
141
+ models:
142
+ result:
143
+ fields:
144
+ category: Catégorie
145
+ created_at: Créé le
146
+ end_date: Date de fin
147
+ id: ID
148
+ progress: Avancement
149
+ scope: Secteur
150
+ start_date: Date de début
151
+ status: Statut
152
+ title: Titre
153
+ status:
154
+ fields:
155
+ description: Description
156
+ key: Clé
157
+ name: Nom
158
+ progress: Avancement
159
+ timeline_entry:
160
+ fields:
161
+ description: Description
162
+ entry_date: Date
163
+ result_m:
164
+ executed: Exécuté
165
+ view: Voir
166
+ results:
167
+ count:
168
+ results_count:
169
+ one: 1 réalisation
170
+ other: "%{count} réalisations"
171
+ filters:
172
+ all: Tous
173
+ scopes: Périmètre d'application
174
+ home:
175
+ categories_label: Catégories
176
+ subcategories_label: Sous-catégories
177
+ home_header:
178
+ global_status: État d'exécution global
179
+ nav_breadcrumb:
180
+ global: Exécution globale
181
+ search:
182
+ search: Rechercher des réalisations
183
+ show:
184
+ stats:
185
+ attendees: Participants
186
+ back_to_resource: Revenir à la réalisation
187
+ comments: Commentaires
188
+ contributions: Contributions
189
+ last_edited_by: Dernière édition par
190
+ last_updated_at: Dernière mise à jour à
191
+ meetings: Réunions
192
+ proposals: Propositions
193
+ votes: Votes
194
+ timeline:
195
+ title: Évolution du projet
196
+ admin:
197
+ filters:
198
+ results:
199
+ category_id_eq:
200
+ label: Catégorie
201
+ scope_id_eq:
202
+ label: Secteur
203
+ status_id_eq:
204
+ label: Statut
205
+ components:
206
+ accountability:
207
+ name: Suivi
208
+ settings:
209
+ global:
210
+ categories_label: Nom pour "Catégories"
211
+ comments_enabled: Activer le module de commentaire
212
+ comments_max_length: Longueur max des commentaires (laisser 0 pour la valeur par défaut)
213
+ display_progress_enabled: Afficher les progrès
214
+ heading_leaf_level_results: Nom pour "Projets"
215
+ heading_parent_level_results: Nom pour "Réalisations"
216
+ intro: Introduction
217
+ scope_id: Secteur
218
+ scopes_enabled: Secteurs activés
219
+ subcategories_label: Nom pour "Sous-catégories"
220
+ step:
221
+ comments_blocked: Bloquer la création de nouveaux commentaires
222
+ events:
223
+ accountability:
224
+ proposal_linked:
225
+ email_intro: 'La proposition "%{proposal_title}" a été incluse dans une réalisation. Vous pouvez le voir sur cette page :'
226
+ email_outro: Vous avez reçu cette notification parce que vous suivez "%{proposal_title}". Vous pouvez arrêter de recevoir des notifications à partir du lien précédent.
227
+ email_subject: Une mise à jour de %{proposal_title}
228
+ notification_title: La proposition <a href="%{proposal_path}">%{proposal_title}</a> a été incluse dans la réalisation <a href="%{resource_path}">%{resource_title}</a>.
229
+ result_progress_updated:
230
+ email_intro: 'Le résultat "%{resource_title}", qui inclut la proposition "%{proposal_title}", est maintenant terminé à %{progress}%. Vous pouvez le voir sur cette page:'
231
+ email_outro: Vous avez reçu cette notification car vous suivez "%{proposal_title}" et cette proposition est incluse dans le résultat "%{resource_title}". Vous pouvez cesser de recevoir des notifications en suivant le lien précédent.
232
+ email_subject: Une mise à jour à %{resource_title} progress
233
+ notification_title: Le résultat <a href="%{resource_path}">%{resource_title}</a>, qui inclut la proposition <a href="%{proposal_path}">%{proposal_title}</a>, est désormais achevé à %{progress}%.
234
+ metrics:
235
+ results:
236
+ description: Nombre de résultats générés
237
+ object: résultats
238
+ title: Résultats
239
+ participatory_spaces:
240
+ highlighted_results:
241
+ see_all: Voir tous les résultats (%{count})
242
+ resource_links:
243
+ included_projects:
244
+ result_project: Projets inclus dans cette réalisation
245
+ included_proposals:
246
+ result_proposal: Propositions incluses dans cette réalisation
247
+ statistics:
248
+ results_count: Résultats