decidim-blogs 0.31.0.rc2 → 0.31.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89af19d0f79c8583aa116482b687b6af0da309a66fbe845eab32e1451df7c1ed
4
- data.tar.gz: 335318f06e854df0597b5aab4fa5c92a917bbc52103c5f7572e0fadf210a292c
3
+ metadata.gz: 21bf1933900d2930b37fb4cbea5e273e0e097ac7e7ac670afb617fe1a96dad56
4
+ data.tar.gz: a5390aaae7de3a8da1b17f9941852fd9e6ec2ecc3ec1667aa1ecf031fdd988ee
5
5
  SHA512:
6
- metadata.gz: 7c93c68e2c3aebcefa517812988de254259355a4496fc603da09b0f5e89a1c6c8c4de065ed7233f2a15f40e7844e8420a4bc865c1f9acdbf3e191215a85133f6
7
- data.tar.gz: d8705cc0d17a5aa16113685e2e674005549caed8a13f67ccf489575a19b94c3058ecf17285cd1aa7382b1508493791d76d9c2879c191bf8782ca4eaefd44540b
6
+ metadata.gz: e9b40fead18ffed4ce005077b953ad67db8b14d3ce9beaa1baa56ab859ac1940dd1797149cc8e3bf835853d89f4915ca00030a263104ecb05ed3bff9e6c52a31
7
+ data.tar.gz: 5c4ddf20755bd68bff18666572d840feed5a40f399defa34bdce29362a6d3b31eabcb98f22cb2740d6c7d480ec841a783a16c9fe7d2265f91825d44d2312505a
@@ -91,9 +91,9 @@ module Decidim
91
91
 
92
92
  def posts
93
93
  @posts ||= if current_user&.admin?
94
- Post.where(component: current_component)
94
+ Post.where(component: current_component).published_at_desc
95
95
  else
96
- Post.published.where(component: current_component)
96
+ Post.published.where(component: current_component).published_at_desc
97
97
  end
98
98
  end
99
99
 
@@ -101,7 +101,7 @@ module Decidim
101
101
  def posts_most_commented
102
102
  @posts_most_commented ||= posts.joins(:comments).group(:id)
103
103
  .select("count(decidim_comments_comments.id) as counter")
104
- .select("decidim_blogs_posts.*").order("counter DESC").created_at_desc.limit(7)
104
+ .select("decidim_blogs_posts.*").order("counter DESC").published_at_desc.limit(7)
105
105
  end
106
106
  end
107
107
  end
@@ -29,6 +29,7 @@ module Decidim
29
29
  validates :title, presence: true
30
30
 
31
31
  scope :created_at_desc, -> { order(arel_table[:created_at].desc) }
32
+ scope :published_at_desc, -> { order(arel_table[:published_at].desc) }
32
33
  scope :published, -> { where(published_at: ..Time.current) }
33
34
 
34
35
  searchable_fields({
@@ -8,7 +8,6 @@ module Decidim
8
8
  class PostPresenter < Decidim::ResourcePresenter
9
9
  include Decidim::ResourceHelper
10
10
  include ActionView::Helpers::UrlHelper
11
- include Decidim::SanitizeHelper
12
11
 
13
12
  def author
14
13
  @author ||= if official?
@@ -13,7 +13,7 @@ fi:
13
13
  models:
14
14
  decidim/blogs/post:
15
15
  one: Artikkeli
16
- other: Artikkelia
16
+ other: Artikkelit
17
17
  decidim:
18
18
  admin:
19
19
  admin_log:
@@ -8,30 +8,43 @@ pt-BR:
8
8
  published_at: Horário da publicação
9
9
  title: Título
10
10
  models:
11
- decidim/blogs/create_post_event: Nova postagem no blog
11
+ decidim/blogs/create_post_event: Nova postagem no blog
12
12
  activerecord:
13
13
  models:
14
14
  decidim/blogs/post:
15
15
  one: Postagem
16
16
  other: Postagens
17
17
  decidim:
18
+ admin:
19
+ admin_log:
20
+ changeset:
21
+ posts: Postagens
22
+ tooltips:
23
+ deleted_posts_info: Não é possível excluir este post
18
24
  blogs:
19
25
  actions:
20
26
  author_id: Criar publicação como
27
+ confirm_delete_post: Deseja mesmo excluir este post?
28
+ deleted_posts_info: Postagens excluídas podem ser restaurados da lixeira.
21
29
  edit: Editar
22
30
  new: Nova postagem
23
31
  title: Ações
32
+ view_deleted_posts: Ver propostas excluídas
24
33
  admin:
25
34
  posts:
26
35
  create:
27
36
  invalid: Houve um problema ao criar esta postagem.
28
37
  success: Post criado com sucesso.
38
+ destroy:
39
+ success: Postagem excluída com sucesso.
29
40
  edit:
30
41
  save: Atualizar
31
42
  title: Editar publicação
32
43
  index:
33
44
  not_published_yet: Não publicado.
34
45
  title: Postagens
46
+ manage_trash:
47
+ title: Postagens excluídas
35
48
  new:
36
49
  create: Criar
37
50
  title: Criar post
@@ -40,9 +53,11 @@ pt-BR:
40
53
  success: Post salvo com sucesso.
41
54
  admin_log:
42
55
  post:
43
- create: "%{user_name} criou a publicação no blog %{resource_name} do %{space_name}"
44
- delete: "O %{user_name} excluiu a publicação no blog %{resource_name} do %{space_name}"
45
- update: "%{user_name} atualizou a publicação no blog %{resource_name} do %{space_name}"
56
+ create: "%{user_name} Criou a publicação no blog %{resource_name} do %{space_name}"
57
+ delete: "O %{user_name} excluiu a publicação no blog %{resource_name} do %{space_name}"
58
+ restore: "%{user_name} restaurou a postagem do blog %{resource_name} no %{space_name}"
59
+ soft_delete: "%{user_name} moveu a postagem do blog %{resource_name} no %{space_name} para a lixeira"
60
+ update: "%{user_name} Atualizou a publicação no ‘blog’ %{resource_name} do %{space_name}"
46
61
  content_blocks:
47
62
  highlighted_posts:
48
63
  last_published: Último publicado
@@ -57,29 +72,59 @@ pt-BR:
57
72
  body: Corpo
58
73
  official_blog_post: Publicação oficial
59
74
  published_at: Horário da publicação
75
+ taxonomies: Taxonomias
60
76
  title: Título
61
77
  posts:
78
+ edit:
79
+ add_attachments: Adicionar anexos
80
+ attachment_legend: Adicionar um documento ou uma imagem
81
+ back: Voltar à postagem
82
+ button: Atualizar
83
+ edit_attachments: Editar anexos
84
+ title: Editar postagem
85
+ form:
86
+ author_id: Autor
87
+ body: Corpo
88
+ title: Título
62
89
  index:
63
90
  count:
64
91
  one: "%{count} publicação"
65
92
  other: "%{count} publicações"
66
93
  empty: Não existem publicações ainda.
94
+ new_post: Nova postagem
95
+ menu_actions:
96
+ button_destroy: Excluir postagem
97
+ button_destroy_confirm: Tem certeza que deseja excluir esta postagem?
98
+ button_edit: Editar postagem
99
+ new:
100
+ back: Voltar às postagens
101
+ button: Criar
102
+ title: Criar nova postagem
67
103
  components:
68
104
  blogs:
69
105
  actions:
70
106
  comment: Comentário
71
107
  create: Criar
72
108
  destroy: Excluir
109
+ like: Curti
73
110
  update: Atualizar
74
111
  name: Blog
75
112
  settings:
76
113
  global:
77
114
  announcement: Anúncio
115
+ attachments_allowed: Permitir anexos
78
116
  comments_enabled: Comentários ativados
79
117
  comments_max_length: Tamanho máximo de comentários (deixe 0 para o valor padrão)
118
+ creation_enabled_for_participants: Os usuários podem criar postagens
119
+ define_taxonomy_filters: Por favor, defina alguns filtros para este espaço participativo antes de usar esta configuração.
120
+ no_taxonomy_filters_found: Nenhum filtro de taxonomia encontrado.
121
+ taxonomy_filters: Selecione filtros para o componente
122
+ taxonomy_filters_add: Adicionar filtro
80
123
  step:
81
124
  announcement: Anúncio
82
125
  comments_blocked: Comentários bloqueados
126
+ likes_blocked: Curtidas bloqueadas
127
+ likes_enabled: Curtidas ativadas
83
128
  events:
84
129
  blogs:
85
130
  post_created:
@@ -87,5 +132,33 @@ pt-BR:
87
132
  email_outro: Você recebeu esta notificação porque está seguindo "%{participatory_space_title}". Você pode deixar de segui-lo no link anterior.
88
133
  email_subject: Nova postagem publicada em %{participatory_space_title}
89
134
  notification_title: A postagem <a href="%{resource_path}">%{resource_title}</a> foi publicada em %{participatory_space_title}
135
+ open_data:
136
+ help:
137
+ post_comments:
138
+ alignment: Se este comentário foi um favorito, contra ou neutro
139
+ author: O nome do usuário que fez este comentário
140
+ body: O comentário em si
141
+ commentable_id: A identificação única do comentável
142
+ commentable_type: O tipo do comentário (se foi um resultado, uma proposta, etc.)
143
+ created_at: A data em que este comentário foi criado
144
+ depth: O lugar onde este comentário está nos três comentários (se for uma resposta ou uma resposta de uma resposta)
145
+ id: O ID deste comentário
146
+ locale: O idioma (localidade) que o participante tinha ao deixar este comentário
147
+ root_commentable_url: O URL do recurso relacionado a este comentário
148
+ posts:
149
+ author: Informações do autor
150
+ body: O corpo da postagem
151
+ comments_count: O número de comentários que esta publicação recebeu
152
+ component: O componente ao qual a postagem pertence
153
+ created_at: A data em que esta publicação foi criada
154
+ follows_count: O número de seguidores que esta publicação tem
155
+ id: O identificador único desta publicação
156
+ likes_count: O número de curtidas que esta publicação tem
157
+ participatory_space: A que espaço (por exemplo, Processo Participativo ou Assembleia) pertence esta publicação
158
+ published_at: A data em que esta postagem foi publicada
159
+ title: O título da postagem
160
+ updated_at: Última data em que esta publicação foi atualizada
161
+ url: O URL para esta postagem
90
162
  statistics:
91
163
  posts_count: Postagens
164
+ posts_count_tooltip: O número de atualizações ou posts de ‘blog’, publicados.
@@ -20,6 +20,8 @@ ro:
20
20
  admin_log:
21
21
  changeset:
22
22
  posts: Postări
23
+ tooltips:
24
+ deleted_posts_info: Nu se poate șterge această postare
23
25
  blogs:
24
26
  actions:
25
27
  author_id: Creeați postare ca
@@ -106,6 +108,7 @@ ro:
106
108
  comment: Comentați
107
109
  create: Creați
108
110
  destroy: Ștergeți
111
+ like: Apreciere
109
112
  update: Actualizați
110
113
  name: Blog
111
114
  settings:
@@ -122,6 +125,8 @@ ro:
122
125
  step:
123
126
  announcement: Anunț
124
127
  comments_blocked: Comentarii blocate
128
+ likes_blocked: Aprecieri blocate
129
+ likes_enabled: Aprecieri activate
125
130
  events:
126
131
  blogs:
127
132
  post_created:
@@ -150,6 +155,7 @@ ro:
150
155
  created_at: Data la care acestă postare a fost creată
151
156
  follows_count: Numărul de urmăritori al acestei postări
152
157
  id: Identificatorul unic al acestei postări
158
+ likes_count: Numărul de aprecieri pe care le are această postare
153
159
  participatory_space: Cărui spațiu (de exemplu, proces participativ sau adunare) aparține această postare
154
160
  published_at: Data la care acestă postare a fost publicată
155
161
  title: Titlul postării
@@ -13,6 +13,18 @@ Decidim.register_component(:blogs) do |component|
13
13
  raise StandardError, "Cannot remove this component" if Decidim::Blogs::Post.where(component: instance).any?
14
14
  end
15
15
 
16
+ component.on(:publish) do |instance|
17
+ Decidim::Blogs::Post.where(component: instance).find_in_batches(batch_size: 100) do |batch|
18
+ Decidim::UpdateSearchIndexesJob.perform_later(batch)
19
+ end
20
+ end
21
+
22
+ component.on(:unpublish) do |instance|
23
+ Decidim::Blogs::Post.where(component: instance).find_in_batches(batch_size: 100) do |batch|
24
+ Decidim::RemoveSearchIndexesJob.perform_later(batch)
25
+ end
26
+ end
27
+
16
28
  component.register_stat :posts_count,
17
29
  primary: true,
18
30
  priority: Decidim::StatsRegistry::MEDIUM_PRIORITY,
@@ -25,6 +25,12 @@ module Decidim
25
25
  Decidim.icons.register(name: "Decidim::Blogs::Post", icon: "pen-nib-line", description: "Blogs post", category: "activity", engine: :core)
26
26
  end
27
27
 
28
+ initializer "decidim_blogs.data_migrate", after: "decidim_core.data_migrate" do
29
+ DataMigrate.configure do |config|
30
+ config.data_migrations_path << root.join("db/data").to_s
31
+ end
32
+ end
33
+
28
34
  initializer "decidim_blogs.add_cells_view_paths" do
29
35
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Blogs::Engine.root}/app/cells")
30
36
  Cell::ViewModel.view_paths << File.expand_path("#{Decidim::Blogs::Engine.root}/app/views") # for partials
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-pages version.
5
5
  module Blogs
6
6
  def self.version
7
- "0.31.0.rc2"
7
+ "0.31.1"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-blogs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0.rc2
4
+ version: 0.31.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isaac Massot Gil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-28 00:00:00.000000000 Z
11
+ date: 2026-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin
@@ -16,98 +16,98 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.31.0.rc2
19
+ version: 0.31.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.31.0.rc2
26
+ version: 0.31.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: decidim-comments
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 0.31.0.rc2
33
+ version: 0.31.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 0.31.0.rc2
40
+ version: 0.31.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: decidim-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.31.0.rc2
47
+ version: 0.31.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.31.0.rc2
54
+ version: 0.31.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: decidim-admin
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 0.31.0.rc2
61
+ version: 0.31.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 0.31.0.rc2
68
+ version: 0.31.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: decidim-assemblies
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.31.0.rc2
75
+ version: 0.31.1
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 0.31.0.rc2
82
+ version: 0.31.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: decidim-dev
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.31.0.rc2
89
+ version: 0.31.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.31.0.rc2
96
+ version: 0.31.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: decidim-participatory_processes
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 0.31.0.rc2
103
+ version: 0.31.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.31.0.rc2
110
+ version: 0.31.1
111
111
  description: A Blog component for decidim's participatory spaces.
112
112
  email:
113
113
  - isaac.mg@coditramuntana.com