decidim-consultations 0.20.0 → 0.23.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/decidim/consultations/icon.svg +1 -3
  3. data/app/assets/images/decidim/consultations/icon2.svg +1 -88
  4. data/app/assets/stylesheets/decidim/consultations/_question.scss +0 -6
  5. data/app/assets/stylesheets/decidim/consultations/consultations/_consultations-header.scss +0 -1
  6. data/app/cells/decidim/consultations/consultation_m/data.erb +1 -1
  7. data/app/cells/decidim/consultations/consultation_m/footer.erb +1 -1
  8. data/app/cells/decidim/consultations/content_blocks/highlighted_consultations/show.erb +3 -3
  9. data/app/commands/decidim/consultations/admin/update_consultation.rb +9 -4
  10. data/app/controllers/concerns/decidim/consultations/admin/filterable.rb +27 -0
  11. data/app/controllers/decidim/consultations/admin/consultations_controller.rb +2 -1
  12. data/app/forms/decidim/consultations/admin/consultation_form.rb +5 -6
  13. data/app/forms/decidim/consultations/admin/question_form.rb +5 -6
  14. data/app/models/decidim/consultation.rb +14 -0
  15. data/app/models/decidim/consultations/question.rb +12 -1
  16. data/app/models/decidim/consultations/response.rb +4 -0
  17. data/app/models/decidim/consultations/response_group.rb +4 -0
  18. data/app/permissions/decidim/consultations/permissions.rb +2 -0
  19. data/app/presenters/decidim/consultations/question_stats_presenter.rb +1 -1
  20. data/app/types/decidim/consultations/consultation_question_type.rb +57 -0
  21. data/app/types/decidim/consultations/consultation_type.rb +32 -0
  22. data/app/views/decidim/consultations/admin/consultations/index.html.erb +3 -2
  23. data/app/views/decidim/consultations/consultations/_consultation_card.html.erb +3 -3
  24. data/app/views/decidim/consultations/consultations/_consultation_details.html.erb +2 -2
  25. data/app/views/decidim/consultations/consultations/_filters.html.erb +9 -4
  26. data/app/views/decidim/consultations/consultations/_question.html.erb +2 -2
  27. data/app/views/decidim/consultations/consultations/index.html.erb +3 -3
  28. data/app/views/decidim/consultations/questions/_vote_button.html.erb +70 -67
  29. data/app/views/decidim/consultations/questions/_vote_modal.html.erb +1 -1
  30. data/app/views/decidim/consultations/questions/_vote_modal_confirm.html.erb +1 -1
  31. data/app/views/decidim/consultations/questions/show.html.erb +4 -4
  32. data/app/views/layouts/decidim/_question_components.html.erb +3 -3
  33. data/app/views/layouts/decidim/_question_header.html.erb +1 -1
  34. data/app/views/layouts/decidim/consultation.html.erb +1 -0
  35. data/config/locales/am-ET.yml +1 -0
  36. data/config/locales/ar.yml +29 -1
  37. data/config/locales/bg-BG.yml +1 -0
  38. data/config/locales/bg.yml +1 -0
  39. data/config/locales/ca.yml +16 -1
  40. data/config/locales/cs.yml +12 -9
  41. data/config/locales/da-DK.yml +1 -0
  42. data/config/locales/da.yml +1 -0
  43. data/config/locales/de.yml +82 -1
  44. data/config/locales/el-GR.yml +1 -0
  45. data/config/locales/el.yml +377 -0
  46. data/config/locales/en.yml +4 -1
  47. data/config/locales/eo.yml +1 -0
  48. data/config/locales/es-MX.yml +29 -1
  49. data/config/locales/es-PY.yml +29 -1
  50. data/config/locales/es.yml +29 -1
  51. data/config/locales/et-EE.yml +1 -0
  52. data/config/locales/et.yml +1 -0
  53. data/config/locales/eu.yml +0 -1
  54. data/config/locales/fi-plain.yml +4 -1
  55. data/config/locales/fi.yml +15 -12
  56. data/config/locales/fr-CA.yml +377 -0
  57. data/config/locales/fr.yml +5 -2
  58. data/config/locales/ga-IE.yml +1 -0
  59. data/config/locales/gl.yml +0 -1
  60. data/config/locales/hr-HR.yml +1 -0
  61. data/config/locales/hr.yml +1 -0
  62. data/config/locales/hu.yml +0 -1
  63. data/config/locales/id-ID.yml +0 -1
  64. data/config/locales/is-IS.yml +185 -0
  65. data/config/locales/is.yml +185 -0
  66. data/config/locales/it.yml +58 -55
  67. data/config/locales/ja-JP.yml +367 -0
  68. data/config/locales/ja.yml +367 -0
  69. data/config/locales/ko-KR.yml +1 -0
  70. data/config/locales/ko.yml +1 -0
  71. data/config/locales/lt-LT.yml +1 -0
  72. data/config/locales/lt.yml +1 -0
  73. data/config/locales/lv.yml +383 -0
  74. data/config/locales/mt-MT.yml +1 -0
  75. data/config/locales/mt.yml +1 -0
  76. data/config/locales/nl.yml +4 -1
  77. data/config/locales/no.yml +310 -1
  78. data/config/locales/om-ET.yml +1 -0
  79. data/config/locales/pl.yml +183 -102
  80. data/config/locales/pt-BR.yml +1 -2
  81. data/config/locales/pt.yml +156 -75
  82. data/config/locales/ro-RO.yml +338 -0
  83. data/config/locales/ru.yml +0 -1
  84. data/config/locales/sk-SK.yml +394 -0
  85. data/config/locales/sk.yml +393 -0
  86. data/config/locales/sl.yml +9 -0
  87. data/config/locales/so-SO.yml +1 -0
  88. data/config/locales/sr-CS.yml +1 -0
  89. data/config/locales/sv.yml +46 -12
  90. data/config/locales/ti-ER.yml +1 -0
  91. data/config/locales/tr-TR.yml +0 -1
  92. data/config/locales/uk.yml +0 -1
  93. data/config/locales/vi-VN.yml +1 -0
  94. data/config/locales/vi.yml +1 -0
  95. data/config/locales/zh-CN.yml +367 -0
  96. data/config/locales/zh-TW.yml +1 -0
  97. data/db/migrate/20200320105916_index_foreign_keys_in_decidim_consultations_votes.rb +7 -0
  98. data/db/migrate/20200827154143_add_commentable_counter_cache_to_consultations.rb +9 -0
  99. data/db/seeds/city.jpeg +0 -0
  100. data/db/seeds/city2.jpeg +0 -0
  101. data/lib/decidim/consultations/admin_engine.rb +1 -0
  102. data/lib/decidim/consultations/participatory_space.rb +19 -17
  103. data/lib/decidim/consultations/test/factories.rb +1 -0
  104. data/lib/decidim/consultations/version.rb +1 -1
  105. metadata +55 -13
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Consultations
5
+ # This type represents a consultation.
6
+ ConsultationType = GraphQL::ObjectType.define do
7
+ interfaces [
8
+ -> { Decidim::Core::ParticipatorySpaceInterface }
9
+ ]
10
+
11
+ name "Consultation"
12
+ description "A consultation"
13
+
14
+ field :subtitle, Decidim::Core::TranslatedFieldType, "The subtitle of this consultation"
15
+ field :description, Decidim::Core::TranslatedFieldType, "The description of this consultation"
16
+ field :slug, !types.String, "Slug of this consultation"
17
+ field :createdAt, !Decidim::Core::DateTimeType, "The time this consultation was created", property: :created_at
18
+ field :updatedAt, !Decidim::Core::DateTimeType, "The time this consultation was updated", property: :updated_at
19
+ field :publishedAt, !Decidim::Core::DateTimeType, "The time this consultation was published", property: :published_at
20
+
21
+ field :introductoryVideoUrl, types.String, "The introductory video url for this consultation", property: :introductory_video_url
22
+ field :introductoryImage, types.String, "The introductory image for this consultation", property: :introductory_image
23
+ field :bannerImage, types.String, "The banner image for this consultation", property: :banner_image
24
+ field :highlightedScope, Decidim::Core::ScopeApiType, "This is the highlighted scope of this consultation", property: :highlighted_scope
25
+ field :startVotingDate, Decidim::Core::DateType, "Start date of the voting for this consultation", property: :start_voting_date
26
+ field :endVotingDate, Decidim::Core::DateType, "End date of the voting for this consultation", property: :end_voting_date
27
+ field :resultsPublishedAt, Decidim::Core::DateType, "Date when the results have been published", property: :results_published_at
28
+
29
+ field :questions, types[Decidim::Consultations::ConsultationQuestionType], ""
30
+ end
31
+ end
32
+ end
@@ -1,4 +1,4 @@
1
- <div class="card" id="consultations">
1
+ <div class="card with-overflow" id="consultations">
2
2
  <div class="card-divider">
3
3
  <h2 class="card-title">
4
4
  <%= t "decidim.admin.titles.consultations" %>
@@ -6,13 +6,14 @@
6
6
  ["new", "consultation"], class: "button tiny button--title" if allowed_to? :create, :consultation %>
7
7
  </h2>
8
8
  </div>
9
+ <%= admin_filter_selector %>
9
10
  <div class="card-section">
10
11
  <div class="table-scroll">
11
12
  <table class="table-list">
12
13
  <thead>
13
14
  <tr>
14
15
  <th><%= t("models.consultation.fields.title", scope: "decidim.admin") %></th>
15
- <th><%= t("models.consultation.fields.created_at", scope: "decidim.admin") %></th>
16
+ <th><%= sort_link(query, :created_at, t("models.consultation.fields.created_at", scope: "decidim.admin"), default_order: :desc) %></th>
16
17
  <th class="table-list__actions">
17
18
  <%= t("models.consultation.fields.published", scope: "decidim.admin") %>
18
19
  </th>
@@ -1,12 +1,12 @@
1
1
  <div class="column">
2
- <article class="card card--process">
2
+ <div class="card card--process">
3
3
  <%= link_to consultation_path(consultation), class: "card__link" do %>
4
4
  <div class="card__image-top"
5
5
  style="background-image:url(<%= consultation.banner_image.url %>)"></div>
6
6
  <% end %>
7
7
  <div class="card__content">
8
8
  <%= link_to consultation_path(consultation), class: "card__link" do %>
9
- <h4 class="card__title"><%= translated_attribute consultation.title %></h4>
9
+ <span class="card__title"><%= translated_attribute consultation.title %></span>
10
10
  <% end %>
11
11
  <p class="card__desc">
12
12
  <%= decidim_sanitize html_truncate(translated_attribute(consultation.subtitle), length: 630, separator: "...") %>
@@ -20,5 +20,5 @@
20
20
  <% end %>
21
21
  </div>
22
22
  </div>
23
- </article>
23
+ </div>
24
24
  </div>
@@ -1,6 +1,6 @@
1
1
  <div class="row section" id="consultation-details">
2
2
  <div class="columns medium-6 large-5 large-push-1">
3
- <p class="lead"><%= decidim_sanitize translated_attribute consultation.description %></p>
3
+ <p class="lead"><%= decidim_sanitize translated_attribute(consultation.description), strip_tags: true %></p>
4
4
  </div>
5
5
  <div class="columns medium-6 large-5 large-pull-1">
6
6
  <% if consultation.introductory_video_url.blank? %>
@@ -9,7 +9,7 @@
9
9
  </div>
10
10
  <% else %>
11
11
  <div class="embed-container">
12
- <iframe src="<%= consultation.introductory_video_url %>" frameborder=0 allowfullscreen>
12
+ <iframe src="<%= consultation.introductory_video_url %>" allowfullscreen>
13
13
  </iframe>
14
14
  </div>
15
15
  <% end %>
@@ -1,3 +1,5 @@
1
+ <%= render partial: "decidim/shared/filter_form_help", locals: { skip_to_id: "consultations" } %>
2
+
1
3
  <%= filter_form_for filter do |form| %>
2
4
  <div class="filters__section">
3
5
  <div class="filters__search">
@@ -5,10 +7,12 @@
5
7
  <%= form.search_field :search_text,
6
8
  label: false,
7
9
  class: "input-group-field",
8
- placeholder: t("consultations.filters.search", scope: "decidim") %>
10
+ placeholder: t("consultations.filters.search", scope: "decidim"),
11
+ title: t("consultations.filters.search", scope: "decidim"),
12
+ data: { disable_dynamic_change: true } %>
9
13
  <div class="input-group-button">
10
- <button type="submit" class="button button--muted">
11
- <%= icon "magnifying-glass", aria_label: t("consultations.filters.search", scope: "decidim") %>
14
+ <button type="submit" class="button" aria-controls="consultations">
15
+ <%= icon "magnifying-glass", aria_label: t("consultations.filters.search", scope: "decidim"), role: "img" %>
12
16
  </button>
13
17
  </div>
14
18
  </div>
@@ -19,7 +23,8 @@
19
23
  options_for_state_filter,
20
24
  :first,
21
25
  :last,
22
- legend_title: t("consultations.filters.state", scope: "decidim") %>
26
+ { legend_title: t("consultations.filters.state", scope: "decidim") },
27
+ "aria-controls": "consultations" %>
23
28
 
24
29
  <%= hidden_field_tag :order, order, id: nil, class: "order_filter" %>
25
30
  <% end %>
@@ -1,4 +1,4 @@
1
- <article class="card consultations-card">
1
+ <div class="card consultations-card">
2
2
  <div class="row collapse card--process__row">
3
3
  <div class="columns mediumlarge-8 large-9 card--process__column">
4
4
  <div class="card__content">
@@ -35,4 +35,4 @@
35
35
  </div>
36
36
  </div>
37
37
  </div>
38
- </article>
38
+ </div>
@@ -11,9 +11,9 @@ edit_link(
11
11
  <div class="row columns">
12
12
  <div class="title-action">
13
13
  <div class="row collapse">
14
- <h2 id="consultations-count" class="title-action__title section-heading">
14
+ <h1 id="consultations-count" class="title-action__title section-heading">
15
15
  <%= render partial: "count", locals: { count: consultations.count } %>
16
- </h2>
16
+ </h1>
17
17
  </div>
18
18
  </div>
19
19
  </div>
@@ -32,4 +32,4 @@ edit_link(
32
32
  <% end %>
33
33
 
34
34
  <%= javascript_include_tag "decidim/filters" %>
35
- <%= javascript_include_tag "decidim/orders" %>
35
+ <%= javascript_include_tag "decidim/results_listing" %>
@@ -8,88 +8,91 @@
8
8
  </div>
9
9
  </div>
10
10
 
11
- <div class="row column question-vote-cabin">
12
- <div class="columns mediumlarge-4 show-for-mediumlarge previous-question">
13
- <%= display_next_previous_button(:previous, "float-left") %>
14
- </div>
15
- <div class="columns mediumlarge-4">
16
- <% if question.consultation.upcoming? %>
17
- <div class="card__button button expanded disabled">
18
- <div class="vote-button-caption"><%= t("questions.vote_button.vote", scope: "decidim") %></div>
19
- <div>
20
- <%= t "questions.vote_button.starting_from",
21
- scope: "decidim",
22
- date: l(question.start_voting_date) %>
23
- </div>
24
- </div>
25
- <% elsif question.consultation.finished? && signed_in? && question.voted_by?(current_user) %>
26
- <%= button_to decidim_consultations.question_question_votes_path(question),
27
- method: :delete,
28
- remote: true,
29
- data: { disable: true },
30
- class: "card__button button expanded success disabled",
31
- id: "unvote_button" do %>
32
- <div class="vote-button-caption">
33
- <%= t("questions.vote_button.already_voted", scope: "decidim") %>
11
+ <%# Check if controller has questions_helper %>
12
+ <% if defined? display_next_previous_button %>
13
+ <div class="row column question-vote-cabin">
14
+ <div class="columns mediumlarge-4 show-for-mediumlarge previous-question">
15
+ <%= display_next_previous_button(:previous, "float-left") %>
16
+ </div>
17
+ <div class="columns mediumlarge-4">
18
+ <% if question.consultation.upcoming? %>
19
+ <div class="card__button button expanded disabled">
20
+ <div class="vote-button-caption"><%= t("questions.vote_button.vote", scope: "decidim") %></div>
21
+ <div>
22
+ <%= t "questions.vote_button.starting_from",
23
+ scope: "decidim",
24
+ date: l(question.start_voting_date) %>
25
+ </div>
34
26
  </div>
35
- <% end %>
36
- <% elsif signed_in? && question.consultation.active? %>
37
- <% if allowed_to? :unvote, :question, question: question %>
27
+ <% elsif question.consultation.finished? && signed_in? && question.voted_by?(current_user) %>
38
28
  <%= button_to decidim_consultations.question_question_votes_path(question),
39
- method: :delete,
40
- remote: true,
41
- data: { disable: true },
42
- class: "card__button button expanded success",
43
- id: "unvote_button" do %>
44
- <div class="vote-button-caption"
45
- data-original="<%= t("questions.vote_button.already_voted", scope: "decidim") %>"
46
- data-replace="<%= t("questions.vote_button.already_voted_hover", scope: "decidim") %>">
29
+ method: :delete,
30
+ remote: true,
31
+ data: { disable: true },
32
+ class: "card__button button expanded success disabled",
33
+ id: "unvote_button" do %>
34
+ <div class="vote-button-caption">
47
35
  <%= t("questions.vote_button.already_voted", scope: "decidim") %>
48
36
  </div>
49
37
  <% end %>
50
- <% elsif allowed_to? :vote, :question, question: question %>
51
- <% if question.multiple? %>
52
- <%= link_to decidim_consultations.question_question_multiple_votes_path(question),
53
- class: "card__button button expanded",
54
- id: "multivote_button" do %>
55
- <div class="vote-button-caption"><%= t "questions.vote_button.vote", scope: "decidim" %></div>
38
+ <% elsif signed_in? && question.consultation.active? %>
39
+ <% if allowed_to? :unvote, :question, question: question %>
40
+ <%= button_to decidim_consultations.question_question_votes_path(question),
41
+ method: :delete,
42
+ remote: true,
43
+ data: { disable: true },
44
+ class: "card__button button expanded success",
45
+ id: "unvote_button" do %>
46
+ <div class="vote-button-caption"
47
+ data-original="<%= t("questions.vote_button.already_voted", scope: "decidim") %>"
48
+ data-replace="<%= t("questions.vote_button.already_voted_hover", scope: "decidim") %>">
49
+ <%= t("questions.vote_button.already_voted", scope: "decidim") %>
50
+ </div>
51
+ <% end %>
52
+ <% elsif allowed_to? :vote, :question, question: question %>
53
+ <% if question.multiple? %>
54
+ <%= link_to decidim_consultations.question_question_multiple_votes_path(question),
55
+ class: "card__button button expanded",
56
+ id: "multivote_button" do %>
57
+ <div class="vote-button-caption"><%= t "questions.vote_button.vote", scope: "decidim" %></div>
58
+ <% end %>
59
+ <% else %>
60
+ <%= link_to "#", class: "card__button button expanded", id: "vote_button" do %>
61
+ <div class="vote-button-caption"><%= t "questions.vote_button.vote", scope: "decidim" %></div>
62
+ <% end %>
56
63
  <% end %>
57
64
  <% else %>
58
- <%= link_to "#", class: "card__button button expanded", id: "vote_button" do %>
59
- <div class="vote-button-caption"><%= t "questions.vote_button.vote", scope: "decidim" %></div>
65
+ <%= authorized_vote_modal_button(question, remote: true, class: "button expanded light button--sc") do %>
66
+ <%= t("questions.vote_button.verification_required", scope: "decidim") %>
60
67
  <% end %>
61
68
  <% end %>
62
- <% else %>
63
- <%= authorized_vote_modal_button(question, remote: true, class: "button expanded light button--sc") do %>
64
- <%= t("questions.vote_button.verification_required", scope: "decidim") %>
69
+ <% elsif question.consultation.active? %>
70
+ <%= logged_button_to decidim_consultations.question_question_votes_path(question),
71
+ class: "card__button button expanded",
72
+ data: { disable: true },
73
+ id: "vote_button" do %>
74
+ <div class="vote-button-caption">
75
+ <%= t("questions.vote_button.vote", scope: "decidim") %>
76
+ </div>
65
77
  <% end %>
66
78
  <% end %>
67
- <% elsif question.consultation.active? %>
68
- <%= logged_button_to decidim_consultations.question_question_votes_path(question),
69
- class: "card__button button expanded",
70
- data: { disable: true },
71
- id: "vote_button" do %>
72
- <div class="vote-button-caption">
73
- <%= t("questions.vote_button.vote", scope: "decidim") %>
74
- </div>
75
- <% end %>
76
- <% end %>
77
- </div>
78
- <div class="columns mediumlarge-4 show-for-mediumlarge next-question">
79
- <%= display_next_previous_button(:next, "float-right") %>
79
+ </div>
80
+ <div class="columns mediumlarge-4 show-for-mediumlarge next-question">
81
+ <%= display_next_previous_button(:next, "float-right") %>
82
+ </div>
80
83
  </div>
81
- </div>
82
84
 
83
- <div class="row column section hide-for-mediumlarge">
84
- <div class="small-buttons">
85
- <div class="columns small-6 previous-question">
86
- <%= display_next_previous_button(:previous, "expanded") %>
87
- </div>
88
- <div class="columns small-6 next-question">
89
- <%= display_next_previous_button(:next, "expanded") %>
85
+ <div class="row column section hide-for-mediumlarge">
86
+ <div class="small-buttons">
87
+ <div class="columns small-6 previous-question">
88
+ <%= display_next_previous_button(:previous, "expanded") %>
89
+ </div>
90
+ <div class="columns small-6 next-question">
91
+ <%= display_next_previous_button(:next, "expanded") %>
92
+ </div>
90
93
  </div>
91
94
  </div>
92
- </div>
95
+ <% end %>
93
96
 
94
97
  <%= render partial: "decidim/consultations/questions/vote_modal", locals: { question: question } %>
95
98
  <%= render partial: "decidim/consultations/questions/vote_modal_confirm", locals: { question: question } %>
@@ -3,7 +3,7 @@
3
3
  <h3 class="reveal__title">
4
4
  <%= t "questions.vote_modal.title", scope: "decidim" %>
5
5
  </h3>
6
- <button class="close-button" data-close aria-label="Close modal" type="button">
6
+ <button class="close-button" data-close aria-label="<%= t "questions.vote_modal.close_modal", scope: "decidim" %>" type="button">
7
7
  <span aria-hidden="true">&times;</span>
8
8
  </button>
9
9
  </div>
@@ -3,7 +3,7 @@
3
3
  <h3 class="reveal__title">
4
4
  <%= t "questions.vote_modal_confirm.title", scope: "decidim" %>
5
5
  </h3>
6
- <button class="close-button" data-close aria-label="Close modal" type="button">
6
+ <button class="close-button" data-close aria-label="<%= t("questions.vote_modal_confirm.close_modal", scope: "decidim") %>" type="button">
7
7
  <span aria-hidden="true">&times;</span>
8
8
  </button>
9
9
  </div>
@@ -5,7 +5,7 @@
5
5
  <%= decidim_sanitize translated_attribute current_question.question_context %>
6
6
 
7
7
  <div class="show-more">
8
- <button class="button button--muted small"><%= t "read_more", scope: "decidim.questions.show" %></button>
8
+ <button class="button hollow small"><%= t "read_more", scope: "decidim.questions.show" %></button>
9
9
  </div>
10
10
 
11
11
  <div class="hide show-more-panel">
@@ -13,12 +13,12 @@
13
13
 
14
14
  <div class="section">
15
15
  <h2 class=section-heading><%= t "question.what_is_decided", scope: "activemodel.attributes" %></h2>
16
- <p><%= decidim_sanitize translated_attribute current_question.what_is_decided %></p>
16
+ <p><%= decidim_sanitize translated_attribute(current_question.what_is_decided), strip_tags: true %></p>
17
17
  </div>
18
18
 
19
19
  <div class="section">
20
20
  <h2 class=section-heading><%= t "question.question_context", scope: "activemodel.attributes" %></h2>
21
- <p><%= decidim_sanitize translated_attribute current_question.question_context %></p>
21
+ <p><%= decidim_sanitize translated_attribute(current_question.question_context), strip_tags: true %></p>
22
22
  </div>
23
23
  </div>
24
24
  </div>
@@ -36,7 +36,7 @@
36
36
  <%= content_for :question_header_details do %>
37
37
  <div id="question-header-details" class="row consultations-home-intro">
38
38
  <div class="columns medium-5">
39
- <img src="<%= current_question.hero_image&.url %>">
39
+ <%= image_tag current_question.hero_image&.url, alt: t("question.hero_image", scope: "activemodel.attributes") if current_question.hero_image&.url %>
40
40
  </div>
41
41
 
42
42
  <div class="columns medium-5">
@@ -2,15 +2,15 @@
2
2
  <div class="process-nav consultations-nav">
3
3
  <button class="process-nav__trigger hide-for-medium" data-toggle="process-nav-content">
4
4
  <%= icon "caret-bottom", class: "icon--small process-nav__trigger__icon", aria_label: t(".unfold"), role: "img" %>
5
- <div class="process-nav__link">
5
+ <span class="process-nav__link">
6
6
  <% if self.try(:current_component) %>
7
7
  <%= component_icon(current_component) %>
8
8
  <%= translated_attribute(current_component.name) %>
9
9
  <% else %>
10
- <%= external_icon "decidim/pages/icon.svg" %>
10
+ <%= external_icon "decidim/pages/icon.svg", role: "img", "aria-hidden": true %>
11
11
  <%= t ".question_menu_item" %>
12
12
  <% end %>
13
- </div>
13
+ </span>
14
14
  </button>
15
15
 
16
16
  <%
@@ -10,7 +10,7 @@
10
10
  </h1>
11
11
  <%= link_to decidim_consultations.consultations_path, class: "consultations-header__link" do %>
12
12
  <%= t ".back_to_consultation" %>
13
- <%= icon "media-play" %>
13
+ <%= icon "media-play", role: "img", "aria-hidden": true %>
14
14
  <% end %>
15
15
  </div>
16
16
  </div>
@@ -1,6 +1,7 @@
1
1
  <%= render "layouts/decidim/application" do %>
2
2
  <div class="wrapper">
3
3
  <%= render partial: "layouts/decidim/consultation_header" %>
4
+ <%= cell "decidim/translation_bar", current_organization %>
4
5
  <%= yield %>
5
6
  </div>
6
7
  <% if content_for? :expanded %>
@@ -0,0 +1 @@
1
+ am:
@@ -19,6 +19,7 @@ ar:
19
19
  hashtag: رابطة هاشتاق
20
20
  hero_image: الصورة الرئيسية
21
21
  i_frame_url: عنوان URL لنظام التصويت الخارجي
22
+ instructions: تعليمات إضافية خاصة بالتصويت
22
23
  max_votes: الحد الأقصى لعدد الأصوات
23
24
  min_votes: الحد الأدنى لعدد الأصوات
24
25
  origin_scope: نطاق
@@ -31,14 +32,21 @@ ar:
31
32
  scope: منطقة البلدية
32
33
  slug: سبيكة العنوان الشبكي
33
34
  subtitle: عنوان فرعي
34
- title: عنوان
35
35
  vote: نظام التصويت الخارجي
36
36
  what_is_decided: ما الذي تقرر
37
+ response:
38
+ decidim_consultations_response_group_id: الفريق
37
39
  errors:
38
40
  vote:
39
41
  decidim_consultations_response_id:
40
42
  not_found: الرد غير موجود.
41
43
  activerecord:
44
+ errors:
45
+ models:
46
+ decidim/consultations/vote:
47
+ attributes:
48
+ question:
49
+ invalid_num_votes: عدد الأصوات غير صالح
42
50
  models:
43
51
  decidim/consultation:
44
52
  zero: المشاورات
@@ -71,9 +79,11 @@ ar:
71
79
  decidim:
72
80
  admin:
73
81
  actions:
82
+ back_to_responses: العودة إلى الأجوبة
74
83
  new_consultation: استشارة جديدة
75
84
  new_question: سؤال جديد
76
85
  new_response: استجابة جديدة
86
+ new_response_group: فريق جديد
77
87
  publish_results: نشر النتائج
78
88
  unpublish_results: نتائج غير منشورة
79
89
  consultation_publications:
@@ -119,6 +129,7 @@ ar:
119
129
  results: النتائج
120
130
  questions_submenu:
121
131
  components: المكونات
132
+ configuration: الإعدادا
122
133
  consultation: تشاور
123
134
  info: معلومات
124
135
  responses: استجابات
@@ -150,6 +161,7 @@ ar:
150
161
  response:
151
162
  fields:
152
163
  created_at: أنشئت في
164
+ response_group: الفريق
153
165
  title: عنوان
154
166
  name:
155
167
  zero: استجابات
@@ -158,6 +170,9 @@ ar:
158
170
  few: استجابات
159
171
  many: استجابات
160
172
  other: استجابات
173
+ question_configuration:
174
+ form:
175
+ title: الإعداد المتقدّم
161
176
  question_publications:
162
177
  create:
163
178
  error: حدثت مشكلة في نشر هذا السؤال.
@@ -184,6 +199,16 @@ ar:
184
199
  update:
185
200
  error: حدثت مشكلة أثناء تحديث هذا السؤال.
186
201
  success: تم تحديث السؤال بنجاح.
202
+ response_groups:
203
+ edit:
204
+ update: تحديث
205
+ form:
206
+ title: معلومات عامة
207
+ new:
208
+ create: إنشاء
209
+ update:
210
+ error: وقعت هناك مشكلة عند تحديث هذه الإجابة.
211
+ success: تم تحديث الإجابة بنجاح.
187
212
  responses:
188
213
  create:
189
214
  error: كانت هناك مشكلة في إنشاء استجابة جديدة.
@@ -276,7 +301,10 @@ ar:
276
301
  other: يصوت من
277
302
  question_multiple_votes:
278
303
  results_rules:
304
+ title: خيارات عديدة متاحة مسموحة للإجابة على هذا السؤال
279
305
  total_participants: لقد شارك مجموع يقدّر بـ %{count} أشخاص في التصويت.
306
+ vote_limit:
307
+ description: يمكن للمشارِكين التصويت على %{limit} خيارات كأقصى حد.
280
308
  voting_rules:
281
309
  title: 'التصويت خاضع للقواعد التالية:'
282
310
  vote_limit: