decidim-admin 0.27.0 → 0.27.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-admin might be problematic. Click here for more details.

Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/admin/unblock_user.rb +1 -1
  3. data/app/controllers/decidim/admin/block_user_controller.rb +3 -3
  4. data/app/controllers/decidim/admin/newsletter_templates_controller.rb +1 -1
  5. data/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  6. data/app/controllers/decidim/admin/organization_controller.rb +1 -0
  7. data/app/forms/decidim/admin/block_user_form.rb +2 -2
  8. data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +3 -1
  9. data/app/forms/decidim/admin/user_group_csv_verification_form.rb +10 -0
  10. data/app/helpers/decidim/admin/bulk_actions_helper.rb +1 -6
  11. data/app/models/decidim/admin/fake_newsletter.rb +20 -0
  12. data/app/packs/stylesheets/decidim/admin/extra/_quill.scss +7 -0
  13. data/app/packs/stylesheets/decidim/admin/modules/_modules.scss +0 -1
  14. data/app/permissions/decidim/admin/permissions.rb +32 -2
  15. data/app/views/decidim/admin/dashboard/show.html.erb +1 -1
  16. data/app/views/decidim/admin/imports/new.html.erb +1 -1
  17. data/app/views/decidim/admin/moderated_users/index.html.erb +1 -1
  18. data/app/views/decidim/admin/moderations/index.html.erb +8 -4
  19. data/app/views/decidim/admin/moderations/reports/index.html.erb +5 -1
  20. data/config/locales/ar.yml +17 -13
  21. data/config/locales/ca.yml +26 -6
  22. data/config/locales/cs.yml +23 -3
  23. data/config/locales/de.yml +14 -4
  24. data/config/locales/el.yml +0 -1
  25. data/config/locales/en.yml +21 -1
  26. data/config/locales/es-MX.yml +23 -3
  27. data/config/locales/es-PY.yml +23 -3
  28. data/config/locales/es.yml +26 -6
  29. data/config/locales/eu.yml +42 -11
  30. data/config/locales/fi-plain.yml +24 -4
  31. data/config/locales/fi.yml +26 -6
  32. data/config/locales/fr-CA.yml +23 -3
  33. data/config/locales/fr.yml +23 -3
  34. data/config/locales/gl.yml +0 -1
  35. data/config/locales/gn-PY.yml +1 -0
  36. data/config/locales/hu.yml +2 -2
  37. data/config/locales/id-ID.yml +4 -1
  38. data/config/locales/is-IS.yml +4 -1
  39. data/config/locales/it.yml +1 -2
  40. data/config/locales/ja.yml +22 -2
  41. data/config/locales/ka-GE.yml +1 -0
  42. data/config/locales/lb.yml +0 -1
  43. data/config/locales/lo-LA.yml +1 -0
  44. data/config/locales/lt.yml +1 -2
  45. data/config/locales/lv.yml +1 -1
  46. data/config/locales/nl.yml +1 -2
  47. data/config/locales/no.yml +0 -1
  48. data/config/locales/pl.yml +1 -1
  49. data/config/locales/pt-BR.yml +1 -2
  50. data/config/locales/pt.yml +0 -1
  51. data/config/locales/ro-RO.yml +47 -5
  52. data/config/locales/ru.yml +4 -1
  53. data/config/locales/sk.yml +1 -1
  54. data/config/locales/sr-CS.yml +8 -0
  55. data/config/locales/sv.yml +23 -3
  56. data/config/locales/tr-TR.yml +2 -1
  57. data/config/locales/uk.yml +4 -1
  58. data/config/locales/zh-CN.yml +1 -1
  59. data/lib/decidim/admin/engine.rb +11 -1
  60. data/lib/decidim/admin/test/manage_moderations_examples.rb +79 -1
  61. data/lib/decidim/admin/version.rb +1 -1
  62. metadata +12 -10
  63. data/app/packs/stylesheets/decidim/admin/modules/_import_result.scss +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc8f2bdfb3acada1320a043d5b9feeccb17ee49860ea145b5606a652503e7b7b
4
- data.tar.gz: 402c102b7f08cba051c128ee90c1ea9b3e0793f8eef5024e5dfd5b05cc6ee4d5
3
+ metadata.gz: 96f7bcf42a9c331fbef56cee041ad7950157b1f5d1a3080fdcb0c144e812608e
4
+ data.tar.gz: 98476b2e39ac843d547b06c8a13727f1b2a3b53b7cca810aeab9a288ae5b9c19
5
5
  SHA512:
6
- metadata.gz: 843f0985b07c3772dbee767ce8450e25c004b98399e65bc5a9008f73af8fe04784e181242ed26fdd8ff748c49f50986fcbde4f2533e4abc62f29dd2a6492a5a4
7
- data.tar.gz: 91af28d7637755f6dd55dcafb33bd224182dd133cea3019dac951b6113c4c36c9ce185d81417e1643aa4d5ddc0710685bc289ef4d0b8365639f1b2cf532c7980
6
+ metadata.gz: d1b7a5302a53fc2ae93cd6ed4c47665b317f8ff8ad049057d8df7c15574ed6e9ac6af8d16356cb8c31611532c46352b69d2e4c4efa1c1551b11f7f1a8a8f567d
7
+ data.tar.gz: 86b7067f4605ba15733b3c29873563c94d2c51023d92c309119c73a9a50acb5cdebbc9277c0927616250c3a54b1fc293aed8c3d0d33e4f58d2bcf5f43742a79f
@@ -39,7 +39,7 @@ module Decidim
39
39
  @blocked_user.blocked = false
40
40
  @blocked_user.blocked_at = nil
41
41
  @blocked_user.block_id = nil
42
- @blocked_user.name = @blocked_user.user_name
42
+ @blocked_user.name = @blocked_user.extended_data["user_name"]
43
43
  @blocked_user.save!
44
44
  end
45
45
  end
@@ -21,7 +21,7 @@ module Decidim
21
21
  BlockUser.call(@form) do
22
22
  on(:ok) do
23
23
  flash[:notice] = I18n.t("officializations.block.success", scope: "decidim.admin")
24
- redirect_to officializations_path(q: { name_or_nickname_or_email_cont: user.name }), notice: notice
24
+ redirect_to moderated_users_path(blocked: true)
25
25
  end
26
26
 
27
27
  on(:invalid) do
@@ -44,13 +44,13 @@ module Decidim
44
44
  end
45
45
  end
46
46
 
47
- redirect_to officializations_path(q: { name_or_nickname_or_email_cont: user.name }), notice: notice
47
+ redirect_to moderated_users_path(blocked: false)
48
48
  end
49
49
 
50
50
  private
51
51
 
52
52
  def user
53
- @user ||= Decidim::User.find_by(
53
+ @user ||= Decidim::UserBaseEntity.find_by(
54
54
  id: params[:user_id],
55
55
  organization: current_organization
56
56
  )
@@ -15,7 +15,7 @@ module Decidim
15
15
  def show; end
16
16
 
17
17
  def preview
18
- email = NewsletterMailer.newsletter(current_user, fake_newsletter)
18
+ email = NewsletterMailer.newsletter(current_user, fake_newsletter, preview: true)
19
19
  Premailer::Rails::Hook.perform(email)
20
20
  render html: email.html_part.body.decoded.html_safe
21
21
  end
@@ -28,7 +28,7 @@ module Decidim
28
28
  def preview
29
29
  enforce_permission_to :read, :newsletter, newsletter: newsletter
30
30
 
31
- email = NewsletterMailer.newsletter(current_user, newsletter)
31
+ email = NewsletterMailer.newsletter(current_user, newsletter, preview: true)
32
32
  Premailer::Rails::Hook.perform(email)
33
33
  render html: email.html_part.body.decoded.html_safe
34
34
  end
@@ -15,6 +15,7 @@ module Decidim
15
15
  def update
16
16
  enforce_permission_to :update, :organization, organization: current_organization
17
17
  @form = form(OrganizationForm).from_params(params)
18
+ @form.id = current_organization.id
18
19
 
19
20
  UpdateOrganization.call(current_organization, @form) do
20
21
  on(:ok) do
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module Admin
5
- # A form object used to officialize users from the admin dashboard.
5
+ # A form object used to block users or user groups on the admin dashboard.
6
6
  class BlockUserForm < Form
7
7
  attribute :user_id, Integer
8
8
  attribute :justification, String
@@ -15,7 +15,7 @@ module Decidim
15
15
  end
16
16
 
17
17
  def user
18
- @user ||= Decidim::User.find_by(
18
+ @user ||= Decidim::UserBaseEntity.find_by(
19
19
  id: user_id,
20
20
  organization: current_organization
21
21
  )
@@ -21,10 +21,12 @@ module Decidim
21
21
  return if file.blank?
22
22
 
23
23
  process_file_locally(file) do |file_path|
24
- CSV.foreach(file_path) do |_email, user_name|
24
+ CSV.foreach(file_path, encoding: "BOM|UTF-8") do |_email, user_name|
25
25
  errors.add(:user_name, :invalid) unless user_name.match?(UserBaseEntity::REGEXP_NAME)
26
26
  end
27
27
  end
28
+ rescue CSV::MalformedCSVError
29
+ errors.add(:file, :malformed)
28
30
  end
29
31
  end
30
32
  end
@@ -6,10 +6,20 @@ module Decidim
6
6
  #
7
7
  class UserGroupCsvVerificationForm < Form
8
8
  include Decidim::HasUploadValidations
9
+ include Decidim::ProcessesFileLocally
9
10
 
10
11
  attribute :file, Decidim::Attributes::Blob
11
12
 
12
13
  validates :file, presence: true, file_content_type: { allow: ["text/csv"] }
14
+ validate :validate_csv, unless: ->(f) { f.file.blank? }
15
+
16
+ def validate_csv
17
+ process_file_locally(file) do |file_path|
18
+ CSV.open(file_path, &:readline)
19
+ end
20
+ rescue CSV::MalformedCSVError
21
+ errors.add(:file, :malformed)
22
+ end
13
23
  end
14
24
  end
15
25
  end
@@ -10,9 +10,8 @@ module Decidim
10
10
  # Returns a String.
11
11
  def bulk_categories_select(collection)
12
12
  categories = bulk_categories_for_select collection
13
- disabled = bulk_disabled_categories_for collection
14
13
  prompt = t("decidim.proposals.admin.proposals.index.change_category")
15
- select(:category, :id, options_for_select(categories, selected: [], disabled: disabled), prompt: prompt)
14
+ select(:category, :id, options_for_select(categories, selected: []), prompt: prompt)
16
15
  end
17
16
 
18
17
  def bulk_categories_for_select(scope)
@@ -35,10 +34,6 @@ module Decidim
35
34
  end
36
35
  end
37
36
 
38
- def bulk_disabled_categories_for(scope)
39
- scope.first_class.joins(:subcategories).pluck(:id)
40
- end
41
-
42
37
  # Public: Generates a select field with the components.
43
38
  #
44
39
  # siblings - A collection of components.
@@ -41,6 +41,26 @@ module Decidim
41
41
  nil
42
42
  end
43
43
 
44
+ def draft?
45
+ true
46
+ end
47
+
48
+ def url(**_)
49
+ "#"
50
+ end
51
+
52
+ def notifications_settings_url(**_)
53
+ "#"
54
+ end
55
+
56
+ def unsubscribe_newsletters_url(**_)
57
+ "#"
58
+ end
59
+
60
+ def organization_official_url
61
+ "#"
62
+ end
63
+
44
64
  private
45
65
 
46
66
  attr_reader :organization, :manifest
@@ -3,3 +3,10 @@
3
3
  background: #eee;
4
4
  }
5
5
  }
6
+
7
+ .editor-container{
8
+ ul,
9
+ ol{
10
+ margin-bottom: 1rem;
11
+ }
12
+ }
@@ -30,7 +30,6 @@
30
30
  @import "stylesheets/decidim/admin/modules/agenda";
31
31
  @import "stylesheets/decidim/admin/modules/draggable-list";
32
32
  @import "stylesheets/decidim/admin/modules/loading-spinner";
33
- @import "stylesheets/decidim/admin/modules/import_result";
34
33
  @import "stylesheets/decidim/admin/modules/reveal";
35
34
  @import "stylesheets/decidim/admin/modules/upload_modal";
36
35
 
@@ -29,12 +29,14 @@ module Decidim
29
29
  read_admin_dashboard_action?
30
30
  apply_newsletter_permissions_for_admin!
31
31
 
32
- allow! if permission_action.subject == :global_moderation
32
+ apply_global_moderations_permission_for_admin!
33
33
 
34
34
  if user.admin? && admin_terms_accepted?
35
35
  allow! if read_admin_log_action?
36
+ allow! if read_user_statistics_action?
36
37
  allow! if read_metrics_action?
37
38
  allow! if static_page_action?
39
+ allow! if templates_action?
38
40
  allow! if organization_action?
39
41
  allow! if user_action?
40
42
 
@@ -77,6 +79,23 @@ module Decidim
77
79
  toggle_allow(user.admin? || space_allows_admin_access_to_current_action?)
78
80
  end
79
81
 
82
+ def apply_global_moderations_permission_for_admin!
83
+ return unless admin_terms_accepted?
84
+ return unless permission_action.subject == :global_moderation
85
+ return allow! if user.admin?
86
+
87
+ return allow! if Decidim.participatory_space_manifests.flat_map.any? do |manifest|
88
+ Decidim
89
+ .find_participatory_space_manifest(manifest.name)
90
+ .participatory_spaces
91
+ .call(user.organization)&.any? do |space|
92
+ space.respond_to?(:user_roles) && space.user_roles(:admin).where(user: user).or(space.user_roles(:moderator).where(user: user)).any?
93
+ end
94
+ end
95
+
96
+ disallow!
97
+ end
98
+
80
99
  def apply_newsletter_permissions_for_admin!
81
100
  return unless admin_terms_accepted?
82
101
  return unless permission_action.subject == :newsletter
@@ -102,6 +121,11 @@ module Decidim
102
121
  end
103
122
  end
104
123
 
124
+ def read_user_statistics_action?
125
+ permission_action.subject == :users_statistics &&
126
+ permission_action.action == :read
127
+ end
128
+
105
129
  def read_metrics_action?
106
130
  permission_action.subject == :metrics &&
107
131
  permission_action.action == :read
@@ -129,6 +153,11 @@ module Decidim
129
153
  end
130
154
  end
131
155
 
156
+ def templates_action?
157
+ permission_action.subject == :templates &&
158
+ permission_action.action == :read
159
+ end
160
+
132
161
  def organization_action?
133
162
  return unless permission_action.subject == :organization
134
163
  return unless permission_action.action == :update
@@ -140,6 +169,7 @@ module Decidim
140
169
  return unless permission_action.subject == :managed_user
141
170
  return user_manager_permissions if user_manager?
142
171
  return unless user&.admin?
172
+ return unless user&.admin_terms_accepted?
143
173
 
144
174
  case permission_action.action
145
175
  when :create
@@ -184,7 +214,7 @@ module Decidim
184
214
 
185
215
  def space_allows_admin_access_to_current_action?(require_admin_terms_accepted: false)
186
216
  Decidim.participatory_space_manifests.any? do |manifest|
187
- next if manifest.name != :initiatives && require_admin_terms_accepted && !admin_terms_accepted?
217
+ next if require_admin_terms_accepted && !admin_terms_accepted?
188
218
 
189
219
  new_permission_action = Decidim::PermissionAction.new(
190
220
  action: permission_action.action,
@@ -12,7 +12,7 @@
12
12
  <% end %>
13
13
 
14
14
  <div class="grid-x grid-margin-x">
15
- <% if current_user.admin? && current_user.organization&.id == current_organization.id %>
15
+ <% if allowed_to? :read, :users_statistics %>
16
16
  <div class="cell small-12 medium-6 large-4">
17
17
  <%= render(
18
18
  partial: "decidim/admin/users_statistics/users_count",
@@ -34,7 +34,7 @@
34
34
  <legend>
35
35
  <%= t(".file_legend", valid_mime_types: mime_types.values.join(", ")).html_safe %>
36
36
  <div class="guidance">
37
- <%= import_manifest.message(:help, self) %>
37
+ <%= import_manifest.message(:help, self).html_safe %>
38
38
  </div>
39
39
  </legend>
40
40
  <div class="row column">
@@ -60,7 +60,7 @@
60
60
  </td>
61
61
 
62
62
  <td class="actions">
63
- <% if allowed_to?(:unreport, :moderate_users) %>
63
+ <% if !moderation.user.blocked? && allowed_to?(:unreport, :moderate_users) %>
64
64
  <%= icon_link_to "action-undo", ignore_moderated_user_path(id: moderation), t(".actions.unreport"), class: "action-icon--unreport", method: :put %>
65
65
  <% end %>
66
66
  <% if allowed_to?(:block, :moderate_users) %>
@@ -37,7 +37,7 @@
37
37
  <tr data-id="<%= moderation.id %>">
38
38
  <td><%= moderation.reportable.id %></td>
39
39
  <td>
40
- <%= moderation.reportable.class.name.demodulize %>
40
+ <%= moderation.reportable.class.model_name.human %>
41
41
  </td>
42
42
  <% if !respond_to?(:current_participatory_space) %>
43
43
  <td>
@@ -48,9 +48,13 @@
48
48
  <%= moderation.report_count %>
49
49
  </td>
50
50
  <td>
51
- <%=
52
- link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), moderation.reportable.reported_content_url, data: { tooltip: true }, title: strip_tags(reported_content_excerpt_for(moderation.reportable, limit: 250))
53
- %>
51
+ <% if (reportable_url = moderation.reportable.reported_content_url) %>
52
+ <%=
53
+ link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), reportable_url, data: { tooltip: true }, title: strip_tags(reported_content_excerpt_for(moderation.reportable, limit: 250))
54
+ %>
55
+ <% else %>
56
+ <%= t("models.moderation.fields.deleted_resource", scope: "decidim.moderations") %>
57
+ <% end %>
54
58
  </td>
55
59
  <td>
56
60
  <% reports = moderation.reports.map { |report| render "report", report: report } %>
@@ -12,7 +12,11 @@
12
12
  </div>
13
13
  <dl>
14
14
  <dt><%= t("models.moderation.fields.reported_content_url", scope: "decidim.moderations") %></dt>
15
- <dd><%= link_to moderation.reportable.reported_content_url, moderation.reportable.reported_content_url, target: "_blank" %></dd>
15
+ <% if (reportable_url = moderation.reportable.reported_content_url) %>
16
+ <dd><%= link_to moderation.reportable.reported_content_url, reportable_url, target: "_blank" %></dd>
17
+ <% else %>
18
+ <dd><%= t("models.moderation.fields.deleted_resource", scope: "decidim.moderations") %></dd>
19
+ <% end %>
16
20
 
17
21
  <dt><%= t("models.moderation.fields.reportable_id", scope: "decidim.moderations") %></dt>
18
22
  <dd><%= moderation.reportable.id %></dd>
@@ -11,34 +11,41 @@ ar:
11
11
  organization: المنظمة
12
12
  plural: صيغة الجمع
13
13
  attachment:
14
- attachment_collection_id: المجلد
14
+ attachment_collection_id: الحافظة
15
15
  description: الوصف
16
16
  file: ملف
17
17
  title: المُرفق أو اسم الصورة
18
+ weight: موضع الطلب
18
19
  attachment_collection:
19
20
  description: الوصف
20
21
  name: اسم
22
+ weight: موضع الطلب
21
23
  category:
22
24
  description: الوصف
23
25
  name: اسم
24
- parent_id: الأبوين
26
+ parent_id: الأصل
27
+ weight: موضع الطلب
25
28
  component:
26
29
  name: اسم
27
- published_at: نشرت في
30
+ published_at: نشر في
28
31
  weight: موضع الطلب
29
- id: هوية شخصية
32
+ external_domain:
33
+ value: القيمة
34
+ help_section:
35
+ content: المحتوى
36
+ id: المعرف ID
30
37
  import:
31
- user_group_id: إنشاء واردات ك
38
+ user_group_id: إنشاء الاستيرادات ك
32
39
  newsletter:
33
- body: المحتوى
40
+ body: النص
34
41
  subject: الموضوع
35
42
  organization:
36
43
  admin_terms_of_use_body: نص شروط الاستخدام للمدير
37
44
  alert_color: تنبيه
38
45
  available_authorizations: التراخيص المتاحة
39
46
  badges_enabled: تمكين الشارات
40
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال للقيمة الافتراضية)
41
- cta_button_path: دعوة إلى العمل مسار زر
47
+ comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
48
+ cta_button_path: مسار زر دعوة إلى العمل call to action
42
49
  cta_button_text: نص زر Call To Action
43
50
  customize_welcome_notification: تخصيص إشعار الترحيب
44
51
  default_locale: اللغة الافتراضية
@@ -160,7 +167,6 @@ ar:
160
167
  accept:
161
168
  success: رائع! لقد قمت بالموافقة على شروط الإستخدام للمدير.
162
169
  actions:
163
- accept: أوافق على شروط الإستخدام التالية
164
170
  refuse: ارفض شروط المدير
165
171
  title: وافق على شروط وأحكام الإستخدام
166
172
  required_review:
@@ -743,7 +749,7 @@ ar:
743
749
  title: مشارك جديد الفضاء الخاص المشارك.
744
750
  participatory_space_private_users_csv_imports:
745
751
  create:
746
- invalid: حدثت مشكلة أثناء قراءة ملف CSV.
752
+ invalid: حدثت مشكلة في قراءة ملف CSV.
747
753
  new:
748
754
  destroy:
749
755
  button: حذف جميع المشاركين الخاصين
@@ -940,7 +946,7 @@ ar:
940
946
  report_count: عد
941
947
  reportable_type: النوع
942
948
  reported_content_url: تم الإبلاغ عن عنوان URL للمحتوى
943
- reports: تقارير
949
+ reports: التقارير
944
950
  visit_url: زيارة العنوان الشبكي
945
951
  report:
946
952
  fields:
@@ -953,8 +959,6 @@ ar:
953
959
  layouts:
954
960
  decidim:
955
961
  admin:
956
- global_moderations:
957
- title: مُشرف عام
958
962
  newsletters:
959
963
  title: النشرات الإخبارية
960
964
  settings:
@@ -15,17 +15,24 @@ ca:
15
15
  description: Descripció
16
16
  file: Arxiu
17
17
  title: Nom de l'adjunt o imatge
18
+ weight: Ordre de posició
18
19
  attachment_collection:
19
20
  description: Descripció
20
21
  name: Nom
22
+ weight: Ordre de posició
21
23
  category:
22
24
  description: Descripció
23
25
  name: Nom
24
26
  parent_id: Pare
27
+ weight: Ordre de posició
25
28
  component:
26
29
  name: Nom
27
30
  published_at: Publicat el
28
31
  weight: Ordre de posició
32
+ external_domain:
33
+ value: Valor
34
+ help_section:
35
+ content: Contingut
29
36
  id: ID
30
37
  import:
31
38
  user_group_id: Importar com
@@ -78,7 +85,7 @@ ca:
78
85
  organization_admin_name: Nom de l'administradora de l'organització
79
86
  organization_locales: Idiomes de l'organització
80
87
  primary_color: Primària
81
- reference_prefix: prefix de referència
88
+ reference_prefix: Prefix de referència
82
89
  rich_text_editor_in_public_views: Habilitar l'editor de text enriquit
83
90
  secondary_color: Secundari
84
91
  secondary_hosts: Hosts secundaris
@@ -93,6 +100,9 @@ ca:
93
100
  welcome_notification_body: Cos de la notificació de benvinguda
94
101
  welcome_notification_subject: Assumpte de la notificació de benvinguda
95
102
  youtube_handler: Nom d'usuària de YouTube
103
+ participatory_space_private_user:
104
+ email: Correu electrònic
105
+ name: Nom
96
106
  scope:
97
107
  code: Codi
98
108
  name: Nom
@@ -114,6 +124,7 @@ ca:
114
124
  show_in_footer: Mostra al peu de pàgina
115
125
  slug: Nom curt d'URL
116
126
  title: Títol
127
+ topic_id: Assumpte
117
128
  weight: Ordre de posició
118
129
  static_page_topic:
119
130
  description: Descripció
@@ -134,6 +145,14 @@ ca:
134
145
  allowed_file_content_types: Fitxer d'imatge no vàlid
135
146
  official_img_header:
136
147
  allowed_file_content_types: Fitxer d'imatge no vàlid
148
+ participatory_space_private_user_csv_import:
149
+ attributes:
150
+ file:
151
+ malformed: Arxiu d'importació mal formatat, si us plau, llegeix les instruccions curosament i assegura't que l'arxiu està codificat en UTF-8.
152
+ user_group_csv_verification:
153
+ attributes:
154
+ file:
155
+ malformed: Arxiu d'importació mal formatat, si us plau, llegeix les instruccions curosament i assegura't que l'arxiu està codificat en UTF-8.
137
156
  new_import:
138
157
  attributes:
139
158
  file:
@@ -185,7 +204,7 @@ ca:
185
204
  error: S'ha produït un error en acceptar els Termes i Condicions dell panell d'administració.
186
205
  success: Genial! Has acceptat els Termes i Condicions del panell d'administració.
187
206
  actions:
188
- accept: Estic d'acord amb els termes següents
207
+ accept: Estic d'acord amb els termes
189
208
  are_you_sure: Segur que vols rebutjar els termes i condicions del panell d'administració?
190
209
  refuse: Rebutjar els termes
191
210
  title: Accepto els Termes i Condicions d'Administració
@@ -707,7 +726,7 @@ ca:
707
726
  select_recipients_to_deliver:
708
727
  all_spaces: Totes
709
728
  all_users_help: Envia el butlletí a tots els usuaris confimats.
710
- confirm_deliver: Estàs segura que vols enviar aquest butlletí? Aquesta acció no es pot desfer.
729
+ confirm_deliver: Segur que vols enviar aquest butlletí? Aquesta acció no es pot desfer.
711
730
  deliver: Enviar butlletí
712
731
  followers_help: Envia el butlletí a tots els usuaris confirmats que segueixin qualsevol dels espais participatius seleccionats a la llista.
713
732
  none: Cap
@@ -819,7 +838,7 @@ ca:
819
838
  inactive_content_blocks: Blocs de contingut inactiu
820
839
  organization_homepage_content_blocks:
821
840
  edit:
822
- update: Actualitza
841
+ update: Actualitzar
823
842
  participatory_space_private_users:
824
843
  create:
825
844
  error: S'ha produït un error en afegir una participant privada a aquest espai de participació.
@@ -840,7 +859,7 @@ ca:
840
859
  new:
841
860
  destroy:
842
861
  button: Esborrar totes les participants privades
843
- confirm: Estàs segura que vols esborrar totes les participants privades? Aquesta acció no es pot desfer, no podràs recuperar-les.
862
+ confirm: Segur que vols esborrar totes les participants privades? Aquesta acció no es pot desfer, no podràs recuperar-les.
844
863
  empty: No hi ha participants privades.
845
864
  explanation: Hi ha %{count} participant/s privada/ades.
846
865
  title: Esborrar les participants privades
@@ -1057,13 +1076,14 @@ ca:
1057
1076
  moderation:
1058
1077
  fields:
1059
1078
  created_at: Data de creació
1079
+ deleted_resource: Recurs eliminat
1060
1080
  hidden_at: Data d'ocultació
1061
1081
  participatory_space: Espai de participació
1062
1082
  report_count: Recompte
1063
1083
  reportable_id: ID
1064
1084
  reportable_type: Tipus
1065
1085
  reported_content_url: URL contingut del contingut reportat
1066
- reports: Denúncies
1086
+ reports: Informes
1067
1087
  visit_url: Visiteu l'URL
1068
1088
  report:
1069
1089
  fields:
@@ -15,17 +15,24 @@ cs:
15
15
  description: Popis
16
16
  file: Soubor
17
17
  title: Název přílohy nebo obrázku
18
+ weight: Pozice v řazení
18
19
  attachment_collection:
19
20
  description: Popis
20
21
  name: Název
22
+ weight: Pozice v řazení
21
23
  category:
22
24
  description: Popis
23
25
  name: Název
24
26
  parent_id: Nadřazená
27
+ weight: Pozice v řazení
25
28
  component:
26
29
  name: Název
27
30
  published_at: Publikováno v
28
31
  weight: Pozice v řazení
32
+ external_domain:
33
+ value: Hodnota
34
+ help_section:
35
+ content: Obsah
29
36
  id: ID
30
37
  import:
31
38
  user_group_id: Vytvořit importy jako
@@ -93,6 +100,9 @@ cs:
93
100
  welcome_notification_body: Tělo uvítacího oznámení
94
101
  welcome_notification_subject: Předmět uvítacího oznámení
95
102
  youtube_handler: YouTube handler
103
+ participatory_space_private_user:
104
+ email: E-mail
105
+ name: Název
96
106
  scope:
97
107
  code: Kód
98
108
  name: Název
@@ -114,6 +124,7 @@ cs:
114
124
  show_in_footer: Zobrazit v zápatí
115
125
  slug: URL slug
116
126
  title: Titul
127
+ topic_id: Téma
117
128
  weight: Pozice v řazení
118
129
  static_page_topic:
119
130
  description: Popis
@@ -134,6 +145,14 @@ cs:
134
145
  allowed_file_content_types: Neplatný soubor s obrázkem
135
146
  official_img_header:
136
147
  allowed_file_content_types: Neplatný soubor s obrázkem
148
+ participatory_space_private_user_csv_import:
149
+ attributes:
150
+ file:
151
+ malformed: Chybný importní soubor, přečtěte si pozorně pokyny a ujistěte se, že soubor je kódovaný UTF-8.
152
+ user_group_csv_verification:
153
+ attributes:
154
+ file:
155
+ malformed: Chybný importní soubor, přečtěte si pozorně pokyny a ujistěte se, že soubor je kódovaný UTF-8.
137
156
  new_import:
138
157
  attributes:
139
158
  file:
@@ -185,7 +204,7 @@ cs:
185
204
  error: Při přijímání správcovských podmínek použití došlo k chybě.
186
205
  success: Skvělé! Přijali jste administrátorské podmínky použití.
187
206
  actions:
188
- accept: Souhlasím s následujícími podmínkami
207
+ accept: Souhlasím s podmínkami
189
208
  are_you_sure: Opravdu chcete odmítnout Podmínky použití pro správce?
190
209
  refuse: Odmítnout administrátorské podmínky
191
210
  title: Souhlasit s podmínkami používání
@@ -1066,14 +1085,15 @@ cs:
1066
1085
  models:
1067
1086
  moderation:
1068
1087
  fields:
1069
- created_at: Datum vytvoření
1088
+ created_at: Datum vzniku
1089
+ deleted_resource: Smazaný dokument
1070
1090
  hidden_at: Skryté u
1071
1091
  participatory_space: Participativní prostor
1072
1092
  report_count: Spočítat
1073
1093
  reportable_id: ID
1074
1094
  reportable_type: Typ
1075
1095
  reported_content_url: Oznámená adresa URL obsahu
1076
- reports: Zprávy
1096
+ reports: Hlášení
1077
1097
  visit_url: Navštívit URL
1078
1098
  report:
1079
1099
  fields: