decidim-accountability 0.24.1 → 0.25.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/decidim/accountability/admin/import_results_controller.rb +2 -12
- data/app/controllers/decidim/accountability/admin/results_controller.rb +1 -1
- data/app/events/decidim/accountability/proposal_linked_event.rb +1 -1
- data/app/events/decidim/accountability/result_progress_updated_event.rb +1 -1
- data/app/jobs/decidim/accountability/admin/import_results_csv_job.rb +3 -3
- data/app/models/decidim/accountability/result.rb +4 -14
- data/app/packs/entrypoints/decidim_accountability.js +4 -0
- data/app/packs/entrypoints/decidim_accountability_admin.js +1 -0
- data/app/{assets/images/decidim/accountability/icon.svg → packs/images/decidim/accountability/decidim_accountability_icon.svg} +0 -0
- data/app/{assets/javascripts/decidim/accountability/admin/accountability_admin.js.es6 → packs/src/decidim/accountability/admin/index.js} +1 -3
- data/app/{assets/javascripts/decidim/accountability/accountability.js.es6 → packs/src/decidim/accountability/index.js} +2 -3
- data/app/{assets/javascripts/decidim/accountability/version_diff.js.es6 → packs/src/decidim/accountability/version_diff.js} +0 -0
- data/app/packs/stylesheets/decidim/accountability/_accountability.scss +4 -0
- data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_cards.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_categories.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_lines_breadcrumb.scss +0 -0
- data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_results.scss +0 -0
- data/app/queries/decidim/accountability/metrics/results_metric_manage.rb +1 -1
- data/app/services/decidim/accountability/results_csv_importer.rb +1 -1
- data/app/views/decidim/accountability/admin/import_results/new.html.erb +1 -1
- data/app/views/decidim/accountability/admin/results/_form.html.erb +5 -3
- data/app/views/decidim/accountability/admin/results/edit.html.erb +1 -1
- data/app/views/decidim/accountability/admin/results/index.html.erb +2 -0
- data/app/views/decidim/accountability/admin/results/new.html.erb +1 -1
- data/app/views/decidim/accountability/results/home.html.erb +1 -1
- data/app/views/decidim/accountability/results/index.html.erb +0 -2
- data/app/views/decidim/accountability/versions/show.html.erb +1 -2
- data/config/assets.rb +10 -0
- data/config/locales/ca.yml +2 -0
- data/config/locales/cs.yml +2 -0
- data/config/locales/de.yml +2 -0
- data/config/locales/en.yml +4 -0
- data/config/locales/es-MX.yml +2 -0
- data/config/locales/es-PY.yml +2 -0
- data/config/locales/es.yml +2 -0
- data/config/locales/fi-plain.yml +2 -0
- data/config/locales/fi.yml +2 -0
- data/config/locales/fr-CA.yml +2 -0
- data/config/locales/fr-LU.yml +248 -0
- data/config/locales/fr.yml +2 -0
- data/config/locales/gl.yml +2 -0
- data/config/locales/hu.yml +29 -0
- data/config/locales/it.yml +2 -0
- data/config/locales/ja.yml +2 -0
- data/config/locales/lb-LU.yml +1 -0
- data/config/locales/nl.yml +2 -0
- data/config/locales/pl.yml +2 -0
- data/config/locales/pt-BR.yml +53 -4
- data/config/locales/pt.yml +26 -0
- data/config/locales/ro-RO.yml +2 -0
- data/config/locales/sv.yml +5 -3
- data/lib/decidim/accountability/admin_engine.rb +0 -4
- data/lib/decidim/accountability/component.rb +6 -2
- data/lib/decidim/accountability/engine.rb +1 -6
- data/lib/decidim/accountability/result_serializer.rb +1 -0
- data/lib/decidim/accountability/version.rb +1 -1
- data/lib/decidim/accountability.rb +7 -0
- metadata +36 -69
- data/app/assets/config/decidim_accountability_admin_manifest.js +0 -1
- data/app/assets/config/decidim_accountability_manifest.js +0 -2
- data/app/assets/stylesheets/decidim/accountability/_accountability.scss +0 -1
- data/config/locales/ja-JP.yml +0 -222
- data/vendor/assets/javascripts/diff.js +0 -1839
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f85469b21b1dc3dde7ad92293fbe8c049047fa592dc04d84954f296b2a0d3d7
|
4
|
+
data.tar.gz: 0bba743bb52752d45ce110e56bfaa0177ef0f059b0964fe1e85c37107288f400
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77fe212f4b9294dbfcd7d1e70d6debddfe9eb53442976d27874e6ab49fc1c8512c7ac5a71c2abd21342a1dd680e025bcaa7abb0f731bebd39c197433f4d4004c
|
7
|
+
data.tar.gz: 8d99706f81399d473f1103415d420b0b5def475f2b524b431da38282fa48bb5dd103c65927a0e9d2808117b10130dff69996149e20cb859260a8d59e8cc70cbc
|
@@ -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::
|
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(
|
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
|
7
|
-
queue_as :
|
6
|
+
class ImportResultsCsvJob < ApplicationJob
|
7
|
+
queue_as :exports
|
8
8
|
|
9
9
|
def perform(current_user, current_component, csv_file)
|
10
|
-
importer = Decidim::Accountability::
|
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::
|
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:
|
90
|
-
def
|
91
|
-
|
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 @@
|
|
1
|
+
import "src/decidim/accountability/admin/index"
|
File without changes
|
File without changes
|
@@ -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";
|
File without changes
|
data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_categories.scss
RENAMED
File without changes
|
data/app/{assets → packs}/stylesheets/decidim/accountability/accountability/_lines_breadcrumb.scss
RENAMED
File without changes
|
File without changes
|
@@ -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:
|
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
|
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(
|
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
|
-
|
56
|
-
|
57
|
-
|
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 %>
|
@@ -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 %>
|
@@ -1,5 +1,4 @@
|
|
1
|
-
<%=
|
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")
|
data/config/locales/ca.yml
CHANGED
data/config/locales/cs.yml
CHANGED
data/config/locales/de.yml
CHANGED
data/config/locales/en.yml
CHANGED
@@ -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
|
data/config/locales/es-MX.yml
CHANGED
data/config/locales/es-PY.yml
CHANGED
data/config/locales/es.yml
CHANGED
data/config/locales/fi-plain.yml
CHANGED
data/config/locales/fi.yml
CHANGED
data/config/locales/fr-CA.yml
CHANGED
@@ -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
|