Render %{invitee_name} as full name only

When usernames are derived from emails (especially work emails), they often are very similar to the users real name. If the user has set their real name (and if real names are not hidden via site settings) this currently results in invite emails starting like this

John Doe (doe) invited you to join

As far as I can tell without any knowledge of ruby, this is where the John Doe (doe) part gets rendered:

https://github.com/discourse/discourse/blob/2efe0442bf52ad4595e4a290ef24edea4fcbe20b/app/mailers/invite_mailer.rb#L15-L19

I donā€™t see the benefit of mentioning the username at all if the real name is available. After all, you are inviting someone who is not yet a member (most of the time at least) and hence canā€™t relate to the username anyway. So I would like to change line 18 to

  invitee_name = "#{invite.invited_by.name}"

but I donā€™t know how to achieve this on my site and Iā€™m also hesitant to fiddle with the core code. Is this a change that would make sense for the core? If not, could someone give me some hints how to make that change locally while maintaining upgradability?

BTW: why is the variable called invitee_name when ā€œinviteeā€ commonly designates the invited person, not the inviting person?


So, just to understand things better, does what Iā€™m trying to do imply forking Discourse? I hope there is a simpler way for making such a minor changeā€¦

8 Likes

I was about to create a #bug topic about this issue, but Iā€™ll jump on this one and +1 it

ā€˜Inviteeā€™ definitely denotes the person who has been invited. The person who is doing the inviting should be the inviter/invitor. single word requests - Person who invites: "Inviter" or "Invitor" - English Language & Usage Stack Exchange.

Itā€™s particularly confusing when editing the email templates for Invites - I thought %{invitee_name} would put in the name of the person I was inviting so I changed the sentences to reflect this, only for the invites to make no sense at all because %{invitee_name} actually inserted the username of the person who created the invite.

I would support the OP in this topic who suggested the use of full name if it is available, as opposed to username, which can occasionally be a username that is opaque to the new user.

But we do need to change %{invitee_name} to %{inviter_name} because itā€™s maddeningly confusing, and inaccurate. I might actually be able to do this, so if youā€™d be interested in a PR I will have a go.

9 Likes

Yeah this is bad and wrong, you are 100% correct. Not sure who worked on this originally, but they got it wrong.

  • Invitee: person being invited

  • Inviter: person sending the invitation

Can you add to your list @techAPJ?

6 Likes

What abour the main point of the OP? Do you intend to make that change too?

1 Like

Done via:

https://github.com/discourse/discourse/commit/0e0794dff9e23f5ee5ba5f68a8a04f08254b4790

and

https://github.com/discourse/discourse/commit/248ad5466d5009476fb7170e878096a3e343ec1c

4 Likes

I have created a PR for this:

https://github.com/discourse/discourse/pull/5390

@codinghorror can merge if he agrees. :slight_smile:

5 Likes

I disagree; youā€™ll need the username to mention the person properly. Also highly relevant if they are different:

Joe Smith @ninja

I donā€™t understand your point. Can you elaborate?

I think often both could be needed.

If the invite said codinghorror only and I knew Jeff personally I might not have any idea who codinghorror was and be reluctant to accept the invite.

If the invite said Jeff only and I knew Jeff personally I would be more likely to accept the invite, but I might not know that his member name was codinghorror.

3 Likes

That part is covered: the proposal is only to skip username if real name is available, not the other way around.

I believe when you follow an invite link you get to see the name, username and avatar of the user who invited you. Is that not so?

1 Like

This topic was automatically closed after 33 hours. New replies are no longer allowed.