New user of the month: wrong month, not localized

End of month, two new users were notified as New User of the Month:

Why are they reported as new users of March and not February?
Why is month not translated?

2 Likes

I’m not sure why it’s March and not February, I wonder if the job that awards the badge was delayed for some reason? Maybe someone with a better understanding of our badge queries can investigate.

Our translations are sourced from the community, so not all languages are complete. You can see competition percentages here: https://www.transifex.com/discourse/discourse-org/languages/ — Anything without a translation will fall back to English.

If you’re interested in contributing to translation, there are some instructions here: Contribute a translation to Discourse

3 Likes

date.month_names keys are translated to Slovenian already for 10 months by @gerhard. I do not find any other obvious keys that could be used for month names here…

1 Like

The message doesn’t use a localized date format. I can fix that quite easily. Fixed in UX: Localize date format in "new user of the month" message · discourse/discourse@1121514 · GitHub

Because the badge isn’t granted at the end of the month, but at a monthly interval starting at the time the badge was granted for the first time. That way it’s possible that you get the badge at the beginning or middle of the month. I find that highly confusing.

@eviltrout Was that supposed to happen or would you like me to fix that as well?

Also, the grant date seems to shift by roughly 1 day each month. On Meta it looks like this:

granted_at
2019-02-21 01:11:28.219231
2019-02-21 01:11:27.567236
2019-01-21 23:55:59.212397
2019-01-21 23:55:56.144663
2018-12-22 22:17:24.405719
2018-12-22 22:17:24.153355
2018-11-23 03:44:18.793055
2018-11-23 03:44:18.574876
12 Likes

If that’s easy, the badge for the month N should be awarded the 1st day of month N+1.

4 Likes

This is one of those cases where I have to remember why I did something 2 years ago!

I think we wanted it to work as a delta of time from when your forum launched. So if you launched in the middle of January, someone would get the badge in the middle of February.

It might be less confusing to always award on the first of the month though. What do you think @codinghorror?

4 Likes

Especially if people joins a while after the forum has launched. They would have no idea the forum launched the 10th of May 2015.

We could be more clever for the 1st month though. Like, only award if the forum launched before the 15th (so there are enough days) or only award if there are at least X posts by Y users?

5 Likes

Early on that might make sense, when the age of the community is only days and weeks, but it’s quickly going to cause confusion. If it’s not of a calendar month the name is pretty misleading.

2 Likes

Is there any way to manually change the next trigger date (as workaround until the proper fix)? In my case this bug is really annoying as report is done 2nd of month and reports the award is for current month.

This bug is still very annoying on my installation: user of a month is triggered first week of the month for current month. Is there any way to fix the trigger date?

Visit /sidekiq on your forum search for the job that awards the thing and manually trigger it. I think that’ll work.

2 Likes

That should fix it:

https://github.com/discourse/discourse/commit/9621af22145d98e133dd86b254465b094b5ba699

4 Likes