修改个人主页

This commit is contained in:
fanqiang 2013-09-12 17:19:51 +08:00
parent 261c3fc337
commit 602e3dc3fa
14 changed files with 191 additions and 10 deletions

View File

@ -1,4 +1,4 @@
class CourseController < ApplicationController
class CoursesController < ApplicationController
before_filter :require_login, :only => [:join, :unjoin]

View File

@ -355,7 +355,7 @@ class ProjectsController < ApplicationController
redirect_to new_project_path(:course => '1')
#Ended by young
else
redirect_to settings_project_path(@project, :course => @course_tag)
redirect_to settings_project_path(@project)
end
}
format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) }
@ -430,7 +430,8 @@ class ProjectsController < ApplicationController
"show_issues" => true,
"show_files" => true,
"show_documents" => true,
"show_messages" => true
"show_messages" => true,
"show_bids" => true
}
@date_to ||= Date.today + 1
@date_from = @date_to - @days
@ -483,7 +484,7 @@ class ProjectsController < ApplicationController
#Added by young
# @course_tag = params[:course]
# if @course_tag == '1'
if @project.project_type
if @project.project_type == 1
render :layout => 'base_courses'
end
#Ended by young

View File

@ -22,11 +22,12 @@ class UsersController < ApplicationController
menu_item :user_project, :only => :user_projects
menu_item :requirement_focus, :only => :watch_bids
menu_item :user_newfeedback, :only => :user_newfeedback
menu_item :user_course, :only => :user_courses
#Ended by young
before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :user_projects, :user_newfeedback, :user_comments, :watch_bids, :info, :user_watchlist, :user_fanslist,:edit,:update]
before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership,
before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :user_projects, :user_newfeedback, :user_comments, :watch_bids, :info, :user_watchlist, :user_fanslist,:edit,:update, :user_courses]
before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses,
:destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, :watch_bids, :info]
accept_api_auth :index, :show, :create, :update, :destroy,:tag_save
@ -117,6 +118,56 @@ class UsersController < ApplicationController
end
end
# end
# added by fq
def user_courses
case params[:type]
when "1"
@membership = @user.memberships.all(:conditions => Project.visible_condition(User.current))
@memberships = []
@membership.each do |membership|
if membership.project.project_type == 1
@memberships << membership
end
end
@bid = []
@memberships.each do |membership|
@bid += membership.project.homeworks
end
@state = 1
else
@membership = @user.memberships.all(:conditions => Project.visible_condition(User.current))
@memberships = []
@membership.each do |membership|
if membership.project.project_type == 1
@memberships << membership
end
end
@state = 0
end
# events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20)
# @events_by_day = events.group_by(&:event_date)
# @state = 0
#add by huang
unless User.current.admin?
if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?)
render_404
return
end
end
#end
# respond_to do |format|
# format.html
# format.api
# end
end
# end
# modified by fq
def user_newfeedback

View File

@ -90,6 +90,22 @@ module UsersHelper
end
content_tag('div', content, :class => "pagination")
end
def user_course(state)
content = ''.html_safe
case state
when 0
s = content_tag('span', '我的课程', :class => "current-page")
content << content_tag('li', s)
content << content_tag('li', link_to('我的作业', {:controller => 'users', :action => 'user_courses', :type => 1}))
when 1
s = content_tag('span', '我的作业', :class => "current-page")
content << content_tag('li', link_to('我的课程', {:controller => 'users', :action => 'user_courses'}))
content << content_tag('li', s, :class => "current-page")
end
content_tag('div', content, :class => "pagination")
end
# added by huang
def sort_user(state)

View File

@ -48,7 +48,7 @@ class Bid < ActiveRecord::Base
:author => :author,
:url => Proc.new {|o| {:controller => 'bids', :action => 'show', :id => o.id}}
acts_as_activity_provider :find_options => {:include => [:author]},
acts_as_activity_provider :find_options => {:include => [:project, :author]},
:author_key => :author_id

View File

@ -54,7 +54,7 @@ class Project < ActiveRecord::Base
# added by fq
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :homework_for_courses, :dependent => :destroy
has_many :homeworks, :through => :homework_for_courses, :source => :bid
has_many :homeworks, :through => :homework_for_courses, :source => :bid, :dependent => :destroy
has_many :students_for_courses, :dependent => :destroy
has_many :student, :through => :students_for_courses, :source => :user

View File

@ -0,0 +1,3 @@
$('#join').html('<%= escape_javascript join_in_course(course, user) %>');

View File

@ -1,6 +1,6 @@
<h3 class="title">请输入课程密码</h3>
<%= form_tag({:controller => 'watchers',
<%= form_tag({:controller => 'courses',
:action => 'join',
:object_id => course.id},
:remote => true,

View File

@ -1,5 +1,5 @@
<h3><%=l(:label_settings)%></h3>
<% if @project.project_type %>
<% if @project.project_type == 1 %>
<%= render_tabs course_settings_tabs %>
<% else %>
<%= render_tabs project_settings_tabs %>

View File

@ -0,0 +1,42 @@
<div class="content_frame">
<% unless @memberships.empty? %>
<ul class="user_project_sort">
<% for membership in @memberships %>
<li>
<table width="660" border="0" align="center" style="border-bottom: 1px dashed rgb(204, 204, 204); margin-bottom: 10px;font-size:14px;">
<tr>
<td colspan="2" valign="top" width="50" ><%= link_to image_tag(url_to_avatar(membership.project), :class => 'avatar'), project_path(membership.project) %></td>
<td>
<table width="580" border="0">
<tr>
<td colspan="2" valign="top"><strong> <%= link_to_user(membership.user) if membership.respond_to?(:user) %></strong>
<span class="font_lighter"> <%= l(:label_create_project) %></span> <%= link_to_project(membership.project) %></td>
</tr>
<tr>
<td colspan="2" width="580" >
<p class="font_description">
<%= membership.project.description%>
</p></td>
</tr>
<tr>
<td align="left"><span class="font_lighter"> <%= format_time(membership.created_on) %></span></td><!-- modified by ming -->
<td align="right" ><%= h membership.roles.sort.collect(&:to_s).join(', ') %> </td>
</tr>
</table></td>
</tr>
</table>
</li>
<% end %>
</ul>
<% else %>
<% if @user != User.current %>
<p class="font_description"><%= l(:label_project_un) %></p>
<% else %>
<p class="font_description"><%= l(:label_project_unadd) %><%= link_to"#{l(:label_new)}",:controller=>'projects',:action=>'new'%></p>
<% end %>
<% end %>
<%= call_hook :view_account_left_bottom, :user => @user %>
</div>

View File

@ -0,0 +1,56 @@
<!-- fq -->
<% if @bid.size > 0%>
<% for bid in @bid%>
<table width="90%" border="0" align="center" style="border-bottom: 1px dashed rgb(204, 204, 204); margin-bottom: 10px; margin-top: 30px;font-size:14px;">
<tr>
<td colspan="2" valign="top" width="50" ><%= link_to image_tag(url_to_avatar(bid.author), :class => 'avatar'),user_path(bid.author), :class => "avatar" %></td>
<td>
<table width="100%" border="0">
<tr>
<td colspan="2" valign="top"><strong><%= link_to(bid.author, user_path(bid.author), :class => 'bid_user') %>:&nbsp;<%= link_to(bid.name, respond_path(bid), :class => 'bid_path') %></strong></td>
</tr>
<tr>
<td width="500">
<table border="0">
<tr><td>
<% if bid.reward_type.nil? or bid.reward_type == 1%>
<strong><%= l(:label_bids_reward_method) %><span style="color: #ed8924;font-family: 14px; font-family: 微软雅黑"><%= l(:label_call_bonus) %>&nbsp;<%= l(:label_RMB_sign) %><%= bid.budget%></span></strong>
<% elsif bid.reward_type == 2%>
<strong><%= l(:label_bids_reward_method) %><span style="color: #15bccf;font-family: 14px; font-family: 微软雅黑"><%= bid.budget%></span></strong>
<% else %>
<strong><%= l(:label_bids_reward_method) %><span style="color: #00aa83;font-family: 14px; font-family: 微软雅黑"><%= l(:label_bids_credit) %>&nbsp;<%= bid.budget%>&nbsp;<%= l(:label_bids_credit_number) %></span></strong>
<% end %>
<!-- <td style="color: rgb(255, 0, 0);"><strong><%= l(:label_price) %><%= l(:label_RMB_sign) %><%= bid.budget%></strong></td> -->
</td>
</tr>
<tr><td>
<span class="font_lighter"><%= l(:label_biding_project) %>(<strong><%=link_to bid.biding_projects.count, project_for_bid_path(bid) %></strong>)</span>
<span class="font_lighter"><%= l(:label_responses) %>(<strong><%=link_to bid.commit, respond_path(bid) %></strong>)</span>
<span class="font_lighter"><%= l(:label_followers) %>(<strong><%=link_to bid.watcher_users.count, respond_path(bid) %></strong>)</span>
</td>
</tr>
</table></td>
<td width="220" align="right" class="a"><span class="font_lighter"> <%= format_time bid.created_on %></span></td><!-- modified by ming -->
</tr>
<tr>
<td>
<div class="bid-description" style="border-left: 1px solid rgb(225, 225, 225); border-bottom: 1px solid rgb(225, 225, 225); padding-left: 20px; padding-bottom: 10px; margin-bottom: 20px;">
<table>
<tr>
<td> <%= bid.description%> </td>
</tr>
</table>
</div></td>
</tr>
</table></td>
</tr>
</table>
<% end %>
<% else %>
<p class="font_description">暂无任何作业</p>
<% end %>

View File

@ -0,0 +1,10 @@
<!-- added by fq -->
<%= user_course @state%>
<% if @state == 0%>
<%= render :partial => 'my_course' %>
<% else %>
<%= render :partial => 'my_homework' %>
<% end %>

View File

@ -89,6 +89,7 @@ RedmineApp::Application.routes.draw do
match 'info', :to => 'users#info', :via => [:get , :post], :as => 'user_info'
match 'user_watchlist', :to => 'users#user_watchlist', :via => :get, :as => "user_watchlist" #add by huang
match 'user_fanslist', :to => 'users#user_fanslist', :via => :get, :as => "user_fanslist" #add by huang
match 'user_courses', :to => 'users#user_courses', :via => :get
end
end
match 'users/:id/user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "feedback"

View File

@ -279,6 +279,7 @@ end
Redmine::MenuManager.map :user_menu do |menu|
menu.push :activity, {:controller => 'users', :action => 'show' }
menu.push :user_project, {:controller => 'users', :action => 'user_projects'}
menu.push :user_course, {:controller => 'users', :action => 'user_courses'}
menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids'}
menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback'}