diff --git a/Gemfile b/Gemfile
index b20c8653a..bfc0b773f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,7 +6,7 @@ unless RUBY_PLATFORM =~ /w32/
gem 'rubyzip'
gem 'zip-zip'
end
-gem 'seems_rateable'
+gem 'seems_rateable', path: 'lib/seems_rateable'
gem "rails", "3.2.13"
gem "jquery-rails", "~> 2.0.2"
gem "i18n", "~> 0.6.0"
@@ -72,6 +72,10 @@ end
group :development do
gem "rdoc", ">= 2.4.2"
+ if nil
+ gem 'thin'
+ gem 'rack-mini-profiler'
+ end
end
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 000000000..54d89f381
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,119 @@
+PATH
+ remote: lib/seems_rateable
+ specs:
+ seems_rateable (1.0.13)
+ jquery-rails
+ rails
+
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actionmailer (3.2.13)
+ actionpack (= 3.2.13)
+ mail (~> 2.5.3)
+ actionpack (3.2.13)
+ activemodel (= 3.2.13)
+ activesupport (= 3.2.13)
+ builder (~> 3.0.0)
+ erubis (~> 2.7.0)
+ journey (~> 1.0.4)
+ rack (~> 1.4.5)
+ rack-cache (~> 1.2)
+ rack-test (~> 0.6.1)
+ sprockets (~> 2.2.1)
+ activemodel (3.2.13)
+ activesupport (= 3.2.13)
+ builder (~> 3.0.0)
+ activerecord (3.2.13)
+ activemodel (= 3.2.13)
+ activesupport (= 3.2.13)
+ arel (~> 3.0.2)
+ tzinfo (~> 0.3.29)
+ activeresource (3.2.13)
+ activemodel (= 3.2.13)
+ activesupport (= 3.2.13)
+ activesupport (3.2.13)
+ i18n (= 0.6.1)
+ multi_json (~> 1.0)
+ acts-as-taggable-on (2.4.1)
+ rails (>= 3, < 5)
+ arel (3.0.2)
+ builder (3.0.0)
+ coderay (1.0.9)
+ erubis (2.7.0)
+ fastercsv (1.5.0)
+ hike (1.2.3)
+ i18n (0.6.1)
+ journey (1.0.4)
+ jquery-rails (2.0.3)
+ railties (>= 3.1.0, < 5.0)
+ thor (~> 0.14)
+ json (1.8.0)
+ mail (2.5.4)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.23)
+ multi_json (1.7.6)
+ mysql2 (0.3.11-x86-mingw32)
+ net-ldap (0.3.1)
+ polyglot (0.3.3)
+ rack (1.4.5)
+ rack-cache (1.2)
+ rack (>= 0.4)
+ rack-openid (1.3.1)
+ rack (>= 1.1.0)
+ ruby-openid (>= 2.1.8)
+ rack-ssl (1.3.3)
+ rack
+ rack-test (0.6.2)
+ rack (>= 1.0)
+ rails (3.2.13)
+ actionmailer (= 3.2.13)
+ actionpack (= 3.2.13)
+ activerecord (= 3.2.13)
+ activeresource (= 3.2.13)
+ activesupport (= 3.2.13)
+ bundler (~> 1.0)
+ railties (= 3.2.13)
+ railties (3.2.13)
+ actionpack (= 3.2.13)
+ activesupport (= 3.2.13)
+ rack-ssl (~> 1.3.2)
+ rake (>= 0.8.7)
+ rdoc (~> 3.4)
+ thor (>= 0.14.6, < 2.0)
+ rake (10.0.4)
+ rdoc (3.12.2)
+ json (~> 1.4)
+ ruby-openid (2.1.8)
+ sprockets (2.2.2)
+ hike (~> 1.2)
+ multi_json (~> 1.0)
+ rack (~> 1.0)
+ tilt (~> 1.1, != 1.3.0)
+ thor (0.18.1)
+ tilt (1.4.1)
+ treetop (1.4.14)
+ polyglot
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.37)
+
+PLATFORMS
+ x86-mingw32
+
+DEPENDENCIES
+ activerecord-jdbc-adapter (= 1.2.5)
+ activerecord-jdbcmysql-adapter
+ acts-as-taggable-on
+ builder (= 3.0.0)
+ coderay (~> 1.0.6)
+ fastercsv (~> 1.5.0)
+ i18n (~> 0.6.0)
+ jquery-rails (~> 2.0.2)
+ mysql2 (~> 0.3.11)
+ net-ldap (~> 0.3.1)
+ rack-openid
+ rails (= 3.2.13)
+ rdoc (>= 2.4.2)
+ ruby-openid (~> 2.1.4)
+ seems_rateable!
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 200810c4b..2f7d6e600 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -114,22 +114,12 @@ class IssuesController < ApplicationController
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
- # @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
- if User.current.admin? || User.current.id == @issue.author_id || User.current.id == @issue.assigned_to_id || ProjectInfo.manager?(User.current.id, @project)
- @edit_allowed = true
- # elsif User.current.id == @issue.author.id
- else
- @edit_allowed = false
- end
- # @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
+ @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
@priorities = IssuePriority.active
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'#by young
- #by huang
- # @change_flag = (@issue.author == User.current) || (User.current.admin?)
- #end
respond_to do |format|
format.html {
retrieve_previous_and_next_issue_ids
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 3f771bf77..730546aa6 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -128,7 +128,7 @@ class ProjectsController < ApplicationController
def index
#Modified by nie
- @project_type = params[:project_type]
+ @project_type = params[:project_type].to_i
per_page_option = 10
@projects_all = Project.active.visible.
@@ -177,30 +177,166 @@ class ProjectsController < ApplicationController
def course
@project_type = params[:project_type]
+ @school_id = params[:school_id]
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)
+ if @school_id == "0" or @school.nil?
+ @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)
+ else
+ @projects_all = Project.active.visible.
+ joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
+ joins(:course_extra).
+ where("#{Project.table_name}.project_type = ? AND #{Course.table_name}.school_id = ?", Project::ProjectType_course, @school_id)
+ end
@project_count = @projects_all.count
@project_pages = Paginator.new @project_count, per_page_option, params['page']
+
+#gcm activity count
+
+ @project_activity_count=Hash.new
+
+ @projects_all.each do |project|
+ @project_activity_count[project.id]=0
+ end
+ @project_ids=@project_activity_count.keys()
+
+ days = Setting.activity_days_default.to_i
+ date_to ||= Date.today + 1
+ date_from = date_to - days-1.years
+
+#approach 1
+=begin
+
+ @projects_all.each do |project|
+ #issue_count
+ issues=Issue.where("project_id=?",project.id)
+ issue_count=0
+ issues.each do |issue|
+ issue_count+=issue.journals.count
+ end
+
+ #repository_count
+ repositories=Repository.where("project_id=?",project.id)
+ repository_count=0
+ repositories.each do |repository|
+ repository_count+=repository.changesets.count
+ end
+
+ #news_count
+ news_count=News.where("project_id=?",project.id).count
+ #document_count
+ document_count=Document.where("project_id=?",project.id).count
+ #file_count
+ file_count=Attachment.where("container_type='Project' AND container_id=?",project.id).count
+
+ #message_count
+ boards=Board.where("project_id=?",project.id)
+ message_count=0
+ boards.each do |board|
+ message_count+=board.messages.count
+ end
+
+ #time_entry_count
+ time_entry_count=TimeEntry.where("project_id=?",project.id).count
+
+ #sum
+ @project_activity_count[project.id.to_s]=issue_count+repository_count+news_count+document_count+file_count+message_count+time_entry_count
+
+ end
+=end
+#gcm
+
+#gcm approach 2
+
+ #issue_count
+ Issue.where(project_id: @project_ids).where("updated_on>?",date_from).each do |issue|
+# @project_activity_count[issue.project_id.to_s]+=1
+ @project_activity_count[issue.project_id]+=issue.journals.where("created_on>?",date_from).count
+ end
+
+ #repository_count
+ Repository.where(project_id: @project_ids).each do |repository|
+# @project_activity_count[repository.project_id.to_s]+=1
+ @project_activity_count[repository.project_id]+=repository.changesets.where("committed_on>?",date_from).count
+ end
+
+
+ #news_count
+ News.where(project_id: @project_ids).where("created_on>?",date_from).each do |news|
+ @project_activity_count[news.project_id]+=1
+ end
+
+ #document_count
+ Document.where(project_id: @project_ids).where("created_on>?",date_from).each do |document|
+ @project_activity_count[document.project_id]+=1
+ end
+
+ #file_count
+ Attachment.where(container_id: @project_ids).where("container_type='Project' AND created_on>?",date_from).each do |attachment|
+ @project_activity_count[attachment.container_id]+=1
+ end
+
+ #message_count
+ Board.where(project_id: @project_ids).each do |board|
+# @project_activity_count[board.project_id]+=1
+ @project_activity_count[board.project_id]+=board.messages.where("updated_on>?",date_from).count
+ end
+
+ #time_entry_count
+ TimeEntry.where(project_id: @project_ids).where("updated_on>?",date_from).each do |timeentry|
+ @project_activity_count[timeentry.project_id]+=1
+ end
+
+ #feedbackc_count
+ JournalsForMessage.where(jour_id: @project_ids).each do |jourformess|
+ @project_activity_count[jourformess.jour_id]+=1
+ end
+
+ #@project_activity_count!=0
+ @project_all_array=[]
+ i=0;
+ @projects_all.each do |project|
+ id=project.id
+ @project_all_array[i]=project
+ if @project_activity_count[id]==0
+ @project_activity_count[id]=1
+ end
+ i=i+1
+ end
+
+ @project_activity_count_array=@project_activity_count.values()
+
+#gcm end
+
case params[:project_sort_type]
when '0'
@projects = @projects_all.order("created_on desc")
@s_type = 0
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
when '1'
@projects = @projects_all.order("course_ac_para desc")
@s_type = 1
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
when '2'
@projects = @projects_all.order("watchers_count desc")
@s_type = 2
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
+
+ #gcm
+ when '3'
+ @projects=desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@project_all_array)
+ @s_type = 3
+ @projects = @projects[@project_pages.offset, @project_pages.per_page]
+ #gcmend
+
else
@s_type = 0
@projects = @projects_all.order("created_on desc")
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
end
- @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
respond_to do |format|
format.html {
@@ -220,8 +356,8 @@ class ProjectsController < ApplicationController
def search
#modified by nie
- project_type = params[:project_type]
- projects_all = (project_type.eql? Project::ProjectType_project) ? Project.project_entities : Project.course_entities
+ project_type = params[:project_type].to_i
+ projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities
@projects = projects_all.visible
@projects = @projects.visible.like(params[:name]) if params[:name].present?
@offset, @limit = api_offset_and_limit({:limit => 10})
@@ -392,7 +528,8 @@ class ProjectsController < ApplicationController
# added by bai
@course.term = params[:term]
@course.time = params[:time]
- @course.school_id = params[:occupation]
+ #@course.school_id = params[:occupation]
+ @course.school_id = User.current.user_extensions.school_id
@course.setup_time = params[:setup_time]
@course.endup_time = params[:endup_time]
@course.class_period = params[:class_period]
@@ -575,7 +712,7 @@ class ProjectsController < ApplicationController
"show_journals_for_messages" => true
}
@date_to ||= Date.today + 1
- @date_from = @date_to - @days
+ @date_from = @date_to - @days-1.years
@with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1')
@author = (params[:user_id].blank? ? nil : User.active.find(params[:user_id]))
# 决定显示所用用户或单个用户活动
@@ -725,7 +862,7 @@ class ProjectsController < ApplicationController
if params[:project][:is_public] == '0'
project_status = ProjectStatus.find_by_project_id(@project.id)
- project_status.destroy
+ project_status.destroy if project_status
elsif params[:project][:is_public] == '1'
project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => @project.watchers.count, :changesets_count => @project.changesets.count,:grade => 0, :project_type => @project.project_type)
end
@@ -880,4 +1017,32 @@ class ProjectsController < ApplicationController
@users -= watched.watcher_users
end
end
+
+ def desc_sort_course_by_avtivity(ids,activity_count,projects)
+ return projects if activity_count.size<2
+ (activity_count.size-2).downto(0) do |i|
+ (0..i).each do |j|
+ if activity_count[j]activity_count[j+1] do
+ # count_temp=activity_count[j]
+
+ # activity_count[j]=activity_count[j+1]
+ # activity_count[j+1]=count_temp
+ # end
+ # end
+ # end
+#desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@projects_all)
+ end
end
diff --git a/app/controllers/ratings_controller.rb b/app/controllers/ratings_controller.rb
deleted file mode 100644
index 5ae478af8..000000000
--- a/app/controllers/ratings_controller.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require_dependency "seems_rateable/application_controller"
-
-class RatingsController < ::ApplicationController
- def create
- raise NoCurrentUserInstanceError unless current_user
-
- obj = params[:kls].classify.constantize.find(params[:idBox])
- begin
- obj.rate(params[:rate].to_i, current_user.id, params[:dimension])
- render :json => true
- rescue Errors::AlreadyRatedError
- render :json => {:error => true}
- end
- end
-end
diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb
index 749491b69..9ef935cf7 100644
--- a/app/controllers/school_controller.rb
+++ b/app/controllers/school_controller.rb
@@ -1,4 +1,16 @@
class SchoolController < ApplicationController
+
+ before_filter :require_admin, :only => :upload_logo
+
+ def upload_logo
+
+ end
+
+
+ def index
+
+ end
+
def get_options
@school = School.where("province = ?", params[:province])
p = params[:province]
@@ -6,10 +18,34 @@ class SchoolController < ApplicationController
options = ""
@school.each do |s|
- options << ""
+ #options << ""
+ options << "#{s.name}"
end
+
render :text => options
end
+
+ def get_schoollist
+ @school = School.where("province = ?", params[:province])
+
+ options = ""
+ @school.each do |s|
+ options << "#{s.name}"
+ end
+
+ render :text => options
+ end
+
+ def search_school
+ @school = School.where("province = ? AND name LIKE '%"+params[:key_word]+"%'", params[:province]);
+
+ options = ""
+ @school.each do |s|
+ options << "#{s.name}"
+ end
+
+ render :text => options
+ end
end
diff --git a/app/controllers/softapplications_controller.rb b/app/controllers/softapplications_controller.rb
index 9f14aa118..9cc940bdd 100644
--- a/app/controllers/softapplications_controller.rb
+++ b/app/controllers/softapplications_controller.rb
@@ -1,4 +1,8 @@
class SoftapplicationsController < ApplicationController
+ before_filter :find_softapplication, only: [:edit, :update, :destroy]
+ before_filter :editable, only: [:edit, :update]
+ before_filter :destroyable, only: :destroy
+
# GET /softapplications
# GET /softapplications.json
def index
@@ -71,8 +75,9 @@ class SoftapplicationsController < ApplicationController
# PUT /softapplications/1
# PUT /softapplications/1.json
def update
- @softapplication = Softapplication.find(params[:id])
-
+ # @softapplication = Softapplication.find(params[:id])
+ @softapplication.attachments.map{|attach| attach.destroy }
+ @softapplication.save_attachments(params[:attachments])
respond_to do |format|
if @softapplication.update_attributes(params[:softapplication])
format.html { redirect_to @softapplication, notice: 'Softapplication was successfully updated.' }
@@ -92,11 +97,11 @@ class SoftapplicationsController < ApplicationController
# DELETE /softapplications/1
# DELETE /softapplications/1.json
def destroy
- @softapplication = Softapplication.find(params[:id])
+ # @softapplication = Softapplication.find(params[:id])
@softapplication.destroy
respond_to do |format|
- format.html { redirect_to softapplications_url }
+ format.html { redirect_to home_path }
format.json { head :no_content }
end
end
@@ -192,4 +197,24 @@ class SoftapplicationsController < ApplicationController
#format.api { render_api_ok }
end
end
+
+ private
+ def find_softapplication
+ @softapplication = Softapplication.find_by_id(params[:id])
+ end
+
+ def editable
+ unless @softapplication.editable_by? User.current
+ render_403
+ return false
+ end
+ end
+
+ def destroyable
+ unless @softapplication.destroyable_by? User.current
+ render_403
+ return false
+ end
+ end
+
end
diff --git a/app/controllers/test_controller.rb b/app/controllers/test_controller.rb
index cb28f4e66..0623dbee2 100644
--- a/app/controllers/test_controller.rb
+++ b/app/controllers/test_controller.rb
@@ -1,4 +1,6 @@
class TestController < ApplicationController
+
+ helper :UserScore
def zip
homeworks_attach_path = []
diff --git a/app/controllers/user_score_controller.rb b/app/controllers/user_score_controller.rb
new file mode 100644
index 000000000..0676155ad
--- /dev/null
+++ b/app/controllers/user_score_controller.rb
@@ -0,0 +1,6 @@
+class UserScoreController < ApplicationController
+ helper :UserScore
+
+
+
+end
diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb
index d566c9b86..5e8eef074 100644
--- a/app/controllers/welcome_controller.rb
+++ b/app/controllers/welcome_controller.rb
@@ -17,7 +17,7 @@
class WelcomeController < ApplicationController
caches_action :robots
- before_filter :fake, :only => [:index, :course]
+ # before_filter :fake, :only => [:index, :course]
before_filter :entry_select_course, :entry_select_contest, :entry_select_user, :only => [:index]
def index
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index ad90f8942..859b19655 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -255,26 +255,17 @@ module ApplicationHelper
end
classes = (ancestors.empty? ? 'root' : 'child')
s << ""
- if params[:project_type] == "0"
+ if project.try(:project_type) == Project::ProjectType_project
s << h(block_given? ? yield(project) : project.name)
else
end
- # if @project.project_type == 1
- # unless Course.find_by_extra(@project.identifier).nil?
- # unless Course.find_by_extra(@project.identifier).tea_id == User.current.id
- # s << ""
- # s << join_in_course(@project, User.current)#, ['whiteButton'])
- # s << ""
- # end
- # end
- # end
- if params[:project_type] == "0"
+ if project.try(:project_type) == Project::ProjectType_project
unless User.current.member_of?(@project)
s << ""
s << watcher_link(@project, User.current)#, ['whiteButton'])
s << ""
- end
+ end
s << (render :partial => 'projects/project', :locals => {:project => project}).to_s
else
s << (render :partial => 'projects/course', :locals => {:project => project}).to_s
@@ -1579,9 +1570,14 @@ module ApplicationHelper
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'}
+
+ school_all_school_link = link_to l(:label_school_all), {:controller => 'school', :action => 'index'}
+
+
#@nav_dispaly_project_label
nav_list = Array.new
nav_list.push(home_link) if !@nav_dispaly_home_path_label
+ nav_list.push(school_all_school_link) if @nav_dispaly_course_all_label
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/projects_helper.rb b/app/helpers/projects_helper.rb
index 2d2934cc2..5bd677bdf 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -69,18 +69,29 @@ module ProjectsHelper
content << content_tag('li', link_to(l(:label_sort_by_time), course_path(:project_sort_type => '0', :project_type => project_type), :class=>"selected"), :class=>"selected")
content << content_tag('li', link_to(l(:label_sort_by_active), course_path(:project_sort_type => '1', :project_type => project_type)))
# content << content_tag('li', link_to(l(:label_sort_by_influence), course_path(:project_sort_type => '2', :project_type => project_type)))
+ content << content_tag('li', link_to(l(:label_sort_by_activity), course_path(:project_sort_type => '3', :project_type => project_type)))
when 1
content << content_tag('li', link_to(l(:label_sort_by_time), course_path(:project_sort_type => '0', :project_type => project_type)))
content << content_tag('li', link_to(l(:label_sort_by_active), course_path(:project_sort_type => '1', :project_type => project_type), :class=>"selected"), :class=>"selected")
# content << content_tag('li', link_to(l(:label_sort_by_influence), course_path(:project_sort_type => '2', :project_type => project_type)))
+ content << content_tag('li', link_to(l(:label_sort_by_activity), course_path(:project_sort_type => '3', :project_type => project_type)))
when 2
content << content_tag('li', link_to(l(:label_sort_by_time), course_path(:project_sort_type => '0', :project_type => project_type)))
content << content_tag('li', link_to(l(:label_sort_by_active), course_path(:project_sort_type => '1', :project_type => project_type)))
# content << content_tag('li', link_to(l(:label_sort_by_influence), course_path(:project_sort_type => '2', :project_type => project_type), :class=>"selected"), :class=>"selected")
-
+ content << content_tag('li', link_to(l(:label_sort_by_activity), course_path(:project_sort_type => '3', :project_type => project_type)))
+
+ #gcm
+ when 3
+ content << content_tag('li', link_to(l(:label_sort_by_time), course_path(:project_sort_type => '0', :project_type => project_type)))
+ content << content_tag('li', link_to(l(:label_sort_by_active), course_path(:project_sort_type => '1', :project_type => project_type)))
+ # content << content_tag('li', link_to(l(:label_sort_by_influence), course_path(:project_sort_type => '2', :project_type => project_type)))
+ content << content_tag('li', link_to(l(:label_sort_by_activity), course_path(:project_sort_type => '3', :project_type => project_type), :class=>"selected"), :class=>"selected")
end
+ #gcmend
+
content = content_tag('ul', content)
content_tag('div', content, :class => "tabs")
end
@@ -164,7 +175,7 @@ module ProjectsHelper
def render_project_hierarchy(projects)
render_project_nested_lists(projects) do |project|
#Modified by young
- if (project.project_type==1)
+ if (project.try(:project_type) == Project::ProjectType_course )
s = link_to_project(project, {}, :class => "#{project.css_classes} #{User.current.member_of?(project) ? 'my-project' : nil}").html_safe
else
s = link_to_project(project, {}, :class => "#{project.css_classes} #{User.current.member_of?(project) ? 'my-project' : nil}")
diff --git a/app/helpers/user_score_helper.rb b/app/helpers/user_score_helper.rb
index ff4a5adbd..5b455a01b 100644
--- a/app/helpers/user_score_helper.rb
+++ b/app/helpers/user_score_helper.rb
@@ -24,21 +24,171 @@ module UserScoreHelper
issues.each do |issue|
issue_c = issue_c + issue.journals.where("user_id <> ?", user.id).count
end
- issue_c = issue_c + Journal.where("user_id = ?", user.id)
+ issue_c = issue_c + Journal.where("user_id = ?", user.id).count
+ ############################
+ memos = Memo.where('author_id = ? AND parent_id IS NOT NULL', user.id)
+
+ memos.each do |m|
+ if Memo.find(m.parent_id).author.id != user.id
+ issue_c = issue_c + 1
+ else
+ issue_c = issue_c - 1
+ end
+ end
+
+
+ pmemos = Memo.where('author_id = ? AND parent_id IS NULL', user.id)
+ pmemos.each do |pm|
+ issue_c = issue_c + pm.replies_count
+ end
+ ############################
+
+ issue_c = issue_c + JournalsForMessage.where('user_id = ? AND reply_id IS NOT NULL AND reply_id <> ?', user.id, user.id).count + JournalsForMessage.where('reply_id = ? AND user_id <> ?', user.id, user.id).count
+
+
return issue_c
end
def calculate_influence_count(user)
- watcher_count = watcher_users(User.current.id).count
+ watcher_count = Watcher.where("watchable_type = 'principal' AND watchable_id = ?", user.id).count
end
def calculate_skill_count(user)
- 0
+
+ praise_count = 0
+ tread_count = 0
+ issues = Issue.where('author_id = ?', user.id)
+ issues.each do |i|
+ ptcs = PraiseTreadCache.where('object_id = ?', i.id)
+ ptcs.each do |p|
+ praise_count = praise_count + p.praise_num
+ tread_count = tread_count + p.tread_num
+ end
+ end
+
+ bids = Bid.where('author_id = ?', user.id)
+ bids.each do |b|
+ ptcs = PraiseTreadCache.where('object_id = ?', b.id)
+ ptcs.each do |p|
+ praise_count = praise_count + p.praise_num
+ tread_count = tread_count + p.tread_num
+ end
+ end
+
+ contests = Contest.where('author_id = ?', user.id)
+ contests.each do |c|
+ ptcs = PraiseTreadCache.where('object_id = ?', c.id)
+ ptcs.each do |p|
+ praise_count = praise_count + p.praise_num
+ tread_count = tread_count + p.tread_num
+ end
+ end
+
+
+ level = calculate_level(user)
+
+ skill_score = 0
+
+ if level == 0
+ skill_score = praise_count - 0.5 * tread_count
+ end
+ if level == 1
+ skill_score = 2 * praise_count - 1.5 * tread_count
+ end
+ if level == 2
+ skill_socre = 3 * praise_count - 2.5 * tread_count
+ end
+ if level == 3
+ skill_socre = 4 * praise_count - 3.5 * tread_count
+ end
+ if level == 4
+ skill_socre = 5 * praise_count - 4.5 * tread_count
+ end
+
+# case level
+# when 0 skill_score = praise_count - 0.5 * tread_count
+# when 1 skill_score = 2 * praise_count - 1.5 * tread_count
+# when 2 skill_socre = 3 * praise_count - 2.5 * tread_count
+# when 3 skill_socre = 4 * praise_count - 3.5 * tread_count
+# when 4 skill_socre = 5 * praise_count - 4.5 * tread_count
+# end
+
+
+
+ tread_user_count = PraiseTread.where('praise_or_tread = ? AND user_id = ?', 0, user.id).count
+
+ skill_score = skill_score - 0.5 * tread_user_count
+
+ return skill_score
+
+
+
end
def calculate_level(user)
- 1
+ commit_count = user.changesets.count
+ max_praise_num = 0
+
+
+ issues = Issue.where('author_id = ?', user.id)
+ issues.each do |i|
+ ptcs = PraiseTreadCache.where('object_id = ?', i.id)
+ ptcs.each do |p|
+ if p.praise_num > max_praise_num
+ max_praise_num = p.praise_num
+ end
+ end
+ end
+
+ bids = Bid.where('author_id = ?', user.id)
+ bids.each do |b|
+ ptcs = PraiseTreadCache.where('object_id = ?', b.id)
+ ptcs.each do |p|
+ if p.praise_num > max_praise_num
+ max_praise_num = p.praise_num
+ end
+ end
+ end
+
+ contests = Contest.where('author_id = ?', user.id)
+ contests.each do |c|
+ ptcs = PraiseTreadCache.where('object_id = ?', c.id)
+ ptcs.each do |p|
+ if p.praise_num > max_praise_num
+ max_praise_num = p.praise_num
+ end
+ end
+ end
+
+
+ best_answer_num = 0
+
+ isManager = 0
+ members = Member.where('user_id = ?', user.id)
+ members.each do |m|
+ roles = m.member_roles
+ roles.each do |r|
+ if r.role_id == 3
+ isManager = 1
+ end
+ end
+ end
+
+ level = 0
+
+ if max_praise_num > 4
+ level = 1
+ end
+ if commit_count > 0 and commit_count < 101
+ level = 1
+ end
+ if commit_count > 100 or isManager == 1
+ level = 2
+ end
+
+ return level
+
end
def calculate_activity_count(user)
@@ -51,13 +201,13 @@ module UserScoreHelper
# end
# file_count = user.file_commit.count
# issue_count = Issue.where('author_id = ?', user.id).count
- f = user.user_score.file
- i = user.user_score.issue
- f_max = UserScore.find_max_file
- f_min = UserScore.find_min_file
- i_max = UserScore.find_max_issue
- i_min = UserScore.find_min_issue
- score = 100 * ((f - f_min)/(f_max - f_min) + (i - i_min)/(i_max - i_min))
+ #f = user.user_score.file
+ #i = user.user_score.issue
+ #f_max = UserScore.find_max_file
+ #f_min = UserScore.find_min_file
+ #i_max = UserScore.find_max_issue
+ #i_min = UserScore.find_min_issue
+ #score = 100 * ((f - f_min)/(f_max - f_min) + (i - i_min)/(i_max - i_min))
end
def calculate_file(user)
@@ -72,8 +222,14 @@ module UserScoreHelper
issue_details_count = 0
issues = Issue.where('assigned_to_id = ?', user.id)
+ change_count = 0
issues.each do |issue|
- change_count = issue.journals.where("prop_key = ?", "done_ratio").count
+ js = issue.journals
+ js.each do |j|
+ change_count = change_count + j.details.where("prop_key = ?", "done_ratio").count
+ end
+
+
issue_details_count = change_count + issue_details_count
end
@@ -89,7 +245,9 @@ module UserScoreHelper
file = calculate_file(user)
issue = calculate_issue(user)
level = calculate_level(user)
- user.user_score << UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
+ #user.user_score << UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
+ # :activity => activity, :file => file, :issue => issue, :level => level)
+ UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
:activity => activity, :file => file, :issue => issue, :level => level)
end
@@ -97,12 +255,17 @@ module UserScoreHelper
collaboration = calculate_collaboration_count(user)
influence = calculate_influence_count(user)
skill = calculate_skill_count(user)
- activity = calculate_activity_count(user)
file = calculate_file(user)
issue = calculate_issue(user)
+
+ ##activity = calculate_activity_count(user)
+
level = calculate_level(user)
user.user_score.update_attributes(:collaboration => collaboration, :influence => influence, :skill => skill,
:activity => activity, :file => file, :issue => issue, :level => level)
end
+
+
+
end
diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb
index 9970ee9c6..53869b9ed 100644
--- a/app/helpers/welcome_helper.rb
+++ b/app/helpers/welcome_helper.rb
@@ -56,12 +56,49 @@ module WelcomeHelper
# # => 前7个项目为新课程,后面三个是参与人数最多的
#
# Returns project&courses array
- def find_miracle_course(sum=10, max_rate=7)
- Project.active.visible.course_entities.
- joins(:course_extra).
- joins(:memberships).
- group('members.project_id').
- reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+ def find_miracle_course(sum=10, max_rate=7, school_id)
+
+ if User.current.user_extensions.school.nil? and school_id.nil?
+ Project.active.visible.course_entities.
+ joins(:course_extra).
+ joins(:memberships).
+ group('members.project_id').
+ reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+# elseif school_id.nil?
+
+ else
+ if school_id.nil?
+ Project.active.visible.course_entities.
+ joins(:course_extra).
+ joins(:memberships).
+ where("#{Course.table_name}.school_id = ?", User.current.user_extensions.school.id).
+ group('members.project_id').
+ reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+ else
+ if school_id == "0"
+ Project.active.visible.course_entities.
+ joins(:course_extra).
+ joins(:memberships).
+ group('members.project_id').
+ reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+ else
+ Project.active.visible.course_entities.
+ joins(:course_extra).
+ joins(:memberships).
+ where("#{Course.table_name}.school_id = ?", school_id).
+ group('members.project_id').
+ reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+ end
+ end
+ end
+# else
+# Project.active.visible.course_entities.
+# joins(:course_extra).
+# joins(:memberships).
+# where("#{Course.table_name}.school_id = ?", school_id).
+# group('members.project_id').
+# reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
+# end
# max = sum*(max_rate.to_f/10)
# c1 = find_new_course(sum).to_a.dup
# c2 = find_all_hot_course(sum).to_a.dup
@@ -98,14 +135,14 @@ module WelcomeHelper
end
def find_all_hot_contest limit=10
- # Contest.reorder("created_on DESC").all.take limit
- mix_bid = []
- mix_bid += Contest.reorder("created_on DESC").take(limit).to_a
- mix_bid += Bid.visible.where('reward_type = ?', 2).reorder('bids.created_on desc').take(limit).to_a
- mix_bid.sort do |older, newer|
- newer.created_on - older.created_on
- end
- mix_bid.take limit
+ Contest.reorder("created_on DESC").all.take limit
+ # mix_bid = []
+ # mix_bid += Contest.reorder("created_on DESC").take(limit).to_a
+ # mix_bid += Bid.visible.where('reward_type = ?', 2).reorder('bids.created_on desc').take(limit).to_a
+ # mix_bid.sort do |older, newer|
+ # newer.created_on - older.created_on
+ # end
+ # mix_bid.take limit
end
def find_all_hot_softapplication limit=10
diff --git a/app/models/attachment.rb b/app/models/attachment.rb
index 919760ee3..73ae44b4d 100644
--- a/app/models/attachment.rb
+++ b/app/models/attachment.rb
@@ -181,7 +181,7 @@ class Attachment < ActiveRecord::Base
end
def pack?
- !!(self.filename =~ /\.(zip|rar|tar|gz)$/i)
+ !!(self.filename =~ /\.(zip|rar|tar|gz|exe|jar|7z|iso)$/i)
end
def thumbnailable?
diff --git a/app/models/bid.rb b/app/models/bid.rb
index fd389c15f..e58e640a0 100644
--- a/app/models/bid.rb
+++ b/app/models/bid.rb
@@ -29,6 +29,7 @@ class Bid < ActiveRecord::Base
has_many :courses, :through => :homework_for_courses, :source => :project
has_many :homeworks, :class_name => 'HomeworkAttach', :dependent => :destroy
has_many :join_in_contests, :dependent => :destroy
+ has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
# has_many :fork_homework, :class_name => 'Bid', :conditions => "#{Bid.table_name}.parent_id = #{id}"
diff --git a/app/models/contest.rb b/app/models/contest.rb
index edc252574..9a3268654 100644
--- a/app/models/contest.rb
+++ b/app/models/contest.rb
@@ -12,6 +12,7 @@ class Contest < ActiveRecord::Base
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
has_many :join_in_competitions, foreign_key: 'competition_id', :dependent => :destroy
has_many :join_in_contests, class_name: 'JoinInCompetition', foreign_key: 'competition_id', :dependent => :destroy
+ has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
@@ -24,7 +25,7 @@ class Contest < ActiveRecord::Base
validates_length_of :description, :maximum => DESCRIPTION_LENGTH_LIMIT
validates_presence_of :author_id, :name, :deadline
validates_format_of :deadline, :with => /^[\d]{4}[-][\d]{1,2}[-][\d]{1,2}$/
- validates_format_of :budget, :with => /^(\d+)$|^(\d+).([0-9]{2})|^(\d+).([0-9]{1})$/
+ # validates_format_of :budget, :with => /^(\d+)$|^(\d+).([0-9]{2})|^(\d+).([0-9]{1})$/
validate :validate_user
after_create :act_as_activity
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 43bc6537d..b69ac246c 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -45,7 +45,8 @@ class Issue < ActiveRecord::Base
# added by fq
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
- # end
+ # end
+ has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
acts_as_nested_set :scope => 'root_id', :dependent => :destroy
diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index aee837ac4..3db787525 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -446,7 +446,9 @@ class Mailer < ActionMailer::Base
def self.deliver_mail(mail)
return false if mail.to.blank? && mail.cc.blank? && mail.bcc.blank?
- super
+ Thread.new do
+ super
+ end
end
def self.method_missing(method, *args, &block)
diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb
index 901a31660..c27e1fc9f 100644
--- a/app/models/praise_tread.rb
+++ b/app/models/praise_tread.rb
@@ -1,4 +1,6 @@
class PraiseTread < ActiveRecord::Base
attr_accessible :user_id,:praise_tread_object_id,:praise_tread_object_type,:praise_or_tread
+ belongs_to :user
+ belongs_to :praise_tread_object, polymorphic: true
end
diff --git a/app/models/softapplication.rb b/app/models/softapplication.rb
index 205ede48b..6782b2436 100644
--- a/app/models/softapplication.rb
+++ b/app/models/softapplication.rb
@@ -7,7 +7,7 @@ class Softapplication < ActiveRecord::Base
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :contesting_softapplications, :dependent => :destroy
belongs_to :user
- belongs_to :contest
+ has_many :contests, :through => :contesting_softapplications
def add_jour(user, notes, reference_user_id = 0, options = {})
if options.count == 0
@@ -21,6 +21,13 @@ class Softapplication < ActiveRecord::Base
def set_commit(commit)
self.update_attribute(:commit, commit)
end
-
+
+ def editable_by? usr
+ usr.admin? || self.user == usr
+ end
+
+ def destroyable_by? usr
+ self.user == usr || usr.admin?
+ end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 1809c3a98..20624888a 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -96,7 +96,7 @@ class User < Principal
has_many :students_for_courses
has_many :courses, :through => :students_for_courses, :source => :project
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
- has_many :file_commit, :class_name => 'Attachment', :foreign_key => 'author_id', :conditions => "container_tpye = 'Project' or container_type = 'Version'"
+ has_many :file_commit, :class_name => 'Attachment', :foreign_key => 'author_id', :conditions => "container_type = 'Project' or container_type = 'Version'"
####
# added by bai
has_many :join_in_contests, :dependent => :destroy
@@ -105,7 +105,7 @@ class User < Principal
has_many :wiki_contents, :foreign_key => 'author_id'
has_many :journals
has_many :messages, :foreign_key => 'author_id'
- has_one :user_socre, :dependent => :destroy
+ has_one :user_score, :dependent => :destroy
# end
######added by nie
diff --git a/app/views/contests/_list_softapplications.html.erb b/app/views/contests/_list_softapplications.html.erb
index 29c985b7e..eb179718a 100644
--- a/app/views/contests/_list_softapplications.html.erb
+++ b/app/views/contests/_list_softapplications.html.erb
@@ -6,7 +6,7 @@
应用软件: |
- <%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication)) %>
+ <%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication), :target => '_blank') %>
|
diff --git a/app/views/contests/settings.html.erb b/app/views/contests/settings.html.erb
index def1c7f5d..a2780f060 100644
--- a/app/views/contests/settings.html.erb
+++ b/app/views/contests/settings.html.erb
@@ -1,5 +1,9 @@
-<%=l(:label_settings)%>
+
+
<%=l(:label_contest_settings)%> |
+
+
+
+
diff --git a/app/views/layouts/_base_softapplication_top_content.html.erb b/app/views/layouts/_base_softapplication_top_content.html.erb
new file mode 100644
index 000000000..064e84cf0
--- /dev/null
+++ b/app/views/layouts/_base_softapplication_top_content.html.erb
@@ -0,0 +1,20 @@
+
+
+
+ 创新竞赛社区 |
+ <%= l(:label_user_location) %> : |
+ |
+
+
+
+ <%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %> |
+ <%=link_to l(:field_homepage), home_path %> >
+ <%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
+
+ <% contest = @softapplication.contests.first %><%= contest ? link_to(contest.name, show_contest_contest_path(contest)) : '尚未加入竞赛'%>
+
+
+ |
+
+
+
\ No newline at end of file
diff --git a/app/views/layouts/base.html.erb b/app/views/layouts/base.html.erb
index 17109b256..92bc93c3e 100644
--- a/app/views/layouts/base.html.erb
+++ b/app/views/layouts/base.html.erb
@@ -10,6 +10,7 @@
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %>
+<%= javascript_include_tag "jquery.leanModal.min" %>
<%= javascript_include_tag 'seems_rateable/jRating', 'seems_rateable/rateable'%>
<%= heads_for_theme %>
<%= call_hook :view_layouts_base_html_head %>
diff --git a/app/views/layouts/base_contest.html.erb b/app/views/layouts/base_contest.html.erb
index b4ba3dd4b..2bda701fe 100644
--- a/app/views/layouts/base_contest.html.erb
+++ b/app/views/layouts/base_contest.html.erb
@@ -26,23 +26,23 @@
- 创新竞赛社区 |
- <%= l(:label_user_location) %> : |
-
-
- <%= form_tag(:controller => 'bids', :action => 'contest', :method => :get) do %>
- <%= text_field_tag 'name', params[:name], :size => 20 %>
- <%= hidden_field_tag 'reward_type', @bid.reward_type %>
- <%= hidden_field_tag 'project_type', params[:project_type] %>
- <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
- <% end %>
-
- |
+ 创新竞赛社区 |
+ <%= l(:label_user_location) %> : |
+
+
+ <%= form_tag(:controller => 'bids', :action => 'contest', :method => :get) do %>
+ <%= text_field_tag 'name', params[:name], :size => 20 %>
+ <%= hidden_field_tag 'reward_type', @bid.reward_type %>
+ <%= hidden_field_tag 'project_type', params[:project_type] %>
+ <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
+ <% end %>
+
+ |
- <%=link_to request.host()+"/contest", :controller => 'bids', :action => 'contest' %> |
- <%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_contest_innovate), :controller => 'bids', :action => 'contest' %> >
- <%= link_to @bid.name, bid_path %> |
+ <%=link_to request.host()+"/contest", :controller => 'bids', :action => 'contest' %> |
+ <%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_contest_innovate), :controller => 'bids', :action => 'contest' %> >
+ <%= link_to @bid.name, bid_path %> |
diff --git a/app/views/layouts/base_memos.html.erb b/app/views/layouts/base_memos.html.erb
index 4b7f4b96d..b033a81cc 100644
--- a/app/views/layouts/base_memos.html.erb
+++ b/app/views/layouts/base_memos.html.erb
@@ -33,7 +33,7 @@
<%= l(:label_user_location) %> : |
- <%= form_tag(:controller => 'projects', :action => "search", :method => :get) do %>
+ <%= form_tag(projects_search_path, :method => :get) do %>
<%= text_field_tag 'name', params[:name], :size => 20 %>
<%= hidden_field_tag 'project_type', params[:project_type] %>
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
diff --git a/app/views/layouts/base_newcontest.html.erb b/app/views/layouts/base_newcontest.html.erb
index ba78cefea..07654eddb 100644
--- a/app/views/layouts/base_newcontest.html.erb
+++ b/app/views/layouts/base_newcontest.html.erb
@@ -27,24 +27,24 @@
- 创新竞赛社区 |
- <%= l(:label_user_location) %> : |
-
-
- <%= form_tag({controller: 'contests', action: 'index'}, method: :get) do %>
- <%= text_field_tag 'name', params[:name], :size => 20 %>
- <%= hidden_field_tag 'project_type', params[:project_type] %>
- <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
- <% end %>
-
- |
+ 创新竞赛社区 |
+ <%= l(:label_user_location) %> : |
+
+
+ <%= form_tag({controller: 'contests', action: 'index'}, method: :get) do %>
+ <%= text_field_tag 'name', params[:name], :size => 20 %>
+ <%= hidden_field_tag 'project_type', params[:project_type] %>
+ <%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
+ <% end %>
+
+ |
- <%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %> |
- <%=link_to l(:field_homepage), home_path %> >
- <%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
- <%= link_to @contest.name, show_contest_contest_path %>
- |
+ <%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %> |
+ <%=link_to l(:field_homepage), home_path %> >
+ <%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
+ <%= link_to @contest.name, show_contest_contest_path %>
+ |
@@ -67,19 +67,24 @@
<% if User.current.login? %>
- <%= join_in_competition(@contest, User.current)%>
+
<%= new_watcher_link(@contest, User.current) %>
|
<% end %>
<% if User.current.logged? %>
- <% if @contest.author.id == User.current.id %>
+ <% if (@contest.author.id == User.current.id) || User.current.admin? %>
<%= link_to l(:label_contest_modify_settings), {:controller => 'contests', :action => 'settings', :id => @contest} %>
|
+
+
+ <%= link_to l(:label_contest_delete), {:controller => 'contests', :action => 'destroy_contest', :id => @contest}, data: { confirm: '你确定要删除该竞赛吗?' } %>
+ |
+
<% end %>
<% end %>
@@ -91,9 +96,9 @@
-
+
|
<%=link_to "#{@contest.projects.where('is_public=1').count}", :controller => 'contests', :action => 'show_project' %>
|
@@ -103,7 +108,7 @@
- <%= l(:label_participate) %> |
+
<%= l(:label_contest_project) %> |
<%= l(:label_contest_application) %> |
@@ -145,13 +150,13 @@
<%= l(:label_create_time) %>:<%= format_time(@contest.created_on) %>
- <% if User.current.logged? %>
+
@@ -199,7 +204,7 @@
-
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 1a4ed1b47..7504e5755 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -30,7 +30,7 @@
<%= l(:label_user_location) %> : |
- <%= form_tag(:controller => 'projects', :action => "search", :method => :get) do %>
+ <%= form_tag(projects_search_path, :method => :get) do %>
<%= text_field_tag 'name', params[:name], :size => 20 %>
<%= hidden_field_tag 'project_type', params[:project_type] %>
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb
index e46b25fc4..341c050d7 100644
--- a/app/views/my/account.html.erb
+++ b/app/views/my/account.html.erb
@@ -1,3 +1,16 @@
+
+
+
+
+
+
@@ -88,12 +106,50 @@
-->
+
+
- <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onchange => "get_options(this.value)" %>
+ <% unless User.current.user_extensions.school.nil? %>
+ <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province, User.current.user_extensions.school.province), :onclick => "get_options(this.value)" %>
+
+
+
+
+
- <%= select_tag "occupation" %>
+
+ <% else %>
+ <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onclick => "get_options(this.value)" %>
+
+
+
+ <% end %>
+
+
+
+
+
+
diff --git a/app/views/projects/_course.html.erb b/app/views/projects/_course.html.erb
index f55a80db3..33d222145 100644
--- a/app/views/projects/_course.html.erb
+++ b/app/views/projects/_course.html.erb
@@ -16,7 +16,10 @@
<%= content_tag('span', "#{l(:label_institution_name)}:", :class => "course-font")%>
<% @admin = @project.project_infos%>
<%if @admin&&@admin.first&&@admin.first.user&&@admin.first.user.user_extensions%>
- <%= @admin.first.user.user_extensions.occupation %>
+
+ <% unless @project.course_extra.school.nil? %>
+ <%= @project.course_extra.school.name %>
+ <% end %>
<% end %>
@@ -45,6 +48,15 @@
<%= content_tag('span', link_to("#{@project.members.count}", member_project_path(@project)), :class => "info") %>
<%= content_tag('span', l(:label_x_member, :count => @project.members.count)) %>
+
+
+
+
+ <%= content_tag('span', link_to("#{@project_activity_count[@project.id]}", member_project_path(@project)), :class => "info") %>
+ <%= content_tag('span', l(:label_x_activity, :count => @project_activity_count[@project.id])) %>
+
+
+
| |