Changeset 750

Show
Ignore:
Timestamp:
03/11/08 19:08:29 (10 months ago)
Author:
markku
Message:

Closes #433. Ordering of users respects the name option in all views.
There are 8 name format options and adding new ones takes only two simple lines of code.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/app/controllers/application.rb

    r749 r750  
    666666        sort_sql = (@fields.collect { |f| f[2] })[@sort_column] 
    667667        if params[:sort_desc] 
    668           sort_sql += ' DESC' 
     668          sort_sql = sort_sql.split(',').map { |col| col + ' DESC' }.join(',') 
    669669          @sort_desc = 1 
    670670        end 
  • trunk/app/controllers/keyring_controller.rb

    r749 r750  
    114114    @keyring = Keyring.find params[:id], :readonly => true 
    115115    @items_count = @keyring.users.count 
    116     @items = items_for_page(@keyring.users
     116    @items = items_for_page(@keyring.users, :order => User.sql_order_for_login_and_name
    117117    @title = _('Owners of keyring %s', @keyring.name) 
    118118    @fields = [ [_('Login and name'), :login_and_name] ] 
     
    120120    @check_name = 'remove' 
    121121    @post_params = { :action => 'remove_owners', :id => @keyring.id } 
    122     @available_users = (User.find(:all) - @keyring.users).collect {|p| [ p.login_and_name, p.id ]}.sort { |a,b| a.first <=> b.first
     122    @available_users = (User.find(:all, :order => User.sql_order_for_login_and_name) - @keyring.users).collect {|p| [ p.login_and_name, p.id ]
    123123    common_list(false) 
    124124  end 
     
    137137 
    138138    info "Keyring #{keyring.name} given to user #{user.login}" 
    139     flash[:notice] = [_('Keyring %s given to user %s.', keyring.name, user.login_and_name), action_key_update_notice] 
     139    flash[:notice] = [_('Keyring %s given to user %s.', keyring.name, user.name), action_key_update_notice] 
    140140  end 
    141141 
  • trunk/app/controllers/message_controller.rb

    r701 r750  
    3636  def view 
    3737    @message = Message.find_for_current_user(params[:id]) 
    38     sender = @message.sender.login_and_name if @message.sender 
     38    sender = @message.sender.name if @message.sender 
    3939    @title = _('Message from %s', sender || 'CMMS') 
    4040 
     
    5353    else 
    5454      @title = _('Send message') 
    55       @receiver_options = User.find(:all, :readonly => true).collect { |u| [u.login_and_name, u.id] } 
     55      @receiver_options = User.find(:all, :readonly => true).collect { |u| [u.name, u.id] } 
    5656    end 
    5757 
  • trunk/app/controllers/setting_controller.rb

    r722 r750  
    2020    @title = _('Edit access control settings') 
    2121 
    22     @setting = 'enable_user_permissions' 
    23     @value = Setting.get(@setting) 
     22    @setting1 = 'user_name_format' 
     23    @value1 = Setting.send(@setting1) 
     24    @setting2 = 'enable_user_permissions' 
     25    @value2 = Setting.send(@setting2) 
     26 
     27    @user_name_formats = [ 
     28                          [_('Last name, First name'), '1'], 
     29                          [_('First name Last name'), '2'], 
     30                          [_('Last name, First name (Username)'), '3'], 
     31                          [_('First name Last name (Username)'), '4'], 
     32                          [_('Username (Last name, First name)'), '5'], 
     33                          [_('Username (First name Last name)'), '6'], 
     34                          [_('First name'), '7'], 
     35                          [_('First name (Username)'), '8'], 
     36                         ] 
    2437 
    2538    if request.post? 
    26       new_value = (params[@setting] == '1') 
    27       if Setting.set(@setting, new_value) 
     39      success = true 
     40 
     41      new_value = params['user_name_format'] 
     42      if User::NAME_FORMATS.include?(new_value) 
     43        success = Setting.set(@setting1, new_value) 
     44      else 
     45        success = false 
     46      end 
     47 
     48      if success 
     49        new_value = (params[@setting2] == '1') 
     50        success = Setting.set(@setting2, new_value) 
     51      end 
     52 
     53      if success 
    2854        flash[:notice] = msg_changes_saved 
    2955        redirect_to(:back)  # flash will stay on without this 
  • trunk/app/controllers/user_controller.rb

    r723 r750  
    2626    @title = _('User accounts') 
    2727    @fields = [ 
    28                 [_('Name'), :name], 
    29                 [_('Username'), :login
     28                [_('Name'), :name, User.sql_order], 
     29                [_('Username'), :login, 'login'
    3030              ] 
    3131    # Render form with 'Remove' check boxes if user is authorized 
     
    3737      @actions = [] 
    3838    end 
    39     @items = items_for_page(User, :order => 'login'
     39    @items = items_for_page(User, :order => User.sql_order
    4040 
    4141    common_list 
     
    4545    @title = _('Create new user account') 
    4646 
    47     user_opts = User.find(:all).collect {|u| [u.login_and_name, u.id]} 
     47    user_opts = User.find(:all, :order => User.sql_order).collect {|u| [u.name, u.id]} 
    4848    @fields = [ 
    4949                [_('Username'), :text_field, 'login', { :size => 30, :maxlength => 40 } ], 
     
    151151      names.push keyring.name 
    152152    end 
    153     flash[:notice] = _('User %s removed from keyrings: %s', @user.login_and_name, names.join(',')) 
     153    flash[:notice] = _('User %s removed from keyrings: %s', @user.name, names.join(',')) 
    154154  end 
    155155 
     
    166166      names.push user_group.name 
    167167    end 
    168     flash[:notice] = _('User %s removed from user groups: %s', @user.login_and_name, names.join(',')) 
     168    flash[:notice] = _('User %s removed from user groups: %s', @user.name, names.join(',')) 
    169169  end 
    170170 
     
    301301    end 
    302302 
    303     @items = User.find(:all, :readonly => true, :order => 'login'
     303    @items = User.find(:all, :readonly => true, :order => User.sql_order
    304304    common_list(false) 
    305305  end 
  • trunk/app/controllers/user_group_controller.rb

    r749 r750  
    9797    if @add 
    9898      if @items.empty? 
    99         @available_users = User.find(:all, :order => 'login').collect {|u| [u.login_and_name, u.id] } 
     99        @available_users = User.find(:all, :order => User.sql_order_for_login_and_name).collect {|u| [u.login_and_name, u.id] } 
    100100      else 
    101101        user_ids = @items.collect {|u| u.id }.join(',') 
    102         @available_users = User.find(:all, :conditions => "NOT (id IN (#{user_ids}))", :order => 'login').collect {|u| [u.login_and_name, u.id] } 
     102        @available_users = User.find(:all, :conditions => "NOT (id IN (#{user_ids}))", :order => User.sql_order_for_login_and_name).collect {|u| [u.login_and_name, u.id] } 
    103103      end 
    104104    end 
     
    118118 
    119119      info "User #{user.login} added to UserGroup #{user_group.name}" 
    120       flash[:notice] = [_('User "%s" added to group "%s".', user.login_and_name, user_group.name), update_users_notice] 
     120      flash[:notice] = [_('User "%s" added to group "%s".', user.name, user_group.name), update_users_notice] 
    121121    end 
    122122    redirect_to :back 
  • trunk/app/helpers/application_helper.rb

    r747 r750  
    502502    return '' unless user 
    503503 
    504     link_text = short_form ? user.name : user.login_and_name 
     504    link_text = short_form ? user.name : user.name 
    505505    return link_to(h(link_text), {:controller => 'user', :action => 'view', :id => user.id}, :class => 'user') 
    506     #link_title = h(user.login_and_name) 
     506    #link_title = h(user.name) 
    507507    #link = "<a href=\"/user/view/#{user.id}\" class=\"user\">#{link_title}</a>" 
    508508    return link 
  • trunk/app/helpers/customer_interface_helper.rb

    r739 r750  
    141141    case event.event_type 
    142142      when FormEvent.TYPES[:CREATED] 
    143         result += event_action(_('Filled out by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     143        result += event_action(_('Filled out by %s', event.creator ? event.creator.name : _('Unknown'))) 
    144144      when FormEvent.TYPES[:MODIFIED] 
    145         result += event_action(_('Modified by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     145        result += event_action(_('Modified by %s', event.creator ? event.creator.name : _('Unknown'))) 
    146146    end 
    147147    return result 
     
    164164    case event.event_type 
    165165      when TaskEvent.TYPES[:CREATED] 
    166         result += event_action(_('Created by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     166        result += event_action(_('Created by %s', event.creator ? event.creator.name : _('Unknown'))) 
    167167      when TaskEvent.TYPES[:CLOSED] 
    168         result += event_action(_('Closed by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     168        result += event_action(_('Closed by %s', event.creator ? event.creator.name : _('Unknown'))) 
    169169      when TaskEvent.TYPES[:ASSIGNED] 
    170         result += event_action(_("Assigned to %s by %s",  event.task_owner ? event.task_owner.login_and_name : _('Unknown'),  event.creator ? event.creator.login_and_name : _('Unknown'))) 
     170        result += event_action(_("Assigned to %s by %s",  event.task_owner ? event.task_owner.name : _('Unknown'),  event.creator ? event.creator.name : _('Unknown'))) 
    171171      when TaskEvent.TYPES[:ACCEPTED] 
    172         result += event_action(_('Accepted by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     172        result += event_action(_('Accepted by %s', event.creator ? event.creator.name : _('Unknown'))) 
    173173      when TaskEvent.TYPES[:REOPENED] 
    174         result += event_action(_('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     174        result += event_action(_('Reopened by %s', event.creator ? event.creator.name : _('Unknown'))) 
    175175      when TaskEvent.TYPES[:COMMENTED] 
    176         result += event_action(_('Comment added by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) 
     176        result += event_action(_('Comment added by %s', event.creator ? event.creator.name : _('Unknown'))) 
    177177    end 
    178178    return result 
     
    193193    result = format_attachment(event.attachment, false) 
    194194    result += '<br/>' 
    195     result += event_action(_('Uploaded by %s', event.creator ? event.creator.login_and_name : _('Unknown'))) if event.event_type == AttachmentEvent.TYPES[:CREATED] 
     195    result += event_action(_('Uploaded by %s', event.creator ? event.creator.name : _('Unknown'))) if event.event_type == AttachmentEvent.TYPES[:CREATED] 
    196196    return result 
    197197  end 
     
    225225    result = format_date(event.created_at, _('%Y-%m-%d'), _('%H:%M'), '<span class="date">%s</span>&nbsp;<span class="time">%s</span>') 
    226226    result += '<br/>' 
    227     result += span_tag('request_updater', event.creator.nil? ? _('by %s', _('Unknown')) : _('by %s', event.creator.login_and_name)) 
     227    result += span_tag('request_updater', event.creator.nil? ? _('by %s', _('Unknown')) : _('by %s', event.creator.name)) 
    228228    return result 
    229229  end 
  • trunk/app/helpers/task_helper.rb

    r726 r750  
    4545      end 
    4646 
    47       result += "<td>#{h(item.login_and_name)}</td>" 
     47      result += "<td>#{h(item.name)}</td>" 
    4848 
    4949      if show_buttons 
  • trunk/app/models/asset.rb

    r734 r750  
    7474  def Asset.get_first_authorized_to_read 
    7575    first = Asset.find_authorized_to_read(:first, :order => 'id') 
    76     raise(ActiveRecord::RecordNotFound, "#{UserAccount.current_user.class} #{UserAccount.current_user.login_and_name} is unauthorized to read any assets.") if first.nil? 
     76    raise(ActiveRecord::RecordNotFound, "#{UserAccount.current_user.class} '#{UserAccount.current_user.login}' is unauthorized to read any assets.") if first.nil? 
    7777    return first 
    7878  end 
     
    276276      sql[0] += 'users.type = ? AND users.id = user_groups_users.user_id AND user_groups_users.user_group_id IN (?)' 
    277277      sql.push('User', self.user_groups.map {|g| g.id }) 
    278       sql[0] += ') ORDER BY id' 
     278      sql[0] += ") ORDER BY #{User.sql_order}" 
    279279 
    280280      User.find_by_sql(sql) 
    281281    else 
    282       options = { :order => 'id'
     282      options = { :order => User.sql_order
    283283      options[:conditions] = ['id != ?', exclude_user_id] if exclude_user_id.is_a?(Integer) 
    284284      User.find(:all, options) 
  • trunk/app/models/customer.rb

    r739 r750  
    4646  end 
    4747 
     48  # Method: User.sql_order 
     49  # ====================== 
     50  # Returns: 
     51  # -------- 
     52  # The customer ordering SQL clause. 
     53  # 
     54  def User.sql_order 
     55    'full_name' 
     56  end 
     57 
    4858  # Method: asset_count 
    4959  # =================== 
  • trunk/app/models/lockable.rb

    r707 r750  
    3535    return false unless self.is_open_for_current_user 
    3636 
    37     _info "Locking #{self.class} id=#{self.id} for #{UserAccount.current_user.class.to_s.downcase} #{UserAccount.current_user.login_and_name} for duration: #{duration}." 
     37    _info "Locking #{self.class} id=#{self.id} for #{UserAccount.current_user.class.to_s.downcase} '#{UserAccount.current_user.login}' for duration: #{duration}." 
    3838    self.lock_user = UserAccount.current_user 
    3939    self.lock_timeout = duration.from_now 
  • trunk/app/models/notification_mailer.rb

    r725 r750  
    113113    message = localize("Task {%i} (%s) - %s\n\n%s\n\nAsset: %s (%s)\n", task.id, task.task_type.name, task_url, task.short_description, asset.full_code, asset.name) 
    114114    message += localize("Asset type: %s\n", asset.asset_type.name) if asset.asset_type 
    115     message += localize("Creation date: %s\nCreator: %s", format_datetime(task.created_at), task.creator.login_and_name) 
     115    message += localize("Creation date: %s\nCreator: %s", format_datetime(task.created_at), task.creator.name) 
    116116 
    117117    recipients recipient 
  • trunk/app/models/setting.rb

    r721 r750  
    55# =============== 
    66# Model that is used to save and load system settings. 
    7 # Each row represents a setting. A setting has a name has a value. 
     7# Each row represents a setting. A setting has a name and a value. 
    88# 
    99# Attributes: 
    1010# ----------- 
    1111# name            - Name of the setting 
    12 # value           - Value for the setting as <String> 
     12# value           - Value for the setting as a <String> 
    1313# value_is_string - Tells whether the setting value is string or not. 
    1414# 
     
    1919# Note: 
    2020# ----- 
    21 # If a new value type are needed, add a new attribute, e.g. value_is_float, 
     21# If a new value type is needed, add a new attribute, e.g. value_is_float, 
    2222# and modify the set_value and get_value instance methods. 
    2323# 
     
    3535  # Constant: VALUE_TO_STRING 
    3636  # ========================= 
    37   # String representatives for non-string setting values. 
     37  # String representatives for discreate non-string setting values. 
    3838  # All setting values are saved as strings. 
    39   # Keep the string values unique! 
     39  # Keep the string representative values unique! 
    4040  # 
    4141  VALUE_TO_STRING = { 
     
    5555  # 
    5656  NAMES = [ 
    57            'enable_user_permissions' 
     57           'enable_user_permissions', 
     58           'user_name_format' 
    5859          ] 
    5960 
    6061  # Constant: DEFAULT_VALUES 
    6162  # ======================== 
    62   # Default values for settings in <NAMES> - in the same order
     63  # Default values for the settings in <NAMES> (in the same order)
    6364  # 
    6465  DEFAULT_VALUES = [ 
    65                     false 
     66                    false, 
     67                    '1' 
    6668                   ] 
    6769 
     
    7173  # Method: Setting.load_settings 
    7274  # ============================= 
    73   # Loads the settings in <NAMES> from database 
     75  # Loads the hardcoded settings in <NAMES> from the database and save them 
     76  # to class attributes. 
    7477  # 
    7578  def Setting.load_settings 
     
    7780      class_variable_set('@@' + name, self.get(name)) 
    7881    } 
     82    return # nil 
    7983  end 
    8084 
     
    9599  # value - Value for the setting 
    96100  # 
     101  # Returns: 
     102  # -------- 
     103  # Returns true if the setting is succesfully saved. 
     104  # Otherwise returns false. 
     105  # 
    97106  def Setting.set(name, value) 
    98107    name = name.to_s 
     
    107116    setting.set_value(value) 
    108117 
    109     setting._info("Setting: '#{setting.name}' to value '#{setting.value}'") 
    110     return setting.save 
     118    if setting.save 
     119      setting._info("Setting: '#{setting.name}' to value '#{setting.value}'") 
     120      return true 
     121    end 
     122    return false 
    111123  end 
    112124 
     
    127139    return nil unless NAMES.include?(name) 
    128140 
    129     # This should never happen since the hardcoded settings always exist. 
     141    # This shouldn't usually happen since the hardcoded settings always exist. 
    130142    # If one nevertheless doesn't the model recreates the default setting. 
     143    # This means that new settings are automatically set to their default 
     144    # values when they are requested for the first time. 
    131145    Setting.set(name, DEFAULT_VALUES[NAMES.index(name)]) 
    132146    return Setting.get(name) 
  • trunk/app/models/task.rb

    r721 r750  
    267267    for creation_date, creator, text in comments 
    268268      text ||= '' 
    269       result.push(format_date(creation_date) + ' - ' + creator.login_and_name + ' - ' + text.gsub("\n", '   ')) 
     269      result.push(format_date(creation_date) + ' - ' + creator.name + ' - ' + text.gsub("\n", '   ')) 
    270270    end 
    271271    return result.join('  |  ') 
  • trunk/app/models/user.rb

    r725 r750  
    3232  end 
    3333 
     34  # Constant: NAME_FORMATS 
     35  # ====================== 
     36  # Holds the available name formats in the following format: 
     37  # { 
     38  #  format_ID => ['name format', [:name_method, ...], SQL_order_by] 
     39  # } 
     40  # 
     41  NAME_FORMATS = { 
     42    '1' => ['%s, %s', [:last_name, :first_name], 'last_name,first_name'], 
     43    '2' => ['%s %s', [:first_name, :last_name], 'first_name,last_name'], 
     44    '3' => ['%s, %s (%s)', [:last_name, :first_name, :login], 'last_name,first_name,login'], 
     45    '4' => ['%s %s (%s)', [:first_name, :last_name, :login], 'first_name,last_name,login'], 
     46    '5' => ['%s (%s, %s)', [:login, :last_name, :first_name], 'login,last_name,first_name'], 
     47    '6' => ['%s (%s %s)', [:login, :first_name, :last_name], 'login,first_name,last_name'], 
     48    '7' => ['%s', [:first_name], 'first_name'], 
     49    '8' => ['%s (%s)', [:first_name, :login], 'first_name,login'], 
     50  } 
     51 
     52  # Method: User.current_name_format 
     53  # ================================ 
     54  # The current name format specified by the Setting.user_name_format setting 
     55  # and the corresponding format in NAME_FORMATS. 
     56  # 
     57  def User.current_name_format 
     58    NAME_FORMATS[Setting.user_name_format] 
     59  end 
     60 
    3461  # Method: name 
    3562  # ============ 
    36   # Get users name. This will overwrite the getter for the 'name' attribute 
    37   # which isn't used by this model. 
     63  # The name of the user in the format specified by the current name format setting. 
     64  # 
     65  # Retuns: 
     66  # ------- 
     67  # Formatted name string 
     68  # 
    3869  def name 
    39     if self.last_name != "" 
    40       if self.first_name != "" 
    41         self.first_name + " " + self.last_name 
    42       else 
    43         self.last_name 
    44       end 
    45     elsif self.first_name != "" 
    46       self.first_name 
    47     else 
    48       "" 
    49     end 
     70    _name 
     71  end 
     72 
     73  # Method: User.sql_order 
     74  # ====================== 
     75  # The user ordering SQL clause specified by the current name format setting. 
     76  # 
     77  def User.sql_order 
     78    current_name_format.last 
     79  end 
     80 
     81  # Method; login_and_name 
     82  # ====================== 
     83  # Retuns: 
     84  # ------- 
     85  # Login and name string in the format "login (last name, first name)" 
     86  # 
     87  def login_and_name 
     88    _name(NAME_FORMATS['5']) 
     89  end 
     90  # Method: User.sql_order_for_login_and_name 
     91  # ========================================= 
     92  # Returns: 
     93  # -------- 
     94  # The user ordering SQL clause based on the <login_and_name> name format. 
     95  # 
     96  def User.sql_order_for_login_and_name 
     97    NAME_FORMATS['5'].last 
    5098  end 
    5199 
     
    130178    return self 
    131179  end 
     180 
     181protected 
     182 
     183  # Method: name 
     184  # ============ 
     185  # The name of the user in the given name format. When called without 
     186  # the format parameter, returns the name string in the format 
     187  # specified by the current name format setting. 
     188  # 
     189  # Parameters: 
     190  # ----------- 
     191  # format_id - The name format that is used. 
     192  #             If nil the current name format setting is used. 
     193  # 
     194  # Retuns: 
     195  # ------- 
     196  # Formatted name string 
     197  # 
     198  # Note: 
     199  # ----- 
     200  # We can't use this method directly as the <name> method because it is 
     201  # an automatic field (<name> would be called with a wrong parameter). 
     202  # 
     203  def _name(format = nil) 
     204    format ||= User.current_name_format 
     205    return format.first % format[1].map { |m| self.send(m) } 
     206  end 
    132207end 
  • trunk/app/models/user_account.rb

    r721 r750  
    9191  end 
    9292 
    93   # Method; login_and_name 
    94   # ====================== 
    95   # Retuns: 
    96   # ------- 
    97   # Login and name in format "login (name)" 
    98   # 
    99   def login_and_name 
    100     unless self.name == '' 
    101       self.login + ' (' + self.name + ')' 
    102     else 
    103       self.login 
    104     end 
     93  # Method: UserAccount.order_sql 
     94  # ============================= 
     95  # Returns the ordering SQL clause for the model. 
     96  # 
     97  def UserAccount.order_sql 
     98    raise NotImplementedError 
    10599  end 
    106100 
  • trunk/app/views/attachment/view.rhtml

    r721 r750  
    3131  <tr> 
    3232    <th><%= _('Creator') %></th> 
    33     <td><%= h(@file.creator.login_and_name) %></td> 
     33    <td><%= h(@file.creator.name) %></td> 
    3434  </tr> 
    3535  <tr> 
  • trunk/app/views/layouts/customer_interface.rhtml

    r712 r750  
    4848 
    4949  <div id="loginstatus"> 
    50     <div id="logged"><%= _('Logged in as') %>:&nbsp;<%= @show_login_name_link ? link_to(h(session[:user].login_and_name), {:action => 'edit_my_information'}, {:id => 'login_name', :title => _('My information')}) : "<span id=\"login_name\">#{h(session[:user].login_and_name)}</span>" %></div> 
     50    <div id="logged"><%= _('Logged in as') %>:&nbsp;<%= @show_login_name_link ? link_to(h("#{session[:user].login} (#{session[:user].name})"), {:action => 'edit_my_information'}, {:id => 'login_name', :title => _('My information')}) : "<span id=\"login_name\">#{h(session[:user].login)}</span>" %></div> 
    5151    <div id="logbutton"><%= link_to( image_tag('customer_interface/logout.jpg'), {:controller => 'user', :action => 'logout'} ) %></div> 
    5252  </div> 
  • trunk/app/views/setting/access_control.rhtml

    r721 r750  
    11<%= form_tag() %> 
    22  <table class="form"> 
    3     <th><%= _('Enable the user permission system for assets') %></th> 
    4     <td><%= check_box_tag(@setting, '1', @value) %></td> 
     3    <tr> 
     4      <th><%= _('Name format for users') %></th> 
     5      <td><%= select_tag(@setting1, options_for_select(@user_name_formats, @value1)) %></td> 
     6   </tr> 
     7    <tr> 
     8      <th><%= _('Enable the user permission system for assets') %></th> 
     9      <td><%= check_box_tag(@setting2, '1', @value2) %></td> 
     10   </tr> 
    511  </table> 
    612  <%= buttons_table(_('Save changes'), {:action => 'access_control'}) %> 
  • trunk/app/views/task/_display_task_event.rhtml

    r511 r750  
    44    <% case event.event_type 
    55      when TaskEvent.TYPES[:CREATED] -%> 
    6         <%= _('Created by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     6        <%= _('Created by %s', event.creator ? event.creator.name : _('Unknown')) %> 
    77      <% when TaskEvent.TYPES[:CLOSED] -%> 
    8         <%= _('Closed by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     8        <%= _('Closed by %s', event.creator ? event.creator.name : _('Unknown')) %> 
    99      <% when TaskEvent.TYPES[:ASSIGNED] -%> 
    10         <%= _('Assiged to %s by %s', event.task_owner ? event.task_owner.login_and_name : _('Unknown'),  event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     10        <%= _('Assiged to %s by %s', event.task_owner ? event.task_owner.name : _('Unknown'),  event.creator ? event.creator.name : _('Unknown')) %> 
    1111      <% when TaskEvent.TYPES[:ACCEPTED] -%> 
    12         <%= _('Accepted by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     12        <%= _('Accepted by %s', event.creator ? event.creator.name : _('Unknown')) %> 
    1313      <% when TaskEvent.TYPES[:REOPENED] -%> 
    14         <%= _('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     14        <%= _('Reopened by %s', event.creator ? event.creator.name : _('Unknown')) %> 
    1515      <% when TaskEvent.TYPES[:COMMENTED] -%> 
    16         <%= _('Comment added by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 
     16        <%= _('Comment added by %s', event.creator ? event.creator.name : _('Unknown')) %> 
    1717    <% end -%> 
    1818  </th> 
  • trunk/app/views/task/_form.rhtml

    r729 r750  
    5555    <tr> 
    5656      <th><%= _('Created by') %></th> 
    57       <td><%= h(@task.creator.login_and_name) %></td> 
     57      <td><%= h(@task.creator.name) %></td> 
    5858    </tr> 
    5959    <tr> 
  • trunk/app/views/task/print_view.rhtml

    r747 r750  
    1616  <tr> 
    1717    <th class="first"><%= _('Created by') %></th> 
    18     <td><%= h(@task.creator.login_and_name) %></td> 
     18    <td><%= h(@task.creator.name) %></td> 
    1919    <th class="second"><%= _('Created at') %></th> 
    2020    <td><%= h(format_date(@task.created_at)) %></td> 
     
    2222  <tr> 
    2323    <th class="first"><%= _('Responsible user') %></th> 
    24     <td><%= h(@task.responsible_user.login_and_name) if @task.responsible_user %><%= ' (' + _('accepted') + ')' if @task.state == Task.ACCEPTED %></td> 
     24    <td><%= h(@task.responsible_user.name) if @task.responsible_user %><%= ' (' + _('accepted') + ')' if @task.state == Task.ACCEPTED %></td> 
    2525    <th class="second"><%= _('Starting time') %></th> 
    2626    <td><%= h(format_date(@task.starting_time)) if @task.starting_time %> 
     
    4141  <tr> 
    4242    <th class="first"><%= _('Assigned users') %></th> 
    43     <td colspan="3"><%= @assigned_workers.map { |w| w.login_and_name }.join(', ') %></td> 
     43    <td colspan="3"><%= @assigned_workers.map { |w| w.name }.join(', ') %></td> 
    4444  </tr> 
    4545  <% end -%> 
  • trunk/app/views/task/view.rhtml

    r743 r750  
    2121        <% end -%> 
    2222        <%= radio_button_tag('task_action', 'assign') %><%= _('Assign responsibility to') %>: 
    23         <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "login_and_name")) %><br/> 
     23        <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "name")) %><br/> 
    2424      <% when Task.ASSIGNED -%> 
    2525        <%= radio_button_tag('task_action', 'leave', true) %><%= _('Leave as assigned') %><br/> 
     
    3131        <% end -%> 
    3232        <%= radio_button_tag('task_action', 'assign') %><%= _('Reassign responsibility to') %>: 
    33         <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "login_and_name")) %><br/> 
     33        <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "name")) %><br/> 
    3434      <% when Task.ACCEPTED -%> 
    3535        <%= radio_button_tag('task_action', 'leave', true) %><%= _('Leave as accepted') %><br/> 
     
    4040        <% end -%> 
    4141        <%= radio_button_tag('task_action', 'assign') %><%= _('Reassign responsibility to') %>: 
    42         <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "login_and_name")) %><br/> 
     42        <%= select_tag("responsible_user_id", options_from_collection_for_select(@users, "id", "name")) %><br/> 
    4343      <% when Task.CLOSED -%> 
    4444        <%= radio_button_tag('task_action', 'leave', true) %><%= _('Leave as closed') %><br/> 
  • trunk/app/views/timeline/_display_event.rhtml

    r498 r750  
    1212      case event.event_type 
    1313        when TaskEvent.TYPES[:CREATED] 
    14           _('Created by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     14          _('Created by %s', event.creator ? event.creator.name : _('Unknown')) 
    1515        when TaskEvent.TYPES[:CLOSED] 
    16           _('Closed by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     16          _('Closed by %s', event.creator ? event.creator.name : _('Unknown')) 
    1717        when TaskEvent.TYPES[:ASSIGNED] 
    18           _("Assigned to %s by %s",  event.task_owner ? event.task_owner.login_and_name : _('Unknown'),  event.creator ? event.creator.login_and_name : _('Unknown')) 
     18          _("Assigned to %s by %s",  event.task_owner ? event.task_owner.name : _('Unknown'),  event.creator ? event.creator.name : _('Unknown')) 
    1919        when TaskEvent.TYPES[:ACCEPTED] 
    20           _('Accepted by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     20          _('Accepted by %s', event.creator ? event.creator.name : _('Unknown')) 
    2121        when TaskEvent.TYPES[:REOPENED] 
    22           _('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     22          _('Reopened by %s', event.creator ? event.creator.name : _('Unknown')) 
    2323        when TaskEvent.TYPES[:COMMENTED] 
    24           _('Comment added by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     24          _('Comment added by %s', event.creator ? event.creator.name : _('Unknown')) 
    2525      end 
    2626      -%> 
     
    3535      case event.event_type 
    3636        when FormEvent.TYPES[:CREATED] 
    37           _('Filled out by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     37          _('Filled out by %s', event.creator ? event.creator.name : _('Unknown')) 
    3838        when FormEvent.TYPES[:MODIFIED] 
    39           _('Modified by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     39          _('Modified by %s', event.creator ? event.creator.name : _('Unknown')) 
    4040      end 
    4141      -%> 
     
    5050      case event.event_type 
    5151      when AttachmentEvent.TYPES[:CREATED] 
    52         _('Uploaded by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 
     52        _('Uploaded by %s', event.creator ? event.creator.name : _('Unknown')) 
    5353      end 
    5454      -%> 
  • trunk/doc/manual/latex/tex/configuration_section.tex

    r739 r750  
    245245The 'Enable the user permission system for assets' setting enables you to choose whether you want to use the user permission system or not. By default the user permission system is disabled. If the level of access control provided by the keys and keyrings is sufficient for you, we recommend you to leave the user permission system disabled. If you need user specific user rights for assets and their data, you  can enable the user permission system. In this case see the sub-section~\ref{subsec:user_groups} for more information. 
    246246 
     247The 'Name format for users' setting enables you to choose the display format for the names of users. The default format is 'Last name, First name', but you can select the name format from several possibilities. 
     248 
    247249\subsection{User groups} 
    248250\label{subsec:user_groups} 
  • trunk/po/fi_FI/norfello_cmms.po

    r749 r750  
    22msgstr "" 
    33"Project-Id-Version: NorfelloCMMS SVN trunk\n" 
    4 "POT-Creation-Date: 2008-02-21 13:57+0200\n" 
    5 "PO-Revision-Date: 2008-02-21 13:59+0200\n" 
     4"POT-Creation-Date: 2008-03-11 18:36+0200\n" 
     5"PO-Revision-Date: 2008-03-11 19:03+0200\n" 
    66"Last-Translator: Markku Oksanen <markku.oksanen@norfello.com>\n" 
    77"Language-Team: Norfello Ltd. <contact@norfello.com>\n" 
     
    293293msgstr[1] "%d avainta" 
    294294 
    295 #: app/models/attachment_methods.rb:30 
     295#: app/models/attachment_methods.rb:44 
    296296msgid "Text file" 
    297297msgstr "Tekstitiedosto" 
    298298 
    299 #: app/models/attachment_methods.rb:32 
     299#: app/models/attachment_methods.rb:46 
    300300msgid "Image file" 
    301301msgstr "Kuvatiedosto" 
    302302 
    303 #: app/models/attachment_methods.rb:34 
     303#: app/models/attachment_methods.rb:48 
    304304msgid "PDF file" 
    305305msgstr "PDF-tiedosto" 
    306306 
    307 #: app/models/attachment_methods.rb:36 
     307#: app/models/attachment_methods.rb:50 
    308308msgid "gzip (GNU zip) file" 
    309309msgstr "gzip (GNU zip) -tiedosto" 
    310310 
    311 #: app/models/attachment_methods.rb:38 
     311#: app/models/attachment_methods.rb:52 
    312312#: app/helpers/customer_interface_helper.rb:143 
    313313#: app/helpers/customer_interface_helper.rb:145 
     
    695695#: app/helpers/application_helper.rb:470 
    696696#: app/controllers/attachment_controller.rb:22 
    697 #: app/controllers/attachment_controller.rb:66 
     697#: app/controllers/attachment_controller.rb:65 
    698698#: app/controllers/type_attachment_controller.rb:19 
    699699msgid "Attachment" 
     
    916916 
    917917#: app/helpers/application_helper.rb:844 
    918 #: app/views/shared/_list_items.rhtml:313 
     918#: app/views/shared/_list_items.rhtml:315 
    919919#: app/views/shared/export_items_csv.rhtml:39 
    920920#: app/views/form/remove.rhtml:5 
     
    924924 
    925925#: app/helpers/application_helper.rb:844 
    926 #: app/views/shared/_list_items.rhtml:311 
     926#: app/views/shared/_list_items.rhtml:313 
    927927#: app/views/shared/export_items_csv.rhtml:37 
    928928#: app/views/customer_interface/_item_list.rhtml:64 
     
    970970#: app/controllers/data_permission_controller.rb:56 
    971971#: app/controllers/task_controller.rb:481 
    972 #: app/controllers/attachment_controller.rb:68 
     972#: app/controllers/attachment_controller.rb:67 
    973973#: app/controllers/asset_tree_controller.rb:125 
    974 #: app/controllers/type_attachment_controller.rb:91 
     974#: app/controllers/type_attachment_controller.rb:86 
    975975msgid "read" 
    976976msgstr "lue" 
     
    11231123#: app/controllers/form_controller.rb:438 
    11241124#: app/controllers/task_controller.rb:308 
    1125 #: app/controllers/attachment_controller.rb:128 
    1126 #: app/controllers/type_attachment_controller.rb:120 
     1125#: app/controllers/attachment_controller.rb:127 
     1126#: app/controllers/type_attachment_controller.rb:115 
    11271127msgid "remove" 
    11281128msgstr "poista" 
     
    12901290msgstr "Muokkaa oikeuksienhallinnan asetuksia" 
    12911291 
     1292#: app/controllers/setting_controller.rb:28 
     1293msgid "Last name, First name" 
     1294msgstr "Sukunimi, Etunimi" 
     1295 
     1296#: app/controllers/setting_controller.rb:29 
     1297msgid "First name Last name" 
     1298msgstr "Etunimi Sukunimi" 
     1299 
     1300#: app/controllers/setting_controller.rb:30 
     1301msgid "Last name, First name (Username)" 
     1302msgstr "Sukunimi, Etunimi (KÀyttÀjÀtunnus)" 
     1303