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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/proposals/highlighted_proposals_for_component/show.erb +1 -1
  3. data/app/cells/decidim/proposals/participatory_text_proposal/buttons.erb +2 -2
  4. data/app/controllers/concerns/decidim/proposals/orderable.rb +1 -1
  5. data/app/controllers/decidim/proposals/admin/participatory_texts_controller.rb +1 -1
  6. data/app/helpers/decidim/proposals/application_helper.rb +1 -1
  7. data/app/models/decidim/proposals/proposal.rb +2 -14
  8. data/app/models/decidim/proposals/valuation_assignment.rb +2 -1
  9. data/app/packs/entrypoints/participatory_texts_admin.js +2 -0
  10. data/app/packs/src/decidim/proposals/admin/proposals.js +7 -0
  11. data/app/packs/stylesheets/decidim/proposals/admin/participatory_texts.scss +23 -0
  12. data/app/presenters/decidim/proposals/admin_log/proposal_presenter.rb +1 -5
  13. data/app/presenters/decidim/proposals/admin_log/value_types/proposal_title_body_presenter.rb +1 -3
  14. data/app/presenters/decidim/proposals/log/valuation_assignment_presenter.rb +1 -1
  15. data/app/views/decidim/proposals/admin/participatory_texts/index.html.erb +8 -5
  16. data/app/views/decidim/proposals/admin/participatory_texts/new_import.html.erb +3 -3
  17. data/app/views/decidim/proposals/admin/proposals/_proposal-tr.html.erb +1 -1
  18. data/app/views/decidim/proposals/admin/proposals/edit.html.erb +2 -2
  19. data/app/views/decidim/proposals/admin/proposals/index.html.erb +4 -2
  20. data/app/views/decidim/proposals/admin/proposals/new.html.erb +2 -2
  21. data/app/views/decidim/proposals/admin/proposals/update_attribute.js.erb +2 -1
  22. data/app/views/decidim/proposals/admin/proposals_imports/new.html.erb +2 -2
  23. data/app/views/decidim/proposals/collaborative_drafts/show.html.erb +1 -1
  24. data/app/views/decidim/proposals/proposals/_proposal_aside.html.erb +4 -2
  25. data/app/views/decidim/proposals/proposals/compare.html.erb +1 -1
  26. data/app/views/decidim/proposals/proposals/preview.html.erb +1 -1
  27. data/app/views/decidim/proposals/proposals/show.html.erb +2 -2
  28. data/config/assets.rb +1 -0
  29. data/config/locales/ar.yml +2 -10
  30. data/config/locales/bg.yml +718 -1
  31. data/config/locales/ca.yml +34 -34
  32. data/config/locales/cs.yml +5 -8
  33. data/config/locales/de.yml +10 -10
  34. data/config/locales/el.yml +0 -8
  35. data/config/locales/en.yml +4 -4
  36. data/config/locales/es-MX.yml +11 -11
  37. data/config/locales/es-PY.yml +11 -11
  38. data/config/locales/es.yml +23 -23
  39. data/config/locales/eu.yml +9 -9
  40. data/config/locales/fi-plain.yml +9 -9
  41. data/config/locales/fi.yml +8 -8
  42. data/config/locales/fr-CA.yml +11 -11
  43. data/config/locales/fr.yml +11 -11
  44. data/config/locales/ga-IE.yml +6 -0
  45. data/config/locales/gl.yml +2 -9
  46. data/config/locales/he-IL.yml +14 -0
  47. data/config/locales/hu.yml +11 -12
  48. data/config/locales/id-ID.yml +1 -4
  49. data/config/locales/is-IS.yml +4 -5
  50. data/config/locales/it.yml +4 -7
  51. data/config/locales/ja.yml +27 -21
  52. data/config/locales/lt.yml +0 -8
  53. data/config/locales/lv.yml +1 -4
  54. data/config/locales/nl.yml +5 -12
  55. data/config/locales/no.yml +1 -8
  56. data/config/locales/pl.yml +168 -5
  57. data/config/locales/pt-BR.yml +41 -5
  58. data/config/locales/pt.yml +1 -8
  59. data/config/locales/ro-RO.yml +1 -7
  60. data/config/locales/ru.yml +6 -5
  61. data/config/locales/sk.yml +5 -8
  62. data/config/locales/sv.yml +3 -11
  63. data/config/locales/tr-TR.yml +10 -8
  64. data/config/locales/uk.yml +6 -5
  65. data/config/locales/zh-CN.yml +1 -4
  66. data/config/locales/zh-TW.yml +0 -8
  67. data/db/migrate/20240404202756_add_valuation_assignments_count_to_decidim_proposals_proposals.rb +16 -0
  68. data/decidim-proposals.gemspec +47 -0
  69. data/lib/decidim/proposals/component.rb +2 -4
  70. data/lib/decidim/proposals/engine.rb +2 -2
  71. data/lib/decidim/proposals/proposal_serializer.rb +52 -0
  72. data/lib/decidim/proposals/seeds.rb +5 -1
  73. data/lib/decidim/proposals/test/factories.rb +75 -85
  74. data/lib/decidim/proposals/valuatable.rb +2 -1
  75. data/lib/decidim/proposals/version.rb +1 -1
  76. metadata +28 -26
  77. data/app/presenters/decidim/proposals/log/resource_presenter.rb +0 -22
  78. data/config/brakeman.ignore +0 -63
  79. data/config/environment.rb +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 963591788f589acc6e2f6bcc8225a171ee1c236160b875e7b69b4add7f5a846f
4
- data.tar.gz: 29957cde18ba150a37c33099bfb9641e79b3d7e1314e3f08038f6c11aaa9ea9e
3
+ metadata.gz: 8718c7a21c7d5b239eb3c3e92285579ea84d134ef432258b4b0e840b09a2556c
4
+ data.tar.gz: 41c17711b34bb29d133e040275fb34be7840cfab5375303b583cb7d2f4957e89
5
5
  SHA512:
6
- metadata.gz: 8cf69ac522bf200ee1a82ed4ba151a2d4fd415b5254dddb645c749c7b751d84821629298c14f9c15b8d477b2b0087bb54835c187ed1d47b34ce448c81c9db810
7
- data.tar.gz: f4c9b0b58a7c01cc657223ac32740e84cb9dba142d30ff3f74b2d470d31c601220d62202c21bdb21cbedab4379fb0205e5594489afc8812729d8e6e724c82240
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? ? translated_attribute(model.name) : t("decidim.components.proposals.name") %>
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
- <%= link_to amend_resource_path, disabled: amend_button_disabled?, class: "proposal-participatory__button" do %>
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
- <%= link_to resource_comments_path, class: "proposal-participatory__button" do %>
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 == "default"
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).permit!
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 unless votes_enabled?
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(Arel.sql("#{sort_by_valuation_assignments_count_nulls_last_query} ASC NULLS FIRST").to_s)
100
+ order(valuation_assignments_count: :asc)
101
101
  }
102
102
 
103
103
  scope :sort_by_valuation_assignments_count_desc, lambda {
104
- order(Arel.sql("#{sort_by_valuation_assignments_count_nulls_last_query} DESC NULLS LAST").to_s)
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)
@@ -0,0 +1,2 @@
1
+ require.context("../images", true)
2
+ import "stylesheets/decidim/proposals/admin/participatory_texts.scss"
@@ -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: "Decidim::Proposals::AdminLog::ValueTypes::ProposalTitleBodyPresenter",
20
+ title: :i18n,
25
21
  body: "Decidim::Proposals::AdminLog::ValueTypes::ProposalTitleBodyPresenter",
26
22
  state: "Decidim::Proposals::AdminLog::ValueTypes::ProposalStatePresenter",
27
23
  answered_at: :date,
@@ -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 = translated_attribute(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)
@@ -11,7 +11,7 @@ module Decidim
11
11
  # Returns an HTML-safe String.
12
12
  def present_resource_name
13
13
  if resource.present?
14
- Decidim::Proposals::ProposalPresenter.new(resource.proposal).title
14
+ resource.proposal.presenter.title(html_escape: true)
15
15
  else
16
16
  super
17
17
  end
@@ -1,10 +1,10 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
 
3
3
  <div class="item_show__header">
4
- <h2 class="item_show__header-title">
4
+ <h1 class="item_show__header-title">
5
5
  <%= t(".title") %>
6
6
  <%= render partial: "bulk-actions" %>
7
- </h2>
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="py-4 draggable-content <%= proposal.article? ? "is-active" : nil %>" data-accordion-item draggable="true">
26
- <a href="#" class="accordion-title font-bold mt-5"><%= preview_participatory_text_section_title(proposal) %>
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 class="accordion-content" data-tab-content>
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
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
 
21
21
  <div class="row column">
22
- <%= form.upload :document, label: t(".document_legend", valid_mime_types: mime_types_with_document_examples).html_safe, button_class: "button button__sm button__transparent-secondary" %>
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>
@@ -56,7 +56,7 @@
56
56
  </td>
57
57
 
58
58
  <td class="valuators-count">
59
- <%= proposal.valuation_assignments.count %>
59
+ <%= proposal.valuation_assignments.size %>
60
60
  </td>
61
61
 
62
62
  <td>
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -1,14 +1,16 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="card">
3
3
  <div class="item_show__header">
4
- <h2 class="item_show__header-title">
4
+ <h1 class="item_show__header-title">
5
5
  <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
- </h2>
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
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
  <div class="item__edit item__edit-1col">
8
8
  <div class="item__edit-form">
@@ -22,5 +22,6 @@
22
22
  window.hideBulkActionsButton();
23
23
  window.hideBulkActionForms();
24
24
  window.showOtherActionsButtons();
25
- window.selectedResourcesCountUpdate();
25
+ window.selectedProposalsCountUpdate();
26
+ window.resetForms();
26
27
  <% end %>
@@ -1,8 +1,8 @@
1
1
  <% add_decidim_page_title(t(".title")) %>
2
2
  <div class="item_show__header">
3
- <h2 class="item_show__header-title">
3
+ <h1 class="item_show__header-title">
4
4
  <%= t(".title") %>
5
- </h2>
5
+ </h1>
6
6
  </div>
7
7
 
8
8
  <div class="item__edit item__edit-1col">
@@ -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 t("edit_proposal", scope: "decidim.proposals.proposals.show"), edit_proposal_path(@proposal), class: "button button__sm button__transparent-secondary w-full" %>
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>
@@ -10,7 +10,7 @@
10
10
  <% if @similar_proposals.present? %>
11
11
  <div class="proposal__container my-10">
12
12
  <% @similar_proposals.each do |proposal| %>
13
- <%= card_for @proposal %>
13
+ <%= card_for proposal %>
14
14
  <% end %>
15
15
  </div>
16
16
  <% end %>
@@ -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
- <%== cell("decidim/proposals/proposal_metadata", @proposal).state_item&.dig(:text)&.html_safe %>
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
  )
@@ -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: اختيار الاقتراحات