decidim-templates 0.28.6 → 0.29.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/templates/admin/create_proposal_answer_template.rb +2 -1
  3. data/app/commands/decidim/templates/admin/questionnaire_copier.rb +6 -0
  4. data/app/commands/decidim/templates/admin/update_proposal_answer_template.rb +4 -7
  5. data/app/controllers/decidim/templates/admin/proposal_answer_templates_controller.rb +29 -12
  6. data/app/forms/decidim/templates/admin/proposal_answer_template_form.rb +21 -8
  7. data/app/forms/decidim/templates/admin/template_form.rb +3 -1
  8. data/app/views/decidim/templates/admin/proposal_answer_templates/_form.html.erb +39 -28
  9. data/app/views/decidim/templates/admin/proposal_answer_templates/_template_chooser.html.erb +2 -1
  10. data/app/views/decidim/templates/admin/proposal_answer_templates/index.html.erb +2 -2
  11. data/app/views/decidim/templates/admin/questionnaire_templates/_choose.html.erb +3 -3
  12. data/app/views/decidim/templates/admin/questionnaire_templates/_preview.html.erb +4 -4
  13. data/app/views/decidim/templates/admin/questionnaire_templates/preview.js.erb +3 -3
  14. data/config/locales/bg.yml +2 -2
  15. data/config/locales/ca.yml +2 -2
  16. data/config/locales/cs.yml +2 -2
  17. data/config/locales/de.yml +3 -3
  18. data/config/locales/en.yml +2 -2
  19. data/config/locales/es-MX.yml +4 -4
  20. data/config/locales/es-PY.yml +4 -4
  21. data/config/locales/es.yml +4 -4
  22. data/config/locales/eu.yml +10 -10
  23. data/config/locales/fi-plain.yml +5 -5
  24. data/config/locales/fi.yml +12 -12
  25. data/config/locales/fr-CA.yml +2 -2
  26. data/config/locales/fr.yml +2 -2
  27. data/config/locales/hu.yml +0 -1
  28. data/config/locales/ja.yml +2 -2
  29. data/config/locales/pl.yml +2 -2
  30. data/config/locales/ro-RO.yml +18 -47
  31. data/config/locales/sv.yml +2 -75
  32. data/config/locales/tr-TR.yml +2 -1
  33. data/decidim-templates.gemspec +3 -3
  34. data/lib/decidim/templates/admin_engine.rb +1 -1
  35. data/lib/decidim/templates/test/factories.rb +0 -6
  36. data/lib/decidim/templates/test/shared_examples/copies_all_questionnaire_contents_examples.rb +3 -3
  37. data/lib/decidim/templates/test/shared_examples/uses_questionnaire_templates.rb +6 -6
  38. data/lib/decidim/templates/version.rb +1 -1
  39. metadata +26 -29
  40. data/config/locales/bn-BD.yml +0 -1
  41. data/config/locales/bs-BA.yml +0 -1
  42. data/config/locales/ca-IT.yml +0 -114
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '03284d440471a84d9e210e56e37cfa9363d27ded37729e79d681e1aafb854f0d'
4
- data.tar.gz: 1972724ef5f0f525981524f61fbca054f312857d7e337230149196d6680d0a2c
3
+ metadata.gz: c9b72969a1ffc689d6abcd27cc5b6ac070ff31ca0affb0a9b6b9d8c1be14e2b6
4
+ data.tar.gz: 6f318b04297a61c3e624f5d8490076fe01540a6ce70f86c7cebfc4caa893ae38
5
5
  SHA512:
6
- metadata.gz: dcc8b98891069ac74160935eab8f76923b1a70752ce81cb6eea462cb708e9f182dbd4e20031941d974563331b0787dc602d720e53092e73453d1f7716d1e29ee
7
- data.tar.gz: 6b33e6aac92a35c87bff4468b774afef0ccbea0746011bc986f13c06d905293890d26e9c8f0df07d7c2e42b2199a3eae3147c21642684e147aeb3064ad15b6c3
6
+ metadata.gz: 9e41c2209802518d81811990443caa42b50d2257bda5bcfcc7ca1ece831360df0bdd49497096a21cf24a542b1fb9a1f79d3d176460b9de4173b50880faada1e5
7
+ data.tar.gz: 22d61f04fe3c26f518dbba6883507d2c7ed2f21b881ecc46292face89fc6844f49a4bf841d02c6b747f96e7cdafb02cf6fb75e83ab6960c5b738260f9c6c6b4a
@@ -12,6 +12,7 @@ module Decidim
12
12
  end
13
13
 
14
14
  def call
15
+ return broadcast(:component_selected) if @form.select_component
15
16
  return broadcast(:invalid) unless @form.valid?
16
17
 
17
18
  @template = Decidim.traceability.create!(
@@ -20,7 +21,7 @@ module Decidim
20
21
  name: @form.name,
21
22
  description: @form.description,
22
23
  organization: @form.current_organization,
23
- field_values: { internal_state: @form.internal_state },
24
+ field_values: { proposal_state_id: @form.proposal_state_id },
24
25
  target: :proposal_answer
25
26
  )
26
27
 
@@ -11,6 +11,12 @@ module Decidim
11
11
  original_questionnaire.questions.each do |original_question|
12
12
  new_question = original_question.dup
13
13
  new_question.questionnaire = new_questionnaire
14
+ new_question.assign_attributes(
15
+ answer_options_count: 0,
16
+ matrix_rows_count: 0,
17
+ display_conditions_count: 0,
18
+ display_conditions_for_other_questions_count: 0
19
+ )
14
20
  new_question.save!
15
21
  copy_questionnaire_answer_options(original_question, new_question)
16
22
  copy_questionnaire_matrix_rows(original_question, new_question)
@@ -24,7 +24,7 @@ module Decidim
24
24
  @user,
25
25
  name: @form.name,
26
26
  description: @form.description,
27
- field_values: { internal_state: @form.internal_state },
27
+ field_values: { proposal_state_id: @form.proposal_state_id },
28
28
  target: :proposal_answer
29
29
  )
30
30
 
@@ -36,12 +36,9 @@ module Decidim
36
36
  private
37
37
 
38
38
  def identify_templateable_resource
39
- resource = @form.current_organization
40
- if @form.component_constraint.present?
41
- found_component = Decidim::Component.find_by(id: @form.component_constraint, manifest_name: "proposals")
42
- if found_component.present?
43
- resource = found_component&.participatory_space&.decidim_organization_id == @form.current_organization.id ? found_component : nil
44
- end
39
+ found_component = Decidim::Component.find_by(id: @form.component_constraint, manifest_name: "proposals")
40
+ if found_component.present?
41
+ resource = found_component&.participatory_space&.decidim_organization_id == @form.current_organization.id ? found_component : nil
45
42
  end
46
43
  resource
47
44
  end
@@ -7,7 +7,7 @@ module Decidim
7
7
  include Decidim::TranslatableAttributes
8
8
  include Decidim::Paginable
9
9
 
10
- helper_method :availability_option_as_text, :availability_options_for_select
10
+ helper_method :availability_option_as_text, :availability_options_for_select, :available_states, :proposal_state
11
11
 
12
12
  add_breadcrumb_item_from_menu :admin_template_types_menu
13
13
 
@@ -32,6 +32,10 @@ module Decidim
32
32
  redirect_to proposal_answer_templates_path
33
33
  end
34
34
 
35
+ on(:component_selected) do
36
+ render :new
37
+ end
38
+
35
39
  on(:invalid) do
36
40
  flash.now[:alert] = I18n.t("templates.create.error", scope: "decidim.admin")
37
41
  render :new
@@ -55,8 +59,10 @@ module Decidim
55
59
 
56
60
  return render json: { msg: I18n.t("templates.fetch.error", scope: "decidim.admin") }, status: :unprocessable_entity if template.blank?
57
61
 
62
+ state = fetch_proposal_state(template)
63
+
58
64
  response_object = {
59
- state: template.field_values["internal_state"],
65
+ state: state&.token,
60
66
  template: populate_template_interpolations(proposal)
61
67
  }
62
68
 
@@ -118,9 +124,23 @@ module Decidim
118
124
 
119
125
  private
120
126
 
127
+ def fetch_proposal_state(template)
128
+ available_states(template.templatable_id).find_by(id: template.field_values["proposal_state_id"])
129
+ end
130
+
131
+ def proposal_state(template)
132
+ state = fetch_proposal_state(template)
133
+
134
+ state ? translated_attribute(state&.title) : I18n.t("decidim.templates.admin.proposal_answer_templates.index.missing_state")
135
+ end
136
+
137
+ def available_states(component_id = nil)
138
+ Decidim::Proposals::ProposalState.where(decidim_component_id: component_id)
139
+ end
140
+
121
141
  def populate_template_interpolations(proposal)
122
142
  template.description.to_h do |language, value|
123
- value.gsub!("%{organization}", proposal.organization.name)
143
+ value.gsub!("%{organization}", translated_attribute(proposal.organization.name))
124
144
  value.gsub!("%{name}", author_name(proposal))
125
145
  value.gsub!("%{admin}", current_user.name)
126
146
 
@@ -138,25 +158,22 @@ module Decidim
138
158
 
139
159
  def availability_option_as_text(template)
140
160
  return unless template.templatable_type
141
- return t("global_scope", scope: "decidim.templates.admin.proposal_answer_templates.index") if template.templatable == current_organization
142
161
 
143
- avaliablity_options.select { |a| a.last == template.templatable_id }&.flatten&.first || t("templates.missing_resource", scope: "decidim.admin")
162
+ availability_options.select { |a| a.last == template.templatable_id }.flatten.first || t("templates.missing_resource", scope: "decidim.admin")
144
163
  end
145
164
 
146
165
  def availability_options_for_select
147
- avaliablity_options
166
+ availability_options
148
167
  end
149
168
 
150
- def avaliablity_options
151
- @avaliablity_options = []
152
- @avaliablity_options.push [t("global_scope", scope: "decidim.templates.admin.proposal_answer_templates.index"), 0]
153
-
169
+ def availability_options
170
+ @availability_options = []
154
171
  Decidim::Component.includes(:participatory_space).where(manifest_name: [:proposals])
155
172
  .select { |a| a.participatory_space.decidim_organization_id == current_organization.id }.each do |component|
156
- @avaliablity_options.push [formatted_name(component), component.id]
173
+ @availability_options.push [formatted_name(component), component.id]
157
174
  end
158
175
 
159
- @avaliablity_options
176
+ @availability_options
160
177
  end
161
178
 
162
179
  def formatted_name(component)
@@ -4,18 +4,31 @@ module Decidim
4
4
  module Templates
5
5
  module Admin
6
6
  class ProposalAnswerTemplateForm < TemplateForm
7
- attribute :internal_state, String
7
+ attribute :proposal_state_id, Integer
8
8
  attribute :component_constraint, Integer
9
+ attribute :select_component, Boolean, default: false
9
10
 
10
- validates :internal_state, presence: true
11
+ validate :component_has_been_selected
12
+ validate :proposal_state_id_is_valid
11
13
 
12
14
  def map_model(model)
13
- self.internal_state = model.field_values["internal_state"]
14
- self.component_constraint = if model.templatable_type == "Decidim::Organization"
15
- 0
16
- else
17
- model.templatable&.id
18
- end
15
+ self.proposal_state_id = model.field_values["proposal_state_id"]&.to_i
16
+ self.component_constraint = model.templatable&.id
17
+ end
18
+
19
+ def skip_name_validation
20
+ select_component
21
+ end
22
+
23
+ def proposal_state_id_is_valid
24
+ if Decidim::Proposals::ProposalState.where(decidim_component_id: component_constraint).find_by(id: proposal_state_id).blank?
25
+ errors.add(:proposal_state_id,
26
+ :blank)
27
+ end
28
+ end
29
+
30
+ def component_has_been_selected
31
+ errors.add(:select_component, :blank) if select_component
19
32
  end
20
33
  end
21
34
  end
@@ -10,7 +10,9 @@ module Decidim
10
10
  translatable_attribute :name, String
11
11
  translatable_attribute :description, String
12
12
 
13
- validates :name, translatable_presence: true
13
+ validates :name, translatable_presence: true, unless: :skip_name_validation
14
+
15
+ def skip_name_validation = false
14
16
  end
15
17
  end
16
18
  end
@@ -1,38 +1,49 @@
1
1
  <div class="form__wrapper">
2
2
  <div class="card pt-4">
3
3
  <div class="card-section">
4
- <div class="row column">
5
- <%= form.translated :text_field, :name, aria: { label: :name } %>
6
- </div>
7
4
 
8
- <div class="row column">
9
- <%= form.translated :editor, :description, rows: 3, aria: { label: :description } %>
10
- <%= t(".hint_html") %>
11
- <ul>
12
- <li><%= t(".hint1_html") %></li>
13
- <li><%= t(".hint2_html") %></li>
14
- <li><%= t(".hint3_html") %></li>
15
- </ul>
16
- </div>
5
+ <% if form.object.component_constraint %>
6
+ <%= form.hidden_field(:component_constraint, value: form.object.component_constraint) %>
7
+ <div class="row column">
8
+ <%= form.translated :text_field, :name, aria: { label: :name } %>
9
+ </div>
17
10
 
18
- <div class="row column">
19
- <%= form.label :internal_state %>
20
- <div class="flex items-center gap-x-4 my-2">
21
- <%= form.collection_radio_buttons :internal_state,
22
- Decidim::Proposals::Proposal::STATES.keys - [:withdrawn],
23
- :to_s,
24
- ->(mode) { t(mode, scope: "decidim.proposals.admin.proposal_answers.form") },
25
- prompt: true do |builder|
26
- builder.label { builder.radio_button + builder.text }
27
- end %>
11
+ <div class="row column">
12
+ <%= form.translated :editor, :description, rows: 3, aria: { label: :description } %>
13
+ <%= t(".hint_html") %>
14
+ <ul>
15
+ <li><%= t(".hint1_html") %></li>
16
+ <li><%= t(".hint2_html") %></li>
17
+ <li><%= t(".hint3_html") %></li>
18
+ </ul>
19
+ </div>
20
+ <div class="row column">
21
+ <%= form.label :proposal_state_id %>
22
+ <div class="flex items-center gap-x-4 my-2">
23
+ <%= form.collection_radio_buttons :proposal_state_id,
24
+ available_states( form.object.component_constraint),
25
+ :id,
26
+ lambda { |a|
27
+ translated_attribute(a.title)
28
+ }, prompt: true do |builder|
29
+ builder.label { builder.radio_button + builder.text } end %>
30
+ </div>
28
31
  </div>
29
- </div>
32
+ <% else %>
30
33
 
31
- <div class="row column">
32
- <%= form.select :component_constraint, availability_options_for_select,
33
- sselected: form.object.component_constraint,
34
- help_text: t(".component_constraint_help") %>
35
- </div>
34
+ <div class="row column">
35
+ <%= form.select :component_constraint,
36
+ availability_options_for_select,
37
+ {
38
+ selected: form.object.component_constraint,
39
+ help_text: t(".component_constraint_help"),
40
+ include_blank: true
41
+ },
42
+ onchange: "this.form.submit()",
43
+ disabled: form.object.component_constraint.present? %>
44
+ </div>
45
+ <%= form.hidden_field(:select_component, value: true) %>
46
+ <% end %>
36
47
  </div>
37
48
  </div>
38
49
  </div>
@@ -1,7 +1,8 @@
1
1
  <% templates = Decidim::Templates::Template.where(
2
2
  target: :proposal_answer,
3
- templatable: [current_organization, current_component]
3
+ templatable: current_component
4
4
  ).order(:templatable_id) %>
5
+
5
6
  <% if templates.any? %>
6
7
  <div class="row column">
7
8
  <%= append_javascript_pack_tag "decidim_templates_admin" %>
@@ -15,7 +15,7 @@
15
15
  <thead>
16
16
  <tr>
17
17
  <th><%= t("template.name", scope: "decidim.models") %></th>
18
- <th><%= t(".internal_state") %></th>
18
+ <th><%= t(".proposal_state_id") %></th>
19
19
  <th><%= t(".component_constraint") %></th>
20
20
  <th><%= t("template.fields.created_at", scope: "decidim.models") %></th>
21
21
  <th></th>
@@ -25,7 +25,7 @@
25
25
  <% @templates.each do |template| %>
26
26
  <tr data-proposal_answer-id="<%= template.id %>">
27
27
  <td><%= link_to_if allowed_to?(:update, :template, template:) , translated_attribute(template.name), edit_proposal_answer_template_path(template) %></td>
28
- <td> <%= t(template.field_values.dig("internal_state"), scope: "decidim.proposals.admin.proposal_answers.form") %></td>
28
+ <td> <%= proposal_state(template) %></td>
29
29
  <td><%= availability_option_as_text(template) %></td>
30
30
  <td><%= l template.created_at, format: :long %></td>
31
31
 
@@ -25,9 +25,9 @@
25
25
  }
26
26
  ) { form.hidden_field :questionnaire_template_id } %>
27
27
  <div class="card-section questionnaire-template-preview pt-4 hide">
28
- <h2 class="item_show__header-title template-name"></h2>
29
- <p class="template-description py-4"></p>
30
- <div class="row column choose-template-preview"></div>
28
+ <h2 class="item_show__header-title" data-template-name></h2>
29
+ <p class="py-4" data-template-description></p>
30
+ <div class="row column" data-choose-template-preview></div>
31
31
  </div>
32
32
  </div>
33
33
  </div>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <div class="row columns">
4
4
  <h3 class="h3"><%= translated_attribute questionnaire.title %></h3>
5
- <%= decidim_sanitize translated_attribute questionnaire.description %>
5
+ <%= decidim_sanitize_translated questionnaire.description %>
6
6
  </div>
7
7
 
8
8
  <div class="row columns">
@@ -15,7 +15,7 @@
15
15
  <div class="form__wrapper">
16
16
  <% if @preview_form.total_steps > 1 %>
17
17
  <h4>
18
- <%= t(".current_step", step: step_index + 1) %> <span class="answer-questionnaire__steps"><%= t(".of_total_steps", total_steps: @preview_form.total_steps) %></span>
18
+ <%= t(".current_step", step: step_index + 1) %> <span><%= t(".of_total_steps", total_steps: @preview_form.total_steps) %></span>
19
19
  </h4>
20
20
  <% end %>
21
21
 
@@ -39,10 +39,10 @@
39
39
  <% end %>
40
40
 
41
41
  <% if step_index + 1 == @preview_form.total_steps %>
42
- <div class="tos-agreement">
42
+ <div>
43
43
  <%= form.check_box :tos_agreement, label: t(".tos_agreement"), id: "questionnaire_tos_agreement", disabled: false %>
44
44
  <div class="help-text">
45
- <%= decidim_sanitize translated_attribute questionnaire.tos %>
45
+ <%= decidim_sanitize_translated questionnaire.tos %>
46
46
  </div>
47
47
  </div>
48
48
  <% end %>
@@ -1,8 +1,8 @@
1
1
  /* eslint-disable no-var, prefer-template */
2
2
  (function () {
3
- var $preview = $(".choose-template-preview");
4
- var $templateName = $(".template-name");
5
- var $templateDescription = $(".template-description");
3
+ var $preview = $("[data-choose-template-preview]");
4
+ var $templateName = $("[data-template-name]");
5
+ var $templateDescription = $("[data-template-description]");
6
6
 
7
7
  $templateName.html("<%= translated_attribute @template.name %>");
8
8
  $templateDescription.html("<%= translated_attribute @template.description %>");
@@ -72,8 +72,8 @@ bg:
72
72
  index:
73
73
  component_constraint: Добавяне на ограничение
74
74
  confirm_delete: Сигурни ли сте, че желаете да изтриете този шаблон?
75
- global_scope: Глобално (достъпно навсякъде)
76
- internal_state: Вътрешно състояние
75
+ missing_state: Липсващо състояние
76
+ proposal_state_id: Вътрешно състояние
77
77
  title: Отговори на предложенията
78
78
  new:
79
79
  title: Нов шаблон за отговор на предложение
@@ -72,8 +72,8 @@ ca:
72
72
  index:
73
73
  component_constraint: Afegir restricció
74
74
  confirm_delete: Segur que vols eliminar aquesta plantilla?
75
- global_scope: Global (disponible a tot arreu)
76
- internal_state: Estat intern
75
+ missing_state: Hi manca l'estat
76
+ proposal_state_id: Estat intern
77
77
  title: Respostes a la proposta
78
78
  new:
79
79
  title: Nova plantilla de resposta a proposta
@@ -72,8 +72,8 @@ cs:
72
72
  index:
73
73
  component_constraint: Přidat omezení
74
74
  confirm_delete: Opravdu chcete tuto šablonu odstranit?
75
- global_scope: Globální (k dispozici všude)
76
- internal_state: Vnitřní stav
75
+ missing_state: Chybějící stav
76
+ proposal_state_id: Vnitřní stav
77
77
  title: Odpovědi na návrh
78
78
  new:
79
79
  title: Nová šablona odpovědi na návrh
@@ -72,8 +72,8 @@ de:
72
72
  index:
73
73
  component_constraint: Einschränkung hinzufügen
74
74
  confirm_delete: Möchten Sie diese Vorlage wirklich löschen?
75
- global_scope: Global (überall verfügbar)
76
- internal_state: Interner Status
75
+ missing_state: Fehlender Status
76
+ proposal_state_id: Interner Status
77
77
  title: Vorschlagsantworten
78
78
  new:
79
79
  title: Neue Vorlage für Vorschlagsantworten
@@ -101,7 +101,7 @@ de:
101
101
  preview:
102
102
  current_step: Schritt %{step}
103
103
  of_total_steps: von %{total_steps}
104
- tos_agreement: 'Mit Ihrer Teilnahme stimmen Sie folgenden Nutzungsbedingungen zu:'
104
+ tos_agreement: Mit der Teilnahme stimmen Sie den Nutzungsbedingungen zu
105
105
  admin_log:
106
106
  template:
107
107
  create: "%{user_name} hat die Umfragevorlage %{resource_name} erstellt"
@@ -72,8 +72,8 @@ en:
72
72
  index:
73
73
  component_constraint: Add constraint
74
74
  confirm_delete: Are you sure you want to delete this template?
75
- global_scope: Global (available everywhere)
76
- internal_state: Internal state
75
+ missing_state: Missing state
76
+ proposal_state_id: Internal state
77
77
  title: Proposal answers
78
78
  new:
79
79
  title: New proposal answer template
@@ -63,7 +63,7 @@ es-MX:
63
63
  edit:
64
64
  title: Editar la plantilla de respuesta a la propuesta
65
65
  form:
66
- component_constraint_help: Ten en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
66
+ component_constraint_help: Tenga en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
67
67
  hint1_html: "<strong>%{organization}</strong> será reemplazado por el nombre de la organización"
68
68
  hint2_html: "<strong>%{name}</strong> será reemplazado por el nombre de la autora"
69
69
  hint3_html: "<strong>%{admin}</strong> será reemplazado por el nombre de la administradora (la que responde a la propuesta)"
@@ -72,11 +72,11 @@ es-MX:
72
72
  index:
73
73
  component_constraint: Añadir restricción
74
74
  confirm_delete: '¿Seguro que quieres eliminar esta plantilla?'
75
- global_scope: Global (disponible en todas partes)
76
- internal_state: Estado interno
75
+ missing_state: Falta el estado
76
+ proposal_state_id: Estado interno
77
77
  title: Respuestas a propuestas
78
78
  new:
79
- title: Nueva plantilla de respuesta a propuesta
79
+ title: Nueva la plantilla de respuesta a propuesta
80
80
  template_chooser:
81
81
  select_template: Selecciona una plantilla de respuesta
82
82
  questionnaire_templates:
@@ -63,7 +63,7 @@ es-PY:
63
63
  edit:
64
64
  title: Editar la plantilla de respuesta a la propuesta
65
65
  form:
66
- component_constraint_help: Ten en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
66
+ component_constraint_help: Tenga en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
67
67
  hint1_html: "<strong>%{organization}</strong> será reemplazado por el nombre de la organización"
68
68
  hint2_html: "<strong>%{name}</strong> será reemplazado por el nombre de la autora"
69
69
  hint3_html: "<strong>%{admin}</strong> será reemplazado por el nombre de la administradora (la que responde a la propuesta)"
@@ -72,11 +72,11 @@ es-PY:
72
72
  index:
73
73
  component_constraint: Añadir restricción
74
74
  confirm_delete: '¿Seguro que quieres eliminar esta plantilla?'
75
- global_scope: Global (disponible en todas partes)
76
- internal_state: Estado interno
75
+ missing_state: Falta el estado
76
+ proposal_state_id: Estado interno
77
77
  title: Respuestas a propuestas
78
78
  new:
79
- title: Nueva plantilla de respuesta a propuesta
79
+ title: Nueva la plantilla de respuesta a propuesta
80
80
  template_chooser:
81
81
  select_template: Selecciona una plantilla de respuesta
82
82
  questionnaire_templates:
@@ -63,7 +63,7 @@ es:
63
63
  edit:
64
64
  title: Editar la plantilla de respuesta a la propuesta
65
65
  form:
66
- component_constraint_help: Ten en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
66
+ component_constraint_help: Tenga en cuenta que solo se listarán los espacios de participación que tengan componentes del tipo "propuestas".
67
67
  hint1_html: "<strong>%{organization}</strong> será reemplazado por el nombre de la organización"
68
68
  hint2_html: "<strong>%{name}</strong> será reemplazado por el nombre de la autora"
69
69
  hint3_html: "<strong>%{admin}</strong> será reemplazado por el nombre de la administradora (la que responde a la propuesta)"
@@ -72,11 +72,11 @@ es:
72
72
  index:
73
73
  component_constraint: Añadir restricción
74
74
  confirm_delete: '¿Seguro que quieres eliminar esta plantilla?'
75
- global_scope: Global (disponible en todas partes)
76
- internal_state: Estado interno
75
+ missing_state: Falta el estado
76
+ proposal_state_id: Estado interno
77
77
  title: Respuestas a propuestas
78
78
  new:
79
- title: Nueva plantilla de respuesta a propuesta
79
+ title: Nueva la plantilla de respuesta a propuesta
80
80
  template_chooser:
81
81
  select_template: Selecciona una plantilla de respuesta
82
82
  questionnaire_templates:
@@ -49,14 +49,14 @@ eu:
49
49
  admin:
50
50
  block_user_templates:
51
51
  edit:
52
- title: Editatu parte-hartzailearen kontua blokeatzeko mezuaren txantiloia
52
+ title: Editatu erabiltzailearen kontua blokeatzeko mezuaren txantiloia
53
53
  form:
54
54
  save: Gorde
55
55
  index:
56
56
  confirm_delete: Ziur zaude txantiloi hau ezabatu nahi duzula?
57
- title: Blokeatu parte-hartzailearen mezuak
57
+ title: Blokeatu erabiltzailearen mezuak
58
58
  new:
59
- title: Txantiloi berria parte-hartzailearen kontua blokeatzeko mezurako
59
+ title: Txantiloi berria erabiltzaile-kontua blokeatzeko mezurako
60
60
  template_chooser:
61
61
  select_template: Hautatu txantiloi-fitxategi bat
62
62
  proposal_answer_templates:
@@ -72,8 +72,8 @@ eu:
72
72
  index:
73
73
  component_constraint: Gehitu hertsapena.
74
74
  confirm_delete: Ziur zaude txantiloi hau ezabatu nahi duzula?
75
- global_scope: Globala (nonahi eskuragarri)
76
- internal_state: Barne egoera
75
+ missing_state: Egoera desagertua
76
+ proposal_state_id: Barne egoera
77
77
  title: Proposamenen erantzunak
78
78
  new:
79
79
  title: Proposamenaren erantzun-txantilioi berria
@@ -104,11 +104,11 @@ eu:
104
104
  tos_agreement: Parte hartzean erabilera-irizpideak eta baldintzak onartzen dituzu
105
105
  admin_log:
106
106
  template:
107
- create: "%{user_name} parte-hartzaileak %{resource_name} galdetegia eguneratu du"
108
- delete: "%{user_name} parte-hartzaileak %{resource_name} galdetegia eguneratu du"
109
- duplicate: "%{user_name} parte-hartzaileak %{resource_name} galdetegia bikoiztu du"
110
- update: "%{user_name} parte-hartzaileak %{resource_name} galdetegia eguneratu du"
107
+ create: "%{user_name} -k %{resource_name} galdetegia eguneratu du"
108
+ delete: "%{user_name} -k %{resource_name} galdetegia eguneratu du"
109
+ duplicate: "%{user_name} -k %{resource_name} galdetegia bikoiztu du"
110
+ update: "%{user_name} -k %{resource_name} galdetegia eguneratu du"
111
111
  template_types:
112
- block_user: Blokeatu parte-hartzailearen mezuak
112
+ block_user: Blokeatu erabiltzailearen mezuak
113
113
  proposal_answer_templates: Proposamenen erantzunak
114
114
  questionnaires: Galdetegiak
@@ -27,7 +27,7 @@ fi-pl:
27
27
  success: Mallipohjan poisto onnistui.
28
28
  empty: Mallipohjia ei ole vielä lisätty.
29
29
  fetch:
30
- error: Mallipohjaa ei löytynyt. Lataa sivu uudestaan.
30
+ error: Mallipohjaa ei löytynyt. Lataa sivu uudelleen.
31
31
  missing_resource: "(puuttuva resurssi)"
32
32
  update:
33
33
  error: Mallipohjan päivitys epäonnistui.
@@ -72,8 +72,8 @@ fi-pl:
72
72
  index:
73
73
  component_constraint: Lisää rajaussääntö
74
74
  confirm_delete: Haluatko varmasti poistaa tämän mallipohjan?
75
- global_scope: Yleinen (saatavilla kaikkialla)
76
- internal_state: Sisäinen tila
75
+ missing_state: Puuttuva tila
76
+ proposal_state_id: Sisäinen tila
77
77
  title: Ehdotusten vastaukset
78
78
  new:
79
79
  title: Uusi ehdotusten vastausten mallipohja
@@ -90,14 +90,14 @@ fi-pl:
90
90
  edit: Muokkaa
91
91
  empty: Kysymyksiä ei ole vielä.
92
92
  questionnaire: Kysely
93
- title: Muokkaa kyselyn mallipohjaa
93
+ title: Muokkaa kyselylomakkeen mallipohjaa
94
94
  form:
95
95
  title: Kyselylomakemalli %{questionnaire_for}
96
96
  index:
97
97
  confirm_delete: Haluatko varmasti poistaa tämän mallipohjan?
98
98
  title: Kyselymallit
99
99
  new:
100
- title: Uusi kyselyn mallipohja
100
+ title: Uusi kyselylomakkeen mallipohja
101
101
  preview:
102
102
  current_step: Vaihe %{step}
103
103
  of_total_steps: / %{total_steps}