biovision-post 0.21.190513.0 → 0.26.191013.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.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/biovision_post_manifest.js +1 -0
  3. data/app/assets/images/biovision/post/icons/comment.svg +9 -0
  4. data/app/assets/javascripts/biovision/post/biovision-posts.js +21 -28
  5. data/app/assets/stylesheets/biovision/post/posts.scss +6 -0
  6. data/app/controllers/admin/editorial_members_controller.rb +9 -4
  7. data/app/controllers/admin/featured_posts_controller.rb +9 -4
  8. data/app/controllers/admin/post_categories_controller.rb +12 -6
  9. data/app/controllers/admin/post_group_categories_controller.rb +9 -4
  10. data/app/controllers/admin/post_group_tags_controller.rb +9 -4
  11. data/app/controllers/admin/post_groups_controller.rb +9 -4
  12. data/app/controllers/admin/post_illustrations_controller.rb +9 -4
  13. data/app/controllers/admin/post_images_controller.rb +9 -4
  14. data/app/controllers/admin/post_links_controller.rb +9 -4
  15. data/app/controllers/admin/post_tags_controller.rb +9 -4
  16. data/app/controllers/admin/post_types_controller.rb +13 -4
  17. data/app/controllers/admin/posts_controller.rb +6 -8
  18. data/app/controllers/articles_controller.rb +16 -6
  19. data/app/controllers/authors_controller.rb +9 -4
  20. data/app/controllers/blog_posts_controller.rb +16 -6
  21. data/app/controllers/editorial_members_controller.rb +9 -4
  22. data/app/controllers/featured_posts_controller.rb +6 -1
  23. data/app/controllers/my/posts_controller.rb +35 -38
  24. data/app/controllers/news_controller.rb +16 -6
  25. data/app/controllers/post_attachments_controller.rb +36 -0
  26. data/app/controllers/post_categories_controller.rb +6 -1
  27. data/app/controllers/post_groups_controller.rb +9 -4
  28. data/app/controllers/post_illustrations_controller.rb +6 -1
  29. data/app/controllers/post_images_controller.rb +9 -8
  30. data/app/controllers/post_links_controller.rb +5 -2
  31. data/app/controllers/post_tags_controller.rb +9 -4
  32. data/app/controllers/posts_controller.rb +39 -17
  33. data/app/helpers/biovision_posts_helper.rb +28 -27
  34. data/app/jobs/post_body_parser_job.rb +1 -1
  35. data/app/models/concerns/post_child_with_priority.rb +2 -1
  36. data/app/models/editorial_member.rb +10 -1
  37. data/app/models/post.rb +39 -11
  38. data/app/models/post_attachment.rb +49 -0
  39. data/app/models/post_category.rb +6 -0
  40. data/app/models/post_group_category.rb +1 -1
  41. data/app/models/post_illustration.rb +2 -1
  42. data/app/models/post_image.rb +2 -1
  43. data/app/models/post_type.rb +15 -0
  44. data/app/services/biovision/components/posts_component.rb +65 -0
  45. data/app/views/admin/components/links/_posts.html.erb +33 -0
  46. data/app/views/admin/editorial_members/index.html.erb +2 -1
  47. data/app/views/admin/editorial_members/show.html.erb +1 -0
  48. data/app/views/admin/featured_posts/index.html.erb +1 -0
  49. data/app/views/admin/post_categories/entity/_in_list.html.erb +10 -0
  50. data/app/views/admin/post_categories/show.html.erb +11 -0
  51. data/app/views/admin/post_groups/index.html.erb +2 -1
  52. data/app/views/admin/post_groups/show.html.erb +1 -0
  53. data/app/views/admin/post_illustrations/index.html.erb +1 -0
  54. data/app/views/admin/post_illustrations/show.html.erb +1 -0
  55. data/app/views/admin/post_images/index.html.erb +2 -1
  56. data/app/views/admin/post_images/show.html.erb +1 -0
  57. data/app/views/admin/post_tags/index.html.erb +2 -1
  58. data/app/views/admin/post_tags/posts.html.erb +4 -3
  59. data/app/views/admin/post_tags/show.html.erb +3 -2
  60. data/app/views/admin/post_types/authors.html.erb +1 -0
  61. data/app/views/admin/post_types/index.html.erb +2 -1
  62. data/app/views/admin/post_types/new_post.html.erb +13 -4
  63. data/app/views/admin/post_types/post_categories.html.erb +1 -0
  64. data/app/views/admin/post_types/post_tags.html.erb +4 -3
  65. data/app/views/admin/post_types/show.html.erb +3 -2
  66. data/app/views/admin/posts/entity/_in_list.html.erb +3 -3
  67. data/app/views/admin/posts/images.html.erb +1 -0
  68. data/app/views/admin/posts/index.html.erb +2 -1
  69. data/app/views/admin/posts/search.html.erb +10 -1
  70. data/app/views/admin/posts/show.html.erb +6 -7
  71. data/app/views/authors/show.html.erb +1 -1
  72. data/app/views/blog_posts/index.html.erb +4 -2
  73. data/app/views/editorial_members/edit.html.erb +1 -0
  74. data/app/views/editorial_members/new.html.erb +3 -2
  75. data/app/views/my/index/dashboard/_biovision_post.html.erb +5 -4
  76. data/app/views/my/posts/_form.html.erb +40 -194
  77. data/app/views/my/posts/_post.html.erb +2 -3
  78. data/app/views/my/posts/articles.html.erb +1 -1
  79. data/app/views/my/posts/blog_posts.html.erb +1 -1
  80. data/app/views/my/posts/index/_navigation.html.erb +3 -3
  81. data/app/views/my/posts/new.html.erb +9 -1
  82. data/app/views/my/posts/news_index.html.erb +1 -1
  83. data/app/views/posts/_breadcrumbs.html.erb +1 -6
  84. data/app/views/posts/_form.html.erb +9 -2
  85. data/app/views/posts/_post.html.erb +7 -11
  86. data/app/views/posts/_preview.html.erb +7 -1
  87. data/app/views/posts/edit.html.erb +9 -1
  88. data/app/views/posts/post_type/_category.html.erb +4 -2
  89. data/app/views/posts/post_type/_post_page.html.erb +7 -1
  90. data/app/views/posts/post_type/_posts.html.erb +11 -2
  91. data/app/views/posts/post_type/_tagged.html.erb +4 -4
  92. data/app/views/posts/rss.xml.erb +1 -1
  93. data/app/views/posts/show.html.erb +0 -5
  94. data/app/views/posts/zen.xml.erb +3 -3
  95. data/config/locales/posts-ru.yml +11 -1
  96. data/config/routes.rb +3 -0
  97. data/db/{migrate → amends}/20190202232323_add_spam_to_posts.rb +0 -0
  98. data/db/{migrate → amends}/20190224212121_add_data_to_posts.rb +0 -0
  99. data/db/{migrate → amends}/20190224212122_rename_post_image_source.rb +0 -0
  100. data/db/{migrate → amends}/20190224212123_add_uuid_to_post_images.rb +0 -0
  101. data/db/{migrate → amends}/20190313141414_convert_json_post_columns.rb +0 -0
  102. data/db/amends/20190925181818_add_search_index_to_posts.rb +24 -0
  103. data/db/migrate/20170930000001_create_post_types.rb +4 -13
  104. data/db/migrate/20170930000010_create_posts.rb +26 -3
  105. data/db/migrate/20190715141414_add_data_to_post_categories.rb +14 -0
  106. data/db/migrate/20190801161616_add_posts_component.rb +14 -0
  107. data/db/migrate/20190822121212_create_post_attachments.rb +20 -0
  108. data/db/migrate/20190914212121_convert_post_privileges.rb +56 -0
  109. data/lib/biovision/post/version.rb +1 -1
  110. metadata +18 -13
  111. data/app/services/post_manager.rb +0 -71
  112. data/app/views/admin/index/dashboard/_biovision_post.html.erb +0 -36
  113. data/app/views/articles/show.html.erb +0 -6
  114. data/app/views/blog_posts/show.html.erb +0 -6
  115. data/app/views/news/show.html.erb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5427643da925dc232b54e52d704e542598d5ecb780211113eaecf43484df90b
4
- data.tar.gz: 5cfcb7077d4bd067b95b1752f4bae1c4546bd51a9903440ac77c9bdc9e708367
3
+ metadata.gz: 0df3d21cefcd77f482394c4b8f72245a2cb543e9963e993e22e9d010e9178228
4
+ data.tar.gz: a74d55c6455fe9506305cabc57253a02098edf5003b5ee928356d38142b80f2c
5
5
  SHA512:
6
- metadata.gz: dcc7a0e1c3c4914c90e60fb97ab9064465c1ef253c97e41cd73c6dad51ececd708ea7e5ab374aa38dbdbf0f55591a3b6db15f8ce31b69d6122e41ef0c045f28e
7
- data.tar.gz: c2db01c994e6f5f1784fc725c62da961fa3440ef49bbb0bfc771485eae652f6e427d35c27781f361cfbfe4338d9ab7aa26a6b541b593088e2b15fba461032a44
6
+ metadata.gz: ed8a50e26c8181f9a9f5a1128652cc60bbf4f05d5eed30e5841142ac0f612e8f03d7a1691b3bbf8ea64f6fa636983d8045f6a8766d20db27086989a3518305d7
7
+ data.tar.gz: 3e71cc4ac3149e09528cab8893407f0a866a7ac3b0762615d9821903671962f2a033f27a093500308770abf316179ccaf9989640f37c9ab8aa8c46264af8614b
@@ -1,2 +1,3 @@
1
+ //= link_tree ../images
1
2
  //= link_directory ../javascripts/biovision/post .js
2
3
  //= link_directory ../stylesheets/biovision/post .css
@@ -0,0 +1,9 @@
1
+ <svg version="1.1" viewBox="0 0 24 24" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">
2
+ <title>Comment</title>
3
+ <defs>
4
+ <style type="text/css">
5
+ path { fill: #fff; stroke: #000; stroke-width: 1; stroke-linejoin: round}
6
+ </style>
7
+ </defs>
8
+ <path d="M16,21 v-3 h3 a3,3 0 0,0 3,-3 v-7 a3,3 0 0,0 -3,-3 h-14 a3,3 0 0,0 -3,3 v7 a3,3 0 0,0, 3,3 h8 z"/>
9
+ </svg>
@@ -2,37 +2,34 @@
2
2
 
3
3
  const Posts = {
4
4
  initialized: false,
5
- autoInit: true,
6
- components: {},
7
- init: function () {
8
- for (let component in this.components) {
9
- if (this.components.hasOwnProperty(component)) {
10
- if (this.components[component].hasOwnProperty("init")) {
11
- this.components[component].init();
12
- }
13
- }
14
- }
15
-
16
- this.initialized = true;
17
- }
5
+ autoInitComponents: true,
6
+ components: {}
18
7
  };
19
8
 
20
- const BiovisionPosts = {
21
- /**
22
- * @type {Function}
23
- * @param e
24
- */
25
- loadPosts: function (e) {
9
+ Posts.components.postLoader = {
10
+ initialized: false,
11
+ buttons: [],
12
+ selector: ".posts-loader",
13
+ init: function () {
14
+ document.querySelectorAll(this.selector).forEach(this.apply);
15
+ this.initialized = true;
16
+ },
17
+ apply: function (button) {
18
+ const component = Posts.components.postLoader;
19
+ component.buttons.push(button);
20
+ button.addEventListener("click", component.handler);
21
+ },
22
+ handler: function (e) {
26
23
  e.preventDefault();
27
24
 
28
- const button = this;
25
+ const button = e.target;
29
26
  const container = document.getElementById(button.getAttribute('data-container'));
30
27
  if (container) {
31
- const list = container.querySelector('div.list');
28
+ const list = container.querySelector("div.posts-list");
32
29
 
33
30
  if (list && !button.classList.contains('loading')) {
34
31
  const url = button.getAttribute('href');
35
- const request = Biovision.newAjaxRequest('get', url, function () {
32
+ const request = Biovision.jsonAjaxRequest("get", url, function () {
36
33
  button.classList.remove('loading');
37
34
 
38
35
  const response = JSON.parse(this.responseText);
@@ -60,6 +57,8 @@ const BiovisionPosts = {
60
57
  button.classList.add('loading');
61
58
  request.send();
62
59
  }
60
+ } else {
61
+ console.log("Cannot find container for loaded posts");
63
62
  }
64
63
  }
65
64
  };
@@ -250,9 +249,3 @@ Posts.components.groupTagLinker = {
250
249
  };
251
250
 
252
251
  Biovision.components.posts = Posts;
253
-
254
- document.addEventListener('DOMContentLoaded', function () {
255
- document.querySelectorAll('.posts-loader').forEach(function (button) {
256
- button.addEventListener('click', BiovisionPosts.loadPosts);
257
- });
258
- });
@@ -132,6 +132,12 @@ $background-post-tag: rgb(248, 248, 248) !default;
132
132
  padding-left: 1.8rem;
133
133
  }
134
134
 
135
+ .comment_count {
136
+ background: image_url('biovision/post/icons/comment.svg') no-repeat center left / 1.6rem auto;
137
+ display: inline-block;
138
+ padding-left: 1.8rem;
139
+ }
140
+
135
141
  article.post {
136
142
  figure {
137
143
  border-bottom: $border-secondary;
@@ -32,12 +32,17 @@ class Admin::EditorialMembersController < AdminController
32
32
 
33
33
  private
34
34
 
35
- def set_entity
36
- @entity = EditorialMember.find_by(id: params[:id])
37
- handle_http_404('Cannot find editorial_member') if @entity.nil?
35
+ def component_slug
36
+ Biovision::Components::PostsComponent::SLUG
38
37
  end
39
38
 
40
39
  def restrict_access
41
- require_privilege :chief_editor
40
+ error = 'Managing editorial members is not allowed'
41
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
42
+ end
43
+
44
+ def set_entity
45
+ @entity = EditorialMember.find_by(id: params[:id])
46
+ handle_http_404('Cannot find editorial_member') if @entity.nil?
42
47
  end
43
48
  end
@@ -10,14 +10,19 @@ class Admin::FeaturedPostsController < AdminController
10
10
 
11
11
  private
12
12
 
13
+ def component_slug
14
+ Biovision::Components::PostsComponent::SLUG
15
+ end
16
+
17
+ def restrict_access
18
+ error = 'Managing post groups is not allowed'
19
+ handle_http_401(error) unless component_handler.allow?('chief_editor', 'deputy_chief_editor')
20
+ end
21
+
13
22
  def set_entity
14
23
  @entity = FeaturedPost.find_by(id: params[:id])
15
24
  if @entity.nil?
16
25
  handle_http_404('Cannot find post_link')
17
26
  end
18
27
  end
19
-
20
- def restrict_access
21
- require_privilege :chief_editor
22
- end
23
28
  end
@@ -1,3 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Handling post categories
1
4
  class Admin::PostCategoriesController < AdminController
2
5
  include LockableEntity
3
6
  include ToggleableEntity
@@ -12,14 +15,17 @@ class Admin::PostCategoriesController < AdminController
12
15
 
13
16
  private
14
17
 
15
- def set_entity
16
- @entity = PostCategory.find_by(id: params[:id])
17
- if @entity.nil?
18
- handle_http_404('Cannot find post category')
19
- end
18
+ def component_slug
19
+ Biovision::Components::PostsComponent::SLUG
20
20
  end
21
21
 
22
22
  def restrict_access
23
- require_privilege :chief_editor
23
+ error = 'Managing post categories is not allowed'
24
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
25
+ end
26
+
27
+ def set_entity
28
+ @entity = PostCategory.find_by(id: params[:id])
29
+ handle_http_404('Cannot find post category') if @entity.nil?
24
30
  end
25
31
  end
@@ -8,12 +8,17 @@ class Admin::PostGroupCategoriesController < AdminController
8
8
 
9
9
  private
10
10
 
11
- def set_entity
12
- @entity = PostGroupCategory.find_by(id: params[:id])
13
- handle_http_404('Cannot find post_group_category') if @entity.nil?
11
+ def component_slug
12
+ Biovision::Components::PostsComponent::SLUG
14
13
  end
15
14
 
16
15
  def restrict_access
17
- require_privilege :chief_editor
16
+ error = 'Managing post group categories is not allowed'
17
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
18
+ end
19
+
20
+ def set_entity
21
+ @entity = PostGroupCategory.find_by(id: params[:id])
22
+ handle_http_404('Cannot find post_group_category') if @entity.nil?
18
23
  end
19
24
  end
@@ -8,12 +8,17 @@ class Admin::PostGroupTagsController < AdminController
8
8
 
9
9
  private
10
10
 
11
- def set_entity
12
- @entity = PostGroupTag.find_by(id: params[:id])
13
- handle_http_404('Cannot find post_group_tag') if @entity.nil?
11
+ def component_slug
12
+ Biovision::Components::PostsComponent::SLUG
14
13
  end
15
14
 
16
15
  def restrict_access
17
- require_privilege :chief_editor
16
+ error = 'Managing post tags is not allowed'
17
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
18
+ end
19
+
20
+ def set_entity
21
+ @entity = PostGroupTag.find_by(id: params[:id])
22
+ handle_http_404('Cannot find post_group_tag') if @entity.nil?
18
23
  end
19
24
  end
@@ -51,12 +51,17 @@ class Admin::PostGroupsController < AdminController
51
51
 
52
52
  private
53
53
 
54
- def set_entity
55
- @entity = PostGroup.find_by(id: params[:id])
56
- handle_http_404('Cannot find post_group') if @entity.nil?
54
+ def component_slug
55
+ Biovision::Components::PostsComponent::SLUG
57
56
  end
58
57
 
59
58
  def restrict_access
60
- require_privilege :chief_editor
59
+ error = 'Managing post groups is not allowed'
60
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
61
+ end
62
+
63
+ def set_entity
64
+ @entity = PostGroup.find_by(id: params[:id])
65
+ handle_http_404('Cannot find post_group') if @entity.nil?
61
66
  end
62
67
  end
@@ -15,12 +15,17 @@ class Admin::PostIllustrationsController < AdminController
15
15
 
16
16
  private
17
17
 
18
- def set_entity
19
- @entity = PostIllustration.find_by(id: params[:id])
20
- handle_http_404('Cannot find post_illustration') if @entity.nil?
18
+ def component_slug
19
+ Biovision::Components::PostsComponent::SLUG
21
20
  end
22
21
 
23
22
  def restrict_access
24
- require_privilege_group :editors
23
+ error = 'Viewing post illustrations is not allowed'
24
+ handle_http_401(error) unless component_handler.allow?
25
+ end
26
+
27
+ def set_entity
28
+ @entity = PostIllustration.find_by(id: params[:id])
29
+ handle_http_404('Cannot find post_illustration') if @entity.nil?
25
30
  end
26
31
  end
@@ -20,14 +20,19 @@ class Admin::PostImagesController < AdminController
20
20
 
21
21
  private
22
22
 
23
+ def component_slug
24
+ Biovision::Components::PostsComponent::SLUG
25
+ end
26
+
27
+ def restrict_access
28
+ error = 'Viewing post images is not allowed'
29
+ handle_http_401(error) unless component_handler.allow?
30
+ end
31
+
23
32
  def set_entity
24
33
  @entity = PostImage.find_by(id: params[:id])
25
34
  if @entity.nil?
26
35
  handle_http_404('Cannot find post_image')
27
36
  end
28
37
  end
29
-
30
- def restrict_access
31
- require_privilege_group :editors
32
- end
33
38
  end
@@ -6,14 +6,19 @@ class Admin::PostLinksController < AdminController
6
6
 
7
7
  private
8
8
 
9
+ def component_slug
10
+ Biovision::Components::PostsComponent::SLUG
11
+ end
12
+
13
+ def restrict_access
14
+ error = 'Managing post links is not allowed'
15
+ handle_http_401(error) unless component_handler.allow?
16
+ end
17
+
9
18
  def set_entity
10
19
  @entity = PostLink.find_by(id: params[:id])
11
20
  if @entity.nil?
12
21
  handle_http_404('Cannot find post_link')
13
22
  end
14
23
  end
15
-
16
- def restrict_access
17
- require_privilege_group :editors
18
- end
19
24
  end
@@ -17,14 +17,19 @@ class Admin::PostTagsController < AdminController
17
17
 
18
18
  private
19
19
 
20
+ def component_slug
21
+ Biovision::Components::PostsComponent::SLUG
22
+ end
23
+
24
+ def restrict_access
25
+ error = 'Managing post tags is not allowed'
26
+ handle_http_401(error) unless component_handler.allow?('chief_editor')
27
+ end
28
+
20
29
  def set_entity
21
30
  @entity = PostTag.find_by(id: params[:id])
22
31
  if @entity.nil?
23
32
  handle_http_404('Cannot find post_tag')
24
33
  end
25
34
  end
26
-
27
- def restrict_access
28
- require_privilege_group :editors
29
- end
30
35
  end
@@ -29,14 +29,23 @@ class Admin::PostTypesController < AdminController
29
29
  @collection = @entity.editorial_members.list_for_administration
30
30
  end
31
31
 
32
+ # get /admin/post_types/:id/new_post
33
+ def new_post
34
+ end
35
+
32
36
  private
33
37
 
34
- def set_entity
35
- @entity = PostType.find_by(id: params[:id])
36
- handle_http_404('Cannot find post type') if @entity.nil?
38
+ def component_slug
39
+ Biovision::Components::PostsComponent::SLUG
37
40
  end
38
41
 
39
42
  def restrict_access
40
- require_privilege_group :editors
43
+ error = 'Viewing post types is not allowed'
44
+ handle_http_401(error) unless component_handler.allow?
45
+ end
46
+
47
+ def set_entity
48
+ @entity = PostType.find_by(id: params[:id])
49
+ handle_http_404('Cannot find post type') if @entity.nil?
41
50
  end
42
51
  end
@@ -29,15 +29,13 @@ class Admin::PostsController < AdminController
29
29
 
30
30
  private
31
31
 
32
- def set_entity
33
- @entity = Post.find_by(id: params[:id])
34
- if @entity.nil?
35
- handle_http_404('Cannot find post')
36
- end
32
+ def component_slug
33
+ Biovision::Components::PostsComponent::SLUG
37
34
  end
38
35
 
39
- def restrict_access
40
- require_privilege_group :editors
36
+ def set_entity
37
+ @entity = Post.find_by(id: params[:id])
38
+ handle_http_404('Cannot find post') if @entity.nil?
41
39
  end
42
40
 
43
41
  # @param [String] q
@@ -45,7 +43,7 @@ class Admin::PostsController < AdminController
45
43
  if Post.respond_to?(:search)
46
44
  Post.search(q).records.page(current_page)
47
45
  else
48
- Post.where('title ilike ?', "%#{q}%").page_for_administration(current_page)
46
+ Post.pg_search(q).page_for_administration(current_page)
49
47
  end
50
48
  end
51
49
  end
@@ -1,11 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Articles for visitors
1
4
  class ArticlesController < ApplicationController
2
5
  before_action :set_category, only: :category
3
6
  before_action :set_entity, only: :show
4
7
 
5
8
  # get /articles
6
9
  def index
7
- post_type = PostType.find_by(slug: 'article')
8
- @collection = post_type.posts.for_language(current_language).page_for_visitors(current_page)
10
+ posts = PostType['article'].posts.for_language(current_language)
11
+ @collection = posts.page_for_visitors(current_page)
9
12
  respond_to do |format|
10
13
  format.html
11
14
  format.json { render('posts/index') }
@@ -14,7 +17,8 @@ class ArticlesController < ApplicationController
14
17
 
15
18
  # get /articles/:category_slug
16
19
  def category
17
- @collection = Post.in_category_branch(@category).for_language(current_language).page_for_visitors(current_page)
20
+ posts = Post.in_category_branch(@category).for_language(current_language)
21
+ @collection = posts.page_for_visitors(current_page)
18
22
  respond_to do |format|
19
23
  format.html
20
24
  format.json { render('posts/index') }
@@ -26,18 +30,24 @@ class ArticlesController < ApplicationController
26
30
  @entity.increment :view_count
27
31
  @entity.increment :rating, 0.0025
28
32
  @entity.save
33
+
34
+ render 'posts/show'
29
35
  end
30
36
 
31
37
  # get /articles/tagged/:tag_name
32
38
  def tagged
33
- post_type = PostType.find_by(slug: 'article')
34
- @collection = post_type.posts.tagged(params[:tag_name]).page_for_visitors(current_page)
39
+ posts = PostType['article'].posts.tagged(params[:tag_name])
40
+ @collection = posts.page_for_visitors(current_page)
35
41
  end
36
42
 
37
43
  private
38
44
 
45
+ def component_slug
46
+ Biovision::Components::PostsComponent::SLUG
47
+ end
48
+
39
49
  def set_category
40
- type = PostType.find_by(slug: 'article')
50
+ type = PostType['article']
41
51
  @category = type.post_categories.find_by(long_slug: params[:category_slug])
42
52
  handle_http_404('Cannot find post category (article)') if @category.nil?
43
53
  end