decidim-proposals 0.14.4 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/app/assets/images/decidim/gamification/badges/accepted_proposals.svg +194 -104
- data/app/assets/images/decidim/gamification/badges/proposals.svg +192 -108
- data/app/assets/javascripts/decidim/proposals/admin/proposals.es6 +25 -20
- data/app/cells/decidim/proposals/proposal_activity_cell.rb +19 -0
- data/app/commands/decidim/proposals/admin/answer_proposal.rb +6 -2
- data/app/commands/decidim/proposals/admin/create_proposal.rb +4 -4
- data/app/commands/decidim/proposals/admin/import_participatory_text.rb +49 -0
- data/app/commands/decidim/proposals/admin/import_proposals.rb +7 -21
- data/app/commands/decidim/proposals/admin/merge_proposals.rb +68 -0
- data/app/commands/decidim/proposals/admin/publish_participatory_text.rb +65 -0
- data/app/commands/decidim/proposals/admin/split_proposals.rb +67 -0
- data/app/commands/decidim/proposals/admin/update_proposal.rb +67 -0
- data/app/commands/decidim/proposals/create_collaborative_draft.rb +19 -14
- data/app/commands/decidim/proposals/create_proposal.rb +4 -2
- data/app/commands/decidim/proposals/endorse_proposal.rb +5 -1
- data/app/commands/decidim/proposals/publish_proposal.rb +15 -3
- data/app/commands/decidim/proposals/unvote_proposal.rb +34 -3
- data/app/commands/decidim/proposals/vote_proposal.rb +32 -2
- data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +62 -0
- data/app/controllers/decidim/proposals/admin/proposals_controller.rb +28 -1
- data/app/controllers/decidim/proposals/admin/proposals_merges_controller.rb +27 -0
- data/app/controllers/decidim/proposals/admin/proposals_splits_controller.rb +27 -0
- data/app/controllers/decidim/proposals/collaborative_drafts_controller.rb +0 -1
- data/app/controllers/decidim/proposals/proposal_endorsements_controller.rb +6 -2
- data/app/controllers/decidim/proposals/proposal_votes_controller.rb +15 -0
- data/app/controllers/decidim/proposals/proposals_controller.rb +1 -1
- data/app/forms/decidim/proposals/admin/import_participatory_text_form.rb +28 -0
- data/app/forms/decidim/proposals/admin/preview_participatory_text_form.rb +21 -0
- data/app/forms/decidim/proposals/admin/proposal_form.rb +4 -1
- data/app/forms/decidim/proposals/admin/proposals_fork_form.rb +57 -0
- data/app/forms/decidim/proposals/admin/proposals_merge_form.rb +13 -0
- data/app/forms/decidim/proposals/admin/proposals_split_form.rb +12 -0
- data/app/helpers/decidim/proposals/application_helper.rb +23 -0
- data/app/helpers/decidim/proposals/map_helper.rb +1 -1
- data/app/helpers/decidim/proposals/participatory_texts_helper.rb +18 -0
- data/app/helpers/decidim/proposals/proposal_endorsements_helper.rb +1 -1
- data/app/helpers/decidim/proposals/proposal_wizard_helper.rb +2 -1
- data/app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb +3 -4
- data/app/models/decidim/proposals/participatory_text.rb +13 -0
- data/app/models/decidim/proposals/proposal.rb +31 -9
- data/app/models/decidim/proposals/proposal_vote.rb +21 -1
- data/app/permissions/decidim/proposals/admin/permissions.rb +30 -0
- data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +5 -1
- data/app/presenters/decidim/proposals/log/resource_presenter.rb +18 -0
- data/app/presenters/decidim/proposals/official_author_presenter.rb +4 -0
- data/app/queries/decidim/proposals/metrics/accepted_proposals_metric_manage.rb +29 -0
- data/app/queries/decidim/proposals/metrics/proposals_metric_manage.rb +53 -0
- data/app/queries/decidim/proposals/metrics/votes_metric_manage.rb +57 -0
- data/app/services/decidim/proposals/proposal_builder.rb +72 -0
- data/app/services/decidim/proposals/proposal_search.rb +2 -2
- data/app/views/decidim/proposals/admin/participatory_texts/_article-preview.html.erb +13 -0
- data/app/views/decidim/proposals/admin/participatory_texts/_bulk-actions.html.erb +1 -0
- data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +43 -0
- data/app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb +39 -0
- data/app/views/decidim/proposals/admin/proposals/_bulk-actions.html.erb +7 -2
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +4 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_dropdown.html.erb +36 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_merge.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_recategorize.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/bulk_actions/_split.html.erb +15 -0
- data/app/views/decidim/proposals/admin/proposals/edit.html.erb +7 -0
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +2 -2
- data/app/views/decidim/proposals/collaborative_drafts/compare.html.erb +2 -2
- data/app/views/decidim/proposals/collaborative_drafts/complete.html.erb +1 -1
- data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +1 -1
- data/app/views/decidim/proposals/proposal_endorsements/_identity.html.erb +5 -1
- data/app/views/decidim/proposals/proposal_endorsements/update_buttons_and_counters.js.erb +1 -1
- data/app/views/decidim/proposals/proposal_votes/update_buttons_and_counters.js.erb +13 -4
- data/app/views/decidim/proposals/proposals/_edit_form_fields.html.erb +2 -2
- data/app/views/decidim/proposals/proposals/_endorsement_identities_cabin.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal_similar.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_voting_rules.html.erb +15 -4
- data/app/views/decidim/proposals/proposals/new.html.erb +1 -1
- data/config/locales/ca.yml +72 -4
- data/config/locales/de.yml +71 -3
- data/config/locales/en.yml +71 -3
- data/config/locales/es-PY.yml +71 -3
- data/config/locales/es.yml +73 -5
- data/config/locales/eu.yml +71 -3
- data/config/locales/fi.yml +81 -13
- data/config/locales/fr.yml +71 -3
- data/config/locales/gl.yml +71 -3
- data/config/locales/hu.yml +71 -3
- data/config/locales/it.yml +71 -3
- data/config/locales/nl.yml +71 -3
- data/config/locales/pl.yml +71 -3
- data/config/locales/pt-BR.yml +72 -4
- data/config/locales/pt.yml +71 -3
- data/config/locales/sv.yml +71 -3
- data/db/migrate/20180927111721_create_participatory_texts.rb +13 -0
- data/db/migrate/20180930125321_add_participatory_text_level_to_proposals.rb +7 -0
- data/db/migrate/20180930125321_add_position_to_proposals.rb +7 -0
- data/db/migrate/20181003074440_fix_user_groups_ids_in_proposals_endorsements.rb +16 -0
- data/db/migrate/20181010114622_add_temporary_votes.rb +9 -0
- data/db/migrate/20181016132225_add_organization_as_author.rb +13 -0
- data/db/migrate/20181017084221_make_author_polymorhpic_for_proposal_endorsements.rb +31 -0
- data/lib/decidim/content_parsers/proposal_parser.rb +9 -3
- data/lib/decidim/proposals.rb +3 -1
- data/lib/decidim/proposals/admin_engine.rb +12 -1
- data/lib/decidim/proposals/component.rb +60 -23
- data/lib/decidim/proposals/engine.rb +55 -12
- data/lib/decidim/proposals/markdown_to_proposals.rb +90 -0
- data/lib/decidim/proposals/participatory_text_section.rb +21 -0
- data/lib/decidim/proposals/test/factories.rb +35 -7
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +86 -19
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="js-merge-proposals-actions" class="hide js-bulk-action-form">
|
2
|
+
<%= form_tag(proposals_merge_path, method: :post, id: "js-form-merge-proposals", class: "flex--cc flex-gap--1") do %>
|
3
|
+
<div class="checkboxes hide">
|
4
|
+
<% proposals.each do |proposal| %>
|
5
|
+
<%= check_box_tag "proposal_ids[]", proposal.id, false, class: "js-check-all-proposal js-proposal-id-#{proposal.id}" %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= bulk_components_select((current_component.siblings + [current_component])) %>
|
10
|
+
|
11
|
+
<%= submit_tag(t("decidim.proposals.admin.proposals.index.merge_button"), id: "js-submit-merge-proposals", class: "button small button--simple float-left") %>
|
12
|
+
|
13
|
+
<button id="js-cancel-merge-proposals" class="button tiny clear compact js-cancel-bulk-action" type="button"><%= t("decidim.proposals.admin.proposals.index.cancel") %></button>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="js-recategorize-proposals-actions" class="hide js-bulk-action-form">
|
2
|
+
<%= form_tag(update_category_proposals_path, method: :post, remote: true, id: "js-form-recategorize-proposals", class: "flex--cc flex-gap--1") do %>
|
3
|
+
<div class="checkboxes hide">
|
4
|
+
<% proposals.each do |proposal| %>
|
5
|
+
<%= check_box_tag "proposal_ids[]", proposal.id, false, class: "js-check-all-proposal js-proposal-id-#{proposal.id}" %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= bulk_categories_select current_component.categories %>
|
10
|
+
|
11
|
+
<%= submit_tag(t("decidim.proposals.admin.proposals.index.update"), id: "js-submit-edit-category", class: "button small button--simple float-left") %>
|
12
|
+
|
13
|
+
<button id="js-cancel-edit-category" class="button tiny clear compact js-cancel-bulk-action" type="button"><%= t("decidim.proposals.admin.proposals.index.cancel") %></button>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div id="js-split-proposals-actions" class="hide js-bulk-action-form">
|
2
|
+
<%= form_tag(proposals_split_path, method: :post, id: "js-form-split-proposals", class: "flex--cc flex-gap--1") do %>
|
3
|
+
<div class="checkboxes hide">
|
4
|
+
<% proposals.each do |proposal| %>
|
5
|
+
<%= check_box_tag "proposal_ids[]", proposal.id, false, class: "js-check-all-proposal js-proposal-id-#{proposal.id}" %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= bulk_components_select((current_component.siblings + [current_component])) %>
|
10
|
+
|
11
|
+
<%= submit_tag(t("decidim.proposals.admin.proposals.index.split_button"), id: "js-submit-split-proposals", class: "button small button--simple float-left") %>
|
12
|
+
|
13
|
+
<button id="js-cancel-split-proposals" class="button tiny clear compact js-cancel-bulk-action" type="button"><%= t("decidim.proposals.admin.proposals.index.cancel") %></button>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<h2 class="card-title flex--sbc">
|
4
4
|
<div>
|
5
5
|
<%= t(".title") %>
|
6
|
-
<span id="js-
|
6
|
+
<span id="js-selected-proposals-count" class="component-counter component-counter--inline" title="<%= t("decidim.proposals.admin.proposals.index.selected") %>"></span>
|
7
7
|
</div>
|
8
8
|
<%= render partial: "bulk-actions" %>
|
9
9
|
</h2>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<thead>
|
15
15
|
<tr>
|
16
16
|
<th>
|
17
|
-
<%= check_box_tag "
|
17
|
+
<%= check_box_tag "proposals_bulk", "all", false, class: "js-check-all" %>
|
18
18
|
</th>
|
19
19
|
<th>
|
20
20
|
<%= sort_link(query, :id, t("models.proposal.fields.id", scope: "decidim.proposals"), default_order: :desc ) %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= render partial: "decidim/proposals/proposals/wizard_aside" %>
|
3
3
|
|
4
4
|
<div class="columns large-6">
|
5
|
-
<%= render partial: "decidim/proposals/proposals/wizard_header", locals: {callout_step_help_text_class: "warning"} %>
|
5
|
+
<%= render partial: "decidim/proposals/proposals/wizard_header", locals: { callout_step_help_text_class: "warning" } %>
|
6
6
|
|
7
7
|
<% if @similar_collaborative_drafts.presence %>
|
8
8
|
<div class="row small-up-1 card-grid">
|
@@ -12,7 +12,7 @@
|
|
12
12
|
</div>
|
13
13
|
<% end %>
|
14
14
|
<div class="row column text-center">
|
15
|
-
<%= link_to t(".mine_is_different"), complete_collaborative_drafts_path(collaborative_draft: {title: @form.title, body: @form.body}), class: "button small" %>
|
15
|
+
<%= link_to t(".mine_is_different"), complete_collaborative_drafts_path(collaborative_draft: { title: @form.title, body: @form.body }), class: "button small" %>
|
16
16
|
</div>
|
17
17
|
</div>
|
18
18
|
<div class="columns large-3"></div>
|
@@ -116,7 +116,7 @@
|
|
116
116
|
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "proposals", geolocalizable: @collaborative_draft } %>
|
117
117
|
<% end %>
|
118
118
|
|
119
|
-
<%= cell "decidim/tags", @collaborative_draft, context: {extra_classes: ["tags--collaborative-draft"]} %>
|
119
|
+
<%= cell "decidim/tags", @collaborative_draft, context: { extra_classes: ["tags--collaborative-draft"] } %>
|
120
120
|
</div>
|
121
121
|
</div>
|
122
122
|
</div>
|
@@ -1,5 +1,9 @@
|
|
1
1
|
<li class="<%= selected ? "selected" : "" %>" data-method="<%= http_method.to_s.upcase %>" data-url="<%= current_endorsement_url %>">
|
2
|
-
|
2
|
+
<div class="author-data author-data--small">
|
3
|
+
<div class="author-data__main">
|
4
|
+
<%== cell("decidim/author", identity).profile %>
|
5
|
+
</div>
|
6
|
+
</div>
|
3
7
|
|
4
8
|
<%= icon("circle-check", class: "icon--big #{selected ? '' : 'invisible'}") %>
|
5
9
|
</li>
|
@@ -1,8 +1,12 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
<% @proposals.each do |proposal| %>
|
2
|
+
(function() {
|
3
|
+
var $proposalVotesCount = $('#proposal-<%= proposal.id %>-votes-count');
|
4
|
+
var $proposalVoteButton = $('#proposal-<%= proposal.id %>-vote-button');
|
3
5
|
|
4
|
-
morphdom($proposalVotesCount[0], '<%= j(render partial: "decidim/proposals/proposals/votes_count", locals: { proposal: proposal, from_proposals_list: @from_proposals_list }).strip.html_safe %>');
|
5
|
-
morphdom($proposalVoteButton[0], '<%= j(render partial: "decidim/proposals/proposals/vote_button", locals: { proposal: proposal, from_proposals_list: @from_proposals_list }).strip.html_safe %>');
|
6
|
+
morphdom($proposalVotesCount[0], '<%= j(render partial: "decidim/proposals/proposals/votes_count", locals: { proposal: proposal, from_proposals_list: @from_proposals_list }).strip.html_safe %>');
|
7
|
+
morphdom($proposalVoteButton[0], '<%= j(render partial: "decidim/proposals/proposals/vote_button", locals: { proposal: proposal, from_proposals_list: @from_proposals_list }).strip.html_safe %>');
|
8
|
+
})();
|
9
|
+
<% end %>
|
6
10
|
|
7
11
|
<% if vote_limit_enabled? %>
|
8
12
|
var $remainingVotesCount = $('#remaining-votes-count');
|
@@ -18,3 +22,8 @@ morphdom($proposalVoteButton[0], '<%= j(render partial: "decidim/proposals/propo
|
|
18
22
|
$notVotedButtons.val('<%= t("decidim.proposals.proposals.vote_button.vote") %>');
|
19
23
|
<% end %>
|
20
24
|
<% end %>
|
25
|
+
|
26
|
+
<% if show_voting_rules? %>
|
27
|
+
var $votingRules = $('.voting-rules');
|
28
|
+
morphdom($votingRules[0], '<%= j(render partial: "decidim/proposals/proposals/voting_rules").strip.html_safe %>');
|
29
|
+
<% end %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
</div>
|
4
4
|
|
5
5
|
<div class="field hashtags__container">
|
6
|
-
<%= form.text_area :body, rows: 10, class: "js-hashtags", hashtaggable: true, value: present(@proposal).body
|
6
|
+
<%= form.text_area :body, rows: 10, class: "js-hashtags", hashtaggable: true, value: present(@proposal).body %>
|
7
7
|
</div>
|
8
8
|
|
9
9
|
<% if component_settings.geocoding_enabled? %>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
</div>
|
29
29
|
<% end %>
|
30
30
|
|
31
|
-
<% if current_user.
|
31
|
+
<% if Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
32
32
|
<div class="field">
|
33
33
|
<%= user_group_select_field form, :user_group_id %>
|
34
34
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%= javascript_include_tag "decidim/proposals/identity_selector_dialog" %>
|
2
|
-
<% if current_user && current_user.
|
2
|
+
<% if current_user && Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
3
3
|
<button id="select-identity-button" type="button" name="button" class="button small compact light button--sc <%= fully_endorsed ? "success": "secondary" %>">
|
4
4
|
<%= t(".endorse") %>
|
5
5
|
</button>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<%== cell("decidim/proposals/proposal_m", proposal).badge %>
|
17
17
|
|
18
18
|
<p><%= truncate(present(proposal).html_body, length: 100) %></p>
|
19
|
-
<%= cell "decidim/tags", proposal, context: {extra_classes: ["tags--proposal"]} %>
|
19
|
+
<%= cell "decidim/tags", proposal, context: { extra_classes: ["tags--proposal"] } %>
|
20
20
|
</div>
|
21
21
|
</article>
|
22
22
|
</div>
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<% if
|
2
|
-
<div class="row column">
|
3
|
-
<div class="callout secondary
|
1
|
+
<% if show_voting_rules? %>
|
2
|
+
<div class="row column voting-rules">
|
3
|
+
<div class="callout secondary">
|
4
4
|
<div class="row">
|
5
5
|
<div class="columns medium-8 large-9">
|
6
6
|
<h3 class="heading3"><%= t(".title") %></h3>
|
@@ -20,6 +20,17 @@
|
|
20
20
|
<% if can_accumulate_supports_beyond_threshold? %>
|
21
21
|
<li><%= t(".can_accumulate_supports_beyond_threshold.description", limit: threshold_per_proposal) %></li>
|
22
22
|
<% end %>
|
23
|
+
|
24
|
+
<% if minimum_votes_per_user_enabled? %>
|
25
|
+
<li>
|
26
|
+
<%= t(".minimum_votes_per_user.description", votes: minimum_votes_per_user) %>
|
27
|
+
<% if votes_given >= minimum_votes_per_user %>
|
28
|
+
<%= t(".minimum_votes_per_user.given_enough_votes") %>
|
29
|
+
<% else %>
|
30
|
+
<%= t(".minimum_votes_per_user.supports_remaining", remaining_votes: minimum_votes_per_user - votes_given) %>
|
31
|
+
<% end %>
|
32
|
+
</li>
|
33
|
+
<% end %>
|
23
34
|
</ul>
|
24
35
|
</div>
|
25
36
|
<% if current_user_can_vote? %>
|
@@ -27,7 +38,7 @@
|
|
27
38
|
<div class="card card--nomargin text-center remaining-votes-counter">
|
28
39
|
<div class="card__content">
|
29
40
|
<span class="definition-data__title"><%= t(".vote_limit.left", limit: component_settings.vote_limit) %></span>
|
30
|
-
<%= render partial: "remaining_votes_count" %>
|
41
|
+
<%= render partial: "decidim/proposals/proposals/remaining_votes_count" %>
|
31
42
|
<span class="extra__suport-text"><%= t(".vote_limit.votes") %></span>
|
32
43
|
</div>
|
33
44
|
</div>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
<%= form.text_area :body, rows: 10, class: "js-hashtags", hashtaggable: true %>
|
16
16
|
</div>
|
17
17
|
|
18
|
-
<% if current_user.
|
18
|
+
<% if Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
19
19
|
<div class="field">
|
20
20
|
<%= user_group_select_field form, :user_group_id %>
|
21
21
|
</div>
|
data/config/locales/ca.yml
CHANGED
@@ -75,8 +75,10 @@ ca:
|
|
75
75
|
collaborative_drafts_enabled: Esborranys col·laboratius habilitats
|
76
76
|
comments_enabled: Comentaris habilitats
|
77
77
|
geocoding_enabled: Geocodificació habilitada
|
78
|
+
minimum_votes_per_user: Suports mínims per usuari
|
78
79
|
new_proposal_help_text: Text d'ajuda al crear una nova proposta
|
79
80
|
official_proposals_enabled: Propostes oficials habilitades
|
81
|
+
participatory_texts_enabled: Texts participatius habilitats
|
80
82
|
proposal_answering_enabled: Activar resposta oficial a propostes
|
81
83
|
proposal_edit_before_minutes: Les propostes poden ser editades pels autors abans que passin aquest nombre de minuts
|
82
84
|
proposal_length: Longitud màxima del cos de la proposta
|
@@ -187,29 +189,48 @@ ca:
|
|
187
189
|
gamification:
|
188
190
|
badges:
|
189
191
|
accepted_proposals:
|
192
|
+
conditions:
|
193
|
+
- Tria l'espai de participació del teu interès amb la creació de propostes activada
|
194
|
+
- Intenta fer propostes que es puguin dur a terme. D'aquesta manera és més probable que s'acceptin.
|
195
|
+
description: Aquest distintiu es concedeix quan participes activament amb noves propostes i s'accepten.
|
190
196
|
description_another: Aquest usuari ha aconseguit tenir %{score} propostes acceptades.
|
191
197
|
description_own: Has aconseguit que s'acceptin %{score} de les teves propostes.
|
192
|
-
explanation: Els usuaris obtenen aquesta distinció aconseguint que s'acceptin les seves propostes.
|
193
198
|
name: Propostes acceptades
|
194
199
|
next_level_in: Aconsegueix que s'acceptin %{score} propostes més per arribar al següent nivell!
|
195
200
|
unearned_another: Aquest usuari encara no ha aconseguit que s'accepti cap de les seves propostes.
|
196
201
|
unearned_own: Cap de les teves propostes encara no ha estat acceptada.
|
197
202
|
proposal_votes:
|
203
|
+
conditions:
|
204
|
+
- Navega i passa un temps llegint les propostes d'altres persones
|
205
|
+
- Dóna suport a les propostes que desitgis o troba'n d'interessants
|
206
|
+
description: Aquest distintiu es concedeix quan dones suport a propostes d'altres persones.
|
198
207
|
description_another: Aquest usuari ha donat suport a %{score} propostes.
|
199
208
|
description_own: Has donat suport a %{score} propostes.
|
200
|
-
explanation: Els usuaris obtenen aquesta distinció donant suport a les propostes.
|
201
209
|
name: Suports a propostes
|
202
210
|
next_level_in: Dona suport a %{score} propostes més per arribar al següent nivell!
|
203
211
|
unearned_another: Aquest usuari encara no ha donat suport a cap proposta.
|
204
212
|
unearned_own: Encara no has donat suport a cap proposta.
|
205
213
|
proposals:
|
214
|
+
conditions:
|
215
|
+
- Tria un espai de participació del teu interès amb la creació de propostes activada
|
216
|
+
- Crea una proposta nova
|
217
|
+
description: Aquest distintiu es concedeix quan participes activament amb noves propostes.
|
206
218
|
description_another: Aquest usuari ha creat %{score} propostes.
|
207
219
|
description_own: Has creat %{score} propostes.
|
208
|
-
explanation: Els usuaris obtenen aquesta insígnia creant propostes.
|
209
220
|
name: Propostes
|
210
221
|
next_level_in: Crea %{score} més propostes per arribar al següent nivell!
|
211
222
|
unearned_another: Aquest usuari encara no ha creat cap proposta.
|
212
223
|
unearned_own: Encara no has creat cap proposta.
|
224
|
+
metrics:
|
225
|
+
accepted_proposals:
|
226
|
+
object: propostes
|
227
|
+
title: Propostes acceptades
|
228
|
+
proposals:
|
229
|
+
object: propostes
|
230
|
+
title: Propostes
|
231
|
+
votes:
|
232
|
+
object: vots
|
233
|
+
title: Vots
|
213
234
|
participatory_processes:
|
214
235
|
participatory_process_groups:
|
215
236
|
highlighted_proposals:
|
@@ -221,8 +242,10 @@ ca:
|
|
221
242
|
proposals:
|
222
243
|
actions:
|
223
244
|
answer: Respondre
|
245
|
+
edit_proposal: Edita la proposta
|
224
246
|
import: Importa des d'un altre component
|
225
247
|
new: Nova proposta
|
248
|
+
participatory_texts: Textos participatius
|
226
249
|
private_notes: Notes privades
|
227
250
|
title: Accions
|
228
251
|
admin:
|
@@ -234,6 +257,28 @@ ca:
|
|
234
257
|
models:
|
235
258
|
proposal:
|
236
259
|
name: Proposta
|
260
|
+
participatory_texts:
|
261
|
+
bulk-actions:
|
262
|
+
import_doc: Importar document
|
263
|
+
import:
|
264
|
+
invalid: El formulari no és vàlid!
|
265
|
+
success: Enhorabona, les seccions següents s'han analitzat del document importat, i s'han convertit en propostes. Ara pots revisar-les i ajustar el que necessitis abans de publicar.
|
266
|
+
index:
|
267
|
+
info_1: Les seccions següents s'han analitzat del document importat, i s'han convertit en propostes. Ara pots revisar-les i ajustar el que necessitis abans de publicar.
|
268
|
+
publish_document: Publicar el document
|
269
|
+
title: PREVISUALITZAR EL TEXT PARTICIPATIU
|
270
|
+
new_import:
|
271
|
+
bottom_hint: "(Podràs previsualitzar i ordenar les seccions del document)"
|
272
|
+
document_legend: 'Afegeix un document de menys de 2MB, cadascuna de les seccions fins que s''analitzin 3 nivells en Propostes. Els formats suportats són: Markdown'
|
273
|
+
title: AGREGAR DOCUMENT
|
274
|
+
upload_document: Penja el document
|
275
|
+
publish:
|
276
|
+
invalid: No s'han pogut publicar propostes
|
277
|
+
success: S'han publicat totes les propostes
|
278
|
+
sections:
|
279
|
+
article: "<em>Article</em>"
|
280
|
+
section: "<em>Secció:</em> <strong>%{title}</strong>"
|
281
|
+
sub-section: "<em>Subsecció:</em> %{title}"
|
237
282
|
proposal_answers:
|
238
283
|
edit:
|
239
284
|
accepted: Acceptada
|
@@ -257,6 +302,9 @@ ca:
|
|
257
302
|
create:
|
258
303
|
invalid: Hi ha hagut un problema en crear aquesta proposta
|
259
304
|
success: Proposta creada correctament
|
305
|
+
edit:
|
306
|
+
title: Actualitza la proposta
|
307
|
+
update: Actualització
|
260
308
|
form:
|
261
309
|
attachment_legend: "(Opcional) Afegiu un fitxer adjunt"
|
262
310
|
select_a_category: Selecciona una categoria
|
@@ -264,7 +312,12 @@ ca:
|
|
264
312
|
actions: Accions
|
265
313
|
cancel: Cancel·lar
|
266
314
|
change_category: Canvia la categoria
|
315
|
+
merge: Uneix-te a un de nou
|
316
|
+
merge_button: Fusionar
|
317
|
+
select_component: Selecciona un component
|
267
318
|
selected: seleccionat
|
319
|
+
split: Dividir propostes
|
320
|
+
split_button: Split
|
268
321
|
title: Propostes
|
269
322
|
update: Actualitza
|
270
323
|
new:
|
@@ -284,6 +337,14 @@ ca:
|
|
284
337
|
no_components: No hi ha cap altre component de propostes en aquest espai participatiu des d'on importar-les.
|
285
338
|
select_component: Escull un continent
|
286
339
|
select_states: Consulteu els estats de les propostes per importar
|
340
|
+
proposals_merges:
|
341
|
+
create:
|
342
|
+
invalid: S'ha produït un error en combinar les propostes seleccionades.
|
343
|
+
success: S'han combinat amb èxit les propostes en una nova.
|
344
|
+
proposals_splits:
|
345
|
+
create:
|
346
|
+
invalid: S'ha produït un error en dividir les propostes seleccionades.
|
347
|
+
success: S'ha dividit amb èxit les propostes en unes noves.
|
287
348
|
shared:
|
288
349
|
info_proposal:
|
289
350
|
body: Cos
|
@@ -294,6 +355,7 @@ ca:
|
|
294
355
|
proposal:
|
295
356
|
answer: "%{user_name} ha respost a la proposta %{resource_name} a l'espai %{space_name}"
|
296
357
|
create: "%{user_name} ha creat la proposta %{resource_name} sobre l'espai %{space_name} com a proposta oficial"
|
358
|
+
update: "%{user_name} ha actualitzat la proposta oficial %{resource_name} sobre l'espai %{space_name}"
|
297
359
|
proposal_note:
|
298
360
|
create: "%{user_name} ha deixat una nota privada a la proposta %{resource_name} dins l'espai %{space_name}"
|
299
361
|
answers:
|
@@ -422,6 +484,8 @@ ca:
|
|
422
484
|
destroy_draft:
|
423
485
|
error: S'ha produït un error en suprimir l'esborrany de la proposta.
|
424
486
|
success: L'esborrany de proposta s'ha eliminat amb èxit.
|
487
|
+
last_activity:
|
488
|
+
new_proposal_at_html: "<span>Nova proposta a %{link}</span>"
|
425
489
|
models:
|
426
490
|
collaborative_draft:
|
427
491
|
fields:
|
@@ -535,7 +599,7 @@ ca:
|
|
535
599
|
view_proposal: Veure proposta
|
536
600
|
show:
|
537
601
|
edit_proposal: Editar proposta
|
538
|
-
endorsements_list:
|
602
|
+
endorsements_list: Llistat d'adhesions
|
539
603
|
hidden_endorsers_count:
|
540
604
|
one: i 1 persona més
|
541
605
|
other: i %{count} persones més
|
@@ -570,6 +634,10 @@ ca:
|
|
570
634
|
voting_rules:
|
571
635
|
can_accumulate_supports_beyond_threshold:
|
572
636
|
description: Cada proposta pot acumular més de %{limit} suports
|
637
|
+
minimum_votes_per_user:
|
638
|
+
description: Has de distribuir un mínim de 3 suports entre diferents propostes.
|
639
|
+
given_enough_votes: Has donat suficients suports.
|
640
|
+
supports_remaining: Has de donar %{remaining_votes} suport/s més a propostes per tenir en compte els teus suports.
|
573
641
|
proposal_limit:
|
574
642
|
description: Pots crear fins a %{limit} propostes.
|
575
643
|
threshold_per_proposal:
|
data/config/locales/de.yml
CHANGED
@@ -75,8 +75,10 @@ de:
|
|
75
75
|
collaborative_drafts_enabled: Collaborative Entwürfe aktiviert
|
76
76
|
comments_enabled: Kommentare aktiviert
|
77
77
|
geocoding_enabled: Geocodierung aktiviert
|
78
|
+
minimum_votes_per_user: Mindeststimmen pro Nutzer
|
78
79
|
new_proposal_help_text: Neuer Vorschlagstext
|
79
80
|
official_proposals_enabled: Offizielle Vorschläge aktiviert
|
81
|
+
participatory_texts_enabled: Partizipative Texte aktiviert
|
80
82
|
proposal_answering_enabled: Angebotsantworten aktiviert
|
81
83
|
proposal_edit_before_minutes: Vorschläge können von Autoren bearbeitet werden, bevor diese vielen Minuten verstreichen
|
82
84
|
proposal_length: Maximale Länge des Vorschlagskörpers
|
@@ -183,29 +185,48 @@ de:
|
|
183
185
|
gamification:
|
184
186
|
badges:
|
185
187
|
accepted_proposals:
|
188
|
+
conditions:
|
189
|
+
- Wählen Sie den Bereich für die Teilnahme Ihrer Interessen mit der Einreichung von Vorschlägen aktiviert
|
190
|
+
- Versuchen Sie Vorschläge zu machen, die ausgeführt werden können. Auf diese Weise werden sie eher akzeptiert.
|
191
|
+
description: Dieses Abzeichen wird gewährt, wenn Sie aktiv an neuen Angeboten teilnehmen und diese angenommen werden.
|
186
192
|
description_another: Dieser Benutzer hat %{score} Vorschläge akzeptiert.
|
187
193
|
description_own: Sie haben %{score} Vorschläge angenommen.
|
188
|
-
explanation: Benutzer erhalten dieses Abzeichen, indem sie ihre Vorschläge annehmen lassen.
|
189
194
|
name: Akzeptierte Vorschläge
|
190
195
|
next_level_in: Erhalten Sie %{score} weitere Vorschläge, um das nächste Level zu erreichen!
|
191
196
|
unearned_another: Dieser Benutzer hat noch keine Vorschläge erhalten.
|
192
197
|
unearned_own: Sie haben noch keine Vorschläge erhalten.
|
193
198
|
proposal_votes:
|
199
|
+
conditions:
|
200
|
+
- Stöbern Sie und verbringen Sie etwas Zeit, die Vorschläge anderer Leute zu lesen
|
201
|
+
- Unterstützen Sie die Vorschläge, die Sie mögen oder interessant finden
|
202
|
+
description: Dieses Abzeichen wird gewährt, wenn Sie Vorschläge anderer Personen unterstützen.
|
194
203
|
description_another: Dieser Benutzer hat %{score} Vorschläge unterstützt.
|
195
204
|
description_own: Sie haben %{score} Vorschläge unterstützt.
|
196
|
-
explanation: Benutzer erhalten dieses Abzeichen, indem sie Vorschläge unterstützen.
|
197
205
|
name: Vorschlag unterstützt
|
198
206
|
next_level_in: Unterstütze %{score} weitere Vorschläge, um das nächste Level zu erreichen!
|
199
207
|
unearned_another: Dieser Benutzer hat noch keine Vorschläge unterstützt.
|
200
208
|
unearned_own: Sie haben noch keine Vorschläge unterstützt.
|
201
209
|
proposals:
|
210
|
+
conditions:
|
211
|
+
- Wählen Sie den Bereich für die Teilnahme Ihrer Interessen mit der Einreichung von Vorschlägen aktiviert
|
212
|
+
- Erstellen Sie einen neuen Vorschlag
|
213
|
+
description: Dieses Abzeichen wird gewährt, wenn Sie aktiv an neuen Vorschlägen teilnehmen.
|
202
214
|
description_another: Dieser Benutzer hat %{score} Vorschläge erstellt.
|
203
215
|
description_own: Sie haben %{score} Vorschläge erstellt.
|
204
|
-
explanation: Benutzer erhalten dieses Abzeichen, indem sie Vorschläge erstellen.
|
205
216
|
name: Vorschläge
|
206
217
|
next_level_in: Erstellen Sie %{score} weitere Vorschläge, um das nächste Level zu erreichen!
|
207
218
|
unearned_another: Dieser Benutzer hat noch keine Vorschläge erstellt.
|
208
219
|
unearned_own: Sie haben noch keine Vorschläge erstellt.
|
220
|
+
metrics:
|
221
|
+
accepted_proposals:
|
222
|
+
object: Vorschläge
|
223
|
+
title: Akzeptierte Vorschläge
|
224
|
+
proposals:
|
225
|
+
object: Vorschläge
|
226
|
+
title: Vorschläge
|
227
|
+
votes:
|
228
|
+
object: Stimmen
|
229
|
+
title: Stimmen
|
209
230
|
participatory_processes:
|
210
231
|
participatory_process_groups:
|
211
232
|
highlighted_proposals:
|
@@ -217,8 +238,10 @@ de:
|
|
217
238
|
proposals:
|
218
239
|
actions:
|
219
240
|
answer: Antworten
|
241
|
+
edit_proposal: Angebot bearbeiten
|
220
242
|
import: Importieren von einer anderen Komponente
|
221
243
|
new: Neuer Vorschlag
|
244
|
+
participatory_texts: Partizipative Texte
|
222
245
|
private_notes: Private Notizen
|
223
246
|
title: Aktionen
|
224
247
|
admin:
|
@@ -230,6 +253,28 @@ de:
|
|
230
253
|
models:
|
231
254
|
proposal:
|
232
255
|
name: Vorschlag
|
256
|
+
participatory_texts:
|
257
|
+
bulk-actions:
|
258
|
+
import_doc: Dokument importieren
|
259
|
+
import:
|
260
|
+
invalid: Das Formular ist ungültig!
|
261
|
+
success: Herzlichen Glückwunsch, die folgenden Abschnitte wurden aus dem importierten Dokument analysiert, sie wurden in Vorschläge konvertiert. Jetzt können Sie alles überprüfen und anpassen, bevor Sie es veröffentlichen.
|
262
|
+
index:
|
263
|
+
info_1: Die folgenden Abschnitte wurden aus dem importierten Dokument analysiert, sie wurden in Vorschläge konvertiert. Jetzt können Sie alles überprüfen und anpassen, bevor Sie es veröffentlichen.
|
264
|
+
publish_document: Dokument veröffentlichen
|
265
|
+
title: VORSCHAU TEILNEHMERTEXT
|
266
|
+
new_import:
|
267
|
+
bottom_hint: "(Sie können Dokumentabschnitte in der Vorschau anzeigen und sortieren.)"
|
268
|
+
document_legend: 'Fügen Sie ein Dokument mit weniger als 2 MB hinzu, wobei jeder Abschnitt bis zu 3 Ebenen tief in Vorschläge zerlegt wird. Unterstützte Formate sind: Markdown'
|
269
|
+
title: DOKUMENT HINZUFÜGEN
|
270
|
+
upload_document: Dokument hochladen
|
271
|
+
publish:
|
272
|
+
invalid: Vorschläge konnten nicht veröffentlicht werden
|
273
|
+
success: Alle Vorschläge wurden veröffentlicht
|
274
|
+
sections:
|
275
|
+
article: "<em>Artikel</em>"
|
276
|
+
section: "<em>Abschnitt:</em> <strong>%{title}</strong>"
|
277
|
+
sub-section: "<em>Unterabschnitt:</em> %{title}"
|
233
278
|
proposal_answers:
|
234
279
|
edit:
|
235
280
|
accepted: Akzeptiert
|
@@ -253,6 +298,9 @@ de:
|
|
253
298
|
create:
|
254
299
|
invalid: Beim Erstellen dieses Angebots ist ein Problem aufgetreten
|
255
300
|
success: Angebot erfolgreich erstellt
|
301
|
+
edit:
|
302
|
+
title: Angebot aktualisieren
|
303
|
+
update: Aktualisieren
|
256
304
|
form:
|
257
305
|
attachment_legend: "(Optional) Fügen Sie einen Anhang hinzu"
|
258
306
|
select_a_category: Wählen Sie eine Kategorie
|
@@ -260,7 +308,12 @@ de:
|
|
260
308
|
actions: Aktionen
|
261
309
|
cancel: Stornieren
|
262
310
|
change_category: Kategorie ändern
|
311
|
+
merge: Verschmelze zu einem neuen
|
312
|
+
merge_button: Verschmelzen
|
313
|
+
select_component: Wählen Sie eine Komponente aus
|
263
314
|
selected: ausgewählt
|
315
|
+
split: Split-Vorschläge
|
316
|
+
split_button: Teilt
|
264
317
|
title: Vorschläge
|
265
318
|
update: Aktualisieren
|
266
319
|
new:
|
@@ -280,6 +333,14 @@ de:
|
|
280
333
|
no_components: In diesem partizipatorischen Bereich gibt es keine weiteren Vorschlagskomponenten, aus denen die Vorschläge importiert werden könnten.
|
281
334
|
select_component: Bitte wählen Sie eine Komponente aus
|
282
335
|
select_states: Überprüfen Sie die Status der zu importierenden Vorschläge
|
336
|
+
proposals_merges:
|
337
|
+
create:
|
338
|
+
invalid: Beim Zusammenführen der ausgewählten Vorschläge ist ein Fehler aufgetreten.
|
339
|
+
success: Erfolgreich die Vorschläge in eine neue zusammengeführt.
|
340
|
+
proposals_splits:
|
341
|
+
create:
|
342
|
+
invalid: Beim Teilen der ausgewählten Vorschläge ist ein Fehler aufgetreten.
|
343
|
+
success: Die Vorschläge wurden erfolgreich in neue aufgeteilt.
|
283
344
|
shared:
|
284
345
|
info_proposal:
|
285
346
|
body: Karosserie
|
@@ -290,6 +351,7 @@ de:
|
|
290
351
|
proposal:
|
291
352
|
answer: "%{user_name} beantwortete den %{resource_name} Vorschlag auf den %{space_name} Feldern"
|
292
353
|
create: "%{user_name} hat den %{resource_name} Vorschlag auf den %{space_name} Feldern als offizieller Vorschlag erstellt"
|
354
|
+
update: "%{user_name} aktualisiert den %{resource_name} offiziellen Vorschlag für die %{space_name} Flächen"
|
293
355
|
proposal_note:
|
294
356
|
create: "%{user_name} eine private Notiz zu dem %{resource_name} Vorschlag auf dem %{space_name} Feld hinterlassen"
|
295
357
|
answers:
|
@@ -418,6 +480,8 @@ de:
|
|
418
480
|
destroy_draft:
|
419
481
|
error: Es gab Fehler beim Löschen des Angebotsentwurfs.
|
420
482
|
success: Der Angebotsentwurf wurde erfolgreich gelöscht.
|
483
|
+
last_activity:
|
484
|
+
new_proposal_at_html: "<span>Neuer Vorschlag bei %{link}</span>"
|
421
485
|
models:
|
422
486
|
collaborative_draft:
|
423
487
|
fields:
|
@@ -566,6 +630,10 @@ de:
|
|
566
630
|
voting_rules:
|
567
631
|
can_accumulate_supports_beyond_threshold:
|
568
632
|
description: Jeder Vorschlag kann mehr als %{limit} Unterstützungen sammeln
|
633
|
+
minimum_votes_per_user:
|
634
|
+
description: Sie müssen mindestens 3 Stimmen unter verschiedenen Vorschlägen verteilen.
|
635
|
+
given_enough_votes: Du hast genug Unterstützung gegeben.
|
636
|
+
supports_remaining: Sie müssen %{remaining_votes} weitere Vorschläge abgeben, damit Ihre Stimmen berücksichtigt werden.
|
569
637
|
proposal_limit:
|
570
638
|
description: Sie können bis zu %{limit} Vorschläge erstellen.
|
571
639
|
threshold_per_proposal:
|