diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 8b37ca8e4..6e6fa7d20 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -151,7 +151,7 @@ class HomeworkCommonController < ApplicationController @homework.description = params[:homework_common][:description] @homework.end_time = params[:homework_common][:end_time] @homework.publish_time = params[:homework_common][:publish_time] - @homework.homework_type = params[:homework_common][:homework_type] + @homework.homework_type = params[:homework_common][:homework_type] if params[:homework_common][:homework_type] unless @homework.late_penalty == params[:late_penalty] @homework.student_works.where("created_at > '#{@homework.end_time} 23:59:59'").each do |student_work| student_work.late_penalty = params[:late_penalty] diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index 84e2e7d35..103030d51 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -180,6 +180,7 @@ class MyController < ApplicationController # Manage user's password def password + begin @act='password' @user = User.current unless @user.change_password_allowed? @@ -196,18 +197,20 @@ class MyController < ApplicationController Token.delete_user_all_tokens(@user) logout_user redirect_to signin_url(back_url: my_account_path) + return else - flash.now[:error] = l(:notice_account_wrong_password) + #flash.now[:error] = l(:notice_account_wrong_password) end end - render :template => 'my/account',:layout=>'base_users_new' rescue Exception => e if e.message == 'wrong password' - flash.now[:error] = l(:notice_account_wrong_password) + # flash.now[:error] = l(:notice_account_wrong_password) else - flash.now[:error] = e.message + # flash.now[:error] = e.message end - render :template => 'my/account',:layout=>'base_users_new' + flash.now[:error] = l(:notice_account_old_wrong_password) + end + render :template => 'my/account',:layout=>'base_users_new' end # Create a new feeds key diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 607c9b5db..b335e1830 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -250,6 +250,14 @@ update return -1 end end + + if params[:to] == 'gitlab' + g = Gitlab.client + g.post('/session', body: {email: User.current.mail, password: User.current.hashed_password}) + redirect_to "http://192.168.41.130:3000/gitlab-org/gitlab-shell/tree/master" + return + end + #if( !User.current.member_of?(@project) || @project.hidden_repo) @repository.fetch_changesets if Setting.autofetch_changesets? && @path.empty? @@ -540,11 +548,12 @@ update :stack => :side, :scale_integers => true, :step_x_labels => 2, - :show_data_values => false, + :show_data_values => true, :graph_title => l(:label_commits_per_month), :show_graph_title => true ) + # 具状图 graph.add_data( :data => commits_by_month[0..11].reverse, :title => l(:label_revision_plural) @@ -560,7 +569,7 @@ update def graph_commits_per_author(repository) commits_by_author = Changeset.count(:all, :group => :committer, :conditions => ["repository_id = ?", repository.id]) - commits_by_author.to_a.sort! {|x, y| x.last <=> y.last} + commits_by_author = commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}.last(25) changes_by_author = Change.count(:all, :group => :committer, :include => :changeset, :conditions => ["#{Changeset.table_name}.repository_id = ?", repository.id]) h = changes_by_author.inject({}) {|o, i| o[i.first] = i.last; o} @@ -582,7 +591,7 @@ update :fields => fields, :stack => :side, :scale_integers => true, - :show_data_values => false, + :show_data_values => true, :rotate_y_labels => false, :graph_title => l(:label_commits_per_author), :show_graph_title => true diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 20cdc6659..dae0bcab6 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -13,8 +13,9 @@ class StudentWorkController < ApplicationController def index @order,@b_sort,@name,@group = params[:order] || "score",params[:sort] || "desc",params[:name] || "",params[:group] @is_teacher = User.current.allowed_to?(:as_teacher,@course) - unless @group == "0" || @group.nil? - group_students = CourseGroup.find_by_id(@group).users + course_group = CourseGroup.find_by_id(@group) if @group + if course_group + group_students = course_group.users if group_students.empty? student_in_group = '(0)' else diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index cb2821a4b..d6597f3da 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -142,7 +142,7 @@ class UsersController < ApplicationController @obj_count = query.count(); @obj_pages = Paginator.new @obj_count,limit,params['page'] - @list = query.order("#{Project.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + @list = query.order("#{Project.table_name}.updated_on desc,#{Project.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); @params = params respond_to do |format| @@ -281,7 +281,7 @@ class UsersController < ApplicationController @obj_count = query.count(); @obj_pages = Paginator.new @obj_count,limit,params['page'] - @list = query.order("#{Course.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + @list = query.order("#{Course.table_name}.updated_at desc,#{Course.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); @params = params render :layout=>'base_users_new' @@ -460,14 +460,13 @@ class UsersController < ApplicationController end if params[:lastid]!=nil && !params[:lastid].empty? - query = query.where("#{Course.table_name}.id < ?",params[:lastid]) + query = query.where("( (#{Course.table_name}.updated_at=? and #{Course.table_name}.id < ?) or #{Course.table_name}.updated_atnil end def user_projects4show - query = Project.joins("join members m on #{Project.table_name}.id=m.project_id") query = query.where("m.user_id = ? and #{Project.table_name}.project_type=?",@user.id,Project::ProjectType_project) if User.current == @user #看自己 @@ -477,9 +476,9 @@ class UsersController < ApplicationController end if params[:lastid]!=nil && !params[:lastid].empty? - query = query.where("#{Project.table_name}.id < ?",params[:lastid]) + query = query.where("( (#{Project.table_name}.updated_on=? and #{Project.table_name}.id < ?) or #{Project.table_name}.updated_onnil end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 47a3b59ae..64a478187 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2345,6 +2345,34 @@ module ApplicationHelper #将文本内的/n转换为
def text_format text - text.gsub("\n","
").html_safe + text.gsub("&","&").gsub("<","<").gsub(">",">").gsub("\n","
").html_safe + end + + #评分规则显示 + def scoring_rules late_penalty,homework_id,is_teacher,absence_penalty=nil + if absence_penalty + if late_penalty.to_i == 0 && absence_penalty.to_i == 0 + notice = "尚未设置评分规则" + if is_teacher + notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") + end + elsif late_penalty.to_i != 0 && absence_penalty.to_i == 0 + notice = "迟交扣#{late_penalty}分,缺评扣分未设置" + elsif late_penalty.to_i == 0 && absence_penalty.to_i != 0 + notice = "迟交扣分未设置,缺评一个作品扣#{absence_penalty}分" + elsif late_penalty.to_i != 0 && absence_penalty.to_i != 0 + notice = "迟交扣#{late_penalty}分,缺评一个作品扣#{absence_penalty}分" + end + else + if late_penalty.to_i == 0 + notice = "尚未设置评分规则" + if is_teacher + notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") + end + else + notice = "迟交扣#{late_penalty}分" + end + end + notice.html_safe end end diff --git a/app/helpers/homework_common_helper.rb b/app/helpers/homework_common_helper.rb index a2ff6dbab..81f817ee9 100644 --- a/app/helpers/homework_common_helper.rb +++ b/app/helpers/homework_common_helper.rb @@ -53,31 +53,4 @@ module HomeworkCommonHelper link end - #评分规则显示 - def scoring_rules late_penalty,homework_id,is_teacher,absence_penalty=nil - if absence_penalty - if late_penalty.to_i == 0 && absence_penalty.to_i == 0 - notice = "尚未设置评分规则" - if is_teacher - notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") - end - elsif late_penalty.to_i != 0 && absence_penalty.to_i == 0 - notice = "迟交扣#{late_penalty}分,缺评扣分未设置" - elsif late_penalty.to_i == 0 && absence_penalty.to_i != 0 - notice = "迟交扣分未设置,缺评一个作品扣#{absence_penalty}分" - elsif late_penalty.to_i != 0 && absence_penalty.to_i != 0 - notice = "迟交扣#{late_penalty}分,缺评一个作品扣#{absence_penalty}分" - end - else - if late_penalty.to_i == 0 - notice = "尚未设置评分规则" - if is_teacher - notice += ",请 " + link_to("设置",edit_homework_common_path(homework_id),:class => "c_green") - end - else - notice = "迟交扣#{late_penalty}分" - end - end - notice.html_safe - end end \ No newline at end of file diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 1926be0e8..db041c0ba 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -447,7 +447,9 @@ module UsersHelper when "Issue" return activity.act.subject when "Journal" - return details_to_strings(activity.act.details,true).to_s + arr = details_to_strings(activity.act.details,true) + arr << activity.act.notes + return arr.to_s when "JournalsForMessage" return activity.act.notes when "Message" diff --git a/app/models/user_extensions.rb b/app/models/user_extensions.rb index d9a0f520a..726918729 100644 --- a/app/models/user_extensions.rb +++ b/app/models/user_extensions.rb @@ -12,6 +12,8 @@ class UserExtensions < ActiveRecord::Base belongs_to :user belongs_to :school, :class_name => 'School', :foreign_key => :school_id attr_accessible :user_id,:birthday,:brief_introduction,:gender,:location,:occupation,:work_experience,:zip_code,:identity, :technical_title,:student_id + validates_length_of :description, :maximum => 255 + validates_length_of :brief_introduction, :maximum => 255 TEACHER = 0 STUDENT = 1 ENTERPRISE = 2 diff --git a/app/views/files/searchone4reload.html.erb b/app/views/files/searchone4reload.html.erb index 4512e52dd..75dd7bcab 100644 --- a/app/views/files/searchone4reload.html.erb +++ b/app/views/files/searchone4reload.html.erb @@ -2,26 +2,29 @@ <% if file.is_public? || User.current.member_of_course?(course) %>
- <%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s,:class => "c_dblue f_14 f_b f_l hiddent" %> + <%= link_to truncate(file.filename,length: 35, omission: '...'), + download_named_attachment_path(file.id, file.filename), + :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %> <% if User.current.logged? %> <% if (is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file) %> <%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %> <% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %> - - <%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open c_blue",:method => :post %> - + + <%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open c_blue",:method => :post %> + <% else %> <% end %> <% else %> <%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %> <% end %> + <%= file_preview_tag(file, class: 'f_l re_open') %> <% else %> <% end %>
-
+

文件大小:<%= number_to_human_size(file.filesize) %>

<%= link_to( l(:button_delete), attachment_path(file), :data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed && file.container_id == @course.id && file.container_type == "Course"%> diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 008f88138..806768954 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -98,7 +98,7 @@
  • - 测试 +
  • @@ -116,7 +116,7 @@
  • - 测试 +
  • diff --git a/app/views/layouts/_base_header_new.html.erb b/app/views/layouts/_base_header_new.html.erb index 63e221cca..71cf8ab02 100644 --- a/app/views/layouts/_base_header_new.html.erb +++ b/app/views/layouts/_base_header_new.html.erb @@ -15,7 +15,7 @@ <% hidden_non_project = Setting.find_by_name("hidden_non_project") visiable = hidden_non_project && hidden_non_project.value == "0"%> <% if @show_course == 1 && !visiable %> - <% if User.current.user_extensions && [UserExtensions::TEACHER, UserExtensions::STUDENT].include?(User.current.user_extensions.identity) -%> + <%# if User.current.user_extensions && [UserExtensions::TEACHER, UserExtensions::STUDENT].include?(User.current.user_extensions.identity) -%> <% hasCourse=false %> <% User.current.courses.each do |course| %> <% if !course_endTime_timeout?(course) %> @@ -34,7 +34,7 @@ <% end %> - <% end -%> + <%# end -%> <% end %> <% if User.current.projects.count>0 %> @@ -47,6 +47,7 @@ <% end %> +
  • 编辑资料
  • diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb index 8aca387c6..ef6d82245 100644 --- a/app/views/layouts/base_users_new.html.erb +++ b/app/views/layouts/base_users_new.html.erb @@ -183,9 +183,9 @@ $(".subNav").click(function(){ <% end %> <% if (@user.user_extensions.identity == 0 || @user.user_extensions.identity == 1) && !@user.user_extensions.school.nil? %> -
  • <%= @user.user_extensions.school.name %>
  • +
  • <%= @user.user_extensions.school.name %>
  • <% elsif @user.user_extensions.identity == 3 && !@user.user_extensions.occupation.nil? && !@user.user_extensions.occupation.empty? %> -
  • <%= @user.user_extensions.occupation %>
  • +
  • <%= @user.user_extensions.occupation %>
  • <% elsif @user.user_extensions.identity == 2 %>
  • <%= @user.show_name %>
  • <% end %> diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 96e3cf995..257bcc1a6 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -17,15 +17,15 @@
    <% if( @act.nil? || @act != 'password') %> <%= render_flash_messages %> - <%= error_messages_for 'user' %> + <%= error_messages_for 'user',@user.user_extensions %> <% end %>
    <% end %> + <%= form_tag({:action => "password"},:id => 'my_password_form') do %>
    <% if( !@act.nil? && @act == 'password') %> @@ -165,11 +166,11 @@
  • 确认密码 :