decidim-comments 0.22.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/comments/bundle.js +53 -53
  3. data/app/assets/javascripts/decidim/comments/bundle.js.map +1 -1
  4. data/app/cells/decidim/comments/comment_activity_cell.rb +2 -22
  5. data/app/cells/decidim/comments/comment_cell.rb +22 -0
  6. data/app/cells/decidim/comments/comment_m/footer.erb +5 -0
  7. data/app/cells/decidim/comments/comment_m/top.erb +7 -0
  8. data/app/cells/decidim/comments/comment_m_cell.rb +29 -0
  9. data/app/commands/decidim/comments/create_comment.rb +1 -1
  10. data/app/forms/decidim/comments/comment_form.rb +8 -1
  11. data/app/frontend/comments/add_comment_form.component.test.tsx +30 -28
  12. data/app/frontend/comments/add_comment_form.component.tsx +32 -16
  13. data/app/frontend/comments/comment.component.test.tsx +35 -4
  14. data/app/frontend/comments/comment.component.tsx +24 -15
  15. data/app/frontend/comments/comment_thread.component.test.tsx +9 -8
  16. data/app/frontend/comments/comment_thread.component.tsx +3 -1
  17. data/app/frontend/comments/comments.component.test.tsx +17 -14
  18. data/app/frontend/comments/comments.component.tsx +28 -4
  19. data/app/frontend/comments/down_vote_button.component.tsx +24 -9
  20. data/app/frontend/comments/up_vote_button.component.tsx +24 -9
  21. data/app/frontend/mutations/add_comment.mutation.graphql +2 -2
  22. data/app/frontend/mutations/down_vote.mutation.graphql +2 -2
  23. data/app/frontend/mutations/up_vote.mutation.graphql +2 -2
  24. data/app/frontend/queries/comments.query.graphql +2 -2
  25. data/app/frontend/support/schema.ts +1060 -735
  26. data/app/helpers/decidim/comments/comment_cells_helper.rb +33 -0
  27. data/app/models/decidim/comments/comment.rb +73 -20
  28. data/app/models/decidim/comments/seed.rb +1 -1
  29. data/app/types/decidim/comments/commentable_interface.rb +1 -1
  30. data/app/types/decidim/comments/commentable_mutation_type.rb +4 -1
  31. data/config/locales/am-ET.yml +1 -0
  32. data/config/locales/bg.yml +6 -0
  33. data/config/locales/ca.yml +1 -0
  34. data/config/locales/cs.yml +1 -0
  35. data/config/locales/da.yml +1 -0
  36. data/config/locales/en.yml +1 -0
  37. data/config/locales/eo.yml +1 -0
  38. data/config/locales/es-MX.yml +1 -0
  39. data/config/locales/es-PY.yml +1 -0
  40. data/config/locales/es.yml +3 -2
  41. data/config/locales/et.yml +1 -0
  42. data/config/locales/fi-plain.yml +1 -0
  43. data/config/locales/fi.yml +2 -1
  44. data/config/locales/fr-CA.yml +2 -1
  45. data/config/locales/fr.yml +2 -1
  46. data/config/locales/hr.yml +1 -0
  47. data/config/locales/hu.yml +1 -1
  48. data/config/locales/is-IS.yml +0 -2
  49. data/config/locales/is.yml +76 -0
  50. data/config/locales/ja-JP.yml +2 -2
  51. data/config/locales/ja.yml +121 -0
  52. data/config/locales/ko-KR.yml +1 -0
  53. data/config/locales/ko.yml +1 -0
  54. data/config/locales/lt.yml +1 -0
  55. data/config/locales/{lv-LV.yml → lv.yml} +0 -0
  56. data/config/locales/mt.yml +1 -0
  57. data/config/locales/nl.yml +3 -2
  58. data/config/locales/om-ET.yml +1 -0
  59. data/config/locales/pl.yml +5 -5
  60. data/config/locales/so-SO.yml +1 -0
  61. data/config/locales/sv.yml +1 -0
  62. data/config/locales/ti-ER.yml +1 -0
  63. data/config/locales/uk.yml +0 -1
  64. data/config/locales/vi-VN.yml +1 -0
  65. data/config/locales/vi.yml +1 -0
  66. data/config/locales/zh-CN.yml +121 -0
  67. data/config/locales/zh-TW.yml +1 -0
  68. data/db/migrate/20200706123136_make_comments_handle_i18n.rb +41 -0
  69. data/db/migrate/20200828101910_add_commentable_counter_cache_to_comments.rb +9 -0
  70. data/lib/decidim/comments/api/comment_type.rb +5 -1
  71. data/lib/decidim/comments/comment_serializer.rb +7 -2
  72. data/lib/decidim/comments/comment_vote_serializer.rb +5 -1
  73. data/lib/decidim/comments/commentable.rb +11 -0
  74. data/lib/decidim/comments/comments_helper.rb +28 -4
  75. data/lib/decidim/comments/engine.rb +13 -0
  76. data/lib/decidim/comments/mutation_extensions.rb +8 -0
  77. data/lib/decidim/comments/query_extensions.rb +4 -0
  78. data/lib/decidim/comments/test/factories.rb +10 -1
  79. data/lib/decidim/comments/test/shared_examples/comment_event.rb +1 -1
  80. data/lib/decidim/comments/version.rb +1 -1
  81. metadata +37 -11
@@ -39,8 +39,8 @@ ja:
39
39
  title: コメントを追加
40
40
  comment:
41
41
  alignment:
42
- against: 反対
43
- in_favor: 賛成
42
+ against: <unk>
43
+ in_favor: <unk>
44
44
  deleted_user: 参加者を削除しました
45
45
  hide_replies: 返信を非表示
46
46
  reply: 返信
@@ -0,0 +1,121 @@
1
+ ja:
2
+ activemodel:
3
+ models:
4
+ decidim/comments/comment_by_followed_user_event: コメント
5
+ decidim/comments/comment_created_event: コメント
6
+ decidim/comments/reply_created_event: コメント返信
7
+ decidim/comments/user_group_mentioned_event: メンション
8
+ decidim/comments/user_mentioned_event: メンション
9
+ activerecord:
10
+ models:
11
+ decidim/comments/comment:
12
+ other: コメント
13
+ decidim/comments/comment_vote:
14
+ other: 投票
15
+ decidim:
16
+ comments:
17
+ comments: コメント
18
+ comments_count: コメント数
19
+ last_activity:
20
+ new_comment_at_html: "<span> %{link}に新しいコメント</span>"
21
+ view: 表示
22
+ votes:
23
+ create:
24
+ error: コメントに投票中に問題がありました。
25
+ components:
26
+ add_comment_form:
27
+ account_message: <a href="%{sign_in_url}">アカウント</a> または <a href="%{sign_up_url}">ログイン</a> でコメントを追加します。
28
+ form:
29
+ body:
30
+ label: コメント
31
+ placeholder: これについてどう思いますか?
32
+ form_error: テキストは必須で、 %{length} 文字を超えることはできません。
33
+ submit: 送信
34
+ user_group_id:
35
+ label: 'コメント:'
36
+ opinion:
37
+ neutral: 中立
38
+ remaining_characters: "残り %{count} 文字"
39
+ remaining_characters_1: "残り%{count} 文字"
40
+ title: コメントを追加
41
+ comment:
42
+ alignment:
43
+ against: 反対
44
+ in_favor: 賛成
45
+ deleted_user: 退会者
46
+ hide_replies: 返信を非表示
47
+ reply: 返信
48
+ report:
49
+ action: レポート
50
+ already_reported: このコンテンツはすでに報告されており、管理者が確認します。
51
+ close: 閉じる
52
+ description: このコンテンツは不適切ですか?
53
+ details: 追加コメント
54
+ reasons:
55
+ does_not_belong: 違法行為、個人情報、または %{organization_name} に属していないと思われる内容が含まれています。
56
+ offensive: 差別的な内容、誹謗中傷などの不適切な内容が含まれています。
57
+ spam: 本来の内容に関係が無い広告、詐欺や悪意のある処理などが含まれています。
58
+ title: 不適切なコンテンツを報告する
59
+ show_replies: '%{replies_count} 件の返信を表示'
60
+ single_comment_link_title: シングルコメントへのリンクを取得
61
+ comment_order_selector:
62
+ order:
63
+ best_rated: 最高評価
64
+ most_discussed: 最も議論されたもの
65
+ older: 古い順
66
+ recent: 最近のもの
67
+ title: '並び順:'
68
+ comment_thread:
69
+ title: '%{authorName} との会話'
70
+ comments:
71
+ blocked_comments_for_user_warning: 現時点ではコメントできませんが、以前のコメントを読むことができます。
72
+ blocked_comments_warning: コメントは現時点で無効になっていますが、以前のコメントを読むことができます。
73
+ comment_details_title: コメントの詳細
74
+ loading: コメントを読み込んでいます...
75
+ single_comment_warning: コメントの残りはこちら <a href="%{url}"></a>で確認できます。
76
+ single_comment_warning_title: 単一のコメントが表示されています
77
+ title: "%{count} 件のコメント"
78
+ down_vote_button:
79
+ text: このコメントに同意しません
80
+ up_vote_button:
81
+ text: このコメントに同意します
82
+ events:
83
+ comments:
84
+ comment_by_followed_user:
85
+ email_intro: "%{author_name} は %{resource_title}にコメントを残しました。このページで読むことができます:"
86
+ email_outro: '%{author_name}をフォローしているため、この通知を受け取りました。プロフィールページからこのユーザーのフォローを解除することができます。'
87
+ email_subject: '%{author_name} に %{resource_title} による新しいコメントがあります'
88
+ notification_title: There is a new comment by <a href="%{author_path}">%{author_name} %{author_nickname}</a> in <a href="%{resource_path}">%{resource_title}</a>.
89
+ comment_by_followed_user_group:
90
+ email_intro: 'グループ %{author_name} は %{resource_title}にコメントを残しました。このページで読むことができます:'
91
+ email_outro: '%{author_name}をフォローしているため、この通知を受け取りました。プロフィールページからこのグループのフォローを解除できます。'
92
+ email_subject: '%{author_name} に %{resource_title} による新しいコメントがあります'
93
+ notification_title: There is a new comment by <a href="%{author_path}">%{author_name} %{author_nickname}</a> in <a href="%{resource_path}">%{resource_title}</a>.
94
+ comment_created:
95
+ email_intro: "%{resource_title} はコメントされました。このページでコメントを読むことができます:"
96
+ email_outro: '"%{resource_title}" またはその著者をフォローしているため、この通知を受け取りました。前のリンクからフォローを解除することができます。'
97
+ email_subject: '%{author_name} に %{resource_title} から新しいコメントがあります'
98
+ notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> から <a href="%{resource_path}">%{resource_title}に新しいコメントがあります</a>
99
+ reply_created:
100
+ email_intro: "%{author_name} は %{resource_title}であなたのコメントを返信しました。このページで読むことができます:"
101
+ email_outro: コメントが返信されたため、この通知を受信しました。
102
+ email_subject: "%{author_name} が %{resource_title} であなたのコメントに返信しました"
103
+ notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> が <a href="%{resource_path}">%{resource_title}</a> であなたのコメントに返信しました
104
+ user_group_mentioned:
105
+ email_intro: あなたが所属しているグループがメンションされました
106
+ email_outro: あなたは %{group_name} でメンションされたグループ %{resource_title} のメンバーであるため、この通知を受け取りました。
107
+ email_subject: あなたは %{resource_title} で %{group_name} のメンバーとしてメンションされました
108
+ notification_title: あなたは <a href="%{resource_path}">%{resource_title}</a> に <a href="%{author_path}">%{author_name} %{author_nickname}</a> のメンバとして <a href="%{group_path}">%{group_name} %{group_nickname}</a>
109
+ user_mentioned:
110
+ email_intro: あなたはメンションされています
111
+ email_outro: あなたが %{resource_title}でメンションされたため、この通知を受け取りました。
112
+ email_subject: あなたは %{resource_title} でメンションされました
113
+ notification_title: あなたは <a href="%{resource_path}">%{resource_title}</a> で <a href="%{author_path}">%{author_name} %{author_nickname}によってメンションされました</a>
114
+ metrics:
115
+ comments:
116
+ description: 出席者によって生成されたコメント数
117
+ object: コメント
118
+ title: コメント
119
+ errors:
120
+ messages:
121
+ cannot_have_comments: コメントを持つことはできません
@@ -0,0 +1 @@
1
+ ko:
@@ -0,0 +1 @@
1
+ ko:
@@ -0,0 +1 @@
1
+ lt:
File without changes
@@ -0,0 +1 @@
1
+ mt:
@@ -20,6 +20,7 @@ nl:
20
20
  comments_count: Aantal reacties
21
21
  last_activity:
22
22
  new_comment_at_html: "<span>Nieuwe opmerking op %{link}</span>"
23
+ view: Bekijk
23
24
  votes:
24
25
  create:
25
26
  error: Er is een probleem opgetreden bij het stemmen op de opmerking.
@@ -29,7 +30,7 @@ nl:
29
30
  form:
30
31
  body:
31
32
  label: Reactie
32
- placeholder: Wat vind u hierover?
33
+ placeholder: Wat wil je hierover zeggen?
33
34
  form_error: De tekst is verplicht en het kan niet langer zijn dan %{length} tekens.
34
35
  submit: Verzenden
35
36
  user_group_id:
@@ -38,7 +39,7 @@ nl:
38
39
  neutral: Neutraal
39
40
  remaining_characters: "%{count} tekens over"
40
41
  remaining_characters_1: "%{count} teken over"
41
- title: Voeg uw reactie toe
42
+ title: Voeg je reactie toe
42
43
  comment:
43
44
  alignment:
44
45
  against: Tegen
@@ -0,0 +1 @@
1
+ om:
@@ -26,7 +26,7 @@ pl:
26
26
  new_comment_at_html: "<span>Nowy komentarz do %{link}</span>"
27
27
  votes:
28
28
  create:
29
- error: Podczas głosowania komentarza wystąpiły błędy.
29
+ error: Podczas dodawania komentarza wystąpił błąd.
30
30
  components:
31
31
  add_comment_form:
32
32
  account_message: <a href="%{sign_in_url}">Zaloguj się na swoje konto</a> lub <a href="%{sign_up_url}">zarejestruj się</a>, aby dodać komentarz.
@@ -35,7 +35,7 @@ pl:
35
35
  label: Komentarz
36
36
  placeholder: Co o tym myślisz?
37
37
  form_error: 'Tekst jest wymagany. Maksymalna liczba znaków to: %{length}.'
38
- submit: Wysłać
38
+ submit: Wyślij
39
39
  user_group_id:
40
40
  label: Komentuj jako
41
41
  opinion:
@@ -45,8 +45,8 @@ pl:
45
45
  title: Dodaj swój komentarz
46
46
  comment:
47
47
  alignment:
48
- against: Przeciwko
49
- in_favor: Na korzyść
48
+ against: Negatywny
49
+ in_favor: Pozytywny
50
50
  deleted_user: Usunięty użytkownik
51
51
  hide_replies: Ukryj odpowiedzi
52
52
  reply: Odpowiedz
@@ -97,7 +97,7 @@ pl:
97
97
  email_subject: Jest nowy komentarz dodany przez %{author_name} do %{resource_title}
98
98
  notification_title: Pojawił się nowy komentarz <a href="%{author_path}">%{author_name} %{author_nickname}</a> do <a href="%{resource_path}">%{resource_title}</a>.
99
99
  comment_created:
100
- email_intro: "%{resource_title} został skomentowany. Możesz przeczytać komentarz na tej stronie:"
100
+ email_intro: "Nowy komentarz: %{resource_title}. Możesz go przeczytać na tej stronie:"
101
101
  email_outro: Otrzymujesz to powiadomienie, ponieważ obserwujesz "%{resource_title}" lub jego autora. Możesz przestać go obserwować po kliknięciu w poprzedni link.
102
102
  email_subject: Jest nowy komentarz od %{author_name} do %{resource_title}
103
103
  notification_title: Pojawił się nowy komentarz <a href="%{author_path}">%{author_name} %{author_nickname}</a> do <a href="%{resource_path}">%{resource_title}</a>
@@ -0,0 +1 @@
1
+ so:
@@ -20,6 +20,7 @@ sv:
20
20
  comments_count: Antal kommentarer
21
21
  last_activity:
22
22
  new_comment_at_html: "<span>Ny kommentar på %{link}</span>"
23
+ view: Visa
23
24
  votes:
24
25
  create:
25
26
  error: Det gick inte att rösta om kommentaren.
@@ -0,0 +1 @@
1
+ ti:
@@ -20,7 +20,6 @@ uk:
20
20
  other: Голосів
21
21
  decidim:
22
22
  comments:
23
- comments: Коментарі
24
23
  votes:
25
24
  create:
26
25
  error: При голосуванні щодо коментаря сталися помилки.
@@ -0,0 +1 @@
1
+ vi:
@@ -0,0 +1 @@
1
+ vi:
@@ -0,0 +1,121 @@
1
+ zh-CN:
2
+ activemodel:
3
+ models:
4
+ decidim/comments/comment_by_followed_user_event: 评论
5
+ decidim/comments/comment_created_event: 评论
6
+ decidim/comments/reply_created_event: 评论回复
7
+ decidim/comments/user_group_mentioned_event: 提到了
8
+ decidim/comments/user_mentioned_event: 提到了
9
+ activerecord:
10
+ models:
11
+ decidim/comments/comment:
12
+ other: 评论
13
+ decidim/comments/comment_vote:
14
+ other: 所得票数
15
+ decidim:
16
+ comments:
17
+ comments: 评论
18
+ comments_count: 评论计数
19
+ last_activity:
20
+ new_comment_at_html: "<span>在 %{link}的新评论</span>"
21
+ view: 查看
22
+ votes:
23
+ create:
24
+ error: 在表决该评论时出现问题。
25
+ components:
26
+ add_comment_form:
27
+ account_message: <a href="%{sign_in_url}">使用您的帐户</a> 或 <a href="%{sign_up_url}">注册</a> 来添加您的评论。
28
+ form:
29
+ body:
30
+ label: 评论
31
+ placeholder: 你对此有什么看法?
32
+ form_error: 文本是必需的,不能超过 %{length} 个字符。
33
+ submit: 发送
34
+ user_group_id:
35
+ label: 评论为
36
+ opinion:
37
+ neutral: 中性的
38
+ remaining_characters: "剩余 %{count} 个字符"
39
+ remaining_characters_1: "剩余 %{count} 个字符"
40
+ title: 添加您的评论
41
+ comment:
42
+ alignment:
43
+ against: 反对的
44
+ in_favor: 优惠的
45
+ deleted_user: 删除参与者
46
+ hide_replies: 隐藏回复
47
+ reply: 答复
48
+ report:
49
+ action: 报告
50
+ already_reported: 此内容已经被报告,将由管理员审核。
51
+ close: 关闭
52
+ description: 这个内容是否不适当?
53
+ details: 其他评论
54
+ reasons:
55
+ does_not_belong: 包含非法活动、自杀威胁、个人信息或你认为不属于 %{organization_name} 的其他东西。
56
+ offensive: 包括种族主义、性别主义、污泥、个人攻击、死亡威胁、自杀请求或任何形式的仇恨言论。
57
+ spam: 包含点击、广告、骗子或脚本机器人。
58
+ title: 报告不恰当的内容
59
+ show_replies: 显示 %{replies_count} 个回复
60
+ single_comment_link_title: 获取单个评论的链接
61
+ comment_order_selector:
62
+ order:
63
+ best_rated: 最佳评分
64
+ most_discussed: 最多讨论
65
+ older: 更旧的
66
+ recent: 最近的
67
+ title: '排序方式:'
68
+ comment_thread:
69
+ title: 与 %{authorName} 的对话
70
+ comments:
71
+ blocked_comments_for_user_warning: 您此时无法评论,但您可以阅读前面的评论。
72
+ blocked_comments_warning: 评论此时被禁用,但您可以阅读前面的评论。
73
+ comment_details_title: 评论详情
74
+ loading: 正在加载评论...
75
+ single_comment_warning: 您可以在这里查看 <a href="%{url}">的其余评论</a>。
76
+ single_comment_warning_title: 您正在看到一个评论
77
+ title: "%{count} 条评论"
78
+ down_vote_button:
79
+ text: 我不同意这个评论
80
+ up_vote_button:
81
+ text: 我同意这个评论
82
+ events:
83
+ comments:
84
+ comment_by_followed_user:
85
+ email_intro: "%{author_name} 在 %{resource_title}留下了一条评论。您可以在这个页面阅读:"
86
+ email_outro: 您收到此通知是因为您正在关注 %{author_name}。您可以从其个人资料页面取消关注此用户。
87
+ email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
88
+ notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 在 <a href="%{resource_path}">%{resource_title}</a> 有新的评论。
89
+ comment_by_followed_user_group:
90
+ email_intro: '组 %{author_name} 在 %{resource_title}留下了一个评论。您可以在这个页面阅读它:'
91
+ email_outro: 您收到此通知是因为您正在关注 %{author_name}。您可以从其个人资料页面取消关注此组。
92
+ email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
93
+ notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 在 <a href="%{resource_path}">%{resource_title}</a> 有新的评论。
94
+ comment_created:
95
+ email_intro: "%{resource_title} 已被评论。您可以阅读此页面中的评论:"
96
+ email_outro: 您收到此通知是因为您正在关注"%{resource_title}"或其作者。您可以从上一个链接取消关注它。
97
+ email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
98
+ notification_title: 来自 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 的新评论 <a href="%{resource_path}">%{resource_title}</a>
99
+ reply_created:
100
+ email_intro: "%{author_name} 在 %{resource_title}回复了您的评论。您可以在这个页面阅读:"
101
+ email_outro: 您收到此通知是因为您的评论已被回复。
102
+ email_subject: "%{author_name} 在 %{resource_title} 回复了您的评论"
103
+ notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 回复了您在 <a href="%{resource_path}">%{resource_title}</a>
104
+ user_group_mentioned:
105
+ email_intro: 已经提到您所属的组
106
+ email_outro: 您收到此通知是因为您是在 %{group_name} 中提及的组 %{resource_title} 的成员。
107
+ email_subject: 您已在 %{resource_title} 中被提及为 %{group_name} 的成员
108
+ notification_title: 您在 <a href="%{resource_path}">%{resource_title}中提到</a> <a href="%{author_path}">%{author_name} %{author_nickname}</a> 作为 <a href="%{group_path}">%{group_name} %{group_nickname}</a>
109
+ user_mentioned:
110
+ email_intro: 您已被提到。
111
+ email_outro: 您收到此通知是因为您已在 %{resource_title} 中被提及。
112
+ email_subject: 您已在 %{resource_title} 中被提及了
113
+ notification_title: 您在 <a href="%{resource_path}">%{resource_title}中提到</a> <a href="%{author_path}">%{author_name} %{author_nickname}</a>
114
+ metrics:
115
+ comments:
116
+ description: 与会者生成的评论数
117
+ object: 评论
118
+ title: 评论
119
+ errors:
120
+ messages:
121
+ cannot_have_comments: 不能有评论
@@ -0,0 +1 @@
1
+ zh-TW:
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MakeCommentsHandleI18n < ActiveRecord::Migration[5.2]
4
+ class User < ApplicationRecord
5
+ self.table_name = :decidim_users
6
+ end
7
+
8
+ class Comment < ApplicationRecord
9
+ self.table_name = :decidim_comments_comments
10
+ end
11
+
12
+ class Organization < ApplicationRecord
13
+ self.table_name = :decidim_organizations
14
+ end
15
+
16
+ def change
17
+ add_column :decidim_comments_comments, :new_body, :jsonb
18
+
19
+ User.reset_column_information
20
+ Comment.reset_column_information
21
+ Organization.reset_column_information
22
+
23
+ Comment.find_each do |comment|
24
+ locale, org_id = User.where(id: comment.decidim_author_id).pluck(:locale, :decidim_organization_id).first
25
+ locale = locale.presence || Organization.find(org_id).default_locale
26
+
27
+ comment.new_body = {
28
+ locale => comment.body
29
+ }
30
+
31
+ comment.save!
32
+ end
33
+
34
+ remove_column :decidim_comments_comments, :body
35
+ rename_column :decidim_comments_comments, :new_body, :body
36
+
37
+ User.reset_column_information
38
+ Comment.reset_column_information
39
+ Organization.reset_column_information
40
+ end
41
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddCommentableCounterCacheToComments < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :decidim_comments_comments, :comments_count, :integer, null: false, default: 0, index: true
6
+ Decidim::Comments::Comment.reset_column_information
7
+ Decidim::Comments::Comment.find_each(&:update_comments_count)
8
+ end
9
+ end
@@ -25,7 +25,11 @@ module Decidim
25
25
  }
26
26
  end
27
27
 
28
- field :body, !types.String, "The comment message"
28
+ field :body, !types.String, "The comment message" do
29
+ resolve lambda { |obj, _args, _ctx|
30
+ obj.translated_body
31
+ }
32
+ end
29
33
 
30
34
  field :formattedBody, !types.String, "The comment message ready to display (it is expected to include HTML)", property: :formatted_body
31
35
 
@@ -11,7 +11,8 @@ module Decidim
11
11
  {
12
12
  id: resource.id,
13
13
  created_at: resource.created_at,
14
- body: resource.body,
14
+ body: resource.body.values.first,
15
+ locale: resource.body.keys.first,
15
16
  author: {
16
17
  id: resource.author.id,
17
18
  name: resource.author.name
@@ -31,7 +32,11 @@ module Decidim
31
32
  private
32
33
 
33
34
  def root_commentable_url
34
- @root_commentable_url ||= Decidim::ResourceLocatorPresenter.new(resource.root_commentable).url
35
+ @root_commentable_url ||= if resource.root_commentable&.respond_to?(:polymorphic_resource_url)
36
+ resource.root_commentable.polymorphic_resource_url
37
+ else
38
+ ResourceLocatorPresenter.new(resource.root_commentable).url
39
+ end
35
40
  end
36
41
  end
37
42
  end