]> source.dussan.org Git - redmine.git/commitdiff
Various changes on views. On project summary, members are now grouped by role and...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 8 Apr 2007 17:44:54 +0000 (17:44 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 8 Apr 2007 17:44:54 +0000 (17:44 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@434 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/projects_controller.rb
app/controllers/roles_controller.rb
app/models/role.rb
app/models/user.rb
app/views/issues/show.rhtml
app/views/projects/show.rhtml

index 6bbf7efced221bacd0da10489083790b81ea429a..c3170bf5e1f58a8a32ef449336af28f577088441 100644 (file)
@@ -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')
index 0eba46d1ed48850d5fb288de320bab45bcac836a..57398f32399e42067acbec8491dd8a13ab2bc085 100644 (file)
@@ -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|
index 7798f3bc636449040a7656adf30c2a7ffdddfeeb..a60319c55c5e952d171aac7f9d1a56bd580ce9bc 100644 (file)
@@ -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])
index 514517de6ca7d70d17776df28c7cbf87cbd8edc5..60baa72da72952474292facaa35b82d900d20e8e 100644 (file)
@@ -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)
index dc386d5977df683cf3c1cc3e84d48155107994bc..759c54f5eb60a7b4c7ce04a14ae25c0aec6ced93 100644 (file)
@@ -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>
index 98259f1f8a24570b0f0f9741a87399d60214eeab..bc18a47522c6fda352108e4f8a20dd794ed4591c 100644 (file)
@@ -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>
 <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 %>