From 20cd5941a8cd06a760c984340107c410d6a2f3af Mon Sep 17 00:00:00 2001 From: xianbo Date: Fri, 21 Mar 2014 15:17:14 +0800 Subject: [PATCH 01/11] modify project main page --- app/helpers/application_helper.rb | 12 +- app/views/layouts/base.html.erb | 4 + app/views/projects/index.html.erb | 1 - app/views/welcome/_search_project.html.erb | 7 + app/views/welcome/index.html.erb | 147 +++++++++------------ lib/redmine.rb | 4 +- 6 files changed, 78 insertions(+), 97 deletions(-) create mode 100644 app/views/welcome/_search_project.html.erb diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index fc3d6cd61..ab45d8e9a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1500,16 +1500,16 @@ module ApplicationHelper end def render_dynamic_nav - home_link = link_to l(:field_homepage), {:controller => 'welcome', :action => 'index',:host => Setting.forge_domain} + home_link = link_to l(:field_homepage), {:controller => 'welcome', :action => 'index'} course_all_course_link = link_to l(:label_course_all), {:controller => 'projects', :action => 'course', :project_type => 1} course_teacher_all_link = link_to l(:label_teacher_all), {:controller => 'users', :action => 'index', :role => 'teacher'} - courses_link = link_to l(:label_course_practice), {:controller => 'projects', :action => 'course', :project_type => 1, :host=>Setting.course_domain} - projects_link = link_to l(:label_project_deposit), {:controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain} + courses_link = link_to l(:label_course_practice), {:controller => 'projects', :action => 'course', :project_type => 1} + projects_link = link_to l(:label_project_deposit), {:controller => 'projects', :action => 'index', :project_type => 0} users_link = link_to l(:label_software_user), {:controller => 'users', :action => 'index'} - contest_link = link_to l(:label_contest_innovate), {:controller => 'bids', :action => 'contest', :project_type => 1, :host=>Setting.contest_domain} + contest_link = link_to l(:label_contest_innovate), {:controller => 'bids', :action => 'contest', :project_type => 1 } bids_link = link_to l(:label_requirement_enterprise), {:controller => 'bids', :action => 'index'} - forum_link = link_to l(:label_project_module_forums), {:controller => "forums", :action => "index", :host => Setting.forge_domain} - stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index', :host => Setting.forge_domain} + forum_link = link_to l(:label_project_module_forums), {:controller => "forums", :action => "index"} + stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index'} #@nav_dispaly_project_label nav_list = Array.new diff --git a/app/views/layouts/base.html.erb b/app/views/layouts/base.html.erb index e475bbd5f..421e76050 100644 --- a/app/views/layouts/base.html.erb +++ b/app/views/layouts/base.html.erb @@ -21,6 +21,10 @@ @nav_dispaly_course_all_label = 1 @nav_dispaly_teacher_all_label = 1 @nav_dispaly_forum_label = 1 + elsif (realUrl.match(/forge\.trustie\.net/)) + @nav_dispaly_project_label = 1 + @nav_dispaly_user_label = 1 + @nav_dispaly_forum_label = 1 else @nav_dispaly_course_label = 1 @nav_dispaly_project_label = 1 diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index 9d2aaccdd..db37af91b 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -25,7 +25,6 @@ <%= link_to request.host()+"/projects", :controller => 'projects', :action => 'index', :project_type => 0 %> <%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_project_deposit), :controller => 'projects', :action => 'index', :project_type => 0 %> - <% end %> <%= sort_project(@s_type, @project_type) %> diff --git a/app/views/welcome/_search_project.html.erb b/app/views/welcome/_search_project.html.erb new file mode 100644 index 000000000..a082a6dcf --- /dev/null +++ b/app/views/welcome/_search_project.html.erb @@ -0,0 +1,7 @@ +<%= form_tag(:controller => 'projects', :action => "search", :method => :get) do %> + +<% end %> \ No newline at end of file diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index b3d057c54..fd539b12f 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -94,8 +94,8 @@
<%= l(:label_welcome_trustie) %> , <%= l(:label_welcome_trustie_description) %>
- @@ -107,7 +107,58 @@ <%= stylesheet_link_tag 'welcome' %> -
+ +
+

热门项目

+ <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %> +
+
    + <% find_all_hot_project.map do |project| break if(project == find_all_hot_project[10]) %> +
  • +
    + <%= image_tag url_to_avatar(project), :class => "avatar-4" %> +
    +
    +

    + <%= link_to( project.name, :controller => 'projects', :action => 'show', :host=> Setting.project_domain, :id => project.id, :class => "d-g-blue d-p-project-name", :title => "#{project.name}", :target => "_blank" )%> + <%= content_tag "span", show_grade(project), + :style => "cursor: pointer; display: inline-block; float: right; color: #ec6300; ", + :title => "项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度", + :class => "tooltip", + :id => "tooltip-#{project.id}" %> +

    +

    + <%= content_tag "span", project.description.truncate(50, omission: '...'), :class => "d-p-project-intro" , :title => project.description %> +

    +
    +
  • + <% end %> +
+
+
+ +
+
    +

    用户动态

    + <%= link_to "更多>>", { :controller => 'users', :action => 'index'}, :target => "_blank" %> +
    + <% find_all_activities.each do |event| %> +
  • +
    + <%= image_tag url_to_avatar(event.event_author), :class => "avatar-3" %> +
    + +
    + <%= link_to event.event_author, (user_path(event.event_author) if event.event_author), :style => "color:green;", :target => "_blank" %><%= show_user_content event %> +

    <%= l(:field_updated_on) %><%= time_tag_welcome event.event_datetime %>前     <%= show_event_reply event %>

    +
    +
  • + <% end %> +
    +
+
+ +

    贴吧动态

    @@ -133,88 +184,8 @@
-
-
    -

    用户动态

    - <%= link_to "更多>>", { :controller => 'users', :action => 'index'}, :target => "_blank" %> -
    - <% find_all_activities.each do |event| %> -
  • -
    - <%= image_tag url_to_avatar(event.event_author), :class => "avatar-3" %> -
    - -
    - <%= link_to event.event_author, (user_path(event.event_author) if event.event_author), :style => "color:green;", :target => "_blank" %><%= show_user_content event %> -

    <%= l(:field_updated_on) %><%= time_tag_welcome event.event_datetime %>前     <%= show_event_reply event %>

    -
    -
  • - <% end %> -
    -
-
- - -
-

热门项目

- <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %> -
-
    - <% find_all_hot_project.map do |project| break if(project == find_all_hot_project[15]) %> -
  • -
    - <%= image_tag url_to_avatar(project), :class => "avatar-4" %> -
    -
    -

    - <%= link_to( project.name, :controller => 'projects', :action => 'show', :host=> Setting.project_domain, :id => project.id, :class => "d-g-blue d-p-project-name", :title => "#{project.name}", :target => "_blank" )%> - <%= content_tag "span", show_grade(project), - :style => "cursor: pointer; display: inline-block; float: right; color: #ec6300; ", - :title => "项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度", - :class => "tooltip", - :id => "tooltip-#{project.id}" %> -

    -

    - <%= content_tag "span", project.description.truncate(50, omission: '...'), :class => "d-p-project-intro" , :title => project.description %> -

    -
    -
  • - <% end %> -
-
-
- -
-

热门课程

- <%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1, :project_sort_type => 1, :host => Setting.course_domain}, :target => "_blank" %> -
-
    - <% find_all_hot_course.map do |project| break if(project == find_all_hot_course[5]) %> -
  • -
    - <% if get_avatar?(project)%> - <%= image_tag(url_to_avatar(project), :class => "avatar-4") %> - <% else %> - <%= image_tag('../images/avatars/Project/course.jpg', :class => "avatar-4") %> - <% end %> -
    -
    -

    - <%= link_to( project.name, :controller => 'projects', :action => 'show', :id => project.id, :host => Setting.course_domain, :class => "d-g-blue d-p-project-name",:title => "#{project.name}", :target => "_blank" )%> - 学生人数:<%= link_to "#{studentCount(project)}", project_member_path(project, :role => 2) ,:course =>'1', :target => "_blank" %> -

    -

    - <%= content_tag "span", project.description.truncate(50, omission: '...'), :class => "d-p-project-intro" , :title => project.description %> -

    -
    -
  • - <% end %> -
-
-
- - -
+ + -
+ diff --git a/lib/redmine.rb b/lib/redmine.rb index 1d1df605d..e5fb39446 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -265,9 +265,9 @@ end Redmine::MenuManager.map :account_menu do |menu| menu.push :login, {:controller => 'account', :action => 'login', :host => Setting.forge_domain}, :if => Proc.new { !User.current.logged? } - menu.push :register, {:controller => 'account', :action => 'register', :host => Setting.forge_domain}, :if => Proc.new { !User.current.logged? && Setting.self_registration? } + menu.push :register, {:controller => 'account', :action => 'register'}, :if => Proc.new { !User.current.logged? && Setting.self_registration? } # menu.push :my_account, { :controller => 'my', :action => 'account' }, :if => Proc.new { User.current.logged? } - menu.push :logout, {:controller => 'account', :action => 'logout', :host => Setting.forge_domain}, :html => {:method => 'post'}, :if => Proc.new { User.current.logged? } + menu.push :logout, {:controller => 'account', :action => 'logout'}, :html => {:method => 'post'}, :if => Proc.new { User.current.logged? } end ########fq Redmine::MenuManager.map :bid_menu do |menu| From 9c54c9c1b67d6a54a4484637fd98cc8de4dfc0b0 Mon Sep 17 00:00:00 2001 From: yanxd Date: Fri, 21 Mar 2014 16:46:30 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E9=87=8D=E6=9E=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=92=8C=E8=AF=BE=E7=A8=8B=E6=8E=92=E5=BA=8F=E9=83=A8=E5=88=86?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=88=86=E9=A1=B5=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 112 ++++++++++++------------- app/views/projects/course.html.erb | 2 +- app/views/projects/index.html.erb | 2 +- 3 files changed, 57 insertions(+), 59 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 0c98b804e..9492bfbad 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -49,7 +49,7 @@ class ProjectsController < ApplicationController # before_filter :authorize, :except => [:new_join, :new_homework, :homework, :statistics, :search, :watcherlist, :index, :list, :new, :create, :copy, :archive, :unarchive, :destroy, :member, :focus, :file, # :statistics, :feedback, :course, :enterprise_course, :course_enterprise, :project_respond, :share, # :show_projects_score, :issue_score_index, :news_score_index, :file_score_index, :code_submit_score_index, :projects_topic_score_index] - before_filter :authorize, :only => [:sort_project_demo, :show, :settings, :edit, :sort_project_members, :update, :modules, :close, :reopen] + before_filter :authorize, :only => [:show, :settings, :edit, :sort_project_members, :update, :modules, :close, :reopen] before_filter :authorize_global, :only => [:new, :create] before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy, :calendar] #by young @@ -127,32 +127,39 @@ class ProjectsController < ApplicationController def index #Modified by nie @project_type = params[:project_type] - @limit = 10 - @project_count = Project.visible.where("project_type = ?", 0).count - @project_pages = Paginator.new @project_count, @limit, params['page'] - if params[:project_sort_type].present? - case params[:project_sort_type] - when '0' - @projects = @projects = Project.visible.where("project_type = ?", 0).order("created_on desc").offset(@project_pages.offset).limit(@limit).all - @s_type = 0 - when '1' - @projects = sort_project_demo project_type = 0, order_by="grade desc", @project_pages.offset, @limit - @s_type = 1 - when '2' - @projects = sort_project_demo project_type = 0, order_by="watchers_count desc", @project_pages.offset, @limit - @s_type = 2 - end + per_page_option = 10 + + @projects_all = Project.active.visible. + joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id"). + where("#{Project.table_name}.project_type = ? ", Project::ProjectType_project) + + @project_count = @projects_all.count + @project_pages = Paginator.new @project_count, per_page_option, params['page'] + + + case params[:project_sort_type] + when '0' + @projects = @projects_all.order("created_on desc") + @s_type = 0 + when '1' + @projects = @projects_all.order("grade desc") + @s_type = 1 + when '2' + @projects = @projects_all.order("watchers_count desc") + @s_type = 2 else - @projects = sort_project_demo project_type = 0, order_by="grade desc", @project_pages.offset, @limit - @s_type = 1 + @projects = @projects = @projects_all.order("grade desc") + @s_type = 1 end + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + respond_to do |format| format.html { render :layout => 'base' - scope = Project - unless params[:closed] - scope = scope.active - end + # scope = Project + # unless params[:closed] + # scope = scope.active + # end } format.api { # @offset, @limit = api_offset_and_limit @@ -168,34 +175,34 @@ class ProjectsController < ApplicationController def course @project_type = params[:project_type] - @limit = 10; - @project_count = Project.visible.where("project_type = 1").count - @project_pages = Paginator.new @project_count, @limit, params['page'] - if params[:project_sort_type].present? - case params[:project_sort_type] - when '0' - @projects = Project.visible.where("project_type = ?", 1).order("created_on desc").offset(@project_pages.offset).limit(@limit).all - @s_type = 0 - when '1' - @projects = sort_project_demo 1, "course_ac_para desc", @project_pages.offset, @limit - @s_type = 1 - when '2' - @projects = sort_project_demo 1, "watchers_count desc", @project_pages.offset, @limit - @s_type = 2 - end + per_page_option = 10 + + @projects_all = Project.active.visible. + joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id"). + where("#{Project.table_name}.project_type = ? ", Project::ProjectType_course) + + @project_count = @projects_all.count + @project_pages = Paginator.new @project_count, per_page_option, params['page'] + + case params[:project_sort_type] + when '0' + @projects = @projects_all.order("created_on desc") + @s_type = 0 + when '1' + @projects = @projects_all.order("course_ac_para desc") + @s_type = 1 + when '2' + @projects = @projects_all.order("watchers_count desc") + @s_type = 2 else - # @projects = sort_project_demo 1, "course_ac_para desc", @project_pages.offset, @limit - @s_type = 0 - @projects = Project.visible.where("project_type = ?", 1).order("created_on desc").offset(@project_pages.offset).limit(@limit).all - # @s_type = 0 + @s_type = 0 + @projects = @projects_all.order("created_on desc") end + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + respond_to do |format| format.html { render :layout => 'base' - scope = Project - unless params[:closed] - scope = scope.active - end } format.api { # @offset, @limit = api_offset_and_limit @@ -208,17 +215,8 @@ class ProjectsController < ApplicationController } end end - - def sort_project_demo project_type, order_by, offset, limit - #Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).offset(offset).limit(limit).all - Project.visible.find_by_sql(" - SELECT * - FROM projects AS p RIGHT OUTER JOIN ( - SELECT project_id,grade FROM project_statuses - WHERE project_type = #{project_type} ORDER BY #{order_by} LIMIT #{limit} OFFSET #{offset}) AS t ON p.id = t.project_id ") - end - - def search + + def search #modified by nie @projects = Project.visible @projects = @projects.visible.where('project_type = ?', params[:project_type]).like(params[:name]) if params[:name].present? @@ -461,7 +459,7 @@ class ProjectsController < ApplicationController project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) user_grades = UserGrade.create(:user_id => User.current.id, :project_id => @project.id) if params[:project][:is_public] == '1' || @course_tag=="1" - project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0) + project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0, :project_type => @project.project_type) end @project.members << m @project.project_infos << project diff --git a/app/views/projects/course.html.erb b/app/views/projects/course.html.erb index 13672a6f1..d7a84f534 100644 --- a/app/views/projects/course.html.erb +++ b/app/views/projects/course.html.erb @@ -38,7 +38,7 @@ diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index db37af91b..a08deee71 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -34,7 +34,7 @@ From f786d0131287e6282d634098eef321b12308ee04 Mon Sep 17 00:00:00 2001 From: yanxd Date: Fri, 21 Mar 2014 16:49:55 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=8A=A0=E4=B8=AAtable=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/index.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index a08deee71..fd81c636e 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -25,6 +25,7 @@ <%= link_to request.host()+"/projects", :controller => 'projects', :action => 'index', :project_type => 0 %> <%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_project_deposit), :controller => 'projects', :action => 'index', :project_type => 0 %> + <% end %>
<%= sort_project(@s_type, @project_type) %> From 34fd8a933a624de98533e43b48cfbc1f762ff9cb Mon Sep 17 00:00:00 2001 From: xianbo Date: Fri, 21 Mar 2014 20:25:41 +0800 Subject: [PATCH 04/11] fix the show of domain and project page --- app/helpers/application_helper.rb | 4 ++-- app/helpers/welcome_helper.rb | 2 +- app/views/layouts/_base_header.html.erb | 4 ++-- app/views/layouts/base.html.erb | 6 +++++- app/views/welcome/course.html.erb | 2 +- app/views/welcome/index.html.erb | 8 ++++---- config/settings.yml | 8 ++++---- lib/redmine.rb | 24 ++++++++++++------------ 8 files changed, 31 insertions(+), 27 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ab45d8e9a..f8acafc1f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -65,7 +65,7 @@ module ApplicationHelper if user.is_a?(User) name = h(user.name(options[:format])) if user.active? || (User.current.admin? && user.logged?) - link_to name, {:controller=> 'users', :action => 'show', id: user.id, host: Setting.forge_domain}, :class => user.css_classes + link_to name, {:controller=> 'users', :action => 'show', id: user.id, host: Setting.user_domain}, :class => user.css_classes else name end @@ -1513,7 +1513,7 @@ module ApplicationHelper #@nav_dispaly_project_label nav_list = Array.new - nav_list.push(home_link) + nav_list.push(home_link) nav_list.push(course_all_course_link) if @nav_dispaly_course_all_label nav_list.push(course_teacher_all_link) if @nav_dispaly_teacher_all_label diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index a446631d7..ed90dd24f 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -214,7 +214,7 @@ module WelcomeHelper "show_news" => true, "show_bids" => true } - activity.scope_select{|t| ['changesets', 'documents', 'memos', 'messages', 'journals_for_messages'].include?(t) ? nil : 'You may think you know what the following code does, may be. but why don"t you close this file and go play with something else, Now?' } + activity.scope_select{|t| ['changesets', 'documents', 'memos', 'messages', 'journals_for_messages', 'bids', 'news'].include?(t) ? nil : 'You may think you know what the following code does, may be. but why don"t you close this file and go play with something else, Now?' } activity.events_welcome(nil, nil, {:limit => limit, :types => 'welcome'}) end diff --git a/app/views/layouts/_base_header.html.erb b/app/views/layouts/_base_header.html.erb index 2cb5fafa0..7bdd8a728 100644 --- a/app/views/layouts/_base_header.html.erb +++ b/app/views/layouts/_base_header.html.erb @@ -15,11 +15,11 @@
  • <%=link_to l(:label_my_course), {:controller => 'users', :action => 'user_courses', id: User.current.id, host: Setting.course_domain} %>
  • <% end -%>
  • <%=link_to l(:label_my_projects),{:controller => 'users', :action => 'user_projects', id: User.current.id, host: Setting.project_domain} %>
  • -
  • <%=link_to l(:label_user_edit), {:controller => 'my', :action=> 'account', host: Setting.forge_domain}%>
  • +
  • <%=link_to l(:label_user_edit), {:controller => 'my', :action=> 'account', host: Setting.user_domain}%>
  • - <%=link_to l(:label_my_message)+'('+User.current.count_new_jour.to_s+')', { :controller => 'users', :action => 'user_newfeedback', id: User.current.id, host: Setting.forge_domain }, {:class => 'my-message'} if User.current.logged?%> + <%=link_to l(:label_my_message)+'('+User.current.count_new_jour.to_s+')', { :controller => 'users', :action => 'user_newfeedback', id: User.current.id, host: Setting.user_domain }, {:class => 'my-message'} if User.current.logged?%>
  • diff --git a/app/views/layouts/base.html.erb b/app/views/layouts/base.html.erb index 421e76050..fcf7d2195 100644 --- a/app/views/layouts/base.html.erb +++ b/app/views/layouts/base.html.erb @@ -13,7 +13,7 @@ @nav_dispaly_bid_label = 1 elsif (realUrl.match(/forums/)) @nav_dispaly_forum_label = 1 - elsif (realUrl.match(/[^projects]\/course[^\.]/)) + elsif (realUrl.match(/[^forge]\/course[^\.]/)) @nav_dispaly_course_label = 1 @nav_dispaly_project_label = 1 @nav_dispaly_contest_label = 1 @@ -21,6 +21,10 @@ @nav_dispaly_course_all_label = 1 @nav_dispaly_teacher_all_label = 1 @nav_dispaly_forum_label = 1 + elsif (realUrl.match(/user\.trustie\.net/)) + @nav_dispaly_project_label = 1 + @nav_dispaly_user_label = 1 + @nav_dispaly_forum_label = 1 elsif (realUrl.match(/forge\.trustie\.net/)) @nav_dispaly_project_label = 1 @nav_dispaly_user_label = 1 diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb index 517e81f30..734568c7d 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -95,7 +95,7 @@ <%= l(:label_welcome_trustie) %> , <%= l(:label_welcome_trustie_description) %>
    diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index fd539b12f..c9fad6757 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -140,8 +140,8 @@
    -
    +
      -
      +

      贴吧动态

      <%= link_to "更多>>", forums_path %>
      diff --git a/config/settings.yml b/config/settings.yml index 2a50e6cb4..d43d3699b 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -236,11 +236,11 @@ tags_max_length: tags_show_search_results: format: int default: 5 -forge_domain: - default: forge.trustie.net +user_domain: + default: user.trustie.net project_domain: default: forge.trustie.net contest_domain: - default: forge.trustie.net + default: contest.trustie.net course_domain: - default: forge.trustie.net + default: course.trustie.net diff --git a/lib/redmine.rb b/lib/redmine.rb index e5fb39446..3990d10d3 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -203,7 +203,7 @@ Redmine::AccessControl.map do |map| end #by young Redmine::MenuManager.map :top_menu do |menu| - menu.push :home, {:host => Setting.forge_domain} + menu.push :home, {:host => Setting.user_domain} menu.push :course_practice, {:controller => 'projects', :action => 'course', :project_type => 1} menu.push :project_deposit, { :controller => 'projects', :action => 'index', :project_type => 0}, :caption => :label_project_deposit menu.push :software_user, {:controller => 'users', :action => 'index'} @@ -264,7 +264,7 @@ end # end Redmine::MenuManager.map :account_menu do |menu| - menu.push :login, {:controller => 'account', :action => 'login', :host => Setting.forge_domain}, :if => Proc.new { !User.current.logged? } + menu.push :login, {:controller => 'account', :action => 'login', :host => Setting.project_domain}, :if => Proc.new { !User.current.logged? } menu.push :register, {:controller => 'account', :action => 'register'}, :if => Proc.new { !User.current.logged? && Setting.self_registration? } # menu.push :my_account, { :controller => 'my', :action => 'account' }, :if => Proc.new { User.current.logged? } menu.push :logout, {:controller => 'account', :action => 'logout'}, :html => {:method => 'post'}, :if => Proc.new { User.current.logged? } @@ -341,29 +341,29 @@ Redmine::MenuManager.map :course_menu do |menu| end Redmine::MenuManager.map :user_menu do |menu| - menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.forge_domain } + menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.user_domain } menu.push :user_course, {:controller => 'users', :action => 'user_courses', :host => Setting.course_domain} #menu.push :user_homework, {:controller => 'users', :action => 'user_homeworks'} by huang menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.project_domain} # menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids'} by huang - menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.forge_domain} + menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.user_domain} end Redmine::MenuManager.map :user_enterprise_menu do |menu| - menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.forge_domain } + menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.user_domain } menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.project_domain} - menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.forge_domain} - menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.forge_domain} + menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.user_domain} + menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.user_domain} end Redmine::MenuManager.map :user_menu_self do |menu| - menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.forge_domain } - menu.push :user_information, {:controller => 'users', :action => 'info', :host => Setting.forge_domain} - menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.forge_domain} - menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.forge_domain} - menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.forge_domain} + menu.push :activity, {:controller => 'users', :action => 'show', :host => Setting.project_domain } + menu.push :user_information, {:controller => 'users', :action => 'info', :host => Setting.user_domain} + menu.push :user_project, {:controller => 'users', :action => 'user_projects', :host => Setting.project_domain} + menu.push :requirement_focus, {:controller => 'users', :action => 'watch_bids', :host => Setting.user_domain} + menu.push :user_newfeedback, {:controller => 'users', :action => 'user_newfeedback', :host => Setting.user_domain} end #end From 404568be894ad2c825a3e9a19269a34b83838a2b Mon Sep 17 00:00:00 2001 From: yanxd Date: Sat, 22 Mar 2014 09:24:59 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E7=95=99=E8=A8=80url=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E5=8F=8A=E7=95=99=E8=A8=80=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E7=9A=84url=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 9 ++++++++- app/models/journals_for_message.rb | 6 ++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9492bfbad..db47319ef 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -296,10 +296,17 @@ class ProjectsController < ApplicationController #Ended by young def feedback + page = params[:page] + # Find the page of the requested reply @jours = @project.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') @limit = 10 + if params[:r] && page.nil? + offset = @jours.count(:conditions => ["#{JournalsForMessage.table_name}.id > ?", params[:r].to_i]) + page = 1 + offset / @limit + end + @feedback_count = @jours.count - @feedback_pages = Paginator.new @feedback_count, @limit, params['page'] + @feedback_pages = Paginator.new @feedback_count, @limit, page @offset ||= @feedback_pages.offset @jour = @jours[@offset, @limit] @state = false diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 426d1b56b..2c4f10886 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -27,8 +27,10 @@ class JournalsForMessage < ActiveRecord::Base :datetime => Proc.new {|o| o.updated_on }, :author => Proc.new {|o| o.user }, :description => Proc.new{|o| o.notes }, - :type => Proc.new {|o| o.jour_type }#, - #:url => Proc.new {|o| ''}#{:controller => 'documents', :action => 'show', :id => o.id}} + :type => Proc.new {|o| o.jour_type }, + :url => Proc.new {|o| + (o.jour.kind_of? Project) ? {:controller => 'projects', :action => 'feedback', :id => o.jour, :r => o.id, :anchor => "word_li_#{o.id}"} : {} + }#{:controller => 'documents', :action => 'show', :id => o.id}} acts_as_activity_provider :author_key => :user_id, :timestamp => "#{self.table_name}.updated_on", :find_options => {:include => :project } From 3b13183dbbf257c4703f98a2cbc62a48b17492f6 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 24 Mar 2014 08:31:59 +0800 Subject: [PATCH 06/11] resort --- app/models/issue.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/models/issue.rb b/app/models/issue.rb index cc321aad0..b7e1cfff8 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -212,9 +212,14 @@ class Issue < ActiveRecord::Base @workflow_rule_by_attribute = nil @assignable_versions = nil @relations = nil + @to_param = nil base_reload(*args) end + # def to_param + # @to_param ||= + # end + # Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields def available_custom_fields (project && tracker) ? (project.all_issue_custom_fields & tracker.custom_fields.all) : [] From 2e3b44c830d2d0b68a5027cbb50085a245ac4e07 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 24 Mar 2014 11:11:13 +0800 Subject: [PATCH 07/11] id-name(position|count) --- app/helpers/journals_helper.rb | 2 +- app/models/issue.rb | 6 +++--- app/views/issues/show.html.erb | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/helpers/journals_helper.rb b/app/helpers/journals_helper.rb index 788bd0765..480524457 100644 --- a/app/helpers/journals_helper.rb +++ b/app/helpers/journals_helper.rb @@ -25,7 +25,7 @@ module JournalsHelper links = [] if !journal.notes.blank? links << link_to(l(:button_quote), - {:controller => 'journals', :action => 'new', :id => issue, :journal_id => journal}, + {:controller => 'journals', :action => 'new', :id => issue.id, :journal_id => journal}, :remote => true, :method => 'post', :title => l(:button_quote)) if options[:reply_links] diff --git a/app/models/issue.rb b/app/models/issue.rb index b7e1cfff8..f4eb4aa23 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -216,9 +216,9 @@ class Issue < ActiveRecord::Base base_reload(*args) end - # def to_param - # @to_param ||= - # end + def to_param + @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self)}|#{self.project.issues.count})"#.parameterize + end # Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields def available_custom_fields diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 7166f306f..6678e2f02 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -87,7 +87,7 @@ end %> <% if @issue.description? %>
      - <%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %> + <%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>

      <%=l(:field_description)%>

      From 8db09739a1b2bf6cd124f45c44b2b79811415335 Mon Sep 17 00:00:00 2001 From: xianbo Date: Mon, 24 Mar 2014 10:18:42 +0800 Subject: [PATCH 08/11] optimize the show of forge --- app/helpers/courses_helper.rb | 7 ++++++- app/helpers/projects_helper.rb | 1 + app/helpers/welcome_helper.rb | 22 +++++++++++++++++++- app/views/welcome/index.html.erb | 35 +++++++++++++++++++++++++++++--- 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 78e20c2a7..d474b5587 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -9,8 +9,13 @@ module CoursesHelper =end TeacherRoles = [3, 4, 7, 9] StudentRoles = [5, 10] - + AllPeople = StudentRoles+TeacherRoles ## return people count + + # 返回x项目成员数量,即roles表中定义的所有成员 + def projectCount project + searchCountByRoles project, AllPeople + end # 返回教师数量,即roles表中定义的Manager def teacherCount project diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 35314efcc..b9d8ef932 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -285,6 +285,7 @@ module ProjectsHelper SELECT project_id,grade FROM project_statuses WHERE project_type = 0 ORDER BY grade DESC LIMIT #{limit} ) AS t ON p.id = t.project_id ") end + # 判断课程是否结束,快别用,这个定日子的方法有问题 def course_timeout? project diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index ed90dd24f..fd00c83e2 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -39,6 +39,13 @@ module WelcomeHelper end end + def get_project_avatar project + if get_avatar?(project) + url_to_avatar(project) + else + '../images/avatars/Project/project.jpg' + end + end # 前略·天国の首页君/Earth has been unable stop to welcomePage's. # sum - 要搜索的项目数量 # max_rate - 新项目所占所有项目的比重,10分制 @@ -56,10 +63,23 @@ module WelcomeHelper c2 = c2 - c1 (c1.take(max)+c2).take(sum) end - + + def find_miracle_project(sum=10, max_rate=7) + max = sum*(max_rate.to_f/10) + c1 = find_new_project(sum).to_a.dup + c2 = find_all_hot_project(sum).to_a.dup + c2 = c2 - c1 + (c1.take(max)+c2).take(sum) + end + def find_new_course limit=15 Project.visible.joins(:course_extra).where("#{Project.table_name}.project_type = ? ", 1).order("courses.time DESC, #{Project.table_name}.created_on DESC").limit(limit).all end + + def find_new_project limit=15 + Project.visible.joins(:course_extra).where("#{Project.table_name}.project_type = ? ", 0).order("courses.time DESC, #{Project.table_name}.created_on DESC").limit(limit).all + end + def find_all_hot_project limit=15 sort_project_by_hot limit diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index c9fad6757..eae4cba2a 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -105,10 +105,8 @@ <%= stylesheet_link_tag 'welcome' %> - - -
      + +
      +

      热门项目

      + <%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1}, :target => "_blank" %> +
      +
        + <% find_miracle_project(11, 7).map do |project| %> +
      • +
        + <%= image_tag(get_project_avatar(project), :class => "avatar-4") %> +
        + +
        + <%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> + (<%= link_to "#{projectCount(project)}人", project_member_path(project) ,:course =>'0' %>) +
        +
        + ><%=project.description.truncate(35, omission: '...')%> +
        +
        + <%= content_tag "span", show_grade(project), + :style => "cursor: pointer; display: inline-block; float: right; color: #ec6300; ", + :title => "项目得分,综合考虑了项目的各项活动,反映了该项目的活跃程度", + :class => "tooltip", + :id => "tooltip-#{project.id}" %> +

        +
        +
      • + <% end; reset_cycle %> +
      +
      From 8bb4d44cbed67d630f16ad905d3be91b1b5280ec Mon Sep 17 00:00:00 2001 From: xianbo Date: Mon, 24 Mar 2014 13:48:43 +0800 Subject: [PATCH 09/11] fix link --- app/views/welcome/_search_project.html.erb | 9 ++++- app/views/welcome/index.html.erb | 38 +++------------------- 2 files changed, 13 insertions(+), 34 deletions(-) diff --git a/app/views/welcome/_search_project.html.erb b/app/views/welcome/_search_project.html.erb index a082a6dcf..df5ce7ad3 100644 --- a/app/views/welcome/_search_project.html.erb +++ b/app/views/welcome/_search_project.html.erb @@ -3,5 +3,12 @@ <%= text_field_tag 'name', params[:name], placeholder:'请输入要搜索的关键字', :size => 30 %> <%= hidden_field_tag 'project_type', project_type %> <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %> -
      +
      +
      + <%= if project_type == 0 + "全站项目搜索。不会搜索私有项目" + else + "全站课程搜索。" + end %> +
      <% end %> \ No newline at end of file diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index eae4cba2a..c88f7e0e2 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -87,7 +87,7 @@
      @@ -106,41 +106,13 @@ <%= stylesheet_link_tag 'welcome' %> -

      热门项目

      - <%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1}, :target => "_blank" %> + <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %>
        - <% find_miracle_project(11, 7).map do |project| %> -
      • + <% find_miracle_project(10, 7).map do |project| %> +
      • <%= image_tag(get_project_avatar(project), :class => "avatar-4") %>
        @@ -150,7 +122,7 @@ (<%= link_to "#{projectCount(project)}人", project_member_path(project) ,:course =>'0' %>)
      - ><%=project.description.truncate(35, omission: '...')%> + ><%=project.description.truncate(50, omission: '...')%>
      <%= content_tag "span", show_grade(project), From 163cdc8cf7e1eae7b6ea4c9399a3369f060b3787 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 24 Mar 2014 16:42:43 +0800 Subject: [PATCH 10/11] issues to_param --- app/models/issue.rb | 4 ++-- app/views/issues/show.html.erb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index f4eb4aa23..c69343c6b 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -57,7 +57,7 @@ class Issue < ActiveRecord::Base # sort by id so that limited eager loading doesn't break with postgresql :order_column => "#{table_name}.id" acts_as_event :title => Proc.new {|o| "#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}"}, - :url => Proc.new {|o| {:controller => 'issues', :action => 'show', :id => o.id}}, + :url => Proc.new {|o| {:controller => 'issues', :action => 'show', :id => o}}, :type => Proc.new {|o| 'issue' + (o.closed? ? ' closed' : '') } acts_as_activity_provider :find_options => {:include => [:project, :author, :tracker]}, @@ -217,7 +217,7 @@ class Issue < ActiveRecord::Base end def to_param - @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self)}|#{self.project.issues.count})"#.parameterize + @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self)+1}-#{self.project.issues.count})"#.parameterize end # Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 6678e2f02..f8159fc7a 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -9,14 +9,14 @@ <% end %> From 321f2df0b91ab1ab32dbb997a044eb9d08b572ec Mon Sep 17 00:00:00 2001 From: xianbo Date: Mon, 24 Mar 2014 17:12:28 +0800 Subject: [PATCH 11/11] add chance to new preoject --- app/helpers/welcome_helper.rb | 7 +++---- app/views/welcome/_search_project.html.erb | 7 ------- app/views/welcome/course.html.erb | 1 + app/views/welcome/index.html.erb | 3 ++- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index fd00c83e2..9fc768d9c 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -64,12 +64,11 @@ module WelcomeHelper (c1.take(max)+c2).take(sum) end - def find_miracle_project(sum=10, max_rate=7) + def find_miracle_project(sum, max_rate) max = sum*(max_rate.to_f/10) c1 = find_new_project(sum).to_a.dup c2 = find_all_hot_project(sum).to_a.dup - c2 = c2 - c1 - (c1.take(max)+c2).take(sum) + (c2.take(sum-max)+c1.take(max)).take(sum) end def find_new_course limit=15 @@ -77,7 +76,7 @@ module WelcomeHelper end def find_new_project limit=15 - Project.visible.joins(:course_extra).where("#{Project.table_name}.project_type = ? ", 0).order("courses.time DESC, #{Project.table_name}.created_on DESC").limit(limit).all + Project.visible.where("#{Project.table_name}.project_type = ? ", 0).order("#{Project.table_name}.updated_on DESC, #{Project.table_name}.created_on DESC").limit(limit).all end diff --git a/app/views/welcome/_search_project.html.erb b/app/views/welcome/_search_project.html.erb index df5ce7ad3..61770cace 100644 --- a/app/views/welcome/_search_project.html.erb +++ b/app/views/welcome/_search_project.html.erb @@ -4,11 +4,4 @@ <%= hidden_field_tag 'project_type', project_type %> <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
      -
      - <%= if project_type == 0 - "全站项目搜索。不会搜索私有项目" - else - "全站课程搜索。" - end %> -
      <% end %> \ No newline at end of file diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb index 734568c7d..363aa8130 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -96,6 +96,7 @@
      diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index c88f7e0e2..af2741a5b 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -96,6 +96,7 @@
      @@ -111,7 +112,7 @@ <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %>
        - <% find_miracle_project(10, 7).map do |project| %> + <% find_miracle_project(10, 3).map do |project| %>
      • <%= image_tag(get_project_avatar(project), :class => "avatar-4") %>