diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 86848fb5..5709cca2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -170,7 +170,8 @@ module ApplicationHelper elsif options[:full] "#{user.nick} (#{user.first_name} #{user.last_name})" else - user.nick + # when use_nick was changed from false to true, users may exist without nick + user.nick.nil? ? I18n.t('helpers.application.nick_fallback') : user.nick end else "#{user.first_name} #{user.last_name}" + (options[:unique] ? " (\##{user.id})" : '') diff --git a/app/models/user.rb b/app/models/user.rb index 5bbb6b8d..7335f925 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -161,8 +161,12 @@ class User < ActiveRecord::Base # XXX this is view-related; need to move out things like token_attributes # then this can be removed def display - # would be sensible to match ApplicationController#show_user - FoodsoftConfig[:use_nick] ? nick : name + # would be sensible to match ApplicationHelper#show_user + if FoodsoftConfig[:use_nick] + nick.nil? ? I18n.t('helpers.application.nick_fallback') : nick + else + name + end end def token_attributes diff --git a/app/views/admin/base/index.html.haml b/app/views/admin/base/index.html.haml index 01cc5aaa..ed13be09 100644 --- a/app/views/admin/base/index.html.haml +++ b/app/views/admin/base/index.html.haml @@ -15,7 +15,7 @@ %th= t '.created_at' - for user in @users %tr{:class => cycle('even','odd', :name => 'users')} - %td= link_to show_user(user, full: true), [:admin, user] + %td= link_to show_user(user), [:admin, user] - if FoodsoftConfig[:use_nick] %td= link_to user.name %td= format_date(user.created_on) diff --git a/app/views/admin/users/_users.html.haml b/app/views/admin/users/_users.html.haml index 2f085f7b..5fd16bf5 100644 --- a/app/views/admin/users/_users.html.haml +++ b/app/views/admin/users/_users.html.haml @@ -14,7 +14,7 @@ %tbody - for user in @users %tr - %td= link_to show_user(user, full: true), [:admin, user] + %td= link_to show_user(user), [:admin, user] - if FoodsoftConfig[:use_nick] %td= user.name %td= user.email diff --git a/app/views/foodcoop/users/_users.html.haml b/app/views/foodcoop/users/_users.html.haml index 2a464c67..b3d27b78 100644 --- a/app/views/foodcoop/users/_users.html.haml +++ b/app/views/foodcoop/users/_users.html.haml @@ -15,7 +15,7 @@ - for user in @users %tr - if FoodsoftConfig[:use_nick] - %td= user.nick + %td= show_user user %td= user.name if @current_user.role_admin? || user.settings.profile["name_is_public"] || !FoodsoftConfig[:use_nick] %td= user.email if @current_user.role_admin? || user.settings.profile["email_is_public"] %td= user.phone if @current_user.role_admin? || user.settings.profile["phone_is_public"] diff --git a/config/locales/en.yml b/config/locales/en.yml index d21665ec..4d334b7c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -864,6 +864,7 @@ en: helpers: application: edit_user: Edit user + nick_fallback: (empty username) role_admin: Admin role_article_meta: Articles role_finance: Finance