decidim-proposals 0.32.0 → 0.32.2
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.
- checksums.yaml +4 -4
- data/app/commands/decidim/proposals/create_proposal.rb +1 -1
- data/app/commands/decidim/proposals/update_proposal.rb +1 -1
- data/app/controllers/concerns/decidim/proposals/admin/filterable.rb +3 -0
- data/app/controllers/concerns/decidim/proposals/admin/needs_interpolations.rb +2 -0
- data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +1 -0
- data/app/controllers/decidim/proposals/admin/proposal_answers_controller.rb +3 -2
- data/app/controllers/decidim/proposals/admin/proposals_controller.rb +5 -2
- data/app/controllers/decidim/proposals/admin/proposals_imports_controller.rb +1 -1
- data/app/controllers/decidim/proposals/admin/proposals_merges_controller.rb +1 -0
- data/app/controllers/decidim/proposals/proposals_controller.rb +4 -0
- data/app/controllers/decidim/proposals/versions_controller.rb +2 -0
- data/app/forms/decidim/proposals/proposal_form.rb +5 -1
- data/app/helpers/decidim/proposals/application_helper.rb +5 -1
- data/app/permissions/decidim/proposals/admin/permissions.rb +13 -0
- data/app/permissions/decidim/proposals/permissions.rb +1 -1
- data/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb +4 -3
- data/app/views/decidim/proposals/admin/proposal_notes/_form.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/_form.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/show.html.erb +14 -0
- data/app/views/decidim/proposals/proposals/_proposal_actions.html.erb +1 -1
- data/config/locales/ar.yml +0 -1
- data/config/locales/bg.yml +0 -3
- data/config/locales/ca-IT.yml +1 -0
- data/config/locales/ca.yml +2 -1
- data/config/locales/cs.yml +5 -0
- data/config/locales/de.yml +33 -2
- data/config/locales/el.yml +0 -1
- data/config/locales/en.yml +3 -2
- data/config/locales/es-MX.yml +1 -0
- data/config/locales/es-PY.yml +1 -0
- data/config/locales/es.yml +1 -0
- data/config/locales/eu.yml +121 -120
- data/config/locales/fi-plain.yml +1 -0
- data/config/locales/fi.yml +1 -0
- data/config/locales/fr-CA.yml +3 -2
- data/config/locales/fr.yml +12 -2
- data/config/locales/ga-IE.yml +0 -1
- data/config/locales/gl.yml +556 -12
- data/config/locales/hu.yml +0 -1
- data/config/locales/it.yml +12 -1
- data/config/locales/ja.yml +13 -1
- data/config/locales/lt.yml +0 -1
- data/config/locales/no.yml +0 -1
- data/config/locales/pl.yml +0 -3
- data/config/locales/pt-BR.yml +0 -3
- data/config/locales/pt.yml +0 -1
- data/config/locales/ro-RO.yml +0 -1
- data/config/locales/sk.yml +0 -3
- data/config/locales/sv.yml +21 -1
- data/config/locales/tr-TR.yml +0 -3
- data/config/locales/zh-CN.yml +0 -1
- data/config/locales/zh-TW.yml +0 -1
- data/decidim-proposals.gemspec +1 -1
- data/lib/decidim/proposals/import/proposal_creator.rb +3 -8
- data/lib/decidim/proposals/seeds.rb +4 -2
- data/lib/decidim/proposals/test/factories.rb +1 -1
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +19 -19
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 856bc56010e204a9428fbc51c2c06275ea4ff942f5378d97dafa1db00ec71711
|
|
4
|
+
data.tar.gz: 83b14ad4439a469543a1344ff8d60528a99ec1f8de7d54c01edd5ce94e9abf0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 14379c86c69518edea3ae952878c07db8257e1d4191e4997275232bb2d33fd4e7baaf9232d2391ca4a17c74f80fcabbfdbd742775c3e9dfdb3547c20d95f9d7c
|
|
7
|
+
data.tar.gz: 98f5b28adc0bf48c982b002c35a86e430887313508ee552e3054073264102fab12e9ea0433a7918822f690da40f4f5518507c6198cfa8ce6bffd90f55a8803f2
|
|
@@ -76,7 +76,7 @@ module Decidim
|
|
|
76
76
|
I18n.locale => Decidim::ContentProcessor.parse(form.title, current_organization: form.current_organization).rewrite
|
|
77
77
|
},
|
|
78
78
|
body: {
|
|
79
|
-
I18n.locale => Decidim::ContentProcessor.
|
|
79
|
+
I18n.locale => Decidim::ContentProcessor.parse(form.body, current_organization: form.current_organization).rewrite
|
|
80
80
|
},
|
|
81
81
|
component: form.component
|
|
82
82
|
)
|
|
@@ -95,7 +95,7 @@ module Decidim
|
|
|
95
95
|
I18n.locale => Decidim::ContentProcessor.parse(form.title, current_organization: form.current_organization).rewrite
|
|
96
96
|
},
|
|
97
97
|
body: {
|
|
98
|
-
I18n.locale => Decidim::ContentProcessor.
|
|
98
|
+
I18n.locale => Decidim::ContentProcessor.parse(form.body, current_organization: form.current_organization).rewrite
|
|
99
99
|
},
|
|
100
100
|
taxonomizations: form.taxonomizations,
|
|
101
101
|
address: form.address,
|
|
@@ -27,6 +27,9 @@ module Decidim
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def accessible_proposals_collection
|
|
30
|
+
# Administrators can manage every proposal, even when they also
|
|
31
|
+
# hold an evaluator role, matching the admin permissions.
|
|
32
|
+
return collection if current_user.admin?
|
|
30
33
|
return collection if current_participatory_space.user_roles(:evaluator).where(user: current_user).empty?
|
|
31
34
|
|
|
32
35
|
collection.with_evaluation_assigned_to(current_user, current_participatory_space)
|
|
@@ -9,6 +9,7 @@ module Decidim
|
|
|
9
9
|
helper ParticipatoryTextsHelper
|
|
10
10
|
|
|
11
11
|
def index
|
|
12
|
+
enforce_permission_to :manage, :participatory_texts
|
|
12
13
|
@drafts = Proposal.where(component: current_component).drafts.order(:position)
|
|
13
14
|
@preview_form = form(Admin::PreviewParticipatoryTextForm).instance
|
|
14
15
|
@preview_form.from_models(@drafts)
|
|
@@ -40,6 +40,7 @@ module Decidim
|
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def update_multiple_answers
|
|
43
|
+
enforce_permission_to(:read, :component, component: current_component)
|
|
43
44
|
valid_proposals = []
|
|
44
45
|
failed_proposals = []
|
|
45
46
|
proposals.each do |proposal|
|
|
@@ -87,7 +88,7 @@ module Decidim
|
|
|
87
88
|
def template
|
|
88
89
|
return unless Decidim.module_installed?(:templates)
|
|
89
90
|
|
|
90
|
-
@template ||= Decidim::Templates::Template.find_by(id: params[:template][:template_id])
|
|
91
|
+
@template ||= Decidim::Templates::Template.where(organization: current_organization).find_by(id: params[:template][:template_id])
|
|
91
92
|
end
|
|
92
93
|
|
|
93
94
|
def answer_form(proposal)
|
|
@@ -95,7 +96,7 @@ module Decidim
|
|
|
95
96
|
end
|
|
96
97
|
|
|
97
98
|
def proposal_state
|
|
98
|
-
@proposal_state ||= Decidim::Proposals::ProposalState.find_by(id: template&.field_values&.dig("proposal_state_id"))
|
|
99
|
+
@proposal_state ||= Decidim::Proposals::ProposalState.where(component: current_component).find_by(id: template&.field_values&.dig("proposal_state_id"))
|
|
99
100
|
end
|
|
100
101
|
end
|
|
101
102
|
end
|
|
@@ -18,9 +18,12 @@ module Decidim
|
|
|
18
18
|
|
|
19
19
|
before_action :check_admin_session_filters, only: [:index]
|
|
20
20
|
|
|
21
|
-
def index
|
|
21
|
+
def index
|
|
22
|
+
enforce_permission_to :read, :proposal
|
|
23
|
+
end
|
|
22
24
|
|
|
23
25
|
def show
|
|
26
|
+
enforce_permission_to(:read, :proposal, proposal:)
|
|
24
27
|
@notes_form = form(ProposalNoteForm).instance
|
|
25
28
|
@answer_form = form(Admin::ProposalAnswerForm).from_model(proposal)
|
|
26
29
|
end
|
|
@@ -157,7 +160,7 @@ module Decidim
|
|
|
157
160
|
end
|
|
158
161
|
|
|
159
162
|
def proposal
|
|
160
|
-
@proposal ||=
|
|
163
|
+
@proposal ||= accessible_proposals_collection.find(params.expect(:id))
|
|
161
164
|
end
|
|
162
165
|
|
|
163
166
|
def proposal_ids
|
|
@@ -33,7 +33,7 @@ module Decidim
|
|
|
33
33
|
component = current_participatory_space.components.find_by(id: params[:origin_id])
|
|
34
34
|
|
|
35
35
|
if component
|
|
36
|
-
states = Decidim::Proposals::ProposalState
|
|
36
|
+
states = Decidim::Proposals::ProposalState # rubocop:disable Decidim/OrganizationScopedFinder -- component is scoped via current_participatory_space, which is org-scoped
|
|
37
37
|
.where(component:)
|
|
38
38
|
.map { |s| { token: s.token, title: translated_attribute(s.title) } }
|
|
39
39
|
states << { token: "not_answered", title: I18n.t("decidim.proposals.answers.not_answered") }
|
|
@@ -32,6 +32,8 @@ module Decidim
|
|
|
32
32
|
# rubocop:enable Naming/VariableNumber
|
|
33
33
|
|
|
34
34
|
def index
|
|
35
|
+
enforce_permission_to :read, :proposal
|
|
36
|
+
|
|
35
37
|
if component_settings.participatory_texts_enabled?
|
|
36
38
|
@proposals = Decidim::Proposals::Proposal
|
|
37
39
|
.where(component: current_component)
|
|
@@ -52,6 +54,8 @@ module Decidim
|
|
|
52
54
|
|
|
53
55
|
def show
|
|
54
56
|
raise ActionController::RoutingError, "Not Found" if @proposal.blank? || !can_show_proposal?
|
|
57
|
+
|
|
58
|
+
enforce_permission_to :read, :proposal, proposal: @proposal
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
def new
|
|
@@ -40,7 +40,11 @@ module Decidim
|
|
|
40
40
|
self.body = translated_attribute(model.body)
|
|
41
41
|
|
|
42
42
|
presenter = ProposalPresenter.new(model)
|
|
43
|
-
self.body =
|
|
43
|
+
self.body = if model.component.organization.rich_text_editor_in_public_views?
|
|
44
|
+
presenter.editor_body(all_locales: body.is_a?(Hash))
|
|
45
|
+
else
|
|
46
|
+
presenter.plain_locales(model.body, body.is_a?(Hash))
|
|
47
|
+
end
|
|
44
48
|
|
|
45
49
|
self.attachments = model.attachments
|
|
46
50
|
end
|
|
@@ -87,8 +87,12 @@ module Decidim
|
|
|
87
87
|
# Returns :text_area or :editor based on the organization' settings.
|
|
88
88
|
def text_editor_for_proposal_body(form)
|
|
89
89
|
options = {
|
|
90
|
+
mentionable: true,
|
|
90
91
|
value: form_presenter.body(strip_tags: !current_organization.rich_text_editor_in_public_views).strip,
|
|
91
|
-
data: {
|
|
92
|
+
data: {
|
|
93
|
+
controller: "character-counter mention",
|
|
94
|
+
search_prompt: t("decidim.shared.mentions.search_prompt")
|
|
95
|
+
}
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
text_editor_for(form, :body, options)
|
|
@@ -15,6 +15,7 @@ module Decidim
|
|
|
15
15
|
can_create_proposal_answer?
|
|
16
16
|
can_assign_evaluator_to_proposal?
|
|
17
17
|
end
|
|
18
|
+
can_read_proposal?
|
|
18
19
|
can_export_proposals?
|
|
19
20
|
|
|
20
21
|
return permission_action
|
|
@@ -26,6 +27,9 @@ module Decidim
|
|
|
26
27
|
can_create_proposal_answer?
|
|
27
28
|
end
|
|
28
29
|
|
|
30
|
+
# Every user allowed by the space can read proposals
|
|
31
|
+
allow! if permission_action.subject == :proposal && permission_action.action == :read
|
|
32
|
+
|
|
29
33
|
# Admins can only edit official proposals if they are within the
|
|
30
34
|
# time limit.
|
|
31
35
|
allow! if permission_action.subject == :proposal && permission_action.action == :edit && admin_edition_is_available?
|
|
@@ -142,6 +146,15 @@ module Decidim
|
|
|
142
146
|
toggle_allow(admin_proposal_answering_is_enabled?) if permission_action.subject == :proposal_answer
|
|
143
147
|
end
|
|
144
148
|
|
|
149
|
+
# Evaluators can read the proposals collection (e.g. the index action)
|
|
150
|
+
# but only their assigned proposals as individual records (e.g. the
|
|
151
|
+
# show action).
|
|
152
|
+
def can_read_proposal?
|
|
153
|
+
return unless permission_action.subject == :proposal && permission_action.action == :read
|
|
154
|
+
|
|
155
|
+
toggle_allow(proposal.nil? || evaluator_assigned_to_proposal?)
|
|
156
|
+
end
|
|
157
|
+
|
|
145
158
|
def can_unassign_evaluator_from_proposals?
|
|
146
159
|
allow! if permission_action.subject == :proposals && permission_action.action == :unassign_from_evaluator
|
|
147
160
|
end
|
|
@@ -8,7 +8,7 @@ module Decidim
|
|
|
8
8
|
return Decidim::Proposals::Admin::Permissions.new(user, permission_action, context).permissions if permission_action.scope == :admin
|
|
9
9
|
return permission_action if permission_action.scope != :public
|
|
10
10
|
|
|
11
|
-
toggle_allow(!proposal.hidden?) if permission_action.subject == :proposal && permission_action.action == :read
|
|
11
|
+
toggle_allow(proposal.nil? || !proposal.hidden?) if permission_action.subject == :proposal && permission_action.action == :read
|
|
12
12
|
return permission_action unless user
|
|
13
13
|
|
|
14
14
|
case permission_action.subject
|
data/app/presenters/decidim/proposals/admin_log/value_types/evaluator_role_user_presenter.rb
CHANGED
|
@@ -8,9 +8,10 @@ module Decidim
|
|
|
8
8
|
def present
|
|
9
9
|
return unless value
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
assignment = Decidim::Proposals::EvaluationAssignment.find_by(evaluator_role_id: value)
|
|
12
|
+
return unless assignment
|
|
13
|
+
|
|
14
|
+
assignment.evaluator_role&.user&.name
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%= decidim_form_for(@notes_form, url: form_path, html: { class: "form form-defaults new_proposal_note flex flex-col mt-4" }) do |f| %>
|
|
2
2
|
<div class="form__wrapper">
|
|
3
|
-
<%= f.text_area :body, rows: 4, label: t(".note"), data: { controller: "mention" } %>
|
|
3
|
+
<%= f.text_area :body, rows: 4, label: t(".note"), data: { controller: "mention", search_prompt: t("decidim.shared.mentions.search_prompt") } %>
|
|
4
4
|
</div>
|
|
5
5
|
|
|
6
6
|
<%= f.submit t(".submit"), class: "button button__sm button__secondary ml-auto" %>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<%= form.translated :text_field, :title, autofocus: true, aria: { label: :title }, data: { controller: "character-counter" } %>
|
|
6
6
|
</div>
|
|
7
7
|
<div class="row column">
|
|
8
|
-
<%= form.translated :editor, :body, resource_mentionable: true, aria: { label: :body } %>
|
|
8
|
+
<%= form.translated :editor, :body, mentionable: true, resource_mentionable: true, aria: { label: :body } %>
|
|
9
9
|
</div>
|
|
10
10
|
<% if @form.meetings %>
|
|
11
11
|
<div class="meeting-fields">
|
|
@@ -101,6 +101,20 @@
|
|
|
101
101
|
</div>
|
|
102
102
|
<% end %>
|
|
103
103
|
|
|
104
|
+
<% if component_settings.geocoding_enabled? && proposal.address.present? %>
|
|
105
|
+
<div class="card-section">
|
|
106
|
+
<div class="row column">
|
|
107
|
+
<span class="component__show-title"><%= t ".address" %></span>
|
|
108
|
+
<div class="flex items-center gap-x-2 mt-2">
|
|
109
|
+
<%= icon "map-pin-line", class: "fill-gray" %>
|
|
110
|
+
<p class="component__show-icon-text">
|
|
111
|
+
<%= proposal.address %>
|
|
112
|
+
</p>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
<% end %>
|
|
117
|
+
|
|
104
118
|
<div class="card-section">
|
|
105
119
|
<div class="row column" data-votes>
|
|
106
120
|
<span class="component__show-title"><%= t ".votes_count" %></span>
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
<% if @proposal.withdrawable_by?(current_user) %>
|
|
13
13
|
<li role="presentation" class="dropdown__item">
|
|
14
|
-
<%= action_authorized_link_to :withdraw, withdraw_proposal_path(@proposal), resource: @proposal, method: :put, class: "dropdown__button", role: "menuitem", title: t("withdraw_btn_hint", scope: "decidim.proposals.proposals.show" ), data: { confirm: t("withdraw_confirmation_html", scope: "decidim.proposals.proposals.show" ) } do %>
|
|
14
|
+
<%= action_authorized_link_to :withdraw, withdraw_proposal_path(@proposal), resource: @proposal, method: :put, class: "dropdown__button", role: "menuitem", title: t("withdraw_btn_hint", scope: "decidim.proposals.proposals.show" ), data: { confirm: t("withdraw_confirmation_html", scope: "decidim.proposals.proposals.show" ), confirm_icon: "arrow-go-back-line" } do %>
|
|
15
15
|
<span><%= t("withdraw_proposal", scope: "decidim.proposals.proposals.show") %></span>
|
|
16
16
|
<%= icon "arrow-go-back-line" %>
|
|
17
17
|
<% end %>
|
data/config/locales/ar.yml
CHANGED
data/config/locales/bg.yml
CHANGED
data/config/locales/ca-IT.yml
CHANGED
|
@@ -659,6 +659,7 @@ ca-IT:
|
|
|
659
659
|
number_of_proposals: Es publicaran les respostes a %{number} propostes
|
|
660
660
|
select_a_proposal: Si us plau, selecciona una proposta.
|
|
661
661
|
show:
|
|
662
|
+
address: Adreça
|
|
662
663
|
amendments_count: Número d'esmenes
|
|
663
664
|
assigned_evaluators: Avaluadores assignades
|
|
664
665
|
body: Cos
|
data/config/locales/ca.yml
CHANGED
|
@@ -19,7 +19,7 @@ ca:
|
|
|
19
19
|
address: Adreça
|
|
20
20
|
answer: Respondre
|
|
21
21
|
answered_at: Respost el
|
|
22
|
-
body:
|
|
22
|
+
body: Descripció
|
|
23
23
|
decidim_proposals_proposal_state_id: Estat
|
|
24
24
|
decidim_scope_id: Àmbit
|
|
25
25
|
has_address: Té adreça
|
|
@@ -662,6 +662,7 @@ ca:
|
|
|
662
662
|
number_of_proposals: Es publicaran les respostes a %{number} propostes
|
|
663
663
|
select_a_proposal: Si us plau, selecciona una proposta.
|
|
664
664
|
show:
|
|
665
|
+
address: Adreça
|
|
665
666
|
amendments_count: Número d'esmenes
|
|
666
667
|
assigned_evaluators: Avaluadores assignades
|
|
667
668
|
body: Cos
|
data/config/locales/cs.yml
CHANGED
|
@@ -63,6 +63,8 @@ cs:
|
|
|
63
63
|
allowed_file_content_types: 'Neplatný typ dokumentu. Jsou povoleny pouze soubory s následujícími příponami: %{types}'
|
|
64
64
|
proposal:
|
|
65
65
|
attributes:
|
|
66
|
+
add_attachments:
|
|
67
|
+
needs_to_be_reattached: Vyžaduje být znovu připojen
|
|
66
68
|
body:
|
|
67
69
|
cant_be_equal_to_template: nelze se rovnat šabloně
|
|
68
70
|
identical: A název nemůže být totožný
|
|
@@ -92,6 +94,7 @@ cs:
|
|
|
92
94
|
proposal:
|
|
93
95
|
budget_text: Návrh <span class="resource-link">%{link} byl vytvořen</span>
|
|
94
96
|
import_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
|
|
97
|
+
import_to_proposal_text: Tento návrh <span "resource-link">%{link} byl vytvořen</span>
|
|
95
98
|
merge_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
|
|
96
99
|
merge_to_proposal_text: 'Tento návrh byl vytvořen: %{link}'
|
|
97
100
|
split_from_proposal_text: 'Stal se z něj tento návrh: %{link}'
|
|
@@ -180,6 +183,7 @@ cs:
|
|
|
180
183
|
collaborative_drafts_enabled: Společné koncepty povoleny
|
|
181
184
|
collaborative_drafts_enabled_help: Funkce „Spolunávrhy“ bude odstraněna v Decidim v0.32. Organizace, které ji používají, mohou přejít na novou funkci spoluautorství.
|
|
182
185
|
comments_enabled: Komentáře povoleny
|
|
186
|
+
comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
|
|
183
187
|
default_sort_order: Výchozí řazení návrhu
|
|
184
188
|
default_sort_order_help: Automaticky znamená, že pokud je hlasování povoleno, návrhy se zobrazují seřazené náhodně, a pokud je hlasování zablokováno, pak se zobrazují seřazené podle počtu hlasů.
|
|
185
189
|
default_sort_order_options:
|
|
@@ -645,6 +649,7 @@ cs:
|
|
|
645
649
|
number_of_proposals: Odpovědi na %{number} návrhů budou zveřejněny?
|
|
646
650
|
select_a_proposal: Vyberte návrh.
|
|
647
651
|
show:
|
|
652
|
+
address: Adresa
|
|
648
653
|
amendments_count: Počet pozměňovacích návrhů
|
|
649
654
|
assigned_evaluators: Přiřazení hodnotitelé
|
|
650
655
|
body: Tělo
|
data/config/locales/de.yml
CHANGED
|
@@ -53,6 +53,7 @@ de:
|
|
|
53
53
|
file: Datei
|
|
54
54
|
proposals_import:
|
|
55
55
|
import_proposals: Vorschläge importieren
|
|
56
|
+
keep_answers: Status und Antworten beibehalten
|
|
56
57
|
keep_authors: Behalten Sie die ursprünglichen Autoren
|
|
57
58
|
errors:
|
|
58
59
|
models:
|
|
@@ -62,6 +63,8 @@ de:
|
|
|
62
63
|
allowed_file_content_types: 'Ungültiger Dokumententyp. Nur Dateien mit folgenden Erweiterungen sind erlaubt: %{types}'
|
|
63
64
|
proposal:
|
|
64
65
|
attributes:
|
|
66
|
+
add_attachments:
|
|
67
|
+
needs_to_be_reattached: Muss erneut angehängt werden
|
|
65
68
|
body:
|
|
66
69
|
cant_be_equal_to_template: kann nicht gleich der Vorlage sein
|
|
67
70
|
identical: UND Titel dürfen nicht identisch sein
|
|
@@ -170,7 +173,9 @@ de:
|
|
|
170
173
|
can_accumulate_votes_beyond_threshold: Stimmen können nach Erreichen des Schwellwerts weiter gesammelt werden
|
|
171
174
|
clear_all: Alles löschen
|
|
172
175
|
collaborative_drafts_enabled: Kollaborative Entwürfe aktiviert
|
|
176
|
+
collaborative_drafts_enabled_help: Die Funktion "Gemeinsame Entwürfe" wird in Decidim v0.32 entfernt. Organisationen, die sie nutzen, können auf die neue Funktion zur gemeinsamen Autorenschaft von Vorschlägen umsteigen.
|
|
173
177
|
comments_enabled: Kommentare aktiviert
|
|
178
|
+
comments_max_length: Maximale Zeichenanzahl pro Kommentar (0 für Standardwert)
|
|
174
179
|
default_sort_order: Standardsortierung für Vorschläge
|
|
175
180
|
default_sort_order_help: Standardmäßig bedeutet, dass bei aktivierten Stimmensammlung die Vorschläge nach Zufall und bei deaktivierter Stimmensammlung nach den meist gewählten Vorschläge sortiert werden.
|
|
176
181
|
default_sort_order_options:
|
|
@@ -269,13 +274,17 @@ de:
|
|
|
269
274
|
email_intro: '%{author_name} hat eine private Notiz unter %{resource_title} erstellt. Jetzt im <a href="%{admin_proposal_info_url}">Admin-Panel</a> anzeigen.'
|
|
270
275
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie den Vorschlag bewerten können.
|
|
271
276
|
email_subject: Jemand hat eine Notiz für Vorschlag %{resource_title} erstellt.
|
|
277
|
+
notification_title: <a href="%{author_path}">%{author_name}</a> hat eine private Notiz zu <a href="%{resource_path}">%{resource_title}</a> erstellt. Im <a href="%{admin_proposal_info_path}">Admin-Bereich</a> finden Sie die Details.
|
|
272
278
|
proposal_note_mentioned:
|
|
279
|
+
email_intro: Sie wurden von "%{author_name}" in einer privaten Notiz zu "%{resource_title}" erwähnt. Im <a href="%{admin_proposal_info_url}">Admin-Bereich</a> finden Sie die Details.
|
|
273
280
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie in einer privaten Notiz erwähnt wurden.
|
|
274
281
|
email_subject: Jemand hat Sie in einer Notiz zum Vorschlag "%{resource_title}" erwähnt.
|
|
282
|
+
notification_title: Sie wurden von <a href="%{author_path}">%{author_name}</a> in einer privaten Notiz zu <a href="%{resource_path}">%{resource_title}</a> erwähnt. Im <a href="%{admin_proposal_info_path}">Admin-Bereich</a> finden Sie die Details.
|
|
275
283
|
proposal_note_replied:
|
|
276
284
|
email_intro: '%{author_name} hat deine private Notiz unter %{resource_title} beantwortet. Jetzt im <a href="%{admin_proposal_info_url}">Admin-Panel</a> anzeigen.'
|
|
277
285
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie der Autor der Noitz sind.
|
|
278
286
|
email_subject: "%{author_name} hat auf Ihre private Notiz unter %{resource_title} geantwortet."
|
|
287
|
+
notification_title: <a href="%{author_path}">%{author_name}</a> hat auf Ihre private Notiz zu <a href="%{resource_path}">%{resource_title}</a> geantwortet. Im <a href="%{admin_proposal_info_path}">Admin-Bereich</a> finden Sie die Details.
|
|
279
288
|
coauthor_accepted_invite:
|
|
280
289
|
notification_title: <a href="%{coauthor_path}">%{coauthor_name}</a> hat Ihre Einladung angenommen, mitverfassende Person des Vorschlags <a href="%{resource_path}">%{resource_title}</a> zu werden.
|
|
281
290
|
coauthor_invited:
|
|
@@ -292,14 +301,17 @@ de:
|
|
|
292
301
|
email_intro: '%{requester_name} wurde zur Mitwirkung am kollaborativen Entwurf <a href="%{resource_url}">%{resource_title}</a> akzeptiert.'
|
|
293
302
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei <a href="%{resource_url}">%{resource_title}</a> mitwirken.
|
|
294
303
|
email_subject: "%{requester_name} wurde zur Mitwirkung an %{resource_title} akzeptiert."
|
|
304
|
+
notification_title: <a href="%{requester_path}">%{requester_name}</a> wurde als Mitwirkende/r für den gemeinsamen Entwurf <a href="%{resource_path}">%{resource_title}</a> <strong>angenommen</strong>.
|
|
295
305
|
collaborative_draft_access_rejected:
|
|
296
306
|
email_intro: '%{requester_name} wurde als Mitwirkender des kollaborativen Entwurfs <a href="%{resource_url}">%{resource_title}</a> abgelehnt.'
|
|
297
307
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei <a href="%{resource_url}">%{resource_title}</a> mitwirken.
|
|
298
308
|
email_subject: "%{requester_name} wurde als Mitwirkender des kollaborativen Entwurfs %{resource_title} abgelehnt."
|
|
309
|
+
notification_title: <a href="%{requester_path}">%{requester_name}</a> wurde als Mitwirkende/r für den gemeinsamen Entwurf <a href="%{resource_path}">%{resource_title}</a> <strong>abgelehnt</strong>.
|
|
299
310
|
collaborative_draft_access_requested:
|
|
300
311
|
email_intro: '%{requester_name} hat um Zugriff auf Ihren kollaborativen Entwurf angefragt. Sie können den Antrag auf der Seite des kollaborativen Entwurfs <a href="%{resource_url}">%{resource_title}</a> <strong>annehmen oder ablehnen</strong>.'
|
|
301
312
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei <a href="%{resource_url}">%{resource_title}</a> mitwirken.
|
|
302
313
|
email_subject: "%{requester_name} hat um Zugang zur Mitwirkung bei %{resource_title} angefragt."
|
|
314
|
+
notification_title: <a href="%{requester_path}">%{requester_name}</a> hat um Zugang zur Mitarbeit am gemeinsamen Entwurf <a href="%{resource_path}">%{resource_title}</a> gebeten. Bitte <strong>nehmen Sie die Anfrage an oder lehnen Sie sie ab</strong>.
|
|
303
315
|
collaborative_draft_access_requester_accepted:
|
|
304
316
|
email_intro: Sie wurden zur Mitwirkung am kollaborativen Entwurf <a href="%{resource_url}">%{resource_title}</a> akzeptiert.
|
|
305
317
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie angefragt haben, bei <a href="%{resource_url}">%{resource_title}</a> mitzuwirken.
|
|
@@ -311,7 +323,10 @@ de:
|
|
|
311
323
|
email_subject: Sie wurden als Mitwirkender von %{resource_title} abgelehnt.
|
|
312
324
|
notification_title: Sie wurden als Mitwirkender beim kollaborativen Entwurf <a href="%{resource_path}">%{resource_title}</a> <strong>abgelehnt</strong>.
|
|
313
325
|
collaborative_draft_withdrawn:
|
|
326
|
+
email_intro: <a href="%{author_url}">%{author_name}</a> hat den gemeinsamen Entwurf <a href="%{resource_url}">%{resource_title}</a> zurückgezogen.
|
|
314
327
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie bei <a href="%{resource_url}">%{resource_title}</a> mitwirken.
|
|
328
|
+
email_subject: "%{author_name} hat den gemeinsamen Entwurf %{resource_title} zurückgezogen."
|
|
329
|
+
notification_title: <a href="%{author_path}">%{author_name}</a> hat den gemeinsamen Entwurf <a href="%{resource_path}">%{resource_title}</a> <strong>zurückgezogen</strong>.
|
|
315
330
|
creation_enabled:
|
|
316
331
|
email_intro: 'Sie können jetzt neue Vorschläge in %{participatory_space_title} erstellen! Beteiligen Sie sich auf dieser Seite:'
|
|
317
332
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{participatory_space_title} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
|
|
@@ -321,6 +336,7 @@ de:
|
|
|
321
336
|
email_intro: 'Sie können ab jetzt Vorschläge auf %{participatory_space_title} unterstützen! Jetzt auf dieser Seite mitmachen:'
|
|
322
337
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{participatory_space_title} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den angegebenen Link.
|
|
323
338
|
email_subject: Vorschläge können nun in %{participatory_space_title} unterstützt werden
|
|
339
|
+
notification_title: Sie können nun in <a href="%{participatory_space_url}">%{participatory_space_title}</a> damit beginnen, <a href="%{resource_path}">Vorschlägen zu gefallen</a>.
|
|
324
340
|
proposal_mentioned:
|
|
325
341
|
email_intro: Ihr Vorschlag "%{mentioned_proposal_title}" wurde <a href="%{resource_url}">hier</a> in den Kommentaren erwähnt.
|
|
326
342
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie ein Autor von "%{resource_title}" sind.
|
|
@@ -331,6 +347,11 @@ de:
|
|
|
331
347
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie diesen Vorschlag verfasst haben.
|
|
332
348
|
email_subject: Der Vorschlag %{resource_title} wurde zusammengeführt
|
|
333
349
|
notification_title: Der Vorschlag <a href="%{resource_path}">%{resource_title}</a> wurde von einem Admin zusammengeführt.
|
|
350
|
+
proposal_published:
|
|
351
|
+
email_intro: '%{author_name}, dem/der Sie folgen, hat einen neuen Vorschlag mit dem Titel "%{resource_title}" veröffentlicht. Schauen Sie ihn sich an und beteiligen Sie sich:'
|
|
352
|
+
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie %{author_name} folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
|
|
353
|
+
email_subject: Neuer Vorschlag "%{resource_title}" von %{author_name}
|
|
354
|
+
notification_title: Der Vorschlag <a href="%{resource_path}">%{resource_title}</a> wurde von <a href="%{author_path}">%{author_name}</a> veröffentlicht.
|
|
334
355
|
proposal_published_for_space:
|
|
335
356
|
email_intro: Der Vorschlag "%{resource_title}" wurde zu "%{participatory_space_title}" hinzugefügt, welchem Sie folgen.
|
|
336
357
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie "%{participatory_space_title}" folgen. Sie können den Erhalt von Benachrichtigungen über den vorherigen Link beenden.
|
|
@@ -348,6 +369,12 @@ de:
|
|
|
348
369
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie "%{resource_title}" folgen. Falls Sie keine solchen Benachrichtigungen mehr erhalten möchten, besuchen Sie den obigen Link.
|
|
349
370
|
email_subject: Der Status eines Vorschlags, dem Sie folgen, hat sich geändert (%{state})
|
|
350
371
|
notification_title: Der Status des Vorschlags <a href="%{resource_path}">%{resource_title}</a> hat sich zu "%{state}" geändert.
|
|
372
|
+
proposal_state_changed_for_authors:
|
|
373
|
+
affected_user:
|
|
374
|
+
email_intro: 'Der Status des Vorschlags "%{resource_title}" wurde auf "%{state}" geändert. Die Antwort finden Sie auf dieser Seite:'
|
|
375
|
+
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie Autor/in von "%{resource_title}" sind.
|
|
376
|
+
email_subject: Der Status Ihres Vorschlags wurde geändert (%{state})
|
|
377
|
+
notification_title: Der Status Ihres Vorschlags <a href="%{resource_path}">%{resource_title}</a> wurde auf "%{state}" geändert.
|
|
351
378
|
proposal_update_taxonomies:
|
|
352
379
|
email_intro: 'Ein Admin hat die Klassifizierung Ihres Vorschlags „%{resource_title}“ aktualisiert. Auf der folgenden Seite ansehen:'
|
|
353
380
|
email_outro: Sie haben diese Benachrichtigung erhalten, weil Sie diesen Vorschlag verfasst haben.
|
|
@@ -431,7 +458,7 @@ de:
|
|
|
431
458
|
longitude: Der Längengrad des Vorschlags, falls er verortet wurde
|
|
432
459
|
meeting_urls: Die URLs der Veranstaltungen, an denen dieser Vorschlag vorgestellt oder diskutiert wurde
|
|
433
460
|
original_proposal: Referenz des ursprünglichen Vorschlags, falls es sich um einen Änderungsantrag handelt
|
|
434
|
-
participatory_space: Zu welchem Bereich dieser Vorschlag gehört (z.B. Partizipationsprozesse oder
|
|
461
|
+
participatory_space: Zu welchem Bereich dieser Vorschlag gehört (z.B. Partizipationsprozesse oder Versammlungen)
|
|
435
462
|
published_at: Das Datum, an dem dieser Vorschlag veröffentlicht wurde
|
|
436
463
|
reference: Die eindeutige Bezeichnung der Ressource auf dieser Plattform
|
|
437
464
|
related_proposals: Mit diesem Vorschlag verknüpfte Vorschläge
|
|
@@ -624,7 +651,7 @@ de:
|
|
|
624
651
|
statuses: Status
|
|
625
652
|
title: Vorschläge
|
|
626
653
|
unassign_from_evaluator: Zuweisung zur bewertenden Person aufheben
|
|
627
|
-
unassign_from_evaluator_button:
|
|
654
|
+
unassign_from_evaluator_button: Zuweisung aufheben
|
|
628
655
|
update: Aktualisieren
|
|
629
656
|
manage_trash:
|
|
630
657
|
title: Gelöschte Vorschläge
|
|
@@ -635,6 +662,7 @@ de:
|
|
|
635
662
|
number_of_proposals: Antworten für %{number} Vorschläge werden veröffentlicht.
|
|
636
663
|
select_a_proposal: Bitte wählen Sie einen Vorschlag.
|
|
637
664
|
show:
|
|
665
|
+
address: Adresse
|
|
638
666
|
amendments_count: Anzahl der Ergänzungen
|
|
639
667
|
assigned_evaluators: Zugewiesene Personen
|
|
640
668
|
body: Haupttext
|
|
@@ -652,6 +680,7 @@ de:
|
|
|
652
680
|
related_meetings: Ähnliche Veranstaltungen
|
|
653
681
|
remove_assignment: Zuweisung entfernen
|
|
654
682
|
remove_assignment_confirmation: Sind Sie sicher, dass Sie den Bewerter dieses Vorschlags entfernen möchten?
|
|
683
|
+
title: Vorschlag beantworten
|
|
655
684
|
votes_count: Anzahl Stimmen
|
|
656
685
|
update_taxonomies:
|
|
657
686
|
invalid: 'Diese Vorschläge gehörten bereits zur Klassifizierung %{taxonomies}: %{proposals}.'
|
|
@@ -666,6 +695,7 @@ de:
|
|
|
666
695
|
create: Vorschläge importieren
|
|
667
696
|
no_components: In diesem partizipatorischen Bereich gibt es keine weiteren Vorschlagskomponenten, aus denen die Vorschläge importiert werden könnten.
|
|
668
697
|
select_component: Bitte wählen Sie eine Komponente aus
|
|
698
|
+
select_states: Importiert nur Vorschläge mit diesen Status. Wenn keiner ausgewählt ist, werden alle Vorschläge importiert.
|
|
669
699
|
title: Vorschläge aus einer anderen Komponente importieren
|
|
670
700
|
proposals_merges:
|
|
671
701
|
create:
|
|
@@ -735,6 +765,7 @@ de:
|
|
|
735
765
|
errors:
|
|
736
766
|
device_not_supported: Ihr Gerät unterstützt keine Ortungsdienste. Bitte geben Sie die Adresse manuell ein.
|
|
737
767
|
no_device_location: Leider konnten wir Ihren Standort nicht erkennen. Bitte geben Sie die Adresse manuell ein.
|
|
768
|
+
locating: Standort wird ermittelt …
|
|
738
769
|
use_my_location: Meinen aktuellen Standort verwenden
|
|
739
770
|
invite_coauthors:
|
|
740
771
|
cancel:
|
data/config/locales/el.yml
CHANGED
data/config/locales/en.yml
CHANGED
|
@@ -126,9 +126,9 @@ en:
|
|
|
126
126
|
'false': Proposals
|
|
127
127
|
'true': Amendments
|
|
128
128
|
proposal_state_id_eq:
|
|
129
|
-
label:
|
|
129
|
+
label: Status
|
|
130
130
|
state_eq:
|
|
131
|
-
label:
|
|
131
|
+
label: Status
|
|
132
132
|
values:
|
|
133
133
|
accepted: Accepted
|
|
134
134
|
evaluating: Evaluating
|
|
@@ -662,6 +662,7 @@ en:
|
|
|
662
662
|
number_of_proposals: Answers for %{number} proposal's will be published?
|
|
663
663
|
select_a_proposal: Please select a proposal.
|
|
664
664
|
show:
|
|
665
|
+
address: Address
|
|
665
666
|
amendments_count: Amendments count
|
|
666
667
|
assigned_evaluators: Assigned evaluators
|
|
667
668
|
body: Body
|
data/config/locales/es-MX.yml
CHANGED
|
@@ -662,6 +662,7 @@ es-MX:
|
|
|
662
662
|
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
|
|
663
663
|
select_a_proposal: Por favor, selecciona una propuesta.
|
|
664
664
|
show:
|
|
665
|
+
address: Dirección
|
|
665
666
|
amendments_count: Número de enmiendas
|
|
666
667
|
assigned_evaluators: Evaluadoras asignadas
|
|
667
668
|
body: Cuerpo
|
data/config/locales/es-PY.yml
CHANGED
|
@@ -662,6 +662,7 @@ es-PY:
|
|
|
662
662
|
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
|
|
663
663
|
select_a_proposal: Por favor, selecciona una propuesta.
|
|
664
664
|
show:
|
|
665
|
+
address: Dirección
|
|
665
666
|
amendments_count: Número de enmiendas
|
|
666
667
|
assigned_evaluators: Evaluadoras asignadas
|
|
667
668
|
body: Cuerpo
|
data/config/locales/es.yml
CHANGED
|
@@ -662,6 +662,7 @@ es:
|
|
|
662
662
|
number_of_proposals: Se publicarán las respuestas a %{number} propuestas
|
|
663
663
|
select_a_proposal: Por favor, selecciona una propuesta.
|
|
664
664
|
show:
|
|
665
|
+
address: Dirección
|
|
665
666
|
amendments_count: Número de enmiendas
|
|
666
667
|
assigned_evaluators: Evaluadoras asignadas
|
|
667
668
|
body: Cuerpo
|