decidim-core 0.26.0.rc2 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -78,6 +78,28 @@ sv:
78
78
  decidim_with_month_name_short: "%d %b"
79
79
  datetime:
80
80
  distance_in_words:
81
+ about_x_hours:
82
+ one: ungefär 1 timme
83
+ other: ungefär %{count} timmar
84
+ about_x_months:
85
+ one: ungefär 1 månad
86
+ other: ungefär %{count} månader
87
+ half_a_minute: en halv minut
88
+ less_than_x_minutes:
89
+ one: mindre än en minut
90
+ other: mindre än %{count} minut
91
+ less_than_x_seconds:
92
+ one: just nu
93
+ other: mindre än %{count} sekunder
94
+ x_days:
95
+ one: 1 dag sedan
96
+ other: "%{count} dagar sedan"
97
+ x_hours:
98
+ one: 1 timme sedan
99
+ other: "%{count} timmar sedan"
100
+ x_minutes:
101
+ one: 1 min sedan
102
+ other: "%{count} min sedan"
81
103
  x_seconds:
82
104
  one: 1 sek. sedan
83
105
  other: "%{count} sek. sedan"
@@ -159,6 +181,7 @@ sv:
159
181
  block: "%{user_name} blockerade användaren %{resource_name}"
160
182
  invite: "%{user_name} bjöd in användaren %{resource_name} med rollen: %{role}"
161
183
  officialize: "%{user_name} gjorde deltagaren %{resource_name} officiell"
184
+ promote: "%{user_name} befordrade %{resource_name}"
162
185
  remove_from_admin: "%{user_name} tog bort deltagaren %{resource_name} med rollen: %{role}"
163
186
  show_email: "%{user_name} hämtade e-postadressen för deltagaren %{resource_name}"
164
187
  transfer: "%{user_name} överförde deltagaren %{resource_name}"
@@ -981,6 +1004,7 @@ sv:
981
1004
  show:
982
1005
  back: Tillbaka till alla konversationer
983
1006
  chat_with: Konversation med
1007
+ deleted_accounts: Du kan inte meddela raderade konton.
984
1008
  not_allowed: Deltagaren tar inte emot direktmeddelanden.
985
1009
  title: Samtal med %{usernames}
986
1010
  start:
@@ -1048,6 +1072,12 @@ sv:
1048
1072
  greetings: Hälsningar,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
1049
1073
  hello: Hallå,
1050
1074
  subject: Vill du fortsätta att få relevant information om %{organization_name}?
1075
+ notification_mailer:
1076
+ event_received:
1077
+ no_translation_available: Tyvärr kunde maskinöversättningen inte hämtas när e-postmeddelandet skickades. Du kan kontrollera översättningen av originaltexten på följande länk %{link}.
1078
+ original_text: 'Originaltext:'
1079
+ same_language: Innehållet har skrevs i ditt valda språk (%{language}) så ingen automatisk översättning visas i detta e-post.
1080
+ translated_text: 'Maskinöversatt text:'
1051
1081
  notifications:
1052
1082
  no_notifications: Inga meddelanden ännu.
1053
1083
  notifications_settings:
@@ -1345,6 +1375,7 @@ sv:
1345
1375
  title_reply: Svara
1346
1376
  show:
1347
1377
  back: Visa alla samtal
1378
+ deleted_accounts: Du kan inte meddela raderade konton.
1348
1379
  not_allowed: Den här användaren accepterar inte fler direkta meddelanden.
1349
1380
  title: Konversation med %{usernames}
1350
1381
  update:
@@ -1642,10 +1673,12 @@ sv:
1642
1673
  name: Svenska
1643
1674
  name_with_error: Svenska (fel!)
1644
1675
  password_validator:
1676
+ blacklisted: är svartlistad
1645
1677
  domain_included_in_password: är för likt detta domännamn
1646
1678
  email_included_in_password: är för likt din e-post
1647
1679
  fallback: är inte giltigt
1648
1680
  name_included_in_password: är för likt ditt namn
1681
+ nickname_included_in_password: är för likt ditt användarnamn
1649
1682
  not_enough_unique_characters: har inte tillräckligt med unika tecken
1650
1683
  password_not_allowed: är ej tillåtet
1651
1684
  password_too_common: är för vanligt
@@ -1680,6 +1713,8 @@ sv:
1680
1713
  day_of_week: "%a"
1681
1714
  day_of_week_long: "%a %e"
1682
1715
  day_of_year: "%d.%m.%y"
1716
+ ddmm: "%d/%m"
1717
+ ddmmyyyy: "%d/%m/%Y"
1683
1718
  decidim_day_of_year: "%d %B %Y"
1684
1719
  decidim_short: "%d/%m/%Y %H:%M"
1685
1720
  default: "%d %B %Y kl.%H:%M:%S"
@@ -37,6 +37,40 @@ shared_examples "searchable results" do
37
37
  end
38
38
  end
39
39
 
40
+ context "when moderation is involved" do
41
+ it "not contains these searchables" do
42
+ expect(searchables).not_to be_empty
43
+ expect(term).not_to be_empty
44
+
45
+ fill_in "term", with: term
46
+ find("input#term").native.send_keys :enter
47
+
48
+ expect(page).to have_current_path decidim.search_path, ignore_query: true
49
+ expect(page).to have_content(/results for the search: "#{term}"/i)
50
+ expect(page).to have_selector(".filters__section")
51
+ expect(page.find("#search-count .section-heading").text.to_i).to be_positive
52
+
53
+ searchables.each do |searchable|
54
+ next unless searchable.is_a?(Decidim::Reportable)
55
+
56
+ create(:moderation, reportable: searchable, hidden_at: Time.current)
57
+ # rubocop:disable Rails/SkipsModelValidations
58
+ searchable.reload.touch
59
+ # rubocop:enable Rails/SkipsModelValidations
60
+ end
61
+
62
+ visit decidim.root_path
63
+
64
+ fill_in "term", with: term
65
+ find("input#term").native.send_keys :enter
66
+
67
+ expect(page).to have_current_path decidim.search_path, ignore_query: true
68
+ expect(page).to have_content(/results for the search: "#{term}"/i)
69
+ expect(page).to have_selector(".filters__section")
70
+ expect(page.find("#search-count .section-heading").text.to_i).not_to be_positive
71
+ end
72
+ end
73
+
40
74
  context "when participatory space is not visible" do
41
75
  shared_examples_for "no searchs found" do
42
76
  it "not contains these searchables" do
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.26.0.rc2"
7
+ "0.26.0"
8
8
  end
9
9
  end
10
10
  end
@@ -57,11 +57,7 @@ module Decidim
57
57
  @template.snippets.add(:head, @template.snippets.for(:geocoding))
58
58
  end
59
59
 
60
- options[:value] ||= object.send(attribute) if object.respond_to?(attribute)
61
- if object.respond_to?(:latitude) && object.respond_to?(:longitude)
62
- point = [object.latitude, object.longitude]
63
- options["data-coordinates"] ||= point.join(",")
64
- end
60
+ options = merge_geocoding_options(attribute, options)
65
61
 
66
62
  field(attribute, options) do |opts|
67
63
  builder.geocoding_field(
@@ -71,6 +67,17 @@ module Decidim
71
67
  )
72
68
  end
73
69
  end
70
+
71
+ private
72
+
73
+ def merge_geocoding_options(attribute, options)
74
+ options[:value] ||= object.send(attribute) if object.respond_to?(attribute)
75
+ if object.respond_to?(:latitude) && object.respond_to?(:longitude) && object.latitude.present? && object.longitude.present?
76
+ point = [object.latitude, object.longitude]
77
+ options["data-coordinates"] ||= point.join(",")
78
+ end
79
+ options
80
+ end
74
81
  end
75
82
  end
76
83
  end
@@ -51,6 +51,7 @@ module Decidim
51
51
 
52
52
  scope = manifest.resource_scope(component)
53
53
  scope = scope.where("#{self.class.table_name}.id != ?", id) if manifest.model_class == self.class
54
+ scope = scope.not_hidden if manifest.model_class.respond_to?(:not_hidden)
54
55
  scope.includes(:component).where.not(decidim_components: { published_at: nil })
55
56
  end
56
57
 
@@ -54,11 +54,12 @@ module Decidim
54
54
  end
55
55
  end
56
56
 
57
+ after_touch do |searchable|
58
+ remove_from_index(searchable) if searchable.respond_to?(:hidden?) && searchable.hidden?
59
+ end
60
+
57
61
  after_destroy do |searchable|
58
- if self.class.search_resource_fields_mapper
59
- org = self.class.search_resource_fields_mapper.retrieve_organization(searchable)
60
- searchable.searchable_resources.by_organization(org.id).destroy_all
61
- end
62
+ remove_from_index(searchable) if self.class.search_resource_fields_mapper
62
63
  end
63
64
  # after_create and after_update callbacks are dynamically setted in `searchable_fields` method.
64
65
 
@@ -70,6 +71,11 @@ module Decidim
70
71
  add_to_index_as_search_resource
71
72
  end
72
73
 
74
+ def remove_from_index(searchable)
75
+ org = self.class.search_resource_fields_mapper.retrieve_organization(searchable)
76
+ searchable.searchable_resources.by_organization(org.id).destroy_all
77
+ end
78
+
73
79
  # Forces the model to be indexed for the first time.
74
80
  def add_to_index_as_search_resource
75
81
  fields = self.class.search_resource_fields_mapper.mapped(self)
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :decidim do
4
+ namespace :upgrade do
5
+ namespace :moderation do
6
+ desc "Exclude all moderated content from search"
7
+ task remove_from_search: :environment do
8
+ query = Decidim::Moderation.hidden
9
+
10
+ log_info "Found #{query.count} hidden resources that needs to be handled"
11
+
12
+ query.find_each do |moderation|
13
+ moderation.reportable.remove_from_index(moderation.reportable)
14
+ rescue NameError => e
15
+ log_error "Could not process moderation id #{moderation.id} : #{e.message}"
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def log_info(msg)
22
+ puts msg
23
+ Rails.logger.info(msg)
24
+ end
25
+
26
+ def log_error(msg)
27
+ puts msg
28
+ Rails.logger.error(msg)
29
+ end
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.0.rc2
4
+ version: 0.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-02-02 00:00:00.000000000 Z
13
+ date: 2022-02-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -754,28 +754,28 @@ dependencies:
754
754
  requirements:
755
755
  - - '='
756
756
  - !ruby/object:Gem::Version
757
- version: 0.26.0.rc2
757
+ version: 0.26.0
758
758
  type: :runtime
759
759
  prerelease: false
760
760
  version_requirements: !ruby/object:Gem::Requirement
761
761
  requirements:
762
762
  - - '='
763
763
  - !ruby/object:Gem::Version
764
- version: 0.26.0.rc2
764
+ version: 0.26.0
765
765
  - !ruby/object:Gem::Dependency
766
766
  name: decidim-dev
767
767
  requirement: !ruby/object:Gem::Requirement
768
768
  requirements:
769
769
  - - '='
770
770
  - !ruby/object:Gem::Version
771
- version: 0.26.0.rc2
771
+ version: 0.26.0
772
772
  type: :development
773
773
  prerelease: false
774
774
  version_requirements: !ruby/object:Gem::Requirement
775
775
  requirements:
776
776
  - - '='
777
777
  - !ruby/object:Gem::Version
778
- version: 0.26.0.rc2
778
+ version: 0.26.0
779
779
  description: Adds core features so other engines can hook into the framework.
780
780
  email:
781
781
  - josepjaume@gmail.com
@@ -2555,6 +2555,7 @@ files:
2555
2555
  - lib/tasks/decidim_open_data_tasks.rake
2556
2556
  - lib/tasks/decidim_tasks.rake
2557
2557
  - lib/tasks/decidim_webpacker_tasks.rake
2558
+ - lib/tasks/upgrade/decidim_moderation_tasks.rake
2558
2559
  homepage: https://github.com/decidim/decidim
2559
2560
  licenses:
2560
2561
  - AGPL-3.0
@@ -2570,9 +2571,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2570
2571
  version: '2.7'
2571
2572
  required_rubygems_version: !ruby/object:Gem::Requirement
2572
2573
  requirements:
2573
- - - ">"
2574
+ - - ">="
2574
2575
  - !ruby/object:Gem::Version
2575
- version: 1.3.1
2576
+ version: '0'
2576
2577
  requirements: []
2577
2578
  rubygems_version: 3.1.6
2578
2579
  signing_key: