parent
061a1f602a
commit
8c83bbfff3
@ -1,47 +1,47 @@
|
|||||||
<% course_file_num = visable_attachemnts_incourse(@course).count%>
|
<% course_file_num = visable_attachemnts_incourse(@course).count%>
|
||||||
<% is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,@course)) %>
|
<% is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,@course)) %>
|
||||||
<% if show_nav?(@course.homework_commons.count) %>
|
<% if show_nav?(@course.homework_commons.count) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_homework), homework_common_index_path(:course => @course.id), :class => "f14 c_blue02"%>
|
<%= link_to l(:label_homework), homework_common_index_path(:course => @course.id), :class => "f14 c_blue02"%>
|
||||||
<%= link_to( "", homework_common_index_path(:course => @course.id,:is_new => 1), :class => 'courseMenuSetting', :title =>"#{l(:label_course_homework_new)}") if is_teacher %>
|
<%= link_to( "", homework_common_index_path(:course => @course.id,:is_new => 1), :class => 'courseMenuSetting', :title =>"#{l(:label_course_homework_new)}") if is_teacher %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(@course.news.count) %>
|
<% if show_nav?(@course.news.count) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_course_news), course_news_index_path(@course), :class => "f14 c_blue02" %>
|
<%= link_to l(:label_course_news), course_news_index_path(@course), :class => "f14 c_blue02" %>
|
||||||
<%= link_to( "", new_course_news_path(@course), :class => 'courseMenuSetting', :title =>"#{l(:label_course_news_new)}") if is_teacher %>
|
<%= link_to( "", new_course_news_path(@course), :class => 'courseMenuSetting', :title =>"#{l(:label_course_news_new)}") if is_teacher %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(course_file_num) %>
|
<% if show_nav?(course_file_num) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_course_file), course_files_path(@course), :class => "f14 c_blue02" %>
|
<%= link_to l(:label_course_file), course_files_path(@course), :class => "f14 c_blue02" %>
|
||||||
<% if is_teacher || (@course.publish_resource == 1 && User.current.member_of_course?(@course)) %>
|
<% if is_teacher || (@course.publish_resource == 1 && User.current.member_of_course?(@course)) %>
|
||||||
<!--link_to( "+#{l(:label_upload_files)}", course_files_path(@course), :class => 'subnav_green ml95 c_white')-->
|
<!--link_to( "+#{l(:label_upload_files)}", course_files_path(@course), :class => 'subnav_green ml95 c_white')-->
|
||||||
<a class="courseMenuSetting" title="上传资源" href="javascript:void(0);" onclick="course_files_upload();"> </a>
|
<a class="courseMenuSetting" title="上传资源" href="javascript:void(0);" onclick="course_files_upload();"> </a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(@course.boards.first ? @course.boards.first.topics.count : 0) %>
|
<% if show_nav?(@course.boards.first ? @course.boards.first.topics.count : 0) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_course_board), course_boards_path(@course), :class => "f14 c_blue02" %>
|
<%= link_to l(:label_course_board), course_boards_path(@course), :class => "f14 c_blue02" %>
|
||||||
<%= link_to( "",course_boards_path(@course, :flag => true, :is_new => 1), :class => 'courseMenuSetting', :title =>"#{l(:label_message_new)}") if User.current.member_of_course?(@course) && @course.boards.first %>
|
<%= link_to( "",course_boards_path(@course, :flag => true, :is_new => 1), :class => 'courseMenuSetting', :title =>"#{l(:label_message_new)}") if User.current.member_of_course?(@course) && @course.boards.first %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(course_feedback_count) %>
|
<% if show_nav?(course_feedback_count) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_course_feedback), course_feedback_path(@course), :class => "f14 c_blue02" %>
|
<%= link_to l(:label_course_feedback), course_feedback_path(@course), :class => "f14 c_blue02" %>
|
||||||
<%= link_to "", course_feedback_path(@course), :class => 'courseMenuSetting', :title =>"#{l(:label_message_new)}", :id => "course_jour_count"%>
|
<%= link_to "", course_feedback_path(@course), :class => 'courseMenuSetting', :title =>"#{l(:label_message_new)}", :id => "course_jour_count"%>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(course_poll_count) %>
|
<% if show_nav?(course_poll_count) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to l(:label_poll), poll_index_path(:polls_type => "Course", :polls_group_id => @course.id), :class => " f14 c_blue02"%>
|
<%= link_to l(:label_poll), poll_index_path(:polls_type => "Course", :polls_group_id => @course.id), :class => " f14 c_blue02"%>
|
||||||
<%= link_to( "", new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => 'courseMenuSetting', :title =>"#{l(:label_new_poll)}") if is_teacher %>
|
<%= link_to( "", new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => 'courseMenuSetting', :title =>"#{l(:label_new_poll)}") if is_teacher %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if show_nav?(User.current.allowed_to?(:as_teacher,@course)? @course.exercises.count : @course.exercises.where("exercise_status=2").count) %>
|
<% if show_nav?(User.current.allowed_to?(:as_teacher,@course)? @course.exercises.count : @course.exercises.where("exercise_status=2").count) %>
|
||||||
<div class="subNav">
|
<div class="subNav">
|
||||||
<%= link_to "在线测验", exercise_index_path(:course_id => @course.id), :class => " f14 c_blue02"%>
|
<%= link_to "在线测验", exercise_index_path(:course_id => @course.id), :class => " f14 c_blue02"%>
|
||||||
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'courseMenuSetting', :title =>"新建试卷") if is_teacher %>
|
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'courseMenuSetting', :title =>"新建试卷") if is_teacher %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
@ -1,30 +1,36 @@
|
|||||||
class AddCourseContributorScore < ActiveRecord::Migration
|
class AddCourseContributorScore < ActiveRecord::Migration
|
||||||
def up
|
def up
|
||||||
# course_count = Course.all.count / 30 + 1
|
# course_count = Course.all.count / 30 + 1
|
||||||
# transaction do
|
# transaction do
|
||||||
# for i in 1 ... course_count do i
|
# for i in 1 ... course_count do i
|
||||||
Course.all.each do |course|
|
Course.all.each do |course|
|
||||||
if course.course_activities.count > 1
|
if course.course_activities.count > 1
|
||||||
course.student.each do |s|
|
course.student.each do |s|
|
||||||
puts course.id
|
puts course.id
|
||||||
puts course.name
|
puts course.name
|
||||||
puts s.student_id
|
puts s.student_id
|
||||||
board_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?",s.student_id, course.id, "Message").count * 2
|
# board_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?",s.student_id, course.id, "Message").count * 2
|
||||||
message_reply_count = Message.find_by_sql("select DISTINCT me.* from messages me, boards b where b.id = me.board_id and b.course_id = #{course.id} and b.project_id = '-1' and me.author_id = #{s.student_id} and me.parent_id is not null;").count * 1
|
board_count = Message.find_by_sql("select DISTINCT me.* from messages me, boards b where b.id = me.board_id and b.course_id = #{course.id} and b.project_id = '-1' and me.author_id = #{s.student_id} and me.parent_id is null;").count * 2
|
||||||
common_reply_count = Comment.find_by_sql("select cm.* from comments cm, news n where cm.author_id = #{s.student_id} and n.course_id = #{course.id} and cm.commented_id = n.id and cm.commented_type ='News'").count * 1
|
message_reply_count = Message.find_by_sql("select DISTINCT me.* from messages me, boards b where b.id = me.board_id and b.course_id = #{course.id} and b.project_id = '-1' and me.author_id = #{s.student_id} and me.parent_id is not null").count * 1
|
||||||
attachment_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?", s.student_id, course.id, "Attachment").count * 5
|
common_reply_count = Comment.find_by_sql("select cm.* from comments cm, news n where cm.author_id = #{s.student_id} and n.course_id = #{course.id} and cm.commented_id = n.id and cm.commented_type ='News'").count * 1
|
||||||
journal_count = JournalsForMessage.where("user_id =? and jour_id =? and jour_type =? ", s.student_id, course.id, "Course").count * 1
|
# attachment_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?", s.student_id, course.id, "Attachment").count * 5
|
||||||
# journal_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?", s.student_id, course.id, "JournalsForMessage").count * 1
|
attachment_count = Attachment.find_by_sql("SELECT * FROM `attachments` where container_id = #{course.id} and author_id = #{s.student_id};").count * 5
|
||||||
# journal_reply_count = JournalsForMessage.where("user_id =? and jour_id =? and jour_type =? and status =?", s.student_id, course.id, "Course",1).count * 1
|
journal_count = JournalsForMessage.where("user_id =? and jour_id =? and jour_type =? ", s.student_id, course.id, "Course").count * 1
|
||||||
CourseContributorScore.create(:course_id => course.id, :user_id => s.student_id, :message_num => board_count, :message_reply_num => message_reply_count,
|
# journal_count = CourseActivity.where("user_id =? and course_id =? and course_act_type =?", s.student_id, course.id, "JournalsForMessage").count * 1
|
||||||
:news_reply_num => common_reply_count, :resource_num => attachment_count, :journal_num => journal_count, :journal_reply_num => 0)
|
# journal_reply_count = JournalsForMessage.where("user_id =? and jour_id =? and jour_type =? and status =?", s.student_id, course.id, "Course",1).count * 1
|
||||||
end
|
total = board_count + message_reply_count + common_reply_count + attachment_count + journal_count
|
||||||
end
|
if total !=0
|
||||||
end
|
CourseContributorScore.create(:course_id => course.id, :user_id => s.student_id, :message_num => board_count, :message_reply_num => message_reply_count,
|
||||||
# end
|
:news_reply_num => common_reply_count, :resource_num => attachment_count, :journal_num => journal_count, :journal_reply_num => 0, :total => total)
|
||||||
# end
|
end
|
||||||
end
|
|
||||||
|
end
|
||||||
def down
|
end
|
||||||
end
|
end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
end
|
end
|
@ -0,0 +1,5 @@
|
|||||||
|
class AddTotalScoreToCourseContributorScore < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :course_contributor_scores, :total_score, :integer
|
||||||
|
end
|
||||||
|
end
|
@ -1,63 +1,63 @@
|
|||||||
#coding=utf-8
|
#coding=utf-8
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
module Trustie
|
module Trustie
|
||||||
module Gitlab
|
module Gitlab
|
||||||
|
|
||||||
module ManageMember
|
module ManageMember
|
||||||
def self.included(base)
|
def self.included(base)
|
||||||
base.class_eval {
|
base.class_eval {
|
||||||
before_create :add_gitlab_member
|
before_create :add_gitlab_member
|
||||||
before_destroy :delete_gitlab_member
|
before_destroy :delete_gitlab_member
|
||||||
after_save :change_gitlab_member
|
after_save :change_gitlab_member
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def change_gitlab_member
|
def change_gitlab_member
|
||||||
if isGitlabProject?
|
if isGitlabProject?
|
||||||
@g ||= ::Gitlab.client
|
@g ||= ::Gitlab.client
|
||||||
@g.edit_team_member(project.gpid, self.member.user.gid, self.role.to_gitlab_role )
|
@g.edit_team_member(project.gpid, self.member.user.gid, self.role.to_gitlab_role )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_gitlab_member
|
def add_gitlab_member
|
||||||
if isGitlabProject?
|
if isGitlabProject?
|
||||||
@g ||= ::Gitlab.client
|
@g ||= ::Gitlab.client
|
||||||
if self.member.user.gid.nil?
|
if self.member.user.gid.nil?
|
||||||
add_user(self.member.user)
|
add_user(self.member.user)
|
||||||
end
|
end
|
||||||
@g.add_team_member(project.gpid, self.member.user.gid, self.role.to_gitlab_role )
|
@g.add_team_member(project.gpid, self.member.user.gid, self.role.to_gitlab_role )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_gitlab_member
|
def delete_gitlab_member
|
||||||
if isGitlabProject?
|
if isGitlabProject?
|
||||||
if member.roles.count <=1
|
if member.roles.count <=1
|
||||||
@g ||= ::Gitlab.client
|
@g ||= ::Gitlab.client
|
||||||
@g.remove_team_member(project.gpid, self.member.user.gid)
|
@g.remove_team_member(project.gpid, self.member.user.gid)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def project
|
def project
|
||||||
self.member.project
|
self.member.project
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository
|
def repository
|
||||||
unless project.nil?
|
unless project.nil?
|
||||||
project.repository
|
project.repository
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def isGitlabProject?
|
def isGitlabProject?
|
||||||
unless repository.nil?
|
unless repository.nil?
|
||||||
repository && repository.gitlab?
|
repository && repository.gitlab?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in new issue