diff --git a/.gitignore b/.gitignore
index 96788ad9a..5e8a94339 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ vendor/cache
/files
/public/images/avatars
/public/files
+/tags
diff --git a/Gemfile b/Gemfile
index d5fe6c581..0103a18b5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,6 +6,7 @@ unless RUBY_PLATFORM =~ /w32/
gem 'iconv'
end
+gem "mysql2", "= 0.3.18"
gem 'redis-rails'
gem 'rubyzip'
gem 'delayed_job_active_record'#, :group => :production
@@ -22,9 +23,6 @@ gem "builder", "3.0.0"
gem 'acts-as-taggable-on', '2.4.1'
gem 'spreadsheet'
gem 'ruby-ole'
-#gem 'email_verifier', path: 'lib/email_verifier'
-gem 'rufus-scheduler'
-#gem 'dalli', path: 'lib/dalli-2.7.2'
gem 'rails_kindeditor',path:'lib/rails_kindeditor'
group :development do
gem 'grape-swagger'
@@ -84,56 +82,13 @@ group :openid do
gem "rack-openid"
end
-# Optional gem for exporting the gantt to a PNG file, not supported with jruby
-platforms :jruby do
- # jruby-openssl is bundled with JRuby 1.7.0
- gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
- gem "activerecord-jdbc-adapter", "1.2.5"
-end
-# Include database gems for the adapters found in the database
-# configuration file
-require 'erb'
-require 'yaml'
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
- database_config = YAML::load(ERB.new(IO.read(database_file)).result)
- adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
- if adapters.any?
- adapters.each do |adapter|
- case adapter
- when 'mysql2'
- gem "mysql2", "= 0.3.18", :platforms => [:mri, :mingw]
- gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
- when 'mysql'
- gem "mysql", "~> 2.8.1", :platforms => [:mri, :mingw]
- gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
- when /postgresql/
- gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
- gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
- when /sqlite3/
- gem "sqlite3", :platforms => [:mri, :mingw]
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
- when /sqlserver/
- gem "tiny_tds", "~> 0.5.1", :platforms => [:mri, :mingw]
- gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
- else
- warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
- end
- end
- else
- warn("No adapter found in config/database.yml, please configure it first")
- end
else
warn("Please configure your config/database.yml first")
end
-local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
-if File.exists?(local_gemfile)
- puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
- instance_eval File.read(local_gemfile)
-end
-
# Load plugins' Gemfiles
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb
index ee95277ce..811b19ad6 100644
--- a/app/controllers/homework_attach_controller.rb
+++ b/app/controllers/homework_attach_controller.rb
@@ -473,8 +473,10 @@ class HomeworkAttachController < ApplicationController
#保存评论
@is_comprehensive_evaluation = @is_teacher ? 1 : (@is_anonymous_comments ? 2 : 3) #判断当前评论是老师评论?匿评?留言
- if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" #有没有留言
- @homework.addjours User.current.id, params[:new_form][:user_message],0,@is_comprehensive_evaluation
+ if params[:new_form] && params[:new_form][:user_message] #有没有留言
+ @homework.addjours(User.current.id, params[:new_form][:user_message],0,@is_comprehensive_evaluation) if @is_teacher
+ else
+ @homework.addjours User.current.id, "",0,@is_comprehensive_evaluation if @is_teacher
end
@teacher_stars = @stars_reates.where("is_teacher_score = 1") #老师评分列表
diff --git a/app/controllers/zipdown_controller.rb b/app/controllers/zipdown_controller.rb
index df354f107..94a5a8194 100644
--- a/app/controllers/zipdown_controller.rb
+++ b/app/controllers/zipdown_controller.rb
@@ -180,14 +180,18 @@ class ZipdownController < ApplicationController
def zipping(zip_name_refer, files_paths, output_path, is_attachment=false, not_exist_file=[])
+ ic = Iconv.new('GBK//IGNORE', 'UTF-8//IGNORE')
+
rename_zipfile = zip_name_refer ||= "#{Time.now.to_i.to_s}.zip"
zipfile_name = "#{output_path}/#{rename_zipfile}"
+ Zip.unicode_names = true
Dir.mkdir(File.dirname(zipfile_name)) unless File.exist?(File.dirname(zipfile_name))
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
files_paths.each do |filename|
- rename_file = File.basename(filename)
- rename_file = filename_to_real( File.basename(filename)) if is_attachment
+ rename_file = ic.iconv( (File.basename(filename)) ).to_s
+ rename_file = ic.iconv( filename_to_real( File.basename(filename))).to_s if is_attachment
+
begin
zipfile.add(rename_file, filename)
rescue Exception => e
@@ -238,4 +242,4 @@ class ZipdownController < ApplicationController
attach = Attachment.find_by_disk_filename(name)
attach.filename
end
-end
\ No newline at end of file
+end
diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb
index 396501862..0a6944e3b 100644
--- a/app/models/journals_for_message.rb
+++ b/app/models/journals_for_message.rb
@@ -56,7 +56,7 @@ class JournalsForMessage < ActiveRecord::Base
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
- validates :notes, presence: true
+ validates :notes, presence: true, if: :is_homework_jour?
after_create :act_as_activity #huang
after_create :reset_counters!
after_destroy :reset_counters!
@@ -88,6 +88,10 @@ class JournalsForMessage < ActiveRecord::Base
self.find(message_id).destroy
# self.destroy_all "id = #{message_id}"
end
+
+ def is_homework_jour?
+ self.jour_type != "HomeworkAttach"
+ end
def reference_user
User.find(reply_id)
diff --git a/app/views/files/_course_file.html.erb b/app/views/files/_course_file.html.erb
index 7b2acd875..1769b1a45 100644
--- a/app/views/files/_course_file.html.erb
+++ b/app/views/files/_course_file.html.erb
@@ -62,11 +62,11 @@
上传:
- 课件 |
- 软件 |
- 媒体 |
- 代码 |
- 其他
+ 课件 |
+ 软件 |
+ 媒体 |
+ 代码 |
+ 其他
<% end %>
diff --git a/app/views/homework_attach/_review.html.erb b/app/views/homework_attach/_review.html.erb
index 1666d8a43..921f16c8e 100644
--- a/app/views/homework_attach/_review.html.erb
+++ b/app/views/homework_attach/_review.html.erb
@@ -36,7 +36,8 @@
<% end %>
- <%= textilizable jour.nil? ? "" : jour.notes%>
+ <% notes = textilizable(jour.nil? ? "" : jour.notes)%>
+ <%= notes.empty? ? "".html_safe : notes%>
<% unless jour.nil? %>
<% ids = 'project_respond_form_'+ jour.id.to_s%>
diff --git a/app/views/homework_attach/new.html.erb b/app/views/homework_attach/new.html.erb
index 8697ff7ab..cf182716e 100644
--- a/app/views/homework_attach/new.html.erb
+++ b/app/views/homework_attach/new.html.erb
@@ -72,7 +72,7 @@
<%= f.text_field "name", :required => true, :size => 60, :class => "w430 bo", :maxlength => 254, :placeholder => "作品名称", :onkeyup => "regexName();" %>
-
+
<%= f.text_area "description", :class => "w620", :maxlength => 3000, :style => "width:430px", :placeholder => "最多3000个汉字", :onkeyup => "regexDescription();"%>
-
-
+
-
-
-
- <%= render :partial => 'attachments/form' %>
-
+
+
+ 添加附件 :
+
+ <%= render :partial => 'attachments/form' %>
+
+
-
+
<%= render :partial => 'breadcrumbs',
- :locals => { :path => @path, :kind => 'dir', :revision => @rev } %>
+ :locals => {:path => @path, :kind => 'dir', :revision => @rev} %>
<%= render :partial => 'navigation' %>
-
+
+
-
<%if @repository.type.to_s=="Repository::Git"%>
- <%= @repos_url%>
- <%else %>
- <%=h @repository.url %>
+
+ <% if @repository.type.to_s=="Repository::Git" %>
+ <%= @repos_url %>
+ <% else %>
+ <%= h @repository.url %>
<% end %>
-
- (<%= l(:label_all_revisions) %><%= @repositories.sort.collect {|repo|
+
+
+ (<%= l(:label_all_revisions) %><%= @repositories.sort.collect { |repo|
link_to h(repo.name),
{:controller => 'repositories', :action => 'show',
:id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil},
- :class => 'repository' + (repo == @repository ? ' selected' : '') ,
- :class => "mb10 word_break c_orange"}.join(' | ').html_safe %>)
+ :class => 'repository' + (repo == @repository ? ' selected' : ''),
+ :class => "mb10 break_word c_orange" }.join(' | ').html_safe %>)
-
项目代码请设置好正确的编码方式(utf-8),否则中文会出现乱码
-
建立版本库文件夹,打开命令行执行如下:
-
-
-
git init
-
git add *
-
git commit -m "first commit"
-
git remote add origin
- http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-
-
git config http.postBuffer 524288000 #设置本地post缓存为500MB
-
git push -u origin master:master
-
-
-
已经有本地库,还没有配置远程地址,打开命令行执行如下:
-
-
-
git remote add origin http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-
git add .
-
git commit -m "first commit"
-
git config http.postBuffer 524288000 #设置本地post缓存为500MB
-
git push -u origin master:master
-
-
-
已有远程地址,创建一个远程分支,并切换到该分支,打开命令行执行如下:
-
-
-
git clone http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-
git push
-
git checkout -b branch_name
-
git push origin branch_name
-
-
-
从网上获取别人的开源版本库,转交到trustie网站上,打开命令行执行如下:
-
-
-
git remote add trustie
- http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-
-
git add .
-
git commit -m "first commit"
-
git config http.postBuffer 524288000 #设置本地post缓存为500MB
-
git push -u trustie master:master
-
李海提供
+
+
+
+
+
+
项目代码请设置好正确的编码方式(utf-8),否则中文会出现乱码
-<% if !@entries.nil? && authorize_for('repositories', 'browse') %>
- <%= render :partial => 'dir_list' %>
-<% end %>
+
建立版本库文件夹,打开命令行执行如下:
+
+
+
git init
+
+
git add *
+
+
git commit -m "first commit"
+
+
git remote add origin
+ http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+
+
+
git config http.postBuffer 524288000 #设置本地post缓存为500MB
+
+
git push -u origin master:master
+
+
+
+
已经有本地库,还没有配置远程地址,打开命令行执行如下:
+
+
+
git remote add origin http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+
+
git add .
+
+
git commit -m "first commit"
-<%= render_properties(@properties) %>
-<% if authorize_for('repositories', 'revisions') %>
- <% if @changesets && !@changesets.empty? %>
-
- <%= l(:label_latest_revision_plural) %>
-
- <%= render :partial => 'revisions',
- :locals => {:project => @project, :path => @path,
- :revisions => @changesets, :entry => nil }%>
+
git config http.postBuffer 524288000 #设置本地post缓存为500MB
+
+
git push -u origin master:master
+
+
+
+
已有远程地址,创建一个远程分支,并切换到该分支,打开命令行执行如下:
+
+
+
git clone http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+
+
git push
+
+
git checkout -b branch_name
+
+
git push origin branch_name
+
+
+
+
从网上获取别人的开源版本库,转交到trustie网站上,打开命令行执行如下:
+
+
+
git remote add trustie
+ http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+
+
+
git add .
+
+
git commit -m "first commit"
+
+
git config http.postBuffer 524288000 #设置本地post缓存为500MB
+
+
git push -u trustie master:master
+
+
李海提供
+
+
+ <% if !@entries.nil? && authorize_for('repositories', 'browse') %>
+ <%= render :partial => 'dir_list' %>
<% end %>
-
- <% has_branches = (!@repository.branches.nil? && @repository.branches.length > 0)
- sep = '' %>
- <% if @repository.supports_all_revisions? && @path.blank? %>
- <%= link_to l(:label_view_all_revisions), {:action => 'revisions', :id => @project,
- :repository_id => @repository.identifier_param},
- :class => "orange_u_btn" %>
- <% sep = '|' %>
+
+ <%= render_properties(@properties) %>
+ <% if authorize_for('repositories', 'revisions') %>
+ <% if @changesets && !@changesets.empty? %>
+
+ <%= l(:label_latest_revision_plural) %>
+
+ <%= render :partial => 'revisions',
+ :locals => {:project => @project, :path => @path,
+ :revisions => @changesets, :entry => nil} %>
<% end %>
- <% if @repository.supports_directory_revisions? && ( has_branches || !@path.blank? || !@rev.blank? ) %>
- <%= sep %>
- <%= link_to l(:label_view_revisions),
- {:action => 'changes',
- :path => to_path_param(@path),
- :id => @project,
- :repository_id => @repository.identifier_param,
- :rev => @rev},
- :class => "orange_u_btn" %>
+
+ <% has_branches = (!@repository.branches.nil? && @repository.branches.length > 0)
+ sep = '' %>
+ <% if @repository.supports_all_revisions? && @path.blank? %>
+ <%= link_to l(:label_view_all_revisions), {:action => 'revisions', :id => @project,
+ :repository_id => @repository.identifier_param},
+ :class => "orange_u_btn" %>
+ <% sep = '|' %>
+ <% end %>
+ <% if @repository.supports_directory_revisions? && (has_branches || !@path.blank? || !@rev.blank?) %>
+ <%= sep %>
+ <%= link_to l(:label_view_revisions),
+ {:action => 'changes',
+ :path => to_path_param(@path),
+ :id => @project,
+ :repository_id => @repository.identifier_param,
+ :rev => @rev},
+ :class => "orange_u_btn" %>
+ <% end %>
+
+ <% if @repository.supports_all_revisions? %>
+ <% content_for :header_tags do %>
+ <%= auto_discovery_link_tag(
+ :atom, params.merge(
+ {:format => 'atom', :action => 'revisions',
+ :id => @project, :page => nil, :key => User.current.rss_key})) %>
+ <% end %>
<% end %>
-
- <% if @repository.supports_all_revisions? %>
- <% content_for :header_tags do %>
- <%= auto_discovery_link_tag(
- :atom, params.merge(
- {:format => 'atom', :action => 'revisions',
- :id => @project, :page => nil, :key => User.current.rss_key})) %>
- <% end %>
<% end %>
-<% end %>
-
-查看如何提交代码:
- <%= link_to(l(:label_how_commit_code_chinese), ch_usage_path, :class => "c_blue") %>
- <%= link_to('English', en_usage_path, :class => "c_blue") %>
-
+
+ 查看如何提交代码:
+ <%= link_to(l(:label_how_commit_code_chinese), ch_usage_path, :class => "c_blue") %>
+ <%= link_to('English', en_usage_path, :class => "c_blue") %>
+
+
<% content_for :header_tags do %>
- <%= stylesheet_link_tag "scm" %>
+ <%= stylesheet_link_tag "scm" %>
<% end %>
<% html_title(l(:label_repository)) -%>
diff --git a/app/views/welcome/contest.html.erb b/app/views/welcome/contest.html.erb
index fa23f3843..201afe574 100644
--- a/app/views/welcome/contest.html.erb
+++ b/app/views/welcome/contest.html.erb
@@ -256,60 +256,143 @@
<% end %>
+<% if @contest_notifications.count < 5%>
+
+
+ <%=l(:label_issue_feedback_activities)%>
+ <%= link_to l(:label_my_question), newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
+ <%= link_to l(:label_my_feedback), suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
+
+
<%= link_to l(:label_more_information), forums_path %>
+
+
+ <% find_new_forum_topics(9 - @contest_notifications.count).each do |topic|%>
+ -
+
+
+ <%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %>
+ <%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
+
+
+
+ <%= "#{l(:label_updated_time, value: time_tag_welcome(topic_last_time topic))}".html_safe %>
+
+
+ <%=l(:label_question_sponsor)%> <%= link_to topic.author.login.truncate(10, omission: '...'),user_path(topic.author),title: topic.author.login %>
+
+
+ <% unless (topic.last_reply.nil? || topic.last_reply.author.nil?) %>
+ <%=l(:label_final_reply)%>
+ <%=link_to topic.last_reply.author.login.truncate(10, omission: '...'),user_path(topic.last_reply.author),title: topic.last_reply.author.login%>
+ <% end %>
+
+
+ <%=l(:label_reply)%>
+ (<%= link_to topic.try(:replies_count), topic.event_url %>)
+
+
+
+
+ <% end %>
+
+
+
-
-
<%=l(:label_current_attendingcontest_work)%>
-
- <% if Softapplication.count > 0%>
-
- <% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
-
-
-
- <%= image_tag('/images/app1.png')%>
-
-
- <%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
-
-
-
+
+
<%=l(:label_current_attendingcontest_work)%>
+
+ <% if Softapplication.count > 0%>
+
+ <% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
+
+
+
+ <%= image_tag('/images/app1.png')%>
+
+
+ <%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
+
+
+
>
<%=softapplication.description.to_s.truncate(50, omission: '...')%>
-
+
-
+
<%=l(:label_release_time)%>:
<%=format_time softapplication.created_at %>
-
+
-
- <% end; reset_cycle %>
+
+ <% end; reset_cycle %>
-
- <% else %>
-
+
+ <% else %>
+
<%= l(:label_no_ftapplication) %>
- <% end %>
-
-
+ <% end %>
+
+
+<% else %>
+
+
<%=l(:label_current_attendingcontest_work)%>
+
+ <% if Softapplication.count > 0%>
+
+ <% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
+
+
+
+ <%= image_tag('/images/app1.png')%>
+
+
+ <%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
+
+
+
+ >
+ <%=softapplication.description.to_s.truncate(50, omission: '...')%>
+
+
-
-
- <%=l(:label_issue_feedback_activities)%>
- <%= link_to l(:label_my_question), newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
- <%= link_to l(:label_my_feedback), suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
-
-
<%= link_to l(:label_more_information), forums_path %>
-
+
+
+
+
+
+
+ <%=l(:label_issue_feedback_activities)%>
+ <%= link_to l(:label_my_question), newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
+ <%= link_to l(:label_my_feedback), suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
+
+
<%= link_to l(:label_more_information), forums_path %>
+
+
+ <% find_new_forum_topics(9 - @contest_notifications.count).each do |topic|%>
+ -
+
<%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %>
<%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
@@ -333,11 +416,15 @@
-
- <% end %>
-
-
-
+
+ <% end %>
+
+
+
+<% end%>
+
+
+
diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb
index 5c57a5ba1..cbceec2c7 100644
--- a/app/views/welcome/course.html.erb
+++ b/app/views/welcome/course.html.erb
@@ -57,7 +57,6 @@