decidim-proposals 0.28.0 → 0.28.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +1 -1
- data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +2 -2
- data/app/controllers/concerns/decidim/proposals/orderable.rb +1 -1
- data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +1 -1
- data/app/helpers/decidim/proposals/application_helper.rb +1 -1
- data/app/models/decidim/proposals/proposal.rb +2 -14
- data/app/models/decidim/proposals/valuation_assignment.rb +2 -1
- data/app/packs/entrypoints/participatory_texts_admin.js +2 -0
- data/app/packs/src/decidim/proposals/admin/proposals.js +7 -0
- data/app/packs/stylesheets/decidim/proposals/admin/participatory_texts.scss +23 -0
- data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -5
- data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +1 -3
- data/app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb +1 -1
- data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +8 -5
- data/app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb +3 -3
- data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/edit.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/index.html.erb +4 -2
- data/app/views/decidim/proposals/admin/proposals/new.html.erb +2 -2
- data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +2 -1
- data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +2 -2
- data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +4 -2
- data/app/views/decidim/proposals/proposals/compare.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/preview.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/show.html.erb +2 -2
- data/config/assets.rb +1 -0
- data/config/locales/ar.yml +2 -10
- data/config/locales/bg.yml +718 -1
- data/config/locales/ca.yml +34 -34
- data/config/locales/cs.yml +5 -8
- data/config/locales/de.yml +10 -10
- data/config/locales/el.yml +0 -8
- data/config/locales/en.yml +4 -4
- data/config/locales/es-MX.yml +11 -11
- data/config/locales/es-PY.yml +11 -11
- data/config/locales/es.yml +23 -23
- data/config/locales/eu.yml +9 -9
- data/config/locales/fi-plain.yml +9 -9
- data/config/locales/fi.yml +8 -8
- data/config/locales/fr-CA.yml +11 -11
- data/config/locales/fr.yml +11 -11
- data/config/locales/ga-IE.yml +6 -0
- data/config/locales/gl.yml +2 -9
- data/config/locales/he-IL.yml +14 -0
- data/config/locales/hu.yml +11 -12
- data/config/locales/id-ID.yml +1 -4
- data/config/locales/is-IS.yml +4 -5
- data/config/locales/it.yml +4 -7
- data/config/locales/ja.yml +27 -21
- data/config/locales/lt.yml +0 -8
- data/config/locales/lv.yml +1 -4
- data/config/locales/nl.yml +5 -12
- data/config/locales/no.yml +1 -8
- data/config/locales/pl.yml +168 -5
- data/config/locales/pt-BR.yml +41 -5
- data/config/locales/pt.yml +1 -8
- data/config/locales/ro-RO.yml +1 -7
- data/config/locales/ru.yml +6 -5
- data/config/locales/sk.yml +5 -8
- data/config/locales/sv.yml +3 -11
- data/config/locales/tr-TR.yml +10 -8
- data/config/locales/uk.yml +6 -5
- data/config/locales/zh-CN.yml +1 -4
- data/config/locales/zh-TW.yml +0 -8
- data/db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb +16 -0
- data/decidim-proposals.gemspec +47 -0
- data/lib/decidim/proposals/component.rb +2 -4
- data/lib/decidim/proposals/engine.rb +2 -2
- data/lib/decidim/proposals/proposal_serializer.rb +52 -0
- data/lib/decidim/proposals/seeds.rb +5 -1
- data/lib/decidim/proposals/test/factories.rb +75 -85
- data/lib/decidim/proposals/valuatable.rb +2 -1
- data/lib/decidim/proposals/version.rb +1 -1
- metadata +28 -26
- data/app/presenters/decidim/proposals/log/resource_presenter.rb +0 -22
- data/config/brakeman.ignore +0 -63
- data/config/environment.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8718c7a21c7d5b239eb3c3e92285579ea84d134ef432258b4b0e840b09a2556c
|
4
|
+
data.tar.gz: 41c17711b34bb29d133e040275fb34be7840cfab5375303b583cb7d2f4957e89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08b53946fb8f1043a0eafb6363ea5c0b9550f0c521b16f11ab396a817d6b5f4c23f6ab464113b05e05ac09f4e3312c7b5165bb4bc248e5b6d78388e21fd67d99'
|
7
|
+
data.tar.gz: e03c97bb74d5a5aec2a2e494a7bf4f6f0d91dc2bdfd21f502a4bf03198ea12eccb4ae911d22391087f5a0ea62c4946fe78e0f5edc466ea612ca18710de5aafe9
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div class="content-block__title">
|
2
2
|
<h2 class="h2 decorator">
|
3
|
-
<%= single_component? ?
|
3
|
+
<%= single_component? ? decidim_escape_translated(model.name) : t("decidim.components.proposals.name") %>
|
4
4
|
</h2>
|
5
5
|
<div class="label text-lg"><%= proposals_count %></div>
|
6
6
|
<% if single_component? %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if amendmendment_creation_enabled? || visible_emendations.any? %>
|
2
|
-
<%=
|
2
|
+
<%= action_authorized_link_to :amend, amend_resource_path, resource: model, disabled: amend_button_disabled?, class: "proposal-participatory__button" do %>
|
3
3
|
<%= icon "chat-1-line" %>
|
4
4
|
<span><%= t("amend", scope: "decidim.proposals.participatory_text_proposal.buttons") %></span>
|
5
5
|
<div class="label"><%= visible_emendations.count %></div>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<div class="label"><%= model.comments_count %></div>
|
15
15
|
<% end %>
|
16
16
|
<% else %>
|
17
|
-
<%=
|
17
|
+
<%= action_authorized_link_to :comment, resource_comments_path, resource: model, class: "proposal-participatory__button" do %>
|
18
18
|
<%= icon "chat-1-line" %>
|
19
19
|
<span><%= t("comment", scope: "decidim.proposals.participatory_text_proposal.buttons") %></span>
|
20
20
|
<div class="label"><%= model.comments_count %></div>
|
@@ -35,7 +35,7 @@ module Decidim
|
|
35
35
|
|
36
36
|
def fetch_default_order
|
37
37
|
default_order = current_settings.default_sort_order.presence || component_settings.default_sort_order
|
38
|
-
return order_by_default if default_order == "
|
38
|
+
return order_by_default if default_order == "automatic"
|
39
39
|
|
40
40
|
possible_orders.include?(default_order) ? default_order : order_by_default
|
41
41
|
end
|
@@ -47,7 +47,7 @@ module Decidim
|
|
47
47
|
def update
|
48
48
|
enforce_permission_to :manage, :participatory_texts
|
49
49
|
|
50
|
-
form_params = params.require(:preview_participatory_text)
|
50
|
+
form_params = params.require(:preview_participatory_text)
|
51
51
|
@preview_form = form(Admin::PreviewParticipatoryTextForm).from_params(proposals: form_params[:proposals_attributes]&.values)
|
52
52
|
|
53
53
|
if params.has_key?("save_draft")
|
@@ -139,7 +139,7 @@ module Decidim
|
|
139
139
|
end
|
140
140
|
|
141
141
|
def show_voting_rules?
|
142
|
-
return false
|
142
|
+
return false if !votes_enabled? || current_settings.votes_blocked?
|
143
143
|
|
144
144
|
return true if vote_limit_enabled?
|
145
145
|
return true if threshold_per_proposal_enabled?
|
@@ -97,11 +97,11 @@ module Decidim
|
|
97
97
|
}
|
98
98
|
|
99
99
|
scope :sort_by_valuation_assignments_count_asc, lambda {
|
100
|
-
order(
|
100
|
+
order(valuation_assignments_count: :asc)
|
101
101
|
}
|
102
102
|
|
103
103
|
scope :sort_by_valuation_assignments_count_desc, lambda {
|
104
|
-
order(
|
104
|
+
order(valuation_assignments_count: :desc)
|
105
105
|
}
|
106
106
|
|
107
107
|
scope_search_multi :with_any_state, [:accepted, :rejected, :evaluating, :state_not_published, :state_published]
|
@@ -334,18 +334,6 @@ module Decidim
|
|
334
334
|
ProposalSearch.new(self, params, options)
|
335
335
|
end
|
336
336
|
|
337
|
-
# Defines the base query so that ransack can actually sort by this value
|
338
|
-
def self.sort_by_valuation_assignments_count_nulls_last_query
|
339
|
-
<<-SQL.squish
|
340
|
-
(
|
341
|
-
SELECT COUNT(decidim_proposals_valuation_assignments.id)
|
342
|
-
FROM decidim_proposals_valuation_assignments
|
343
|
-
WHERE decidim_proposals_valuation_assignments.decidim_proposal_id = decidim_proposals_proposals.id
|
344
|
-
GROUP BY decidim_proposals_valuation_assignments.decidim_proposal_id
|
345
|
-
)
|
346
|
-
SQL
|
347
|
-
end
|
348
|
-
|
349
337
|
# method to filter by assigned valuator role ID
|
350
338
|
def self.valuator_role_ids_has(value)
|
351
339
|
query = <<-SQL.squish
|
@@ -9,7 +9,8 @@ module Decidim
|
|
9
9
|
include Decidim::Traceable
|
10
10
|
include Decidim::Loggable
|
11
11
|
|
12
|
-
belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: "Decidim::Proposals::Proposal"
|
12
|
+
belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: "Decidim::Proposals::Proposal",
|
13
|
+
counter_cache: true
|
13
14
|
belongs_to :valuator_role, polymorphic: true
|
14
15
|
|
15
16
|
def self.log_presenter_class_for(_log)
|
@@ -47,6 +47,12 @@ $(() => {
|
|
47
47
|
}
|
48
48
|
}
|
49
49
|
|
50
|
+
const resetForms = function() {
|
51
|
+
$("#js-bulk-actions-dropdown button").each(function() {
|
52
|
+
$(`#js-form-${$(this).data("action")}`)[0].reset();
|
53
|
+
})
|
54
|
+
}
|
55
|
+
|
50
56
|
const showOtherActionsButtons = function() {
|
51
57
|
$("#js-other-actions-wrapper").removeClass("hide");
|
52
58
|
}
|
@@ -68,6 +74,7 @@ $(() => {
|
|
68
74
|
window.showOtherActionsButtons = showOtherActionsButtons;
|
69
75
|
window.hideOtherActionsButtons = hideOtherActionsButtons;
|
70
76
|
window.hideBulkActionForms = hideBulkActionForms;
|
77
|
+
window.resetForms = resetForms;
|
71
78
|
|
72
79
|
if ($(".js-bulk-action-form").length) {
|
73
80
|
hideBulkActionForms();
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#participatory-text {
|
2
|
+
li {
|
3
|
+
@apply py-4 hover:cursor-move;
|
4
|
+
|
5
|
+
a {
|
6
|
+
@apply font-bold flex;
|
7
|
+
|
8
|
+
> svg {
|
9
|
+
@apply text-2xl fill-black;
|
10
|
+
}
|
11
|
+
|
12
|
+
&[aria-expanded="true"] {
|
13
|
+
& > svg {
|
14
|
+
@apply rotate-90 transition-transform;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
span {
|
19
|
+
@apply ml-auto;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
@@ -15,13 +15,9 @@ module Decidim
|
|
15
15
|
class ProposalPresenter < Decidim::Log::BasePresenter
|
16
16
|
private
|
17
17
|
|
18
|
-
def resource_presenter
|
19
|
-
@resource_presenter ||= Decidim::Proposals::Log::ResourcePresenter.new(action_log.resource, h, action_log.extra["resource"])
|
20
|
-
end
|
21
|
-
|
22
18
|
def diff_fields_mapping
|
23
19
|
{
|
24
|
-
title:
|
20
|
+
title: :i18n,
|
25
21
|
body: "Decidim::Proposals::AdminLog::ValueTypes::ProposalTitleBodyPresenter",
|
26
22
|
state: "Decidim::Proposals::AdminLog::ValueTypes::ProposalStatePresenter",
|
27
23
|
answered_at: :date,
|
data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb
CHANGED
@@ -5,12 +5,10 @@ module Decidim
|
|
5
5
|
module AdminLog
|
6
6
|
module ValueTypes
|
7
7
|
class ProposalTitleBodyPresenter < Decidim::Log::ValueTypes::DefaultPresenter
|
8
|
-
include Decidim::TranslatableAttributes
|
9
|
-
|
10
8
|
def present
|
11
9
|
return unless value
|
12
10
|
|
13
|
-
translated_value =
|
11
|
+
translated_value = h.decidim_escape_translated(value)
|
14
12
|
return if translated_value.blank?
|
15
13
|
|
16
14
|
renderer = Decidim::ContentRenderers::HashtagRenderer.new(translated_value)
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
2
|
|
3
3
|
<div class="item_show__header">
|
4
|
-
<
|
4
|
+
<h1 class="item_show__header-title">
|
5
5
|
<%= t(".title") %>
|
6
6
|
<%= render partial: "bulk-actions" %>
|
7
|
-
</
|
7
|
+
</h1>
|
8
8
|
</div>
|
9
9
|
<% if @drafts.any? %>
|
10
10
|
<div class="item__edit item__edit-1col">
|
@@ -15,6 +15,7 @@
|
|
15
15
|
<div class="row column">
|
16
16
|
<p class="mt-3"><%= t(".info_1") %></p>
|
17
17
|
<ul id="participatory-text" class="draggable-list js-connect js-list-actives accordion mb-m mt-2.5 ml-2.5 mr-2.5"
|
18
|
+
data-component="accordion"
|
18
19
|
data-accordion
|
19
20
|
data-sort-url="#"
|
20
21
|
data-multi-expand="true"
|
@@ -22,11 +23,13 @@
|
|
22
23
|
<%= form.fields_for(:proposals) do |prop_form| %>
|
23
24
|
<% proposal = @drafts[prop_form.index] %>
|
24
25
|
|
25
|
-
<li class="
|
26
|
-
<a
|
26
|
+
<li class="draggable-content is-active" data-accordion-item draggable="true">
|
27
|
+
<a data-open="true" data-controls="article-<%= proposal.id %>">
|
28
|
+
<%= icon "arrow-right-s-line" %>
|
29
|
+
<%= preview_participatory_text_section_title(proposal) %>
|
27
30
|
<span class="mr-m"><%= icon "menu-line", class: "fill-black" %></span>
|
28
31
|
</a>
|
29
|
-
<div
|
32
|
+
<div data-tab-content id="article-<%= proposal.id %>">
|
30
33
|
<%= render "article-preview", { form: prop_form, proposal: } %>
|
31
34
|
</div>
|
32
35
|
</li>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
2
|
<div class="item_show__header">
|
3
|
-
<
|
3
|
+
<h1 class="item_show__header-title">
|
4
4
|
<%= t(".title") %>
|
5
|
-
</
|
5
|
+
</h1>
|
6
6
|
</div>
|
7
7
|
<div class="item__edit item__edit-1col">
|
8
8
|
<div class="item__edit-form">
|
@@ -19,7 +19,7 @@
|
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<div class="row column">
|
22
|
-
<%= form.upload :document,
|
22
|
+
<%= form.upload :document, help_text: t(".document_legend", valid_mime_types: mime_types_with_document_examples).html_safe, button_class: "button button__sm button__transparent-secondary" %>
|
23
23
|
</div>
|
24
24
|
</div>
|
25
25
|
</div>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
2
|
<div class="item_show__header">
|
3
|
-
<
|
3
|
+
<h1 class="item_show__header-title">
|
4
4
|
<%= t(".title") %>
|
5
|
-
</
|
5
|
+
</h1>
|
6
6
|
</div>
|
7
7
|
<div class="item__edit item__edit-1col">
|
8
8
|
<div class="item__edit-form">
|
@@ -1,14 +1,16 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
2
|
<div class="card">
|
3
3
|
<div class="item_show__header">
|
4
|
-
<
|
4
|
+
<h1 class="item_show__header-title">
|
5
5
|
<div>
|
6
6
|
<%= t(".title") %>
|
7
7
|
<span id="js-selected-proposals-count" class="component-counter component-counter--inline" title="<%= t("decidim.proposals.admin.proposals.index.selected") %>"></span>
|
8
8
|
</div>
|
9
|
+
<div class="flex items-center gap-x-4">
|
9
10
|
<%= render partial: "bulk-actions" %>
|
10
11
|
<%= render partial: "decidim/admin/components/resource_action" %>
|
11
|
-
|
12
|
+
</div>
|
13
|
+
</h1>
|
12
14
|
</div>
|
13
15
|
<%= admin_filter_selector(:proposals) %>
|
14
16
|
<div class="table-scroll mt-16">
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<% add_decidim_page_title(t(".title")) %>
|
2
2
|
<div class="item_show__header">
|
3
|
-
<
|
3
|
+
<h1 class="item_show__header-title">
|
4
4
|
<%= t(".title") %>
|
5
|
-
</
|
5
|
+
</h1>
|
6
6
|
</div>
|
7
7
|
<div class="item__edit item__edit-1col">
|
8
8
|
<div class="item__edit-form">
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<% end %>
|
27
27
|
|
28
28
|
<div class="layout-author">
|
29
|
-
<%= cell "decidim/coauthorships", @collaborative_draft %>
|
29
|
+
<%= cell "decidim/coauthorships", @collaborative_draft, context_actions: [] %>
|
30
30
|
|
31
31
|
<% if @collaborative_draft.state %>
|
32
32
|
<span class="<%= collaborative_drafts_state_class(@collaborative_draft.state) %> label">
|
@@ -10,7 +10,10 @@
|
|
10
10
|
<% if (@proposal.amendable? && allowed_to?(:edit, :proposal, proposal: @proposal)) || (amendments_enabled? && @proposal.amendable? && current_component.current_settings.amendment_creation_enabled && can_participate_in_private_space?) || amendments_enabled? && can_react_to_emendation?(@proposal) || @proposal.withdrawable_by?(current_user) %>
|
11
11
|
<section class="layout-aside__section layout-aside__buttons">
|
12
12
|
<% if @proposal.amendable? && allowed_to?(:edit, :proposal, proposal: @proposal) %>
|
13
|
-
<%= link_to
|
13
|
+
<%= link_to edit_proposal_path(@proposal), class: "button button__sm button__transparent-secondary w-full" do %>
|
14
|
+
<span><%= t("edit_proposal", scope: "decidim.proposals.proposals.show") %></span>
|
15
|
+
<%= icon "pencil-line" %>
|
16
|
+
<% end %>
|
14
17
|
<% else %>
|
15
18
|
<%= amend_button_for @proposal %>
|
16
19
|
<% end %>
|
@@ -22,7 +25,6 @@
|
|
22
25
|
<% if @proposal.withdrawable_by?(current_user) %>
|
23
26
|
<%= action_authorized_link_to :withdraw, withdraw_proposal_path(@proposal), method: :put, class: "button button__sm button__transparent-secondary w-full", title: t("withdraw_btn_hint", scope: "decidim.proposals.proposals.show" ), data: { confirm: t("withdraw_confirmation_html", scope: "decidim.proposals.proposals.show" ) } do %>
|
24
27
|
<span><%= t("withdraw_proposal", scope: "decidim.proposals.proposals.show") %></span>
|
25
|
-
<%= icon "pencil-line" %>
|
26
28
|
<% end %>
|
27
29
|
<% end %>
|
28
30
|
</section>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<h2 class="h3 text-secondary"><%= present(@proposal).title(links: true, html_escape: true) %></h2>
|
12
12
|
|
13
13
|
<% unless component_settings.participatory_texts_enabled? %>
|
14
|
-
<%= cell "decidim/coauthorships", @proposal %>
|
14
|
+
<%= cell "decidim/coauthorships", @proposal, context_actions: [] %>
|
15
15
|
<% end %>
|
16
16
|
|
17
17
|
<div class="editor-content">
|
@@ -47,10 +47,10 @@ extra_admin_link(
|
|
47
47
|
|
48
48
|
<% unless component_settings.participatory_texts_enabled? %>
|
49
49
|
<div class="layout-author">
|
50
|
-
<%= cell "decidim/coauthorships", @proposal %>
|
50
|
+
<%= cell "decidim/coauthorships", @proposal, context_actions: [:date] %>
|
51
51
|
|
52
52
|
<% if not ["section","subsection"].include? @proposal.participatory_text_level %>
|
53
|
-
|
53
|
+
<%= cell("decidim/proposals/proposal_metadata", @proposal).state_item&.dig(:text) %>
|
54
54
|
<% end %>
|
55
55
|
</div>
|
56
56
|
<% end %>
|
data/config/assets.rb
CHANGED
@@ -5,5 +5,6 @@ base_path = File.expand_path("..", __dir__)
|
|
5
5
|
Decidim::Webpacker.register_path("#{base_path}/app/packs")
|
6
6
|
Decidim::Webpacker.register_entrypoints(
|
7
7
|
decidim_proposals: "#{base_path}/app/packs/entrypoints/decidim_proposals.js",
|
8
|
+
participatory_texts_admin: "#{base_path}/app/packs/entrypoints/participatory_texts_admin.js",
|
8
9
|
decidim_proposals_admin: "#{base_path}/app/packs/entrypoints/decidim_proposals_admin.js"
|
9
10
|
)
|
data/config/locales/ar.yml
CHANGED
@@ -157,9 +157,7 @@ ar:
|
|
157
157
|
comments_enabled: تم تمكين التعليقات
|
158
158
|
comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
|
159
159
|
default_sort_order: التصنيف الافتراضي للاقتراح
|
160
|
-
default_sort_order_help: الافتراضي يعني أنه إذا تم تمكين الدعم، سيتم عرض المقترحات عشوائياً، وإذا تم حظر الدعم، فسيتم فرزها حسب الأكثر دعم.
|
161
160
|
default_sort_order_options:
|
162
|
-
default: الافتراضي
|
163
161
|
most_commented: صاحبة الأكثر تعليقات
|
164
162
|
most_endorsed: صاحبة أكثر تأييدات
|
165
163
|
most_followed: صاحبة أكثر متابعات
|
@@ -186,7 +184,6 @@ ar:
|
|
186
184
|
proposal_wizard_step_1_help_text: اقتراح الاقتراح "إنشاء" نص مساعدة الخطوة
|
187
185
|
proposal_wizard_step_2_help_text: اقتراح الاقتراح "قارن" نص خطوة المساعدة
|
188
186
|
proposal_wizard_step_3_help_text: نص اقتراح "إكمال" تعليمات نص المعالج
|
189
|
-
proposal_wizard_step_4_help_text: اقتراح الاقتراح "نشر" نص تعليمات الخطوة
|
190
187
|
resources_permissions_enabled: يمكن تعيين أذونات الإجراءات لكل اقتراح
|
191
188
|
scope_id: نطاق
|
192
189
|
scopes_enabled: النطاقات مفعلة
|
@@ -211,9 +208,7 @@ ar:
|
|
211
208
|
creation_enabled: يمكن للمشارِكين إنشاء اقتراحات
|
212
209
|
creation_enabled_readonly: يتم تعطيل هذا الإعداد عند تفعيل وظيفة النصوص التشاركية. لتحميل الاقتراحات كنص تشاركي، يرجى النقر على زر النصوص التشاركية واتباع التعليمات.
|
213
210
|
default_sort_order: التصنيف الافتراضي للاقتراح
|
214
|
-
default_sort_order_help: الافتراضي يعني أنه إذا تم تمكين الدعم، سيتم عرض المقترحات عشوائياً، وإذا تم حظر الدعم، فسيتم فرزها حسب الأكثر دعم.
|
215
211
|
default_sort_order_options:
|
216
|
-
default: الافتراضي
|
217
212
|
most_commented: صاحبة الأكثر تعليقات
|
218
213
|
most_endorsed: صاحبة أكثر تأييدات
|
219
214
|
most_followed: صاحبة أكثر متابعات
|
@@ -281,7 +276,6 @@ ar:
|
|
281
276
|
notification_title: تم قبول اقتراحك <a href="%{resource_path}">%{resource_title}</a>.
|
282
277
|
follower:
|
283
278
|
email_intro: 'تم قبول الاقتراح "%{resource_title}". يمكنك قراءة الإجابة على هذه الصفحة:'
|
284
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
285
279
|
notification_title: لقد تم قبول المُقتَرح <a href="%{resource_path}">%{resource_title}</a>.
|
286
280
|
proposal_evaluating:
|
287
281
|
affected_user:
|
@@ -291,7 +285,6 @@ ar:
|
|
291
285
|
notification_title: يتم تقييم الاقتراح الخاص بك <a href="%{resource_path}">%{resource_title}</a>.
|
292
286
|
follower:
|
293
287
|
email_intro: 'الاقتراح "%{resource_title}" قيد التقييم حاليا. يمكنك التحقق من وجود إجابة على هذه الصفحة:'
|
294
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
295
288
|
notification_title: الاقتراح <a href="%{resource_path}">%{resource_title}</a> قيد التقييم الآن.
|
296
289
|
proposal_mentioned:
|
297
290
|
email_intro: تم ذكر اقتراحك "%{mentioned_proposal_title}" <a href="%{resource_url}">في هذا الفضاء</a> في التعليقات.
|
@@ -315,7 +308,6 @@ ar:
|
|
315
308
|
notification_title: تم رفض اقتراحك <a href="%{resource_path}">%{resource_title}</a>.
|
316
309
|
follower:
|
317
310
|
email_intro: 'تم رفض الاقتراح %{resource_title}. يمكنك قراءة الإجابة على ذلك على هذه الصفحة:'
|
318
|
-
email_outro: لقد تلقيت هذا الإشعار لأنك تتابع %{resource_title}. يمكنك إلغاء المتابعة على الرابط السابق.
|
319
311
|
notification_title: تم رفض الاقتراح <a href="%{resource_path}">%{resource_title}</a>.
|
320
312
|
proposal_update_category:
|
321
313
|
email_intro: 'قام المشرف بتحديث فئة اقتراحك "%{resource_title}" ، تحقق من ذلك في هذه الصفحة:'
|
@@ -472,7 +464,7 @@ ar:
|
|
472
464
|
accepted: وافقت
|
473
465
|
answer_proposal: إجابة
|
474
466
|
evaluating: تقييم
|
475
|
-
not_answered:
|
467
|
+
not_answered: بلا جواب
|
476
468
|
rejected: مرفوض
|
477
469
|
title: الإجابة على الاقتراح %{title}
|
478
470
|
proposal_notes:
|
@@ -864,7 +856,7 @@ ar:
|
|
864
856
|
step_1: إنشاء اقتراحك
|
865
857
|
step_2: قارن
|
866
858
|
step_3: إكمال
|
867
|
-
step_4:
|
859
|
+
step_4: نشر اقتراحك
|
868
860
|
title: خطوات إنشاء الاقتراحات
|
869
861
|
proposals_picker:
|
870
862
|
choose_proposals: اختيار الاقتراحات
|