diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 0c98b804e..db47319ef 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? @@ -298,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 @@ -461,7 +466,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/helpers/application_helper.rb b/app/helpers/application_helper.rb index fc3d6cd61..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 @@ -1500,20 +1500,20 @@ 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 - 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/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/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/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 a446631d7..9fc768d9c 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,22 @@ module WelcomeHelper c2 = c2 - c1 (c1.take(max)+c2).take(sum) end - + + 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.take(sum-max)+c1.take(max)).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.where("#{Project.table_name}.project_type = ? ", 0).order("#{Project.table_name}.updated_on DESC, #{Project.table_name}.created_on DESC").limit(limit).all + end + def find_all_hot_project limit=15 sort_project_by_hot limit @@ -214,7 +233,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/models/issue.rb b/app/models/issue.rb index cc321aad0..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]}, @@ -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 ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self)+1}-#{self.project.issues.count})"#.parameterize + end + # Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields def available_custom_fields (project && tracker) ? (project.all_issue_custom_fields & tracker.custom_fields.all) : [] 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 } diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 7166f306f..f8159fc7a 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -9,14 +9,14 @@ <% end %> @@ -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)%>

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 e475bbd5f..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,14 @@ @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 + @nav_dispaly_forum_label = 1 else @nav_dispaly_course_label = 1 @nav_dispaly_project_label = 1 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 9d2aaccdd..fd81c636e 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -35,7 +35,7 @@ diff --git a/app/views/welcome/_search_project.html.erb b/app/views/welcome/_search_project.html.erb new file mode 100644 index 000000000..61770cace --- /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/course.html.erb b/app/views/welcome/course.html.erb index a5b5a351c..e1890a7e6 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -95,7 +95,8 @@ <%= l(:label_welcome_trustie_course) %> , <%= l(:label_welcome_trustie_course_description) %>
    diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 3f9ddea3c..0af0dea21 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -87,15 +87,16 @@
    <%= l(:label_welcome_trustie_project) %> , <%= l(:label_welcome_trustie_project_description) %>
    - @@ -105,39 +106,44 @@ <%= stylesheet_link_tag 'welcome' %> - -
    -
      -
      -

      贴吧动态

      - <%= link_to "更多>>", forums_path %> -
      -
      - <% find_new_forum_topics(8).each do |topic|%> -
    • -
      -       - <%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;", :target => "_blank" %> - -
      - <%= l(:field_updated_on) %><%=time_tag_welcome(topic_last_time topic)%>前 - - 由 <%= link_to topic.author ? topic.author : 'Anonymous', user_path(topic.author_id), :style => "font-size: 9pt !important; color: rgb(17, 102, 173);", :target => "_blank" %> 发表 - - 回复(<%= link_to (topic.parent ? topic.parent.replies_count : topic.replies_count), topic.event_url, :target => "_blank" %>) +
      +

      热门项目

      + <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %> +
      +
        + <% find_miracle_project(10, 3).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(50, 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 %> -
      -
    -
    + <% end; reset_cycle %> + +
    +
    -
    +
    - -
    -

    热门项目

    - <%= 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 %> -

      -
      +
      +
        +
        +

        贴吧动态

        + <%= link_to "更多>>", forums_path %> +
        +
        + <% find_new_forum_topics(8).each do |topic|%> +
      • +
        +       + <%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;", :target => "_blank" %> + +
        + <%= l(:field_updated_on) %><%=time_tag_welcome(topic_last_time topic)%>前 + + 由 <%= link_to topic.author ? topic.author : 'Anonymous', user_path(topic.author_id), :style => "font-size: 9pt !important; color: rgb(17, 102, 173);", :target => "_blank" %> 发表 + + 回复(<%= link_to (topic.parent ? topic.parent.replies_count : topic.replies_count), topic.event_url, :target => "_blank" %>) +
      • <% end %> -
      -
      -
    +
    + +
    - -
    + + -
    + 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 1d1df605d..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,10 +264,10 @@ 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 :register, {:controller => 'account', :action => 'register', :host => Setting.forge_domain}, :if => Proc.new { !User.current.logged? && Setting.self_registration? } + 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', :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| @@ -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