decidim-blogs 0.26.2 → 0.27.0.rc2

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/blogs/admin/create_post.rb +1 -1
  3. data/app/commands/decidim/blogs/admin/update_post.rb +6 -3
  4. data/app/controllers/decidim/blogs/admin/posts_controller.rb +6 -2
  5. data/app/forms/decidim/blogs/admin/post_form.rb +27 -7
  6. data/app/helpers/decidim/blogs/admin/posts_helper.rb +15 -0
  7. data/app/models/decidim/blogs/post.rb +9 -1
  8. data/app/presenters/decidim/blogs/admin_log/post_presenter.rb +36 -0
  9. data/app/presenters/decidim/blogs/official_author_presenter.rb +14 -0
  10. data/app/presenters/decidim/blogs/post_presenter.rb +7 -1
  11. data/app/views/decidim/blogs/admin/posts/_form.html.erb +3 -3
  12. data/app/views/decidim/blogs/posts/_posts.html.erb +2 -1
  13. data/app/views/decidim/blogs/posts/show.html.erb +3 -1
  14. data/config/locales/ar.yml +2 -1
  15. data/config/locales/bg.yml +1 -0
  16. data/config/locales/ca.yml +8 -1
  17. data/config/locales/cs.yml +8 -1
  18. data/config/locales/de.yml +8 -1
  19. data/config/locales/el.yml +2 -1
  20. data/config/locales/en.yml +7 -1
  21. data/config/locales/es-MX.yml +8 -1
  22. data/config/locales/es-PY.yml +8 -1
  23. data/config/locales/es.yml +8 -1
  24. data/config/locales/eu.yml +2 -1
  25. data/config/locales/fi-plain.yml +8 -1
  26. data/config/locales/fi.yml +8 -1
  27. data/config/locales/fr-CA.yml +8 -1
  28. data/config/locales/fr.yml +8 -1
  29. data/config/locales/ga-IE.yml +1 -0
  30. data/config/locales/gl.yml +2 -1
  31. data/config/locales/hu.yml +16 -0
  32. data/config/locales/id-ID.yml +1 -0
  33. data/config/locales/is-IS.yml +2 -1
  34. data/config/locales/it.yml +2 -1
  35. data/config/locales/ja.yml +8 -1
  36. data/config/locales/lb.yml +2 -1
  37. data/config/locales/lt.yml +93 -0
  38. data/config/locales/lv.yml +1 -0
  39. data/config/locales/nl.yml +12 -5
  40. data/config/locales/no.yml +2 -1
  41. data/config/locales/pl.yml +2 -1
  42. data/config/locales/pt-BR.yml +2 -1
  43. data/config/locales/pt.yml +2 -1
  44. data/config/locales/ro-RO.yml +2 -1
  45. data/config/locales/ru.yml +1 -0
  46. data/config/locales/sk.yml +1 -0
  47. data/config/locales/sl.yml +1 -0
  48. data/config/locales/sr-CS.yml +1 -0
  49. data/config/locales/sv.yml +3 -1
  50. data/config/locales/tr-TR.yml +1 -0
  51. data/config/locales/uk.yml +1 -0
  52. data/config/locales/zh-CN.yml +1 -0
  53. data/lib/decidim/blogs/component.rb +8 -2
  54. data/lib/decidim/blogs/version.rb +1 -1
  55. metadata +22 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b09fd77f2afed7d1e0c8c6e2d4a76d07e5e9487f96fa0618912dbdad63ec152e
4
- data.tar.gz: 0c2fe3a5dd93723960dae9487d67bf76dc49823d94ccc8ab64e872267d4b0eb8
3
+ metadata.gz: bfc72d278f0359e9c5f9939d2664139b49cb646e5dd0fb3cee8b9dd1a46e4dfa
4
+ data.tar.gz: 378e6705ce51faa371d6cf33beae2cd4425d4eeee461fd827bf49aee204cffb3
5
5
  SHA512:
6
- metadata.gz: cf119b7dc3e6e366f51a402697882cccd0cf1afdf6957522724c61b52d7eb9981da7b3966fde57e9f8676f99034643be174c98d75f376ecc73fb31a17b3c69f4
7
- data.tar.gz: 443374c6f71405e9177bc2b31c0570cc114211ccfc1eae65901bffb4f699d08e5751b2750cec30cc9658ed9d3e393e94ca1a61af573713818f4d1944eebaf22b
6
+ metadata.gz: a2cd5ecb7a1e9d1f7cec12fa5d20aef440954b23c75a781fc9f22278f104f4252d32682356c89a61534a563c176bab140c08b90cb43a2feed54401837151cee4
7
+ data.tar.gz: ca92b63f317abdbfb05451989908395af42e6a961b27974e9258e3aff23447d68e29a5073ed004c634b387a79fea7ac64395161e086cd5fed9d0a202e10451dd
@@ -5,7 +5,7 @@ module Decidim
5
5
  module Admin
6
6
  # This command is executed when the user creates a Post from the admin
7
7
  # panel.
8
- class CreatePost < Rectify::Command
8
+ class CreatePost < Decidim::Command
9
9
  def initialize(form, current_user)
10
10
  @form = form
11
11
  @current_user = current_user
@@ -5,14 +5,15 @@ module Decidim
5
5
  module Admin
6
6
  # This command is executed when the user changes a Blog from the admin
7
7
  # panel.
8
- class UpdatePost < Rectify::Command
8
+ class UpdatePost < Decidim::Command
9
9
  # Initializes a UpdateBlog Command.
10
10
  #
11
11
  # form - The form from which to get the data.
12
12
  # blog - The current instance of the page to be updated.
13
- def initialize(form, post)
13
+ def initialize(form, post, user)
14
14
  @form = form
15
15
  @post = post
16
+ @user = user
16
17
  end
17
18
 
18
19
  # Updates the blog if valid.
@@ -33,7 +34,9 @@ module Decidim
33
34
  attr_reader :form, :post
34
35
 
35
36
  def update_post!
36
- post.update!(
37
+ Decidim.traceability.update!(
38
+ post,
39
+ @user,
37
40
  title: form.title,
38
41
  body: form.body,
39
42
  author: form.author
@@ -6,6 +6,7 @@ module Decidim
6
6
  # This controller allows the create or update a blog.
7
7
  class PostsController < Admin::ApplicationController
8
8
  helper UserGroupHelper
9
+ helper PostsHelper
9
10
 
10
11
  def new
11
12
  enforce_permission_to :create, :blogpost
@@ -38,7 +39,7 @@ module Decidim
38
39
  enforce_permission_to :update, :blogpost, blogpost: post
39
40
  @form = form(PostForm).from_params(params, current_component: current_component)
40
41
 
41
- UpdatePost.call(@form, post) do
42
+ UpdatePost.call(@form, post, current_user) do
42
43
  on(:ok) do
43
44
  flash[:notice] = I18n.t("posts.update.success", scope: "decidim.blogs.admin")
44
45
  redirect_to posts_path
@@ -53,7 +54,10 @@ module Decidim
53
54
 
54
55
  def destroy
55
56
  enforce_permission_to :destroy, :blogpost, blogpost: post
56
- post.destroy!
57
+
58
+ Decidim.traceability.perform_action!("delete", post, current_user) do
59
+ post.destroy!
60
+ end
57
61
 
58
62
  flash[:notice] = I18n.t("posts.destroy.success", scope: "decidim.blogs.admin")
59
63
 
@@ -10,24 +10,44 @@ module Decidim
10
10
  translatable_attribute :title, String
11
11
  translatable_attribute :body, String
12
12
 
13
- attribute :user_group_id, Integer
13
+ attribute :decidim_author_id, Integer
14
14
 
15
15
  validates :title, translatable_presence: true
16
16
  validates :body, translatable_presence: true
17
+ validate :can_set_author
17
18
 
18
- def map_model(post)
19
- self.user_group_id = post.author.id if post.author.is_a?(Decidim::UserGroup)
19
+ def map_model(model)
20
+ self.decidim_author_id = nil if model.author.is_a? Decidim::Organization
20
21
  end
21
22
 
22
- def user_group
23
- @user_group ||= Decidim::UserGroup.find_by(
23
+ def user_or_group
24
+ @user_or_group ||= Decidim::UserBaseEntity.find_by(
24
25
  organization: current_organization,
25
- id: user_group_id.to_i
26
+ id: decidim_author_id
26
27
  )
27
28
  end
28
29
 
29
30
  def author
30
- user_group || current_user
31
+ user_or_group || current_organization
32
+ end
33
+
34
+ private
35
+
36
+ def can_set_author
37
+ return if author == current_user.organization
38
+ return if author == current_user
39
+ return if user_groups.include? author
40
+ return if author == post&.author
41
+
42
+ errors.add(:decidim_author_id, :invalid)
43
+ end
44
+
45
+ def post
46
+ @post ||= Post.find_by(id: id)
47
+ end
48
+
49
+ def user_groups
50
+ @user_groups ||= Decidim::UserGroups::ManageableUserGroups.for(current_user).verified
31
51
  end
32
52
  end
33
53
  end
@@ -18,6 +18,21 @@ module Decidim
18
18
  body = translated_attribute(post.body)
19
19
  CGI.unescapeHTML html_truncate(body, max_length: max_length)
20
20
  end
21
+
22
+ def post_author_select_field(form, name, _options = {})
23
+ select_options = [
24
+ [current_organization.name, ""],
25
+ [current_user.name, current_user.id]
26
+ ]
27
+ current_user_groups = Decidim::UserGroups::ManageableUserGroups.for(current_user).verified
28
+
29
+ select_options += current_user_groups.map { |g| [g.name, g.id] } if current_organization.user_groups_enabled? && current_user_groups.any?
30
+ unless form.object.author.is_a?(Organization) || select_options.pluck(1).include?(form.object.author.id)
31
+ select_options << [form.object.author.name, form.object.author.id]
32
+ end
33
+
34
+ form.select(name, select_options)
35
+ end
21
36
  end
22
37
  end
23
38
  end
@@ -39,6 +39,10 @@ module Decidim
39
39
  participatory_space.try(:visible?) && component.try(:published?)
40
40
  end
41
41
 
42
+ def self.log_presenter_class_for(_log)
43
+ Decidim::Blogs::AdminLog::PostPresenter
44
+ end
45
+
42
46
  # Public: Overrides the `comments_have_alignment?` Commentable concern method.
43
47
  def comments_have_alignment?
44
48
  true
@@ -55,7 +59,11 @@ module Decidim
55
59
  end
56
60
 
57
61
  def official?
58
- author.nil?
62
+ author.is_a?(Decidim::Organization)
63
+ end
64
+
65
+ def user_group?
66
+ author.is_a?(Decidim::UserGroup)
59
67
  end
60
68
 
61
69
  def users_to_notify_on_comment_created
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Blogs
5
+ module AdminLog
6
+ # This class holds the logic to present a `Decidim::Blogs::Post`
7
+ # for the `AdminLog` log.
8
+ #
9
+ # Usage should be automatic and you shouldn't need to call this class
10
+ # directly, but here's an example:
11
+ #
12
+ # action_log = Decidim::ActionLog.last
13
+ # view_helpers # => this comes from the views
14
+ # PostPresenter.new(action_log, view_helpers).present
15
+ class PostPresenter < Decidim::Log::BasePresenter
16
+ private
17
+
18
+ def action_string
19
+ case action
20
+ when "create", "delete", "update"
21
+ "decidim.blogs.admin_log.post.#{action}"
22
+ else
23
+ super
24
+ end
25
+ end
26
+
27
+ def diff_fields_mapping
28
+ {
29
+ title: :i18n,
30
+ body: :i18n
31
+ }
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Blogs
5
+ #
6
+ # A dummy presenter to abstract out the author of an official post.
7
+ #
8
+ class OfficialAuthorPresenter < Decidim::OfficialAuthorPresenter
9
+ def name
10
+ I18n.t("decidim.blogs.models.post.fields.official_blog_post")
11
+ end
12
+ end
13
+ end
14
+ end
@@ -7,7 +7,13 @@ module Decidim
7
7
  #
8
8
  class PostPresenter < SimpleDelegator
9
9
  def author
10
- @author ||= Decidim::UserPresenter.new(super)
10
+ @author ||= if official?
11
+ Decidim::Blogs::OfficialAuthorPresenter.new
12
+ elsif user_group?
13
+ Decidim::UserGroupPresenter.new(super)
14
+ else
15
+ Decidim::UserPresenter.new(super)
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -3,11 +3,11 @@
3
3
  <h2 class="card-title"><%= title %></h2>
4
4
  </div>
5
5
  <div class="card-section">
6
- <% if current_organization.user_groups_enabled? && Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
6
+
7
7
  <div class="field">
8
- <%= user_group_select_field form, :user_group_id, label: t("decidim.blogs.actions.user_group_id") %>
8
+ <%= post_author_select_field form, :decidim_author_id, label: t("decidim.blogs.actions.author_id") %>
9
9
  </div>
10
- <% end %>
10
+
11
11
  <div class="row column">
12
12
  <%= form.translated :text_field, :title, autofocus: true %>
13
13
  </div>
@@ -12,7 +12,8 @@
12
12
  </h2>
13
13
  <% end %>
14
14
  <div class="card__author">
15
- <%= cell "decidim/author", present(post.author), from: post, has_actions: true %>
15
+ <% post_presenter = Decidim::Blogs::PostPresenter.new(post) %>
16
+ <%= cell "decidim/author", post_presenter.author, from: post, has_actions: true %>
16
17
  </div>
17
18
  </div>
18
19
  <%= decidim_sanitize_editor post_description(post) %>
@@ -23,7 +23,9 @@
23
23
  <% end %>
24
24
  </div>
25
25
  <h2 class="heading2"><%= translated_attribute post.title %></h2>
26
- <%= cell "decidim/author", present(post.author), from: post %>
26
+
27
+ <% post_presenter = Decidim::Blogs::PostPresenter.new(post) %>
28
+ <%= cell "decidim/author", post_presenter.author, from: post %>
27
29
  </div>
28
30
  <div class="row">
29
31
  <% if show_endorsements_card? %>
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ar:
2
3
  activemodel:
3
4
  models:
@@ -14,12 +15,12 @@ ar:
14
15
  decidim:
15
16
  blogs:
16
17
  actions:
18
+ author_id: إنشاء مشاركة كـ
17
19
  confirm_destroy: هل أنت متأكد أنك تريد حذف هذه المشاركة؟
18
20
  destroy: حذف
19
21
  edit: تعديل
20
22
  new: منشور جديد
21
23
  title: أفعال
22
- user_group_id: إنشاء مشاركة كـ
23
24
  admin:
24
25
  models:
25
26
  components:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  bg:
2
3
  activemodel:
3
4
  models:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  ca:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ ca:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Crear publicació com
13
15
  confirm_destroy: Estàs segura que vols eliminar aquesta publicació?
14
16
  destroy: Suprimeix
15
17
  edit: Edita
16
18
  new: Nova publicació
17
19
  title: Accions
18
- user_group_id: Crear publicació com
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ ca:
39
40
  update:
40
41
  invalid: S'ha produït un error en guardar la publicació.
41
42
  success: S'ha desat la publicació correctament
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} ha creat el post %{resource_name} al blog de %{space_name}"
46
+ delete: "%{user_name} ha eliminat el post %{resource_name} del blog de %{space_name}"
47
+ update: "%{user_name} ha actualitzat el post %{resource_name} en el blog de %{space_name}"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Nova publicació a %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ ca:
47
53
  author: Autora
48
54
  body: Cos
49
55
  created_at: Creat el
56
+ official_blog_post: Post oficial
50
57
  title: títol
51
58
  posts:
52
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  cs:
2
3
  activemodel:
3
4
  models:
@@ -12,12 +13,12 @@ cs:
12
13
  decidim:
13
14
  blogs:
14
15
  actions:
16
+ author_id: Vytvořit příspěvek jako
15
17
  confirm_destroy: Opravdu chcete tento příspěvek smazat?
16
18
  destroy: Smazat
17
19
  edit: Upravit
18
20
  new: Nový příspěvek
19
21
  title: Akce
20
- user_group_id: Vytvořit příspěvek jako
21
22
  admin:
22
23
  models:
23
24
  components:
@@ -41,6 +42,11 @@ cs:
41
42
  update:
42
43
  invalid: Při ukládání příspěvku došlo k chybám.
43
44
  success: Příspěvek byl úspěšně uložen
45
+ admin_log:
46
+ post:
47
+ create: "%{user_name} vytvořil příspěvek %{resource_name} v %{space_name}"
48
+ delete: "%{user_name} odstranil příspěvek %{resource_name} z %{space_name}"
49
+ update: "%{user_name} aktualizoval příspěvek %{resource_name} v %{space_name}"
44
50
  last_activity:
45
51
  new_post_at_html: "<span>Nový příspěvek v %{link}</span>"
46
52
  models:
@@ -49,6 +55,7 @@ cs:
49
55
  author: Autor
50
56
  body: Tělo
51
57
  created_at: Vytvořeno v
58
+ official_blog_post: Oficiální příspěvek
52
59
  title: titulek
53
60
  posts:
54
61
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  de:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ de:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Beitrag erstellen als
13
15
  confirm_destroy: Möchten Sie diesen Beitrag wirklich löschen?
14
16
  destroy: Löschen
15
17
  edit: Bearbeiten
16
18
  new: Neuer Beitrag
17
19
  title: Aktionen
18
- user_group_id: Beitrag erstellen als
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ de:
39
40
  update:
40
41
  invalid: Beim Speichern des Posts sind Fehler aufgetreten.
41
42
  success: Beitrag wurde erfolgreich gespeichert
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} erstellt"
46
+ delete: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} gelöscht"
47
+ update: "%{user_name} hat den Blogpost %{resource_name} in %{space_name} aktualisiert"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Neuer Beitrag bei %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ de:
47
53
  author: Autor
48
54
  body: Haupttext
49
55
  created_at: Hergestellt in
56
+ official_blog_post: Offizieller Post
50
57
  title: Titel
51
58
  posts:
52
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  el:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ el:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Δημιουργία ανάρτησης ως
13
15
  confirm_destroy: Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν τη δημοσίευση;
14
16
  destroy: Διαγραφή
15
17
  edit: Επεξεργασία
16
18
  new: Νέα δημοσίευση
17
19
  title: Ενέργειες
18
- user_group_id: Δημιουργία ανάρτησης ως
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -11,12 +11,12 @@ en:
11
11
  decidim:
12
12
  blogs:
13
13
  actions:
14
+ author_id: Create post as
14
15
  confirm_destroy: Are you sure you want to delete this post?
15
16
  destroy: Delete
16
17
  edit: Edit
17
18
  new: New post
18
19
  title: Actions
19
- user_group_id: Create post as
20
20
  admin:
21
21
  models:
22
22
  components:
@@ -40,6 +40,11 @@ en:
40
40
  update:
41
41
  invalid: There was a problem saving the post.
42
42
  success: Post successfully saved
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} created the %{resource_name} blog post in %{space_name}"
46
+ delete: "%{user_name} deleted the %{resource_name} blog post from %{space_name}"
47
+ update: "%{user_name} updated the %{resource_name} blog post in %{space_name}"
43
48
  last_activity:
44
49
  new_post_at_html: "<span>New post at %{link}</span>"
45
50
  models:
@@ -48,6 +53,7 @@ en:
48
53
  author: Author
49
54
  body: Body
50
55
  created_at: Created at
56
+ official_blog_post: Official post
51
57
  title: title
52
58
  posts:
53
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es-MX:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ es-MX:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Crear publicación como
13
15
  confirm_destroy: '¿Seguro que quieres eliminar esta publicación?'
14
16
  destroy: Borrar
15
17
  edit: Editar
16
18
  new: Nueva publicación
17
19
  title: Comportamiento
18
- user_group_id: Crear publicación como
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ es-MX:
39
40
  update:
40
41
  invalid: Ha habido errores al guardar la publicación.
41
42
  success: Publicación guardada con éxito
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} creó el post %{resource_name} en el blog de %{space_name}"
46
+ delete: "%{user_name} ha eliminado el post %{resource_name} en el blog de %{space_name}"
47
+ update: "%{user_name} ha actualizado el post %{resource_name} en el blog de %{space_name}"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Nueva publicación en %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ es-MX:
47
53
  author: Autoría
48
54
  body: Cuerpo
49
55
  created_at: Creado en
56
+ official_blog_post: Post oficial
50
57
  title: título
51
58
  posts:
52
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es-PY:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ es-PY:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Crear publicación como
13
15
  confirm_destroy: '¿Seguro que quieres eliminar esta publicación?'
14
16
  destroy: Borrar
15
17
  edit: Editar
16
18
  new: Nueva publicación
17
19
  title: Comportamiento
18
- user_group_id: Crear publicación como
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ es-PY:
39
40
  update:
40
41
  invalid: Ha habido errores al guardar la publicación.
41
42
  success: Publicación guardada con éxito
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} creó el post %{resource_name} en el blog de %{space_name}"
46
+ delete: "%{user_name} ha eliminado el post %{resource_name} en el blog de %{space_name}"
47
+ update: "%{user_name} ha actualizado el post %{resource_name} en el blog de %{space_name}"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Nueva publicación en %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ es-PY:
47
53
  author: Autoría
48
54
  body: Cuerpo
49
55
  created_at: Creado en
56
+ official_blog_post: Post oficial
50
57
  title: título
51
58
  posts:
52
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  es:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ es:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Crear publicación como
13
15
  confirm_destroy: '¿Estás segura que quieres eliminar esta publicación?'
14
16
  destroy: Borrar
15
17
  edit: Editar
16
18
  new: Nueva publicación
17
19
  title: Acciones
18
- user_group_id: Crear publicación como
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ es:
39
40
  update:
40
41
  invalid: Se ha producido un error al guardar la publicación.
41
42
  success: Se ha guardado la publicación correctamente
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} creó el post %{resource_name} en el blog de %{space_name}"
46
+ delete: "%{user_name} ha eliminado el post %{resource_name} en el blog de %{space_name}"
47
+ update: "%{user_name} ha actualizado el post %{resource_name} en el blog de %{space_name}"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Nueva publicación en %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ es:
47
53
  author: Autora
48
54
  body: Cuerpo
49
55
  created_at: Creado en
56
+ official_blog_post: Post oficial
50
57
  title: título
51
58
  posts:
52
59
  show:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  eu:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ eu:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Sortu argitalpena hau bezala
13
15
  confirm_destroy: Ziur mezua ezabatu nahi duzula?
14
16
  destroy: Ezabatu
15
17
  edit: Editatu
16
18
  new: Post berria
17
19
  title: Ekintzak
18
- user_group_id: Sortu argitalpena hau bezala
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -1,3 +1,4 @@
1
+ ---
1
2
  fi-pl:
2
3
  activemodel:
3
4
  models:
@@ -10,12 +11,12 @@ fi-pl:
10
11
  decidim:
11
12
  blogs:
12
13
  actions:
14
+ author_id: Luo artikkeli käyttäjänä
13
15
  confirm_destroy: Haluatko varmasti poistaa tämän artikkelin?
14
16
  destroy: Poista
15
17
  edit: Muokkaa
16
18
  new: Uusi artikkeli
17
19
  title: Toiminnot
18
- user_group_id: Luo artikkeli käyttäjänä
19
20
  admin:
20
21
  models:
21
22
  components:
@@ -39,6 +40,11 @@ fi-pl:
39
40
  update:
40
41
  invalid: Artikkelin tallennuksessa tapahtui virheitä.
41
42
  success: Artikkeli tallennettu onnistuneesti
43
+ admin_log:
44
+ post:
45
+ create: "%{user_name} loi blogikirjoituksen %{resource_name} tilassa %{space_name}"
46
+ delete: "%{user_name} poisti blogikirjoituksen %{resource_name} tilasta %{space_name}"
47
+ update: "%{user_name} päivitti blogikirjoitusta %{resource_name} tilassa %{space_name}"
42
48
  last_activity:
43
49
  new_post_at_html: "<span>Uusi artikkeli osoitteessa %{link}</span>"
44
50
  models:
@@ -47,6 +53,7 @@ fi-pl:
47
53
  author: Kirjoittaja
48
54
  body: Leipäteksti
49
55
  created_at: Luotu
56
+ official_blog_post: Virallinen artikkeli
50
57
  title: otsikko
51
58
  posts:
52
59
  show: