This commit is contained in:
sw 2015-07-10 14:48:27 +08:00
commit 1763df2105
33 changed files with 447 additions and 200 deletions

View File

@ -26,7 +26,8 @@ module Mobile
present :data, {token: key.access_token, user: api_user}, using: Entities::Auth present :data, {token: key.access_token, user: api_user}, using: Entities::Auth
present :status, 0 present :status, 0
else else
raise "无效的用户名或密码" present :message, "无效的用户名或密码"
present :status,1
end end
end end

View File

@ -113,6 +113,20 @@ module Mobile
present :status, 0 present :status, 0
end end
desc '通知评论列表'
params do
requires :token, type: String
requires :notice_id,type:Integer,desc:'通知id'
optional :page,type:Integer,desc:'页码'
end
get ':notice_id/notice_comments' do
cs = CommentService.new
comments = cs.notice_comments params,current_user
present :data, comments, with: Mobile::Entities::Comment
present :status, 0
end
end end
end end
end end

View File

@ -312,16 +312,19 @@ module Mobile
present :status,0 present :status,0
end end
desc '课程历次作业总成绩列表' desc '总成绩 or 活跃度列表'
params do params do
requires :token,type:String requires :token,type:String
requires :course_id,type:Integer,desc:'课程id' requires :course_id,type:Integer,desc:'课程id'
optional :page,type:Integer,desc:'页码' optional :page,type:Integer,desc:'页码'
optional :type,type:Integer,desc:'0是活跃度1是成绩'
end end
get ':course_id/students_score_list' do get ':course_id/students_score_list' do
cs = CoursesService.new cs = CoursesService.new
news = cs.students_score_list params,current_user news = cs.students_score_list params,current_user
present :data,news,with:Mobile::Entities::User present :data,news[:user_list],with:Mobile::Entities::User
present :maxSize,news[:max_size]
present :status,0
end end
desc '课程某次作业提交列表 并显示成绩' desc '课程某次作业提交列表 并显示成绩'
@ -337,18 +340,7 @@ module Mobile
present :data,student_works.all,with:Mobile::Entities::StudentWork present :data,student_works.all,with:Mobile::Entities::StudentWork
end end
desc '开启匿评'
params do
requires :token,type:String
requires :course_id,type:Integer,desc:'课程id'
requires :homework_id,type:Integer,desc:'作业id'
end
get ':course_id/start_anonymous_comment' do
cs = CoursesService.new
status = cs.start_anonymous_comment params,current_user
present :data,status
present :status,0
end
end end
end end
end end

View File

@ -31,33 +31,33 @@ module Mobile
present :status, 0 present :status, 0
end end
desc "启动匿评" # desc "启动匿评"
params do # params do
requires :token, type: String # requires :token, type: String
end # end
post ':id/start_anonymous_comment' do # post ':id/start_anonymous_comment' do
statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user # statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user
messages = "" # messages = ""
case statue # case statue
when 1 # when 1
messages = "启动成功" # messages = "启动成功"
when 2 # when 2
messages = "启动失败作业总数大于等于2份时才能启动匿评" # messages = "启动失败作业总数大于等于2份时才能启动匿评"
when 3 # when 3
messages = "已开启匿评,请务重复开启" # messages = "已开启匿评,请务重复开启"
end # end
present :data,messages # present :data,messages
present :status, statue # present :status, statue
end # end
#
desc "关闭匿评" # desc "关闭匿评"
params do # params do
requires :token, type: String # requires :token, type: String
end # end
post ':id/stop_anonymous_comment' do # post ':id/stop_anonymous_comment' do
Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user # Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user
present :status, 0 # present :status, 0
end # end
desc "匿评作品详情" desc "匿评作品详情"
params do params do
@ -111,6 +111,45 @@ module Mobile
present :status, 0 present :status, 0
end end
desc '开启匿评'
params do
requires :token,type:String
requires :course_id,type:Integer,desc:'课程id'
requires :homework_id,type:Integer,desc:'作业id'
end
post ':homework_id/start_anonymous_comment' do
hs = Homeworks.get_service
status = hs.start_anonymous_comment params,current_user
messages = ""
case status[:status]
when 1
messages = "启动成功"
when 2
messages = "启动失败作业总数大于等于2份时才能启动匿评"
when 3
messages = "已开启匿评,请务重复开启"
when 4
messages = "没有开启匿评的权限"
when 5
messages = "截止日期之前不可启动匿评"
end
present :data,messages
present :status,0
end
desc '关闭匿评'
params do
requires :token,type:String
requires :course_id,type:Integer,desc:'课程id'
requires :homework_id,type:Integer,desc:'作业id'
end
post ':homework_id/stop_anonymous_comment' do
hs = Homeworks.get_service
hs.stop_anonymous_comment params,current_user
message = "成功关闭"
present :data, message
present :status,0
end
end end
end end

View File

@ -58,7 +58,11 @@ module Mobile
course_dynamic_expose :document_count course_dynamic_expose :document_count
course_dynamic_expose :topic_count course_dynamic_expose :topic_count
course_dynamic_expose :homework_count course_dynamic_expose :homework_count
#在dynamics里解析出四种动态 course_dynamic_expose :course_student_num
course_dynamic_expose :time_from_now
course_dynamic_expose :current_user_is_member
course_dynamic_expose :current_user_is_teacher
expose :documents,using:Mobile::Entities::Attachment do |f,opt| expose :documents,using:Mobile::Entities::Attachment do |f,opt|
obj = nil obj = nil
f[:dynamics].each do |d| f[:dynamics].each do |d|
@ -107,6 +111,16 @@ module Mobile
obj obj
end end
expose :active_students,using:Mobile::Entities::User do |f,opt|
obj = nil
f[:dynamics].each do |d|
if d[:type] == 7
obj = d[:active_students]
end
end
obj
end
end end
end end
end end

View File

@ -24,12 +24,19 @@ module Mobile
f.course.members.count - f.student_works.count f.course.members.count - f.student_works.count
when :homework_submit_num when :homework_submit_num
f.student_works.count f.student_works.count
when :homework_status when :homework_status_student
get_homework_status f get_homework_status f
when :homework_times when :homework_times
f.course.homework_commons.index(f) + 1 f.course.homework_commons.index(f) + 1
when :homework_status_desc when :homework_status_teacher
homework_status_desc f homework_status_desc f
when :student_evaluation_part
get_evaluation_part f ,3
when :ta_evaluation_part
get_evaluation_part f , 2
when :homework_anony_type
val = f.homework_type == 1 && !f.homework_detail_manual.nil?
val
end end
end end
end end
@ -79,11 +86,13 @@ module Mobile
homework_expose :homework_submit_num homework_expose :homework_submit_num
homework_expose :homework_notsubmit_num homework_expose :homework_notsubmit_num
expose :submit_student_list ,using: Mobile::Entities::User do |f,opt| homework_expose :homework_status_student #学生看到的作业的状态
get_submit_sutdent_list f homework_expose :homework_status_teacher #老师看到的状态
end
homework_expose :homework_status #作业的状态 homework_expose :student_evaluation_part #学生匿评比率
homework_expose :homework_status_desc #状态的解释 homework_expose :ta_evaluation_part #教辅评价比率
homework_expose :homework_anony_type #是否是匿评作业
end end
end end

View File

@ -56,6 +56,8 @@ module Mobile
expose :comments, using: Mobile::Entities::Comment do |f, opt| expose :comments, using: Mobile::Entities::Comment do |f, opt|
if f.is_a?(Hash) && f.key?(:comments) if f.is_a?(Hash) && f.key?(:comments)
f[:comments] f[:comments]
elsif f.is_a?(::News) && f.respond_to?(:comments)
f.send(:comments)
end end
end end

View File

@ -53,6 +53,8 @@ module Mobile
user_expose :score user_expose :score
#学号 #学号
user_expose :student_num user_expose :student_num
# 活跃值
user_expose :active_count
end end
end end

View File

@ -93,7 +93,7 @@ module ApiHelper
def homework_status_desc homework def homework_status_desc homework
if homework.homework_type == 1 && homework.homework_detail_manual #匿评作业 if homework.homework_type == 1 && homework.homework_detail_manual #匿评作业
if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
link = "截止日期之前不可启动匿评" link = show_homework_deadline homework
elsif homework.student_works.count >= 2 #作业份数大于2 elsif homework.student_works.count >= 2 #作业份数大于2
case homework.homework_detail_manual.comment_status case homework.homework_detail_manual.comment_status
when 1 when 1
@ -104,10 +104,10 @@ module ApiHelper
link = " 匿评结束" link = " 匿评结束"
end end
else else
link = "提交作业数大于2才可启动匿评" link = "提交作业数过少"
end end
else else
link = "未开启匿评作业不可启动匿评" link = "未开启匿评作业"
end end
link link
end end
@ -129,9 +129,39 @@ module ApiHelper
def show_homework_deadline homework def show_homework_deadline homework
day = 0 day = 0
if (day = (Date.parse(homework.end_time.to_s) - Date.parse(Time.now.to_s)).to_i) > 0 if (day = (Date.parse(homework.end_time.to_s) - Date.parse(Time.now.to_s)).to_i) > 0
"距作业截止还有" << (Date.parse(Time.now.to_s) - Date.parse(homework.end_time.to_s)).to_i.to_s << "" "距作业截止还有" << day.to_s << ""
else else
"已截止,但可补交" "已截止,但可补交"
end end
end end
#获取作业中学生的匿评比率
# 匿评比率 = 学生总共评价的作业的作业份数 / 作业份数 * 分配数 * 100%
# 教辅匿评比率 = 教辅已经评价的作业份数 / 总的作业份数 * 100%
def get_evaluation_part homework,role
homework_eva_completed_task_num = 0
homework_eva_task_num = 0
#匿评作业 # 且匿评状态不是还没有开启匿评
if homework.homework_type == 1 && homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1
# 总共需要评价的任务数
homework_eva_task_num = homework.homework_detail_manual.evaluation_num * homework.student_works.count
unless homework_eva_task_num == 0 #总任务数不为0 的情况下
#获取已经评价了多少的份作业 student_work_score里记录了评价情况每条记录有提交作业的id
#先求出提交作业的id集合
work_ids = "(" + homework.student_works.map(&:id).join(",") + ")"
#只要 student_work_score 中的 student_work_id在work_ids集合中那么久说明这个任务被完成了
sql = "select count(1) from student_works_scores where reviewer_role = #{role} and student_work_id in #{work_ids} "
homework_eva_completed_task_num = ActiveRecord::Base.connection().select_value(sql)
end
end
if homework_eva_task_num == 0
0
else
( homework_eva_completed_task_num / homework_eva_task_num.to_f * 100 ) .round(1)
end
end
end end

View File

@ -520,10 +520,14 @@ module CoursesHelper
option1 << l(:label_spring) option1 << l(:label_spring)
option1 << l(:label_spring) option1 << l(:label_spring)
option2 = [] option2 = []
option2 << l(:label_autumn) option2 << l(:label_summer)
option2 << l(:label_autumn) option2 << l(:label_summer)
option3 = []
option3 << l(:label_autumn)
option3 << l(:label_autumn)
type << option1 type << option1
type << option2 type << option2
type << option3
type type
end end

View File

@ -68,24 +68,36 @@ module IssuesHelper
end end
#获取跟踪类型及样式 #获取跟踪类型及样式
#REDO:时间紧可以优化.
def get_issue_type(value) def get_issue_type(value)
issuetype = [] issuetype = []
if value == "缺陷" || value == 1 if value == "缺陷" || value == 1
issuetype << "red_btn_cir ml10" issuetype << "issues fl"
issuetype << "缺陷"
elsif value == "功能" || value == 2 elsif value == "功能" || value == 2
issuetype << "blue_btn_cir ml10" issuetype << "duty fl"
issuetype << "功能"
elsif value == "支持" || value == 3 elsif value == "支持" || value == 3
issuetype << "green_btn_cir ml10" issuetype << "support fl"
issuetype << "支持"
elsif value == "任务" || value == 4 elsif value == "任务" || value == 4
issuetype << "function fl"
else
issuetype << "weekly fl"
end
end
# 获取优先级样式
def get_issue_priority(value)
issuetype = []
if value == "紧急" || value == 1
issuetype << "red_btn_cir ml10"
issuetype << "紧急"
elsif value == "正常" || value == 3
issuetype << "green_btn_cir ml10"
issuetype << "正常"
elsif value == "" || value == 4
issuetype << "orange_btn_cir ml10" issuetype << "orange_btn_cir ml10"
issuetype << "任务" issuetype << ""
else else
issuetype << "bgreen_btn_cir ml10" issuetype << "bgreen_btn_cir ml10"
issuetype << "周报" issuetype << ""
end end
end end

View File

@ -433,7 +433,7 @@ module UserScoreHelper
#协同得分 #协同得分
def collaboration(option_number) def collaboration(option_number)
option_number.memo * 2 + option_number.messages_for_issues + option_number.issues_status + option_number.replay_for_message + option_number.replay_for_memo option_number.messages_for_issues + option_number.issues_status + option_number.replay_for_message + option_number.replay_for_memo
end end
#影响力得分 #影响力得分
def influence(option_number) def influence(option_number)
@ -445,7 +445,7 @@ module UserScoreHelper
end end
#项目贡献得分 #项目贡献得分
def active(option_number) def active(option_number)
option_number.changeset * 4 + option_number.document * 4 + option_number.attachment * 4 + option_number.issue_done_ratio * 2 + option_number.post_issue * 4 option_number.changeset * 4 + option_number.document * 4 + option_number.attachment * 4 + option_number.issue_done_ratio * 2 + option_number.post_issue * 4 + option_number.memo * 2
end end
#更新发帖数 #更新发帖数

View File

@ -169,14 +169,14 @@ module WatchersHelper
if joined if joined
link_to text, {:controller => "courses", :action => "join_group", :object_id => "#{group.id}"}, link_to text, {:controller => "courses", :action => "join_group", :object_id => "#{group.id}"},
:remote => true, :method => 'delete', :remote => true, :method => 'delete',
:id => "#{group.id}", :style => "padding: 8px 8px 4px; ", :id => "#{group.id}", :style => "padding: 2px 8px 2px; background-color:#15bccf; color:#fff; ",
:confirm => l(:text_are_you_sure_out_group), :class => 'group_in' :confirm => l(:text_are_you_sure_out_group), :class => 'group_in'
end end
else else
text = l(:label_new_join_group) text = l(:label_new_join_group)
form_tag({:controller => "courses", :action => "join_group", :object_id => "#{group.id}"}, :remote => true, :method => 'post') do form_tag({:controller => "courses", :action => "join_group", :object_id => "#{group.id}"}, :remote => true, :method => 'post') do
submit_tag text, class: "group_in", style: "width: 90px;height: 21px;" submit_tag text, class: "group_in", style: "width: 90px;height: 21px; background-color:#15bccf; color:#fff;"
end end
end end
end end

View File

@ -1,5 +1,6 @@
class OptionNumber < ActiveRecord::Base class OptionNumber < ActiveRecord::Base
attr_accessible :attachment, :changeset, :document, :follow, :issue_done_ratio, :issues_status, :memo, :messages_for_issues, :post_issue, :praise_by_one, :praise_by_three, :praise_by_two, :replay_for_memo, :replay_for_message, :score_type, :total_score, :tread, :tread_by_one, :tread_by_three, :tread_by_two, :user_id attr_accessible :attachment, :changeset, :document, :follow, :issue_done_ratio, :issues_status, :memo, :messages_for_issues, :post_issue,
:praise_by_one, :praise_by_three, :praise_by_two, :replay_for_memo, :replay_for_message, :score_type, :total_score, :tread, :tread_by_one, :tread_by_three, :tread_by_two, :user_id
def self.get_user_option_number user_id def self.get_user_option_number user_id
result = nil result = nil

View File

@ -112,6 +112,9 @@ class CommentService
end end
end end
# 获取课程里的某个通知的所有回复
def notice_comments params,current_user
News.find(params[:notice_id]).comments.page(params[:page] || 1).per(10)
end
end end

View File

@ -4,6 +4,7 @@ class CoursesService
include CoursesHelper include CoursesHelper
include HomeworkAttachHelper include HomeworkAttachHelper
include ApiHelper include ApiHelper
include ActionView::Helpers::DateHelper
#参数school_id为0或不传时返回所有课程否则返回对应学校的课程 #参数school_id为0或不传时返回所有课程否则返回对应学校的课程
#参数per_page_count分页功能每页显示的课程数 #参数per_page_count分页功能每页显示的课程数
@ -332,13 +333,13 @@ class CoursesService
def homework_list params,current_user def homework_list params,current_user
course = Course.find(params[:id]) course = Course.find(params[:id])
if course.is_public != 0 || current_user.member_of_course?(course) if course.is_public != 0 || current_user.member_of_course?(course)
bids = course.homework_commons.page(1).per(20).order('created_at DESC') bids = course.homework_commons.page(params[:page] || 1).per(20).order('created_at DESC')
bids = bids.like(params[:name]) if params[:name].present? bids = bids.like(params[:name]) if params[:name].present?
homeworks = [] homeworks = []
bids.each do |bid| bids.each do |bid|
homeworks << show_homework_info(course,bid,current_user,is_course_teacher(current_user,course)) homeworks << show_homework_info(course,bid,current_user,is_course_teacher(current_user,course))
end end
homeworks homeworks
else else
raise '403' raise '403'
end end
@ -551,17 +552,28 @@ class CoursesService
else else
end end
end end
studentlist = [] # studentlist = []
bid.student_works.order("created_at desc").page(1).per(6).each do |work| # bid.student_works.order("created_at desc").page(1).per(6).each do |work|
studentlist << work.user # studentlist << work.user
end # end
unless is_course_teacher # unless is_course_teacher
homework_for_anonymous_comments = get_student_batch_homework_list bid,current_user # homework_for_anonymous_comments = get_student_batch_homework_list bid,current_user
end # end
#end #end
open_anonymous_evaluation = bid.homework_detail_manual.comment_status open_anonymous_evaluation = bid.homework_detail_manual.comment_status
{:course_name => course.name,:course_id => course.id,:id => bid.id, :author => bid.user,:author_real_name => author_real_name, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => 0, {:course_name => course.name,:course_id => course.id,:id => bid.id,
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation,:homework_for_anonymous_comments => homework_for_anonymous_comments,:created_on => bid.created_at,:deadline => bid.end_time,:studentlist => studentlist} :author => bid.user,:author_real_name => author_real_name,
:homework_times => many_times, :homework_name => name,
:homework_count => homework_count,:student_questions_count => 0,
:description => description, :homework_state => state,
:open_anonymous_evaluation => open_anonymous_evaluation,
#:homework_for_anonymous_comments => homework_for_anonymous_comments,
:created_on => bid.created_at,:deadline => bid.end_time,
:homework_notsubmit_num => bid.course.members.count - bid.student_works.count,
:homework_submit_num => bid.student_works.count,
:homework_status_student => get_homework_status( bid),:homework_status_teacher => homework_status_desc( bid),
:student_evaluation_part => get_evaluation_part( bid ,3),
:ta_evaluation_part => get_evaluation_part( bid ,2),:homework_anony_type => bid.homework_type == 1 && !bid.homework_detail_manual.nil?}
end end
@ -657,22 +669,12 @@ class CoursesService
membership.each do |mp| membership.each do |mp|
course = mp.course course = mp.course
latest_course_dynamics = [] latest_course_dynamics = []
dynamics_count = 0
# 课程学霸 学生总分数排名靠前的5个人
homework_count = course.homework_commons.count
sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" <<
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score limit 0,6"
better_students = User.find_by_sql(sql)
if homework_count != 0 && !better_students.empty?
latest_course_dynamics <<{:type=> 6,:time=>Time.now.to_s,:count=> 6,:better_students=> better_students}
dynamics_count += 1
end
# 课程通知 # 课程通知
latest_news = course.news.page(1).per(2).order("created_on desc") latest_news = course.news.page(1).per(2).order("created_on desc")
unless latest_news.first.nil? unless latest_news.first.nil?
latest_course_dynamics << {:type => 1, :time => latest_news.first.created_on,:count=>course.news.count, latest_course_dynamics << {:type => 1, :time => latest_news.first.created_on,:count=>course.news.count,
:news => latest_news.all} :news => latest_news.all}
dynamics_count += 1
end end
# 课程讨论区 # 课程讨论区
@ -694,12 +696,31 @@ class CoursesService
homeworks = course.homework_commons.page(1).per(2).order('created_at desc') homeworks = course.homework_commons.page(1).per(2).order('created_at desc')
unless homeworks.first.nil? unless homeworks.first.nil?
latest_course_dynamics << {:type => 4, :time => homeworks.first.updated_at, :count=>course.homework_commons.count , :homeworks => homeworks} latest_course_dynamics << {:type => 4, :time => homeworks.first.updated_at, :count=>course.homework_commons.count , :homeworks => homeworks}
dynamics_count += 1
end end
latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] } latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] }
# 课程学霸 学生总分数排名靠前的5个人
homework_count = course.homework_commons.count
sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" <<
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score limit 0,4"
better_students = User.find_by_sql(sql)
# 找出在课程讨论区发帖回帖数最多的
active_students = []
sql1 = " select users.*,count(author_id) active_count from messages " <<
" LEFT JOIN users on messages.author_id = users.id " <<
" where messages.board_id in (select id from boards where boards.course_id = #{course.id} ) " <<
" GROUP BY messages.author_id ORDER BY count(author_id) desc " <<
" limit 0,4"
active_students = User.find_by_sql(sql1)
if homework_count != 0 && !better_students.empty?
latest_course_dynamics <<{:type=> 6,:time=>Time.now.to_s,:count=> 4,:better_students=> better_students}
end
unless active_students.empty?
latest_course_dynamics <<{:type=> 7,:time=>Time.now.to_s,:count=> 4,:active_students=>active_students}
end
latest_course_dynamic = latest_course_dynamics.first latest_course_dynamic = latest_course_dynamics.first
unless latest_course_dynamic.nil? unless latest_course_dynamic.nil?
result << {:course_name => course.name, :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count} result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => "", :dynamics => latest_course_dynamics,
:course_student_num=>course ? course.members.count : 0,:time_from_now=> distance_of_time_in_words(Time.now, latest_course_dynamic[:time].to_time) << ""}
end end
end end
#返回数组集合 #返回数组集合
@ -709,11 +730,33 @@ class CoursesService
# 获取课程历次作业的学生总成绩 # 获取课程历次作业的学生总成绩
def students_score_list params,current_user def students_score_list params,current_user
homework_count = Course.find(params[:course_id]).homework_commons.count
page = (params[:page] || 1) - 1 page = (params[:page] || 1) - 1
sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << user_list = []
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10" max_size = 0
User.find_by_sql(sql) if params[:type] == 1
homework_count = Course.find(params[:course_id]).homework_commons.count
sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" <<
" where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10"
sql_count = " select count(distinct(student_works.user_id) ) " <<
" from student_works left outer join users on student_works.user_id = users.id " <<
" where homework_common_id in " <<
" ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) "
max_size = ActiveRecord::Base.connection().select_value(sql_count)
user_list = User.find_by_sql(sql)
else
sql1 = " select users.*,count(author_id)*2 active_count from messages " <<
" LEFT JOIN users on messages.author_id = users.id " <<
" where messages.board_id in (select id from boards where boards.course_id = #{params[:course_id]} ) " <<
" GROUP BY messages.author_id ORDER BY count(author_id) desc " <<
" limit #{page*10},10"
sql1_count = " select count(DISTINCT(messages.author_id))" <<
" from messages LEFT JOIN users on messages.author_id = users.id " <<
" where messages.board_id in (select id from boards where boards.course_id = #{params[:course_id]} )"
max_size = ActiveRecord::Base.connection().select_value(sql1_count)
user_list = User.find_by_sql(sql1)
end
{:user_list=>user_list,:max_size=>max_size}
end end
# 获取某次作业的所有作业列表 # 获取某次作业的所有作业列表
@ -746,41 +789,41 @@ class CoursesService
student_works student_works
end end
# 开启匿评 # # 开启匿评
#statue 1:启动成功2启动失败作业总数大于等于2份时才能启动匿评3:已开启匿评,请务重复开启,4:没有开启匿评的权限 # #statue 1:启动成功2启动失败作业总数大于等于2份时才能启动匿评3:已开启匿评,请务重复开启,4:没有开启匿评的权限
def start_anonymous_comment params,current_user # def start_anonymous_comment params,current_user
homework = HomeworkCommon.find(params[:homework_id]) # homework = HomeworkCommon.find(params[:homework_id])
return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id])) # return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") # return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
homework_detail_manual = homework.homework_detail_manual # homework_detail_manual = homework.homework_detail_manual
if homework_detail_manual.comment_status == 1 # if homework_detail_manual.comment_status == 1
student_works = homework.student_works # student_works = homework.student_works
if student_works && student_works.size >=2 # if student_works && student_works.size >=2
student_works.each_with_index do |work, index| # student_works.each_with_index do |work, index|
user = work.user # user = work.user
n = homework_detail_manual.evaluation_num # n = homework_detail_manual.evaluation_num
n = n < student_works.size ? n : student_works.size - 1 # n = n < student_works.size ? n : student_works.size - 1
assigned_homeworks = get_assigned_homeworks(student_works, n, index) # assigned_homeworks = get_assigned_homeworks(student_works, n, index)
assigned_homeworks.each do |h| # assigned_homeworks.each do |h|
student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id) # student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id)
student_works_evaluation_distributions.save # student_works_evaluation_distributions.save
end # end
end # end
homework_detail_manual.update_column('comment_status', 2) # homework_detail_manual.update_column('comment_status', 2)
statue = 1 # statue = 1
else # else
statue = 2 # statue = 2
end # end
else # else
statue = 3 # statue = 3
end # end
{:status => statue} # {:status => statue}
end # end
#
def get_assigned_homeworks(student_works, n, index) # def get_assigned_homeworks(student_works, n, index)
student_works += student_works # student_works += student_works
student_works[index + 1 .. index + n] # student_works[index + 1 .. index + n]
end # end
end end

View File

@ -57,47 +57,97 @@ class HomeworkService
[@bid,@totle_size,@cur_size,@percent] [@bid,@totle_size,@cur_size,@percent]
end end
#启动匿评 # 启动匿评 操作 逻辑改变,暂不删除
#statue 1:启动成功2启动失败作业总数大于等于2份时才能启动匿评3:已开启匿评,请务重复开启 # #启动匿评
def start_anonymous_comment params,current_user # #statue 1:启动成功2启动失败作业总数大于等于2份时才能启动匿评3:已开启匿评,请务重复开启
@bid = Bid.find(params[:id]) # def start_anonymous_comment params,current_user
@course = @bid.courses.first # @bid = Bid.find(params[:id])
unless is_course_teacher(current_user,@course) || current_user.admin? # @course = @bid.courses.first
@statue = 4 # unless is_course_teacher(current_user,@course) || current_user.admin?
raise '403' # @statue = 4
end # raise '403'
if(@bid.comment_status == 0) # end
homeworks = @bid.homeworks # if(@bid.comment_status == 0)
if(homeworks && homeworks.size >= 2) # homeworks = @bid.homeworks
homeworks.each_with_index do |homework, index| # if(homeworks && homeworks.size >= 2)
user = homework.user # homeworks.each_with_index do |homework, index|
n = @bid.evaluation_num # user = homework.user
n = n < homeworks.size ? n : homeworks.size - 1 # n = @bid.evaluation_num
assigned_homeworks = get_assigned_homeworks(homeworks, n, index) # n = n < homeworks.size ? n : homeworks.size - 1
assigned_homeworks.each do |h| # assigned_homeworks = get_assigned_homeworks(homeworks, n, index)
@homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) # assigned_homeworks.each do |h|
@homework_evaluation.save # @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id)
end # @homework_evaluation.save
end # end
@bid.update_column('comment_status', 1) # end
@statue = 1 # @bid.update_column('comment_status', 1)
else # @statue = 1
@statue = 2 # else
end # @statue = 2
else # end
@statue = 3 # else
end # @statue = 3
@statue # end
end # @statue
#关闭匿评 # end
def stop_anonymous_comment params,current_user # #关闭匿评
@bid = Bid.find(params[:id]) # def stop_anonymous_comment params,current_user
@course = @bid.courses.first # @bid = Bid.find(params[:id])
unless is_course_teacher(current_user,@course) || current_user.admin? # @course = @bid.courses.first
raise '403' # unless is_course_teacher(current_user,@course) || current_user.admin?
end # raise '403'
@bid.update_column('comment_status', 2) # end
end # @bid.update_column('comment_status', 2)
# end
# 开启匿评
#statue 1:启动成功2启动失败作业总数大于等于2份时才能启动匿评3:已开启匿评,请务重复开启,4:没有开启匿评的权限
def start_anonymous_comment params,current_user
homework = HomeworkCommon.find(params[:homework_id])
return {:status=> 4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
homework_detail_manual = homework.homework_detail_manual
if homework_detail_manual.comment_status == 1
student_works = homework.student_works
if student_works && student_works.size >=2
student_works.each_with_index do |work, index|
user = work.user
n = homework_detail_manual.evaluation_num
n = n < student_works.size ? n : student_works.size - 1
assigned_homeworks = get_assigned_homeworks(student_works, n, index)
assigned_homeworks.each do |h|
student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id)
student_works_evaluation_distributions.save
end
end
homework_detail_manual.update_column('comment_status', 2)
statue = 1
else
statue = 2
end
else
statue = 3
end
{:status => statue}
end
def get_assigned_homeworks(student_works, n, index)
student_works += student_works
student_works[index + 1 .. index + n]
end
def stop_anonymous_comment params,current_user
homework = HomeworkCommon.find(params[:homework_id])
homework_detail_manual = homework.homework_detail_manual
homework_detail_manual.update_column('comment_status', 3)
work_ids = "(" << homework.student_works.map(&:id).join(",") << ")"
homework.student_works.each do |student_work|
absence_penalty_count = student_work.user.student_works_evaluation_distributions.where("student_work_id IN #{work_ids}").count - student_work.user.student_works_scores.where("student_work_id IN #{work_ids}").count
student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * homework_detail_manual.absence_penalty : 0
student_work.save
end
end
# 匿评作品详情 # 匿评作品详情
# attachs 该作品的所有附件 # attachs 该作品的所有附件

View File

@ -50,9 +50,6 @@
} }
} }
</script> </script>
<div class="add_frame_header" >
<%= l(:bale_news_notice) %>
</div>
<div class="box tabular"> <div class="box tabular">
<p> <p>
<%= f.text_field :title, <%= f.text_field :title,

View File

@ -21,7 +21,7 @@
<img src="/images/pic_del.gif" width="11" height="12" alt="删除班级" title="删除该班级" /> <img src="/images/pic_del.gif" width="11" height="12" alt="删除班级" title="删除该班级" />
</a> </a>
<% end%> <% end%>
<a href="javascript:void(0)" class="f_l" style="padding-left: 5px;" onclick="$('#group_name_<%= group.id %>').val('');$('#edit_group_<%= group.id %>').slideToggle();"> <a href="javascript:void(0)" class="f_l" style="padding-left: 5px;" onclick="$('#group_name_<%= group.id %>').val('');$('#edit_group_<%= group.id %>').slideToggle();$('#new_group_name').hide();">
<img src="/images/pic_edit.png" width="14" height="15" alt="编辑班级" /> <img src="/images/pic_edit.png" width="14" height="15" alt="编辑班级" />
</a> </a>
<% end %> <% end %>
@ -42,7 +42,7 @@
<% if @canShowCode %> <% if @canShowCode %>
<li style="margin-left:15px;margin-top: 2px;"> <li style="margin-left:15px;margin-top: 2px;">
<a href="javascript:void(0)" class="st_add f_l" onclick="$('#group_name').value='';$('#new_group_name').slideToggle();">+添加分班</a> <a href="javascript:void(0)" class="st_add f_l" onclick="$('#group_name').value='';$('#new_group_name').slideToggle();$('#edit_group_36').hide();">+添加分班</a>
</li> </li>
<li > <li >
<span id="new_group_name" style="display:none; vertical-align: middle;" class="ml10 f_l"> <span id="new_group_name" style="display:none; vertical-align: middle;" class="ml10 f_l">

View File

@ -7,12 +7,12 @@
<div class="problem_main"> <div class="problem_main">
<% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %> <% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %>
<% unless issue.author.nil? || issue.author.name == "Anonymous" %> <% unless issue.author.nil? || issue.author.name == "Anonymous" %>
<span class="issues_icon fl"></span> <span class ="<%= get_issue_type(column_content[1])[0] %>"></span>
<div class="problem_txt fl"> <div class="problem_txt fl">
<%= link_to issue.author.name, user_path(issue.author), :class => "problem_name c_orange fl" %> <%= link_to issue.author.name, user_path(issue.author), :class => "problem_name c_orange fl" %>
<span class="fl"><%= l(:label_post_on_issue) %>(<%= "#{raw column_content[2]}" %>)</span> <span class="fl"><%= l(:label_post_on_issue) %>(<%= "#{raw column_content[2]}" %>)</span>
<div class="problem_tit_div fl break_word"> <div class="problem_tit_div fl break_word">
<%=link_to "#{column_content[4]}<span class = '#{get_issue_type(column_content[1])[0]}'>#{get_issue_type(column_content[1])[1]}</span>".html_safe, issue_path(issue.id), :class => "problem_tit_a break_word",:target => "_blank" %> <%=link_to "#{column_content[4]}<span class = '#{get_issue_priority(column_content[3])[0]}'>#{get_issue_priority(column_content[3])[1]}</span>".html_safe, issue_path(issue.id), :class => "problem_tit_a break_word",:target => "_blank" %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<p> <p>

View File

@ -66,7 +66,8 @@
<%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => 'regexName1();', :width => "125px", :style=>"float:left" %> <%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => 'regexName1();', :width => "125px", :style=>"float:left" %>
<%= hidden_field_tag 'project_type', params[:project_type] %> <%= hidden_field_tag 'project_type', params[:project_type] %>
<%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %> <%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
<a href="#" onclick="submitSerch();" class="ButtonColor m3p10" style="float:left;padding-top: 3px; margin: 0px;padding-bottom:0px;" > <!--<a href="#" onclick="submitSerch();" class="ButtonColor" style="float:left;padding-top: 3px; margin: 0px;padding-bottom:0px; padding-left:8px;" >-->
<a href="#" onclick="submitSerch();" class="enterprise" style="padding-top: 3px; margin: 0px;padding-bottom:0px; margin-top: 1px; margin-left: 3px; background:#15bccf repeat">
<%= l(:label_search)%> <%= l(:label_search)%>
</a> </a>
<br /> <br />
@ -80,7 +81,7 @@
<%=link_to l(:field_homepage), home_path %> > <%=link_to l(:field_homepage), home_path %> >
<a href="http://<%= Setting.host_contest %>" class="link_other_item"> <a href="http://<%= Setting.host_contest %>" class="link_other_item">
<%=l(:label_contests_management_platform)%> <%=l(:label_contests_management_platform)%>
</a> > </a> >
<span title="<%= @contest.name%>"> <span title="<%= @contest.name%>">
<%= link_to h(truncate(@contest.name, length: 20, omission: '...')), contest_contestnotifications_path(@contest) %> <%= link_to h(truncate(@contest.name, length: 20, omission: '...')), contest_contestnotifications_path(@contest) %>

View File

@ -4,4 +4,5 @@
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.commit.attachments')%> * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.commit.attachments')%> * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.update_issues')%> * 2 = <%= option_num.issue_done_ratio %> * 2 = <%= option_num.issue_done_ratio * 2 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.update_issues')%> * 2 = <%= option_num.issue_done_ratio %> * 2 = <%= option_num.issue_done_ratio * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.release_issues')%> * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.release_issues')%> * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_active)%> = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> = <%= active(option_num) %> </div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.active.release_messages')%> * 1 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_active)%> = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> + <%= option_num.memo * 2 %> = <%= active(option_num) %> </div>

View File

@ -1,7 +1,5 @@
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.memos')%> * 2 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.message_for_issues')%> * 1 = <%= option_num.messages_for_issues %> * 1 = <%= option_num.messages_for_issues * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.message_for_issues')%> * 1 = <%= option_num.messages_for_issues %> * 1 = <%= option_num.messages_for_issues * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.issue_status')%> * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.issue_status')%> * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_messages')%> * 1 = <%= option_num.replay_for_message %> * 1 = <%= option_num.replay_for_message * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_messages')%> * 1 = <%= option_num.replay_for_message %> * 1 = <%= option_num.replay_for_message * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_memos')%> * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %></div> <div>&nbsp;&nbsp;&nbsp; <%= l('userscore.collaboration.reply_for_memos')%> * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %></div>
<div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_collaboration)%> = <%= option_num.memo * 2 %> + <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  </div> <div>&nbsp;&nbsp;&nbsp; <%= l(:label_user_score_of_collaboration)%> = <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  </div>

View File

@ -387,7 +387,7 @@
<%= l(:label_i_new_activity) %> <%= l(:label_i_new_activity) %>
</span> </span>
&nbsp; &nbsp;
<%= link_to format_activity_title("#{l(:label_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %> <%= link_to format_activity_title(" #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %>
</td> </td>
<% else %> <% else %>
<td colspan="2" valign="top"> <td colspan="2" valign="top">

View File

@ -28,7 +28,7 @@
<td colspan="2" valign="top" width="50" ><img src="/images/new/news.png" width="40" height="40"/></td> <td colspan="2" valign="top" width="50" ><img src="/images/new/news.png" width="40" height="40"/></td>
<td><table width="580" border="0"> <td><table width="580" border="0">
<tr> <tr>
<td colspan="2" valign="top"><strong> <%= content_tag('span', h(e.project), :class => 'project') %></strong> <span class="font_lighter"><%= l(:label_new_activity) %></span> <td colspan="2" valign="top"><strong> <%= content_tag('span', h(e.project), :class => 'project') %></strong>
<% if e.event_type.eql?("message") || e.event_type.eql?("reply") %> <% if e.event_type.eql?("message") || e.event_type.eql?("reply") %>
<%= link_to format_activity_title(e.event_title), e.board.project ? project_boards_path(e.board.project,:topic_id => e.id):course_boards_path(e.board.course,:topic_id => e.id) %> <%= link_to format_activity_title(e.event_title), e.board.project ? project_boards_path(e.board.project,:topic_id => e.id):course_boards_path(e.board.course,:topic_id => e.id) %>
<%else %> <%else %>

View File

@ -6,7 +6,7 @@
<div class="recall" id='word_li_<%=reply.id.to_s%>' onmouseover="$('#<%= ids_r %>').show()" onmouseout="$('#<%= ids_r %>').hide()"> <div class="recall" id='word_li_<%=reply.id.to_s%>' onmouseover="$('#<%= ids_r %>').show()" onmouseout="$('#<%= ids_r %>').hide()">
<div class="recall_head"> <div class="recall_head">
<% if show_name %> <% if show_name %>
<%= image_tag url_to_avatar(reply.user.show_name),:width => '30',:height => '30' %> <%= image_tag url_to_avatar(journal.user),:width => '30',:height => '30' %>
<% else %> <% else %>
<%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %> <%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %>
<% end %> <% end %>

View File

@ -67,7 +67,8 @@ zh:
documents: 提交文档次数 documents: 提交文档次数
attachments: 提交附件次数 attachments: 提交附件次数
update_issues: 更新缺陷完成度次数 update_issues: 更新缺陷完成度次数
release_issues: 发布缺陷数量 release_issues: 发布缺陷数量
release_messages: 发布帖子数量
label_score_less_than_zero: 得分小于0修正为0 label_score_less_than_zero: 得分小于0修正为0
label_user_info: "个人简介" label_user_info: "个人简介"

View File

@ -1903,9 +1903,9 @@ zh:
lable_teacher_evaluation: 作业综评 lable_teacher_evaluation: 作业综评
lable_course_teacher: 主讲老师 lable_course_teacher: 主讲老师
lable_course_end: 课程学期已结束 lable_course_end: 课程学期已结束
label_no_contest_news_description: 竞赛描述不能为空 label_no_contest_news_description: 竞赛通知描述不能为空
label_contest_news_condition: 竞赛描述超过5000个汉字 label_contest_news_condition: 竞赛描述超过5000个汉字
label_no_contest_news_title: 竞赛标题不能为空 label_no_contest_news_title: 竞赛通知标题不能为空
label_contest_news_title_condition: 竞赛标题超过255个汉字 label_contest_news_title_condition: 竞赛标题超过255个汉字
label_course_organizers: 开设单位 label_course_organizers: 开设单位

View File

@ -721,6 +721,16 @@ ActiveRecord::Schema.define(:version => 20150702073308) do
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
create_table "journal_details_copy", :force => true do |t|
t.integer "journal_id", :default => 0, :null => false
t.string "property", :limit => 30, :default => "", :null => false
t.string "prop_key", :limit => 30, :default => "", :null => false
t.text "old_value"
t.text "value"
end
add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id"
create_table "journal_replies", :id => false, :force => true do |t| create_table "journal_replies", :id => false, :force => true do |t|
t.integer "journal_id" t.integer "journal_id"
t.integer "user_id" t.integer "user_id"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -3,7 +3,7 @@
} }
.jstEditor textarea, .jstEditor iframe { .jstEditor textarea, .jstEditor iframe {
margin: 0; margin: 0;
margin-left: 80px; margin-left: 0px;
} }
.jstHandle { .jstHandle {

View File

@ -95,6 +95,12 @@ a.pro_mes_w_news{ height:20px; float:right;display:block; color:#999999;}
.pro_info_box ul li{ height:24px;} .pro_info_box ul li{ height:24px;}
.pro_info_p{color:#0781b4 !important; float:left; width:80px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; } .pro_info_p{color:#0781b4 !important; float:left; width:80px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; }
.edit_pro_box{overflow:hidden;display:none; margin-bottom:30px; border-bottom:1px dashed #CCC; padding-bottom:10px;} .edit_pro_box{overflow:hidden;display:none; margin-bottom:30px; border-bottom:1px dashed #CCC; padding-bottom:10px;}
/*问题状态图片*/
.issues{ background:url(../images/public_icon.png) -66px 5px no-repeat; width:16px; height:21px;}
.duty{ background:url(../images/public_icon.png) -66px -18px no-repeat; width:16px; height:21px;}
.support{ background:url(../images/public_icon.png) -66px -45px no-repeat; width:16px; height:21px;}
.function{ background:url(../images/public_icon.png) -66px -70px no-repeat; width:16px; height:21px;}
.weekly{ background:url(../images/public_icon.png) -66px -95px no-repeat; width:16px; height:21px;}
/****翻页***/ /****翻页***/
ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; } ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; }
ul.wlist li{float: left;} ul.wlist li{float: left;}

View File

@ -1698,6 +1698,23 @@ div.project-search {
} }
/*huang*/ /*huang*/
/*zhangshen*/
a.enterprise {
float:left;
text-align: center;
width: 40px;
height: 18px;
font-family: '微软雅黑',Arial,Helvetica,sans-serif;
font-size: 12px;
color:#fff;
padding: 0px;
border-radius:4px;
border: 1px solid rgb(148, 148, 148);
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px rgb(255, 255, 255);
cursor: pointer;
}
input.enterprise[type="button"] { input.enterprise[type="button"] {
padding-bottom: 5px; padding-bottom: 5px;
width: 55px; width: 55px;