decidim-comments 0.30.2 → 0.31.0.rc1

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/comments/comment/deletion_data.erb +1 -1
  3. data/app/cells/decidim/comments/comment/show.erb +12 -12
  4. data/app/cells/decidim/comments/comment_cell.rb +1 -3
  5. data/app/cells/decidim/comments/comment_form/comment_as.erb +5 -24
  6. data/app/cells/decidim/comments/comment_form/show.erb +3 -3
  7. data/app/cells/decidim/comments/comment_form_cell.rb +5 -20
  8. data/app/cells/decidim/comments/comments/order_control.erb +1 -1
  9. data/app/cells/decidim/comments/edit_comment_modal_form/show.erb +2 -2
  10. data/app/commands/decidim/comments/create_comment.rb +3 -5
  11. data/app/events/decidim/comments/comment_event.rb +3 -10
  12. data/app/forms/decidim/comments/comment_form.rb +0 -1
  13. data/app/models/decidim/comments/comment.rb +2 -2
  14. data/app/models/decidim/comments/seed.rb +4 -16
  15. data/app/packs/src/decidim/comments/comments.component.js +0 -7
  16. data/app/packs/src/decidim/comments/comments.component.test.js +4 -16
  17. data/app/packs/src/decidim/comments/comments.js +1 -1
  18. data/app/packs/src/decidim/comments/comments_mobile_modal.js +1 -1
  19. data/app/packs/stylesheets/comments.scss +1 -5
  20. data/app/queries/decidim/comments/sorted_comments.rb +1 -1
  21. data/app/services/decidim/comments/new_comment_notification_creator.rb +2 -27
  22. data/app/views/decidim/comments/admin/shared/_availability_fields.html.erb +1 -1
  23. data/app/views/decidim/comments/comments/delete.js.erb +4 -2
  24. data/app/views/decidim/comments/comments/reload.js.erb +0 -1
  25. data/app/views/decidim/comments/comments/update.js.erb +3 -1
  26. data/config/assets.rb +2 -2
  27. data/config/locales/ar.yml +0 -18
  28. data/config/locales/bg.yml +0 -18
  29. data/config/locales/bs-BA.yml +0 -8
  30. data/config/locales/ca-IT.yml +0 -20
  31. data/config/locales/ca.yml +0 -20
  32. data/config/locales/cs.yml +0 -20
  33. data/config/locales/de.yml +0 -20
  34. data/config/locales/el.yml +0 -18
  35. data/config/locales/en.yml +0 -20
  36. data/config/locales/es-MX.yml +0 -20
  37. data/config/locales/es-PY.yml +0 -20
  38. data/config/locales/es.yml +0 -20
  39. data/config/locales/eu.yml +0 -20
  40. data/config/locales/fi-plain.yml +0 -20
  41. data/config/locales/fi.yml +0 -20
  42. data/config/locales/fr-CA.yml +0 -23
  43. data/config/locales/fr.yml +0 -23
  44. data/config/locales/ga-IE.yml +0 -5
  45. data/config/locales/gl.yml +0 -11
  46. data/config/locales/hu.yml +0 -18
  47. data/config/locales/id-ID.yml +0 -11
  48. data/config/locales/is-IS.yml +0 -5
  49. data/config/locales/it.yml +0 -18
  50. data/config/locales/ja.yml +0 -20
  51. data/config/locales/lb.yml +0 -18
  52. data/config/locales/lt.yml +0 -18
  53. data/config/locales/lv.yml +0 -18
  54. data/config/locales/nl.yml +0 -18
  55. data/config/locales/no.yml +0 -18
  56. data/config/locales/pl.yml +0 -18
  57. data/config/locales/pt-BR.yml +0 -18
  58. data/config/locales/pt.yml +0 -18
  59. data/config/locales/ro-RO.yml +0 -20
  60. data/config/locales/ru.yml +0 -11
  61. data/config/locales/si-LK.yml +0 -2
  62. data/config/locales/sk.yml +0 -18
  63. data/config/locales/sq-AL.yml +0 -2
  64. data/config/locales/sr-CS.yml +0 -9
  65. data/config/locales/sv.yml +0 -20
  66. data/config/locales/tr-TR.yml +0 -18
  67. data/config/locales/uk.yml +0 -6
  68. data/config/locales/zh-CN.yml +0 -18
  69. data/config/locales/zh-TW.yml +0 -18
  70. data/db/migrate/20181003080320_fix_user_groups_ids_in_comments.rb +8 -1
  71. data/lib/decidim/api/comment_type.rb +1 -4
  72. data/lib/decidim/api/commentable_interface.rb +7 -13
  73. data/lib/decidim/api/commentable_mutation_type.rb +2 -3
  74. data/lib/decidim/comments/comment_serializer.rb +0 -4
  75. data/lib/decidim/comments/comment_vote_serializer.rb +0 -4
  76. data/lib/decidim/comments/commentable.rb +4 -0
  77. data/lib/decidim/comments/engine.rb +6 -20
  78. data/lib/decidim/comments/test/factories.rb +1 -1
  79. data/lib/decidim/comments/test/shared_examples/comment_event.rb +1 -10
  80. data/lib/decidim/comments/test/shared_examples/create_comment_context.rb +0 -2
  81. data/lib/decidim/comments/version.rb +1 -1
  82. metadata +8 -12
  83. data/app/events/decidim/comments/comment_by_followed_user_group_event.rb +0 -9
  84. data/app/events/decidim/comments/user_group_mentioned_event.rb +0 -10
  85. data/app/queries/decidim/comments/metrics/comment_participants_metric_measure.rb +0 -50
  86. data/app/queries/decidim/comments/metrics/comments_metric_manage.rb +0 -97
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Comments
5
- module Metrics
6
- class CommentsMetricManage < Decidim::MetricManage
7
- def metric_name
8
- "comments"
9
- end
10
-
11
- def save
12
- query.each do |key, results|
13
- cumulative_value = results[:cumulative]
14
- next if cumulative_value.zero?
15
-
16
- quantity_value = results[:quantity] || 0
17
- space_type, space_id, taxonomy_id, related_object_type, related_object_id = key
18
- record = Decidim::Metric.find_or_initialize_by(day: @day.to_s, metric_type: @metric_name,
19
- participatory_space_type: space_type, participatory_space_id: space_id,
20
- organization: @organization, decidim_taxonomy_id: taxonomy_id,
21
- related_object_type:, related_object_id:)
22
- record.assign_attributes(cumulative: cumulative_value, quantity: quantity_value)
23
- record.save!
24
- end
25
- end
26
-
27
- private
28
-
29
- # Creates a Hashed structure with comments grouped by
30
- #
31
- # - ParticipatorySpace (type & ID)
32
- # - Taxonomy (ID)
33
- # - RelatedObject (type & ID)
34
- #
35
- def query
36
- return @query if @query
37
-
38
- @query = retrieve_comments.each_with_object({}) do |comment, grouped_comments|
39
- related_object = comment.root_commentable
40
- next grouped_comments unless related_object
41
-
42
- group_keys = generate_group_keys(related_object)
43
-
44
- next grouped_comments unless group_keys
45
-
46
- group_keys.map do |group_key|
47
- grouped_comments[group_key] ||= { cumulative: 0, quantity: 0 }
48
- grouped_comments[group_key][:cumulative] += 1
49
- grouped_comments[group_key][:quantity] += 1 if comment.created_at >= start_time
50
- end
51
- end
52
-
53
- @query
54
- end
55
-
56
- # Retrieve Comments generated within an Organization
57
- #
58
- # Uses 'author' and 'user_group' relationship
59
- #
60
- def retrieve_comments
61
- user_ids = Decidim::User.select(:id).where(organization: @organization).collect(&:id)
62
- user_group_ids = Decidim::UserGroup.select(:id).where(organization: @organization).collect(&:id)
63
- Decidim::Comments::Comment.includes(:root_commentable).not_hidden.not_deleted
64
- .where(decidim_comments_comments: { created_at: ..end_time })
65
- .where("decidim_comments_comments.decidim_author_id IN (?) OR
66
- decidim_comments_comments.decidim_user_group_id IN (?)", user_ids, user_group_ids)
67
- end
68
-
69
- # Generates a group key from the related object of a Comment
70
- def generate_group_keys(related_object)
71
- participatory_space = retrieve_participatory_space(related_object)
72
- return unless participatory_space
73
-
74
- return unless related_object.respond_to?(:taxonomies)
75
-
76
- taxonomy_ids = related_object.taxonomies.pluck(:id)
77
- taxonomy_ids.each_with_object([]) do |taxonomy_id, group_keys|
78
- group_key = []
79
- group_key += [participatory_space.class.name, participatory_space.id]
80
- group_key += [taxonomy_id]
81
- group_key += [related_object.class.name, related_object.id]
82
- group_keys << group_key
83
- end
84
- end
85
-
86
- # Gets current ParticipatorySpace of a given 'related_object'
87
- def retrieve_participatory_space(related_object)
88
- if related_object.respond_to?(:participatory_space)
89
- related_object.participatory_space
90
- elsif related_object.is_a?(Decidim::Participable)
91
- related_object
92
- end
93
- end
94
- end
95
- end
96
- end
97
- end