diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-08 17:44:54 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-08 17:44:54 +0000 |
commit | 183ede84fd80c8d4592869dfb631ec6c2ad58543 (patch) | |
tree | 895a304a52c2873fb27a7bc7d8be86f0f50d7fb8 /app | |
parent | bd9a44c2254ab785014207cb07f8b2fff1068b34 (diff) | |
download | redmine-183ede84fd80c8d4592869dfb631ec6c2ad58543.tar.gz redmine-183ede84fd80c8d4592869dfb631ec6c2ad58543.zip |
Various changes on views. On project summary, members are now grouped by role and subprojects are listed inline.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@434 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects_controller.rb | 2 | ||||
-rw-r--r-- | app/controllers/roles_controller.rb | 4 | ||||
-rw-r--r-- | app/models/role.rb | 4 | ||||
-rw-r--r-- | app/models/user.rb | 6 | ||||
-rw-r--r-- | app/views/issues/show.rhtml | 2 | ||||
-rw-r--r-- | app/views/projects/show.rhtml | 10 |
6 files changed, 17 insertions, 11 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6bbf7efce..c3170bf5e 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -83,7 +83,7 @@ class ProjectsController < ApplicationController # Show @project def show @custom_values = @project.custom_values.find(:all, :include => :custom_field) - @members = @project.members.find(:all, :include => [:user, :role], :order => 'position') + @members_by_role = @project.members.find(:all, :include => [:user, :role], :order => 'position').group_by {|m| m.role} @subprojects = @project.children if @project.children.size > 0 @news = @project.news.find(:all, :limit => 5, :include => [ :author, :project ], :order => "#{News.table_name}.created_on DESC") @trackers = Tracker.find(:all, :order => 'position') diff --git a/app/controllers/roles_controller.rb b/app/controllers/roles_controller.rb index 0eba46d1e..57398f323 100644 --- a/app/controllers/roles_controller.rb +++ b/app/controllers/roles_controller.rb @@ -28,7 +28,7 @@ class RolesController < ApplicationController end def list - @role_pages, @roles = paginate :roles, :per_page => 10, :order => "position" + @role_pages, @roles = paginate :roles, :per_page => 25, :order => "position" render :action => "list", :layout => false if request.xhr? end @@ -101,7 +101,7 @@ class RolesController < ApplicationController end def report - @roles = Role.find :all + @roles = Role.find(:all, :order => 'position') @permissions = Permission.find :all, :conditions => ["is_public=?", false], :order => 'sort' if request.post? @roles.each do |role| diff --git a/app/models/role.rb b/app/models/role.rb index 7798f3bc6..a60319c55 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -26,6 +26,10 @@ class Role < ActiveRecord::Base validates_uniqueness_of :name validates_format_of :name, :with => /^[\w\s\'\-]*$/i + def <=>(role) + position <=> role.position + end + private def check_integrity raise "Can't delete role" if Member.find(:first, :conditions =>["role_id=?", self.id]) diff --git a/app/models/user.rb b/app/models/user.rb index 514517de6..60baa72da 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -141,7 +141,11 @@ class User < ActiveRecord::Base token = Token.find_by_value(key) token && token.user.active? ? token.user : nil end - + + def <=>(user) + lastname <=> user.lastname + end + private # Return password digest def self.hash_password(clear_password) diff --git a/app/views/issues/show.rhtml b/app/views/issues/show.rhtml index dc386d597..759c54f5e 100644 --- a/app/views/issues/show.rhtml +++ b/app/views/issues/show.rhtml @@ -11,7 +11,7 @@ <td style="width:15%"><b><%=l(:field_priority)%> :</b></td><td style="width:35%"><%= @issue.priority.name %></td> </tr> <tr> - <td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? @issue.assigned_to.name : "-" %></td> + <td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td> <td><b><%=l(:field_category)%> :</b></td><td><%=h @issue.category ? @issue.category.name : "-" %></td> </tr> <tr> diff --git a/app/views/projects/show.rhtml b/app/views/projects/show.rhtml index 98259f1f8..bc18a4752 100644 --- a/app/views/projects/show.rhtml +++ b/app/views/projects/show.rhtml @@ -5,7 +5,7 @@ <h2><%=l(:label_overview)%></h2> <div class="splitcontentleft"> - <%= simple_format(auto_link(h(@project.description))) %> + <%= textilizable @project.description %> <ul> <% unless @project.homepage.empty? %><li><%=l(:field_homepage)%>: <%= auto_link @project.homepage %></li><% end %> <li><%=l(:field_created_on)%>: <%= format_date(@project.created_on) %></li> @@ -40,17 +40,15 @@ <div class="splitcontentright"> <div class="box"> <h3 class="icon22 icon22-users"><%=l(:label_member_plural)%></h3> - <% for member in @members %> - <%= link_to_user member.user %> (<%= member.role.name %>)<br /> + <% @members_by_role.keys.sort.each do |role| %> + <%= role.name %>: <%= @members_by_role[role].collect(&:user).sort.collect{|u| link_to_user u}.join(", ") %><br /> <% end %> </div> <% if @subprojects %> <div class="box"> <h3 class="icon22 icon22-projects"><%=l(:label_subproject_plural)%></h3> - <% for subproject in @subprojects %> - <%= link_to subproject.name, :action => 'show', :id => subproject %><br /> - <% end %> + <%= @subprojects.collect{|p| link_to(p.name, :action => 'show', :id => p)}.join(", ") %> </div> <% end %> |