decidim-templates 0.28.0.rc5 → 0.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/decidim/templates/admin/block_user_templates_controller.rb +2 -0
  3. data/app/controllers/decidim/templates/admin/proposal_answer_templates_controller.rb +5 -1
  4. data/app/controllers/decidim/templates/admin/questionnaire_templates_controller.rb +2 -0
  5. data/app/packs/src/decidim/templates/admin/proposal_answer_template_chooser.js +15 -4
  6. data/app/permissions/decidim/templates/admin/permissions.rb +30 -8
  7. data/app/views/decidim/templates/admin/block_user_templates/edit.html.erb +2 -2
  8. data/app/views/decidim/templates/admin/block_user_templates/index.html.erb +2 -2
  9. data/app/views/decidim/templates/admin/block_user_templates/new.html.erb +2 -2
  10. data/app/views/decidim/templates/admin/proposal_answer_templates/edit.html.erb +2 -2
  11. data/app/views/decidim/templates/admin/proposal_answer_templates/index.html.erb +2 -2
  12. data/app/views/decidim/templates/admin/proposal_answer_templates/new.html.erb +2 -2
  13. data/app/views/decidim/templates/admin/questionnaire_templates/_choose.html.erb +2 -2
  14. data/app/views/decidim/templates/admin/questionnaire_templates/_preview.html.erb +1 -1
  15. data/app/views/decidim/templates/admin/questionnaire_templates/edit.html.erb +2 -2
  16. data/app/views/decidim/templates/admin/questionnaire_templates/index.html.erb +2 -2
  17. data/app/views/decidim/templates/admin/questionnaire_templates/new.html.erb +2 -2
  18. data/app/views/decidim/templates/admin/questionnaire_templates/preview.js.erb +1 -1
  19. data/config/locales/bg.yml +111 -0
  20. data/config/locales/ca.yml +2 -1
  21. data/config/locales/cs.yml +2 -1
  22. data/config/locales/de.yml +2 -1
  23. data/config/locales/en.yml +2 -1
  24. data/config/locales/es-MX.yml +2 -1
  25. data/config/locales/es-PY.yml +2 -1
  26. data/config/locales/es.yml +2 -1
  27. data/config/locales/eu.yml +0 -1
  28. data/config/locales/fi-plain.yml +0 -1
  29. data/config/locales/fi.yml +0 -1
  30. data/config/locales/fr-CA.yml +14 -1
  31. data/config/locales/fr.yml +3 -4
  32. data/config/locales/he-IL.yml +1 -0
  33. data/config/locales/hu.yml +8 -0
  34. data/config/locales/ja.yml +19 -1
  35. data/config/locales/pl.yml +4 -0
  36. data/config/locales/pt-BR.yml +6 -0
  37. data/config/locales/tr-TR.yml +2 -0
  38. data/decidim-templates.gemspec +40 -0
  39. data/lib/decidim/templates/admin_engine.rb +1 -4
  40. data/lib/decidim/templates/test/factories.rb +15 -9
  41. data/lib/decidim/templates/test/shared_examples/uses_questionnaire_templates.rb +2 -2
  42. data/lib/decidim/templates/version.rb +1 -1
  43. metadata +48 -20
  44. data/LICENSE-AGPLv3.txt +0 -661
  45. data/config/environment.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01b59ab81e7cef96eb0b0e7a37e482c68a7e539b8cd77eb717441494999ccebf
4
- data.tar.gz: 22e16f52d3f2eae4bf4503c4e3313ad63c82edcca2ddb036f97bac3227a1d38e
3
+ metadata.gz: 4a014a416d363441ef2bfc5682c2b069132963795dbbf25099b8347a56195d22
4
+ data.tar.gz: 25234dab78eb65177b52c380541419037a6fd2ae433aa403132ee13ee2735564
5
5
  SHA512:
6
- metadata.gz: becb2b42fc5756c66ee54b7f2d5ad69a2e1337c11a546ca0f203ca7855ff879937609414a4465b7ddb50e7962258f3290a15867f727f5db3b6926a4836f0dccd
7
- data.tar.gz: 91b316dab39eb7d0af5dc7b22bbc286139d9ab6120d5ef340d8402a03375533fe4209499343c50c34e71790ad90669bf9ca87d250da3f02d2ad379dca4623285
6
+ metadata.gz: 61179f335f55af878c96ad6586c823355e7e0f78c08838b31d069c44f58b9efc5ea091a8def531a339da8db8f044fe71f596952e9643f13acf979fa27ca90a6c
7
+ data.tar.gz: 51b833fa9ea3cc1af8b2c142de4d14fa83deb8528989c5f42144bccbe642abf073900ccb7f26e2f6875b595e0486dac60dfa6b45c4875dfc13ac19e09eb2d8c8
@@ -7,6 +7,8 @@ module Decidim
7
7
  include Decidim::TranslatableAttributes
8
8
  include Decidim::Paginable
9
9
 
10
+ add_breadcrumb_item_from_menu :admin_template_types_menu
11
+
10
12
  def fetch
11
13
  enforce_permission_to(:read, :template, template:)
12
14
 
@@ -9,6 +9,8 @@ module Decidim
9
9
 
10
10
  helper_method :availability_option_as_text, :availability_options_for_select
11
11
 
12
+ add_breadcrumb_item_from_menu :admin_template_types_menu
13
+
12
14
  def new
13
15
  enforce_permission_to :create, :template
14
16
  @form = form(ProposalAnswerTemplateForm).instance
@@ -49,7 +51,9 @@ module Decidim
49
51
  end
50
52
 
51
53
  def fetch
52
- enforce_permission_to(:read, :template, template:)
54
+ enforce_permission_to(:read, :template, template:, proposal:)
55
+
56
+ return render json: { msg: I18n.t("templates.fetch.error", scope: "decidim.admin") }, status: :unprocessable_entity if template.blank?
53
57
 
54
58
  response_object = {
55
59
  state: template.field_values["internal_state"],
@@ -10,6 +10,8 @@ module Decidim
10
10
 
11
11
  helper_method :template
12
12
 
13
+ add_breadcrumb_item_from_menu :admin_template_types_menu
14
+
13
15
  def index
14
16
  enforce_permission_to :index, :templates
15
17
  @templates = collection
@@ -2,7 +2,6 @@
2
2
  document.addEventListener("DOMContentLoaded", () => {
3
3
  const proposalAnswerTemplateChooser = document.getElementById("proposal_answer_template_chooser");
4
4
  if (proposalAnswerTemplateChooser) {
5
-
6
5
  proposalAnswerTemplateChooser.addEventListener("change", () => {
7
6
  const dropdown = document.getElementById("proposal_answer_template_chooser");
8
7
  const url = dropdown.getAttribute("data-url");
@@ -13,7 +12,12 @@ document.addEventListener("DOMContentLoaded", () => {
13
12
  return;
14
13
  }
15
14
  fetch(`${new URL(url).pathname}?${new URLSearchParams({ id: templateId, proposalId: proposalId })}`).
16
- then((response) => response.json()).
15
+ then((response) => {
16
+ if (response.ok) {
17
+ return response.json();
18
+ }
19
+ return Promise.reject(response);
20
+ }).
17
21
  then((data) => {
18
22
  document.getElementById(`proposal_answer_internal_state_${data.state}`).click();
19
23
 
@@ -24,8 +28,15 @@ document.addEventListener("DOMContentLoaded", () => {
24
28
 
25
29
  editor.commands.setContent(value, true);
26
30
  }
27
- })
31
+ }).
32
+ catch((response) => {
33
+ response.json().then((data) => {
34
+ const el = document.createElement("p");
35
+ el.classList.add("text-alert");
36
+ el.textContent = data.msg;
37
+ dropdown.after(el);
38
+ });
39
+ });
28
40
  });
29
-
30
41
  }
31
42
  });
@@ -5,21 +5,43 @@ module Decidim
5
5
  module Admin
6
6
  class Permissions < Decidim::DefaultPermissions
7
7
  def permissions
8
- return permission_action unless user
9
- return permission_action unless user.admin?
10
8
  return permission_action if permission_action.scope != :admin
9
+ return permission_action unless user
10
+ return permission_action if context[:current_organization] != user.organization
11
11
 
12
- case permission_action.subject
13
- when :template
14
- allow! if [:read, :create, :update, :destroy, :copy].include? permission_action.action
15
- when :templates
16
- allow! if permission_action.action == :index
17
- when :questionnaire
12
+ if user_has_a_role? && (permission_action.subject == :template && permission_action.action == :read)
18
13
  allow!
14
+ else
15
+ return permission_action unless user.admin?
16
+
17
+ case permission_action.subject
18
+ when :template
19
+ allow! if [:read, :create, :update, :destroy, :copy].include? permission_action.action
20
+ when :templates
21
+ allow! if permission_action.action == :index
22
+ when :questionnaire
23
+ allow!
24
+ end
19
25
  end
20
26
 
21
27
  permission_action
22
28
  end
29
+
30
+ private
31
+
32
+ def participatory_space
33
+ @participatory_space ||= context[:proposal].try(:participatory_space)
34
+ end
35
+
36
+ def user_roles
37
+ @user_roles ||= participatory_space.try(:user_roles)
38
+ end
39
+
40
+ def user_has_a_role?
41
+ return unless user_roles
42
+
43
+ user_roles.exists?(user:)
44
+ end
23
45
  end
24
46
  end
25
47
  end
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -1,12 +1,12 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="card">
3
3
  <div class="item_show__header">
4
- <h2 class="item_show__header-title">
4
+ <h1 class="item_show__header-title">
5
5
  <%= t ".title" %>
6
6
  <% if allowed_to?(:create, :template) %>
7
7
  <%= link_to t("actions.new_template", scope: "decidim.admin.templates"), [:new, :block_user_template], class: "button button__sm button__secondary new" %>
8
8
  <% end %>
9
- </h2>
9
+ </h1>
10
10
  </div>
11
11
  <% if @templates.any? %>
12
12
  <div class="table-scroll">
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -2,12 +2,12 @@
2
2
 
3
3
  <div class="card">
4
4
  <div class="item_show__header">
5
- <h2 class="item_show__header-title">
5
+ <h1 class="item_show__header-title">
6
6
  <%= t ".title" %>
7
7
  <% if allowed_to?(:create, :template) %>
8
8
  <%= link_to t("actions.new_template", scope: "decidim.admin.templates"), [:new, :proposal_answer_template], class: "button button__sm button__secondary new" %>
9
9
  <% end %>
10
- </h2>
10
+ </h1>
11
11
  </div>
12
12
  <% if @templates.any? %>
13
13
  <div class="table-scroll">
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -1,10 +1,10 @@
1
1
  <div class="item_show__header">
2
- <h2 class="item_show__header-title">
2
+ <h1 class="item_show__header-title">
3
3
  <%= form_title %>
4
4
  <div class="ml-auto">
5
5
  <%= link_to t(".skip_template"), decidim_admin_templates.skip_questionnaire_templates_path(questionnaire_id: questionnaire, url: request.url), class: "button button__sm button__secondary", method: :post %>
6
6
  </div>
7
- </h2>
7
+ </h1>
8
8
  </div>
9
9
  <div class="item__edit item__edit-1col">
10
10
  <div class="item__edit-form">
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
 
8
8
  <div class="row columns">
9
- <%= decidim_form_for(@preview_form, url: "", method: :post, html: { class: "form form-defaults answer-questionnaire" }, data: { "safe-path" => "" }) do |form| %>
9
+ <%= decidim_form_for(@preview_form, url: "", method: :post, authenticity_token: !defined?(skip_authenticity_token), html: { class: "form form-defaults answer-questionnaire" }, data: { "safe-path" => "" }) do |form| %>
10
10
  <%= invisible_captcha %>
11
11
  <% answer_idx = 0 %>
12
12
  <% cleaned_answer_idx = 0 %>
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -1,12 +1,12 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="card">
3
3
  <div class="item_show__header">
4
- <h2 class="item_show__header-title">
4
+ <h1 class="item_show__header-title">
5
5
  <%= t ".title" %>
6
6
  <% if allowed_to?(:create, :template) %>
7
7
  <%= link_to t("actions.new_template", scope: "decidim.admin.templates"), [:new, :questionnaire_template], class: "button button__sm button__secondary new" %>
8
8
  <% end %>
9
- </h2>
9
+ </h1>
10
10
  </div>
11
11
  <% if @templates.any? %>
12
12
  <div class="table-scroll">
@@ -1,9 +1,9 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <% add_decidim_page_title(t("templates", scope: "decidim.admin.titles")) %>
3
3
  <div class="item_show__header">
4
- <h2 class="item_show__header-title">
4
+ <h1 class="item_show__header-title">
5
5
  <%= t(".title") %>
6
- </h2>
6
+ </h1>
7
7
  </div>
8
8
  <div class="item__edit item__edit-1col">
9
9
  <div class="item__edit-form">
@@ -7,7 +7,7 @@
7
7
  $templateName.html("<%= translated_attribute @template.name %>");
8
8
  $templateDescription.html("<%= translated_attribute @template.description %>");
9
9
 
10
- $preview.html("<%= j(render partial: "preview", locals: { questionnaire: @questionnaire }) %>");
10
+ $preview.html("<%= j(render partial: "preview", locals: { skip_authenticity_token: true, questionnaire: @questionnaire }) %>");
11
11
 
12
12
  var $container = $(".questionnaire-template-preview");
13
13
  $container.removeClass("hide");
@@ -1 +1,112 @@
1
+ ---
1
2
  bg:
3
+ activemodel:
4
+ attributes:
5
+ questionnaire:
6
+ title: Заглавие
7
+ template:
8
+ description: Описание
9
+ name: Име
10
+ decidim:
11
+ admin:
12
+ menu:
13
+ templates: Шаблони
14
+ templates:
15
+ actions:
16
+ new_template: Нов шаблон
17
+ apply:
18
+ error: Възникна проблем при прилагането на този шаблон.
19
+ success: Шаблонът е приложен успешно.
20
+ copy:
21
+ error: Възникна проблем при копирането на този шаблон.
22
+ success: Шаблонът е копиран успешно.
23
+ create:
24
+ error: Възникна проблем при създаването на този шаблон.
25
+ success: Шаблонът е създаден успешно.
26
+ destroy:
27
+ success: Шаблонът е изтрит успешно.
28
+ empty: Все още няма шаблони.
29
+ missing_resource: "(липсващ ресурс)"
30
+ update:
31
+ error: Възникна проблем при обновяването на този шаблон.
32
+ success: Шаблонът е обновен успешно.
33
+ titles:
34
+ template_types:
35
+ questionnaires: Шаблони за въпросници
36
+ templates: Шаблони
37
+ models:
38
+ questionnaire_template:
39
+ fields:
40
+ questions: Брой въпроси
41
+ title: Заглавие на въпросник
42
+ template:
43
+ fields:
44
+ created_at: Създаден на
45
+ name: Шаблон
46
+ templates:
47
+ admin:
48
+ block_user_templates:
49
+ edit:
50
+ title: Редактиране на шаблон за блокиране на потребителско съобщение
51
+ form:
52
+ save: Запази
53
+ index:
54
+ confirm_delete: Сигурни ли сте, че желаете да изтриете този шаблон?
55
+ title: Блокиране на потребителски съобщения
56
+ new:
57
+ title: Нов шаблон за блокиране на потребителско съобщение
58
+ template_chooser:
59
+ select_template: Изберете шаблонен отговор
60
+ proposal_answer_templates:
61
+ edit:
62
+ title: Редактиране на шаблон за отговор на предложение
63
+ form:
64
+ component_constraint_help: Обърнете внимание, че ще бъдат изброени само пространства за участие, които имат компоненти от типа „предложения“.
65
+ hint1_html: "<strong>%{organization}</strong> ще бъде заменено от името на организацията"
66
+ hint2_html: "<strong>%{name}</strong> ще бъде заменено с името на автора"
67
+ hint3_html: "<strong>%{admin}</strong> ще бъде заменено от името на администратора (този, който отговаря на предложението)"
68
+ hint_html: "<strong>Съвет:</strong> Можете да използвате тези променливи навсякъде в шаблонния отговор, които ще бъдат заменени при използване на шаблона"
69
+ save: Запази
70
+ index:
71
+ component_constraint: Добавяне на ограничение
72
+ confirm_delete: Сигурни ли сте, че желаете да изтриете този шаблон?
73
+ global_scope: Глобално (достъпно навсякъде)
74
+ internal_state: Вътрешно състояние
75
+ title: Отговори на предложенията
76
+ new:
77
+ title: Нов шаблон за отговор на предложение
78
+ template_chooser:
79
+ select_template: Изберете шаблонен отговор
80
+ questionnaire_templates:
81
+ choose:
82
+ create_from_template: Създайте от шаблон
83
+ description: На път сте да създадете нов въпросник. Можете да изберете предварително дефиниран шаблон и да го промените след това.
84
+ label: Избор на шаблон
85
+ placeholder: Избор на шаблон
86
+ skip_template: Пропусни
87
+ edit:
88
+ edit: Редактирай
89
+ empty: Все още няма въпроси.
90
+ questionnaire: Въпросник
91
+ title: Редактиране на шаблон на въпросник
92
+ form:
93
+ title: Шаблон за въпросник %{questionnaire_for}
94
+ index:
95
+ confirm_delete: Сигурни ли сте, че желаете да изтриете този шаблон?
96
+ title: Шаблони за въпросници
97
+ new:
98
+ title: Нов шаблон за въпросник
99
+ preview:
100
+ current_step: Стъпка %{step}
101
+ of_total_steps: от %{total_steps}
102
+ tos_agreement: С участието си приемате Условията на услугата
103
+ admin_log:
104
+ template:
105
+ create: "%{user_name} създаде шаблона на въпросника %{resource_name}"
106
+ delete: "%{user_name} изтри шаблона на въпросника %{resource_name}"
107
+ duplicate: "%{user_name} дублира шаблона на въпросника %{resource_name}"
108
+ update: "%{user_name} актуализира шаблона на въпросника %{resource_name}"
109
+ template_types:
110
+ block_user: Блокиране на потребителски съобщения
111
+ proposal_answer_templates: Отговори на предложенията
112
+ questionnaires: Въпросници
@@ -10,7 +10,6 @@ ca:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gestionar
14
13
  templates: Plantilles
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ ca:
27
26
  destroy:
28
27
  success: La plantilla s'ha eliminat correctament.
29
28
  empty: Encara no hi ha plantilles.
29
+ fetch:
30
+ error: No s'ha pogut trobar aquesta plantilla. Si us plau, torna a carregar la pàgina.
30
31
  missing_resource: "(recurs absent)"
31
32
  update:
32
33
  error: S'ha produït un error en actualitzar aquesta plantilla.
@@ -10,7 +10,6 @@ cs:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Spravovat
14
13
  templates: Šablony
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ cs:
27
26
  destroy:
28
27
  success: Šablona byla úspěšně odstraněna.
29
28
  empty: Zatím nejsou žádné šablony.
29
+ fetch:
30
+ error: Nelze najít tuto šablonu. Prosím obnovte stránku.
30
31
  missing_resource: "(chybějící zdroj)"
31
32
  update:
32
33
  error: Při aktualizaci této šablony došlo k chybě.
@@ -10,7 +10,6 @@ de:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Verwalten
14
13
  templates: Vorlagen
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ de:
27
26
  destroy:
28
27
  success: Vorlage erfolgreich gelöscht.
29
28
  empty: Es gibt noch keine Vorlagen.
29
+ fetch:
30
+ error: Diese Vorlage konnte nicht gefunden werden. Bitte Seite neu laden.
30
31
  missing_resource: "(fehlende Ressource)"
31
32
  update:
32
33
  error: Bei der Aktualisierung dieser Vorlage ist ein Problem aufgetreten.
@@ -10,7 +10,6 @@ en:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Manage
14
13
  templates: Templates
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ en:
27
26
  destroy:
28
27
  success: Template deleted successfully.
29
28
  empty: There are no templates yet.
29
+ fetch:
30
+ error: Could not find this template. Please reload the page.
30
31
  missing_resource: "(missing resource)"
31
32
  update:
32
33
  error: There was a problem updating this template.
@@ -10,7 +10,6 @@ es-MX:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gestionar
14
13
  templates: Plantillas
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ es-MX:
27
26
  destroy:
28
27
  success: Plantilla eliminada correctamente.
29
28
  empty: Todavía no hay plantillas.
29
+ fetch:
30
+ error: No se ha podido encontrar esta plantilla. Por favor, vuelve a cargar la página.
30
31
  missing_resource: "(recurso ausente)"
31
32
  update:
32
33
  error: Se ha producido un error al actualizar esta plantilla.
@@ -10,7 +10,6 @@ es-PY:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gestionar
14
13
  templates: Plantillas
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ es-PY:
27
26
  destroy:
28
27
  success: Plantilla eliminada correctamente.
29
28
  empty: Todavía no hay plantillas.
29
+ fetch:
30
+ error: No se ha podido encontrar esta plantilla. Por favor, vuelve a cargar la página.
30
31
  missing_resource: "(recurso ausente)"
31
32
  update:
32
33
  error: Se ha producido un error al actualizar esta plantilla.
@@ -10,7 +10,6 @@ es:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gestionar
14
13
  templates: Plantillas
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,8 @@ es:
27
26
  destroy:
28
27
  success: Plantilla eliminada correctamente.
29
28
  empty: Todavía no hay plantillas.
29
+ fetch:
30
+ error: No se ha podido encontrar esta plantilla. Por favor, vuelve a cargar la página.
30
31
  missing_resource: "(recurso ausente)"
31
32
  update:
32
33
  error: Se ha producido un error al actualizar esta plantilla.
@@ -10,7 +10,6 @@ eu:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Kudeatu
14
13
  templates: Txantiloiak
15
14
  templates:
16
15
  actions:
@@ -10,7 +10,6 @@ fi-pl:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Hallinnoi
14
13
  templates: Mallipohjat
15
14
  templates:
16
15
  actions:
@@ -10,7 +10,6 @@ fi:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Hallinnoi
14
13
  templates: Mallipohjat
15
14
  templates:
16
15
  actions:
@@ -10,7 +10,6 @@ fr-CA:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gérer
14
13
  templates: Modèles 
15
14
  templates:
16
15
  actions:
@@ -27,6 +26,7 @@ fr-CA:
27
26
  destroy:
28
27
  success: Modèle supprimé avec succès.
29
28
  empty: Il n'y a pas de modèle pour l'instant.
29
+ missing_resource: "(ressource manquante)"
30
30
  update:
31
31
  error: Un problème est survenu lors de la mise à jour de ce modèle.
32
32
  success: Modèle mis à jour avec succès.
@@ -58,8 +58,21 @@ fr-CA:
58
58
  template_chooser:
59
59
  select_template: Sélectionnez un modèle de réponse
60
60
  proposal_answer_templates:
61
+ edit:
62
+ title: Modifier le modèle de réponse à la proposition
61
63
  form:
64
+ component_constraint_help: Notez que seuls les espaces participatifs ayant des fonctionnalités de type "propositions" seront listés.
65
+ hint1_html: "<strong>%{organization}</strong> sera remplacé par le nom de l'organisation"
66
+ hint2_html: "<strong>%{name}</strong> sera remplacé par le nom de l'auteur"
67
+ hint3_html: "<strong>%{admin}</strong> sera remplacé par le nom de l'administrateur (celui qui répond à la proposition)"
68
+ hint_html: "<strong>Conseil :</strong> Vous pouvez utilisez ces variables n'importe où dans le modèle de réponse, elles seront remplacées par leur valeur lors de l'utilisation du modèle"
62
69
  save: Sauvegarder
70
+ index:
71
+ component_constraint: Ajouter une contrainte
72
+ confirm_delete: Êtes-vous sûr de vouloir supprimer ce modèle ?
73
+ global_scope: Global (disponible partout)
74
+ internal_state: Etat interne
75
+ title: Réponses à la proposition
63
76
  new:
64
77
  title: Nouveau modèle de réponse à proposition
65
78
  template_chooser:
@@ -10,7 +10,6 @@ fr:
10
10
  decidim:
11
11
  admin:
12
12
  menu:
13
- manage: Gérer
14
13
  templates: Modèles de questionnaire
15
14
  templates:
16
15
  actions:
@@ -62,17 +61,17 @@ fr:
62
61
  edit:
63
62
  title: Modifier le modèle de réponse à la proposition
64
63
  form:
65
- component_constraint_help: Notez que seuls les espaces participatifs ayant des composantes de type "propositions" seront listés.
64
+ component_constraint_help: Notez que seuls les espaces participatifs ayant des fonctionnalités de type "propositions" seront listés.
66
65
  hint1_html: "<strong>%{organization}</strong> sera remplacé par le nom de l'organisation"
67
66
  hint2_html: "<strong>%{name}</strong> sera remplacé par le nom de l'auteur"
68
67
  hint3_html: "<strong>%{admin}</strong> sera remplacé par le nom de l'administrateur (celui qui répond à la proposition)"
69
- hint_html: "<strong>Conseil:</strong> Vous pouvez utilisez ces variables n'importe où sur le modèle de réponse qui seront remplacés lors de l'utilisation du modèle"
68
+ hint_html: "<strong>Conseil :</strong> Vous pouvez utilisez ces variables n'importe où dans le modèle de réponse, elles seront remplacées par leur valeur lors de l'utilisation du modèle"
70
69
  save: Sauvegarder
71
70
  index:
72
71
  component_constraint: Ajouter une contrainte
73
72
  confirm_delete: Êtes-vous sûr de vouloir supprimer ce modèle ?
74
73
  global_scope: Global (disponible partout)
75
- internal_state: État interne
74
+ internal_state: Etat interne
76
75
  title: Réponses à la proposition
77
76
  new:
78
77
  title: Nouveau modèle de réponse à proposition
@@ -0,0 +1 @@
1
+ he: