Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Neff <benjamin@coding4coffee.ch>2018-01-05 02:33:02 +0300
committerDennis Schubert <mail@dennis-schubert.de>2018-01-12 19:52:57 +0300
commit5bc4473e11698b9dedd33876369c3e74e85ff7fa (patch)
treecc3e4689aec4d116b47d72269160b378664ed122
parentcf2bd66005f7fd4397e8e15d666549d430d39d38 (diff)
Fix notifications when people remove their birthday date
Some people may remove their birthday date after the notification was sent, which then breaks the notification page for other users. Let's just display the date when the notification was created, and not display the users updated birthday date. When users update from date A to B it always looks weird anyway, when we display the same new date B twice on different days, or display two different dates for the same user. We could remove notifications when users change or remove their birthday, but that would be way more complex and also we usually don't remove notifications (not even for deleted posts). Fixes #7689 closes #7691
-rw-r--r--Changelog.md4
-rw-r--r--app/helpers/notifications_helper.rb6
-rw-r--r--spec/helpers/notifications_helper_spec.rb16
3 files changed, 23 insertions, 3 deletions
diff --git a/Changelog.md b/Changelog.md
index 1096744f0..b89f734f9 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+# 0.7.2.1
+
+Fixes notifications when people remove their birthday date [#7691](https://github.com/diaspora/diaspora/pull/7691)
+
# 0.7.2.0
## Bug fixes
diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb
index dd1a4cf9a..ffe10a951 100644
--- a/app/helpers/notifications_helper.rb
+++ b/app/helpers/notifications_helper.rb
@@ -17,7 +17,7 @@ module NotificationsHelper
.include?(note.type)
opts.merge!(opts_for_post(note.linked_object))
elsif note.is_a?(Notifications::ContactsBirthday)
- opts.merge!(opts_for_birthday(note.linked_object))
+ opts.merge!(opts_for_birthday(note))
end
end
translation(target_type, opts)
@@ -46,8 +46,8 @@ module NotificationsHelper
}
end
- def opts_for_birthday(person)
- {date: locale_date(person.birthday.to_s)}
+ def opts_for_birthday(note)
+ {date: I18n.l(note.created_at, format: I18n.t("date.formats.fullmonth_day"))}
end
def notification_people_link(note, people=nil)
diff --git a/spec/helpers/notifications_helper_spec.rb b/spec/helpers/notifications_helper_spec.rb
index 356092b18..dea069ef6 100644
--- a/spec/helpers/notifications_helper_spec.rb
+++ b/spec/helpers/notifications_helper_spec.rb
@@ -123,6 +123,22 @@ describe NotificationsHelper, type: :helper do
expect(link).to include("#{post_path(status_message)}##{comment.guid}")
end
end
+
+ context "for a birthday" do
+ let(:notification) { Notifications::ContactsBirthday.create(recipient: alice, target: bob.person) }
+
+ it "contains the date" do
+ bob.profile.update_attributes(birthday: Time.zone.today)
+ link = object_link(notification, notification_people_link(notification))
+ expect(link).to include(I18n.l(Time.zone.today, format: I18n.t("date.formats.fullmonth_day")))
+ end
+
+ it "doesn't break, when the person removes the birthday date" do
+ bob.profile.update_attributes(birthday: nil)
+ link = object_link(notification, notification_people_link(notification))
+ expect(link).to include(I18n.l(Time.zone.today, format: I18n.t("date.formats.fullmonth_day")))
+ end
+ end
end
describe '#display_year?' do