diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index d7c54db32..9c4d8cfa8 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -8,7 +8,7 @@ class BidsController < ApplicationController menu_item :homework_statistics, :only => :homework_statistics #Ended by young before_filter :find_bid, :only => [:show, :show_project, :create,:destroy,:more,:back,:add,:delete,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork, - :show_course, :show_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings] + :show_course, :show_courseEx,:show_bid_project, :show_bid_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings] # added by fq before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest] # end @@ -448,7 +448,7 @@ class BidsController < ApplicationController # 显示作业课程 # add by nwb - def show_course + def show_courseEx # flash[:notice] = "" @membership = User.current.coursememberships.all(:conditions => Course.visible_condition(User.current)) @option = [] @@ -462,6 +462,7 @@ class BidsController < ApplicationController @user = @bid.author @bidding_project = @bid.biding_projects.all + if params[:student_id].present? @temp = [] @bidding_project.each do |pro| diff --git a/app/controllers/contests_controller.rb b/app/controllers/contests_controller.rb index f50fe1913..adadfbf44 100644 --- a/app/controllers/contests_controller.rb +++ b/app/controllers/contests_controller.rb @@ -74,7 +74,26 @@ class ContestsController < ApplicationController end end - def show_contest + def homework + @offset, @limit = api_offset_and_limit({:limit => 10}) + @bids = @course.homeworks.order('deadline DESC') + @bids = @bids.like(params[:name]) if params[:name].present? + @bid_count = @bids.count + @bid_pages = Paginator.new @bid_count, @limit, params['page'] + + @offset ||= @bid_pages.reverse_offset + unless @offset == 0 + @bids = @bids.offset(@offset).limit(@limit).all.reverse + else + limit = @bid_count % @limit + @bids = @bids.offset(@offset).limit(limit).all.reverse + end + render :layout => 'base_courses' + + end + + + def show_contest @user = @contest.author @jours = @contest.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') @limit = 10 diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index d10f09ffa..2922eea1a 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -1,21 +1,21 @@ class HomeworkAttachController < ApplicationController ############################### #判断当前角色权限时需先找到当前操作的project - before_filter :find_project_by_bid_id, :only => [:new] - before_filter :find_project_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users] + before_filter :find_course_by_bid_id, :only => [:new] + before_filter :find_course_by_hoemwork_id, :only => [:edit,:update,:destroy,:show,:add_homework_users,:destory_homework_users] #判断当前角色是否有操作权限 #勿删 before_filter :authorize, :only => [:new,:edit,:update,:destroy] - def find_project_by_bid_id + def find_course_by_bid_id @bid = Bid.find(params[:id]) - @project = @bid.courses[0] + @course = @bid.courses[0] rescue ActiveRecord::RecordNotFound render_404 end - def find_project_by_hoemwork_id + def find_course_by_hoemwork_id @homework = HomeworkAttach.find(params[:id]) - @project = @homework.bid.courses[0] + @course = @homework.bid.courses[0] end #获取作业的成员 @@ -35,7 +35,7 @@ class HomeworkAttachController < ApplicationController #作业添加成员(参与人员) def add_homework_users - if User.current.admin? || User.current.member_of?(@homework.bid.courses.first) + if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) #@homework = HomeworkAttach.find(params[:id]) if params[:membership] if params[:membership][:user_ids] @@ -59,7 +59,7 @@ class HomeworkAttachController < ApplicationController #作业删除成员(参与人员) def destory_homework_users #@homework = HomeworkAttach.find(params[:id]) - if User.current.admin? || User.current.member_of?(@homework.bid.courses.first) + if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) homework_user = @homework.homework_users.where("user_id = #{params[:user_id]}").first homework_user.destroy get_homework_member @homework @@ -73,7 +73,7 @@ class HomeworkAttachController < ApplicationController def create bid = Bid.find params[:bid_id] - if User.current.admin? || User.current.member_of?(bid.courses.first) + if User.current.admin? || User.current.member_of_course?(bid.courses.first) # modify by nwb if bid.homeworks.where("user_id = ?",User.current).count == 0 user_id = params[:user_id] bid_id = params[:bid_id] @@ -97,7 +97,7 @@ class HomeworkAttachController < ApplicationController if @homework.save respond_to do |format| - format.html { redirect_to project_for_bid_path @homework.bid } + format.html { redirect_to course_for_bid_path @homework.bid } format.json { head :no_content } end else @@ -113,7 +113,7 @@ class HomeworkAttachController < ApplicationController def new @bid = Bid.find(params[:id]) - if User.current.admin? || User.current.member_of?(@bid.courses.first) + if User.current.admin? || User.current.member_of_course?(@bid.courses.first) #nwb #该课程的学生的集合(新建不实现功能:添加成员) #@members = @bid.courses.first.members.joins(:member_roles).where("member_roles.role_id IN (:role_id) and user_id <> #{User.current.id}", {:role_id => [5, 10]}) @@ -138,7 +138,7 @@ class HomeworkAttachController < ApplicationController def get_homework_member_list @homework = HomeworkAttach.find(params[:bid_id]) course = @homework.bid.courses.first - if User.current.admin? || User.current.member_of?(course) + if User.current.admin? || User.current.member_of_course?(course) get_homework_member @homework else raise "error" @@ -163,7 +163,7 @@ class HomeworkAttachController < ApplicationController def edit #@homework = HomeworkAttach.find(params[:id]) - if User.current.admin? || User.current.member_of?(@homework.bid.courses.first) + if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) #@members = @homework.bid.courses.first.members.joins(:member_roles).where("member_roles.role_id IN (:role_id)", {:role_id => [5, 10]}) get_homework_member @homework else @@ -174,7 +174,7 @@ class HomeworkAttachController < ApplicationController def update #@homework = HomeworkAttach.find(params[:id]) course = @homework.bid.courses.first - if User.current.admin? || User.current.member_of?(course) + if User.current.admin? || User.current.member_of_course?(course) name = params[:homework_name] description = params[:homework_description] @homework.name = name @@ -184,7 +184,7 @@ class HomeworkAttachController < ApplicationController end if @homework.save respond_to do |format| - format.html { redirect_to project_for_bid_path @homework.bid } + format.html { redirect_to course_for_bid_path @homework.bid } format.json { head :no_content } end else @@ -199,7 +199,7 @@ class HomeworkAttachController < ApplicationController if User.current.admin? || User.current == @homework if @homework.destroy respond_to do |format| - format.html { redirect_to project_for_bid_path @homework.bid } + format.html { redirect_to course_for_bid_path @homework.bid } format.json { head :no_content } end else @@ -212,7 +212,7 @@ class HomeworkAttachController < ApplicationController #显示作业信息 def show #@homework = HomeworkAttach.find(params[:id]) - if User.current.admin? || User.current.member_of?(@homework.bid.courses.first) + if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) # 打分统计 stars_reates = @homework. rates(:quality) diff --git a/app/models/bid.rb b/app/models/bid.rb index b36efe6f9..f65d71fa8 100644 --- a/app/models/bid.rb +++ b/app/models/bid.rb @@ -21,7 +21,7 @@ class Bid < ActiveRecord::Base belongs_to :author, :class_name => 'User', :foreign_key => :author_id belongs_to :course has_many :biding_projects, :dependent => :destroy - has_many :courses, :through => :biding_courses + has_many :projects, :through => :biding_projects has_many :courses_member, :class_name => 'User', :through => :courses has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy diff --git a/app/views/bids/show_course.html.erb b/app/views/bids/show_course.html.erb index 574bd117c..aacc011e8 100644 --- a/app/views/bids/show_course.html.erb +++ b/app/views/bids/show_course.html.erb @@ -8,10 +8,10 @@
<%= link_to_project(course) %> - <%= l(:label_homework) %> (<%= link_to (course.homeworks.count), {:controller => 'projects', :action => 'homework', :id => course.identifier} %>) + | <%= link_to_course(course) %> + <%= l(:label_homework) %> (<%= link_to (course.homeworks.count), {:controller => 'courses', :action => 'homework', :id => course.id} %>) - <%= l(:label_course_news)%> (<%= link_to (course.news.count), {:controller => 'news', :action => 'index', :project_id => course.identifier} %>) + <%= l(:label_course_news)%> (<%= link_to (course.news.count), {:controller => 'news', :action => 'index', :course_id => course.id} %>) | ||
<%= format_time(course.created_on) %> | +<%= format_time(course.created_at) %> | - <% t_course = Course.find_by_extra(course.identifier) %> - 教师:<%= link_to(t_course.teacher.lastname+t_course.teacher.firstname, user_path(t_course.teacher)) %> + 教师:<%= link_to(course.teacher.lastname+course.teacher.firstname, user_path(course.teacher)) %> |
<%=link_to "主页", home_path %> > <%=link_to l(:label_course_practice), :controller => 'projects', :action => 'course' %> > - <%= link_to(@bid.courses.first.name.to_s, homework_project_path(@bid.courses.first)) if @bid.courses.first%> > +
<%=link_to "主页", home_path %> > <%=link_to l(:label_course_practice), :controller => 'courses', :action => 'index' %> > + <%= link_to(@bid.courses.first.name.to_s, homework_course_path(@bid.courses.first)) if @bid.courses.first%> > <%=link_to(@bid.name, respond_path(@bid)) %> > <%= link_to "创建作业", new_homework_attach_path(@bid)%>