diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index 7318a4dc2..54babdd64 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -26,7 +26,7 @@ class FilesController < ApplicationController before_filter :authorize, :except => [:create,:getattachtype,:quote_resource_show,:search,:searchone4reload,:search_project,:quote_resource_show_project, :search_tag_attachment,:subfield_upload_file,:search_org_subfield_tag_attachment, :search_tag_attachment,:quote_resource_show_org_subfield,:find_org_subfield_attache, - :search_files_in_subfield,:upload_files_menu,:file_hidden,:republish_file,:update_file_description] + :search_files_in_subfield,:upload_files_menu,:file_hidden,:republish_file,:update_file_description, :edit_file_description] helper :sort include SortHelper @@ -981,6 +981,13 @@ class FilesController < ApplicationController def upload_files_menu end + + def edit_file_description + @attachment = Attachment.find(params[:id]) + @attachment.description = params[:file_description_edit] + @attachment.save + end + def update_file_description @attachment = Attachment.find(params[:id]) @attachment.description = params[:description] diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 4511e5a1f..9fe29746e 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -146,7 +146,7 @@ class HomeworkCommonController < ApplicationController @homework_detail_group = @homework.homework_detail_group @homework_detail_group.min_num = params[:min_num].to_i if params[:min_num] @homework_detail_group.max_num = params[:max_num].to_i if params[:max_num] - @homework_detail_group.base_on_project = params[:base_on_project].to_i if params[:base_on_project] + @homework_detail_group.base_on_project = params[:base_on_project] ? 1 : 0 end @homework.anonymous_comment = params[:homework_common][:anonymous_comment] ? params[:homework_common][:anonymous_comment].to_i : 1 @@ -202,24 +202,24 @@ class HomeworkCommonController < ApplicationController if @homework_detail_manual.comment_status == 1 student_works = @homework.student_works.has_committed if student_works && student_works.size >= 2 - if @homework.homework_type == 3 - student_work_projects = @homework.student_work_projects.where("student_work_id is not null") - student_work_projects.each_with_index do |pro_work, pro_index| - n = @homework_detail_manual.evaluation_num - n = n < student_works.size ? n : student_works.size - 1 - work_index = -1 - student_works.each_with_index do |stu_work, stu_index| - if stu_work.id.to_i == pro_work.student_work_id.to_i - work_index = stu_index - end - end - assigned_homeworks = get_assigned_homeworks(student_works, n, work_index) - assigned_homeworks.each do |h| - student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: pro_work.user_id, student_work_id: h.id) - student_works_evaluation_distributions.save - end - end - else + # if @homework.homework_type == 3 + # student_work_projects = @homework.student_work_projects.where("student_work_id is not null") + # student_work_projects.each_with_index do |pro_work, pro_index| + # n = @homework_detail_manual.evaluation_num + # n = n < student_works.size ? n : student_works.size - 1 + # work_index = -1 + # student_works.each_with_index do |stu_work, stu_index| + # if stu_work.id.to_i == pro_work.student_work_id.to_i + # work_index = stu_index + # end + # end + # assigned_homeworks = get_assigned_homeworks(student_works, n, work_index) + # assigned_homeworks.each do |h| + # student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: pro_work.user_id, student_work_id: h.id) + # student_works_evaluation_distributions.save + # end + # end + # else student_works.each_with_index do |work, index| user = work.user n = @homework_detail_manual.evaluation_num @@ -230,7 +230,7 @@ class HomeworkCommonController < ApplicationController student_works_evaluation_distributions.save end end - end + #end @homework_detail_manual.update_column('comment_status', 2) @homework_detail_manual.update_column('evaluation_start', Date.today) @statue = 1 @@ -255,11 +255,28 @@ class HomeworkCommonController < ApplicationController @homework_detail_manual.update_column('evaluation_end', Date.today) #计算缺评扣分 work_ids = "(" + @homework.student_works.has_committed.map(&:id).join(",") + ")" - @homework.student_works.has_committed.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 + if @homework.homework_type != 3 + @homework.student_works.has_committed.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 + else + @homework.student_works.has_committed.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 + if student_work.absence_penalty != 0 + pros = student_work.student_work_projects.where("is_leader = 0") + user_ids = pros.empty? ? "(-1)" : "(" + pros.map{|stu|stu.user_id}.join(",") + ")" + student_works = @homework.student_works.where("user_id in #{user_ids}") + student_works.each do |st_work| + st_work.update_attribute("absence_penalty", student_work.absence_penalty) + end + end + end end + # 匿评关闭消息邮件通知 send_message_anonymous_comment(@homework, m_status = 3) Mailer.send_mail_anonymous_comment_close(@homework).deliver diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb index 2e0890e27..d58734c8f 100644 --- a/app/controllers/sub_document_comments_controller.rb +++ b/app/controllers/sub_document_comments_controller.rb @@ -102,7 +102,7 @@ class SubDocumentCommentsController < ApplicationController @subdomain = @document.sub_domain @org_subfield = @subdomain.org_subfield @organization = @org_subfield.organization - @act = OrgActivity.find(params[:id]) + @act = OrgActivity.find(params[:act_id]) @comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain, :creator_id => User.current.id, :reply_id => params[:id]) @comment.content = params[:sub_content] @document.children << @comment diff --git a/app/controllers/syllabus_member_controller.rb b/app/controllers/syllabus_member_controller.rb index ac686c0a2..b6da3290e 100644 --- a/app/controllers/syllabus_member_controller.rb +++ b/app/controllers/syllabus_member_controller.rb @@ -45,12 +45,12 @@ class SyllabusMemberController < ApplicationController member = SyllabusMember.find(params[:id]) @syllabus = member.syllabus members = @syllabus.syllabus_members - if params[:opr] == 'up' && member.rank > 2 + if params[:opr] == 'up' && member.rank > 1 before_mem = members.where("rank = #{member.rank - 1}").first if before_mem && member.update_attribute('rank', member.rank - 1) before_mem.update_attribute('rank', before_mem.rank + 1) end - elsif params[:opr] == 'down' && member.rank > 1 && member.rank < members.count + elsif params[:opr] == 'down' && member.rank < members.count after_mem = members.where("rank = #{member.rank + 1}").first if after_mem && member.update_attribute('rank', member.rank + 1) after_mem.update_attribute('rank', after_mem.rank - 1) diff --git a/app/controllers/syllabuses_controller.rb b/app/controllers/syllabuses_controller.rb index f0d1254bc..a6b11cfbf 100644 --- a/app/controllers/syllabuses_controller.rb +++ b/app/controllers/syllabuses_controller.rb @@ -33,6 +33,8 @@ class SyllabusesController < ApplicationController @syllabus.user_id = User.current.id @syllabus.description = Message.where("id = 19412").first.nil? ? '' : Message.where("id = 19412").first.content if @syllabus && @syllabus.save + member = SyllabusMember.create(:user_id => @syllabus.user_id, :rank => 1) + @syllabus.syllabus_members << member respond_to do |format| flash[:notice] = l(:notice_successful_create) format.html {redirect_to syllabus_path(@syllabus)} diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ef606c0cb..6474a0eae 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2280,6 +2280,8 @@ module ApplicationHelper candown = true elsif attachment.container.class.to_s=="Memo" #论坛资源允许下载 candown = true + elsif attachment.container.class.to_s=="Syllabus" #论坛资源允许下载 + candown = true elsif attachment.container.class.to_s == "User" candown = (attachment.is_public == 1 || attachment.is_public == true || attachment.author_id == User.current.id) elsif attachment.container_type == "Bid" && attachment.container && attachment.container.courses @@ -2829,7 +2831,7 @@ module ApplicationHelper link_to "补交作品(#{count})", new_student_work_url_without_domain(homework.id),:class => 'c_red' end else - if homework.homework_detail_manual && homework.homework_detail_manual.comment_status == 2 && StudentWorksEvaluationDistribution.where("student_work_id = #{work.id}").count > 0 #匿评作业,且作业状态不是在开启匿评之前 + if homework.homework_detail_manual && homework.homework_detail_manual.comment_status == 2 && StudentWorksEvaluationDistribution.where("student_work_id = #{work.id}").count > 0 && work.user_id == User.current.id #匿评作业,且作业状态不是在开启匿评之前 link_to "作品匿评", student_work_index_url_in_org(homework.id, 2), :class => 'c_blue', :title => "开启匿评后不可修改作品" elsif homework.homework_detail_manual && homework.homework_detail_manual.comment_status == 3 link_to "查看作品(#{count})",student_work_index_url_in_org(homework.id, 2), :class => 'c_blue', :title => "匿评已结束" @@ -3578,7 +3580,9 @@ def get_group_member_names work end def course_syllabus_option user = User.current - syllabuses = user.syllabuses + syllabus_members = SyllabusMember.where("user_id = #{user.id}") + syllabus_ids = syllabus_members.empty? ? "(-1)" : "(" + syllabus_members.map{|mem| mem.syllabus_id}.join(',') + ")" + syllabuses = Syllabus.where("id in #{syllabus_ids}") type = [] option1 = [] option1 << "请选择课程" diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 88fadd644..879759c89 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -41,7 +41,7 @@ class Attachment < ActiveRecord::Base validates :filename, presence: true, length: {maximum: 254} validates :author, presence: true validates :disk_filename, length: {maximum: 254} - validates :description, length: {maximum: 254} + # validates :description, length: {maximum: 254} validate :validate_max_file_size #elasticsearch diff --git a/app/models/course.rb b/app/models/course.rb index cc80a1b4b..13050ddbe 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -24,7 +24,7 @@ class Course < ActiveRecord::Base end end - attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password,:is_public,:description,:class_period, :open_student, :enterprise_name, :is_delete, :syllabus_id + attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password,:is_public,:description,:class_period, :open_student, :enterprise_name, :is_delete, :syllabus_id, :end_time, :end_term #belongs_to :project, :class_name => 'Course', :foreign_key => :extra, primary_key: :identifier belongs_to :teacher, :class_name => 'User', :foreign_key => :tea_id # 定义一个方法teacher,该方法通过tea_id来调用User表 belongs_to :school, :class_name => 'School', :foreign_key => :school_id #定义一个方法school,该方法通过school_id来调用School表 @@ -96,7 +96,9 @@ class Course < ActiveRecord::Base 'class_period', 'open_student', 'is_delete', - 'syllabus_id' + 'syllabus_id', + 'end_time', + 'end_term' acts_as_customizable diff --git a/app/models/student_work.rb b/app/models/student_work.rb index a3f692341..a33200b3b 100644 --- a/app/models/student_work.rb +++ b/app/models/student_work.rb @@ -1,6 +1,6 @@ #学生提交作品表 #work_status :0 未提交 1 已提交 2 迟交 3 分组作品复制的组员作品 class StudentWork < ActiveRecord::Base - attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time + attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time, :late_penalty, :absence_penalty belongs_to :homework_common belongs_to :user diff --git a/app/models/user.rb b/app/models/user.rb index c1a830809..3386836ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -853,6 +853,13 @@ class User < Principal OrgMember.where("user_id =? and organization_id =?", self.id, org.id).count > 0 end + def member_of_syl?(syllabus) + if !self.logged? + return false + end + SyllabusMember.where("user_id =? and syllabus_id =?", self.id, syllabus.id).count > 0 + end + def admin_of_org?(org) if self.admin? return true diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index b97fa1a64..69864f226 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -418,7 +418,7 @@ class CoursesService course.send(:safe_attributes=, params[:course], current_user) #course.safe_attributes = params[:course] #course.password = params[:course][:password] - course.syllabus_id = params[:syllabus_id].to_i + #course.syllabus_id = params[:syllabus_id].to_i course.time = params[:time] course.term = params[:term] course.end_time = params[:end_time] diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index e523b347f..4c54e2289 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -32,8 +32,9 @@
  • - <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"edit_syllabus_id", :class=>"syllabus_input", :style=>'width:210px'} %> - 如果列表中没有对应的课程,请您先<%=link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'ml5 green_btn_share c_white'%>,然后【刷新】 + <%=@course.syllabus.title %> + <%#= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"edit_syllabus_id", :class=>"syllabus_input", :style=>'width:210px'} %> +
  • diff --git a/app/views/files/_org_subfield_list.html.erb b/app/views/files/_org_subfield_list.html.erb index de37ed054..45aa7095b 100644 --- a/app/views/files/_org_subfield_list.html.erb +++ b/app/views/files/_org_subfield_list.html.erb @@ -43,8 +43,10 @@
    <%= render :partial => 'files/file_description', :locals => {:file => file} %>
    - + <%= form_tag(edit_file_description_org_subfield_file_path(file, :org_subfield_id => org_subfield.id ),:remote=>'true', :method => :post, :id=>"files_query_form_#{file.id}") do %> + + <% end %> <% else %>
    @@ -108,3 +110,8 @@ <%end%> <% end%> + \ No newline at end of file diff --git a/app/views/files/_project_list.html.erb b/app/views/files/_project_list.html.erb index faf254015..3193f4b42 100644 --- a/app/views/files/_project_list.html.erb +++ b/app/views/files/_project_list.html.erb @@ -40,8 +40,10 @@
    <%= render :partial => 'files/file_description', :locals => {:file => file} %>
    - + <%= form_tag(edit_file_description_project_file_path(file, :project_id => project.id),:remote=>'true', :method => :post, :id=>"files_query_form_#{file.id}") do %> + + <% end %>
    <% else %>
    @@ -70,6 +72,11 @@ <%= pagination_links_full @feedback_pages, @feedback_count, :per_page_links => false, :remote => true, :flag => true%> + diff --git a/app/views/files/_resource_detail.html.erb b/app/views/files/_resource_detail.html.erb index b60814afd..08b85ab2f 100644 --- a/app/views/files/_resource_detail.html.erb +++ b/app/views/files/_resource_detail.html.erb @@ -42,8 +42,10 @@
    <%= render :partial => 'files/file_description', :locals => {:file => file} %>
    - + <%= form_tag(edit_file_description_course_file_path(file, :course_id => @course.id),:remote=>'true', :method => :post, :id=>"files_query_form_#{file.id}") do %> + + <% end %>
    <% else %>
    @@ -99,4 +101,9 @@
    -
    \ No newline at end of file +
    + diff --git a/app/views/files/edit_file_description.js.erb b/app/views/files/edit_file_description.js.erb new file mode 100644 index 000000000..40b47a2ec --- /dev/null +++ b/app/views/files/edit_file_description.js.erb @@ -0,0 +1,3 @@ +$("#file_description_show_<%= @attachment.id %>").html("<%= escape_javascript render(:partial => "files/file_description", :locals => {:file => @attachment}) %>"); +$("#file_description_show_<%= @attachment.id %>").show(); +$("#file_description_edit_<%= @attachment.id %>").hide(); \ No newline at end of file diff --git a/app/views/forums/_forum_list.html.erb b/app/views/forums/_forum_list.html.erb index 9a52fb410..853a43eca 100644 --- a/app/views/forums/_forum_list.html.erb +++ b/app/views/forums/_forum_list.html.erb @@ -35,5 +35,5 @@ <% end %> <% else %> - <%= render :partial => "layouts/no_content" %> + <%#= render :partial => "layouts/no_content" %> <% end %> \ No newline at end of file diff --git a/app/views/layouts/_base_feedback.html.erb b/app/views/layouts/_base_feedback.html.erb index 9fe25ce95..7721eeb0d 100644 --- a/app/views/layouts/_base_feedback.html.erb +++ b/app/views/layouts/_base_feedback.html.erb @@ -158,6 +158,8 @@ function cookieget(n) }) +<% forum = Forum.where(:id => 1).first %> +<% unless forum.nil? %>
    @@ -189,4 +191,5 @@ function cookieget(n)
    +<% end %> diff --git a/app/views/layouts/_base_footer_public.html.erb b/app/views/layouts/_base_footer_public.html.erb index 18152c745..043c254e2 100644 --- a/app/views/layouts/_base_footer_public.html.erb +++ b/app/views/layouts/_base_footer_public.html.erb @@ -4,7 +4,10 @@
  • <%= l(:label_about_us)%>|
  • <%= l(:label_contact_us)%>|
  • <%= l(:label_recruitment_information)%>|
  • + <% memo = Memo.where(:id => 1168).first %> + <% unless memo.nil? %>
  • <%= link_to l(:label_surpport_group), "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168", :class => "f_grey mw20", :target=>"_blank" %>|
  • + <% end %>
  • <%= l(:label_forums)%>|
  • <%= l(:label_language)%> diff --git a/app/views/syllabuses/show.html.erb b/app/views/syllabuses/show.html.erb index 03eb3f90a..7e5af4ec0 100644 --- a/app/views/syllabuses/show.html.erb +++ b/app/views/syllabuses/show.html.erb @@ -5,6 +5,15 @@ $(function() { sd_create_editor_from_data(<%= @syllabus.id %>, null, "100%", "<%= @syllabus.class.to_s %>"); showNormalImage('syllabus_description_<%= @syllabus.id %>'); + $("#syllabus_description_<%= @syllabus.id%> p,#syllabus_description_<%= @syllabus.id%> span,#syllabus_description_<%= @syllabus.id%> em").each(function(){ + var postContent = $(this).html(); + postContent = postContent.replace(/ /g," "); + postContent= postContent.replace(/ {2}/g,"  "); + postContent=postContent.replace(/   /g,"   "); + postContent=postContent.replace(/  /g,"   "); + $(this).html(postContent); + }); + autoUrl('syllabus_description_<%= @syllabus.id %>'); });