Merge branch 'develop' of 10.0.47.245:/home/trustie2 into develop

exceptionHandle
alan 11 years ago
commit 933fc6cb33

@ -0,0 +1,31 @@
app/models/setting.rb :165
# fixed domain url in development. tantantan's bug
if Rails.env.development?
methods.map do |m|
define_singleton_method m do; nil; end if m.to_s =~ /([a-zA-Z]+_domain)$/
end
end
程序部分链接中制定了subdomain参数使链接在二级域名中来回跳转。
为了开发方便使之功能在development模式下失效。
# => nyan
================================================================================
app/controller/projects_controller.rb ===> projects#fake
fake filter: 修改了传到页面中的Count后缀的数量
改为正确的数量删掉fake过滤器即可
================================================================================
#导航栏匹配域名显示和改变
app\helper\application_helper.rb
# rewrite navigation
app\views\layouts\_base_header.html.erb
# reset navigation by domain name and url through regular match
================================================================================
#首页根据域名匹配进入不同的页面
app\controller\welcome_controller.rb
def entry_select_user
if request.original_url.match(/user\.trustie\.net/)
redirect_to(:controller => "users", :action => "index")
return 0
end
end
================================================================================

@ -1,11 +0,0 @@
app\models\setting.rb :165
# fixed domain url in development. tantantan's bug
if Rails.env.development?
methods.map do |m|
define_singleton_method m do; nil; end if m.to_s =~ /([a-zA-Z]+_domain)$/
end
end
程序部分链接中制定了subdomain参数使链接在二级域名中来回跳转。
为了开发方便使之功能在development模式下失效。
# => nyan
================================================================================

@ -37,15 +37,11 @@ class AccountController < ApplicationController
end
# Log out current user and redirect to welcome page
# cookies[:login_flag] 是为了配合毛xx
# 退出再登录的话直接跳转到用户首页而不是登陆前的页面
# 相应处理方法在application_helper#is_logout? :1106
def logout
if User.current.anonymous?
redirect_to home_url
elsif request.post?
logout_user
cookies[:login_flag] = 1
redirect_to home_url
end
# display the logout form

@ -353,14 +353,13 @@ class ApplicationController < ActionController::Base
url
end
def redirect_back_or_default(default)
def redirect_back_or_default(default, options={})
back_url = params[:back_url].to_s
if back_url.present?
begin
uri = URI.parse(back_url)
# do not redirect user to another host or to the login or register page
#by young
if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)}) && (uri.path!='/')
if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
redirect_to(back_url)
return
end
@ -368,6 +367,9 @@ class ApplicationController < ActionController::Base
logger.warn("Could not redirect to invalid URL #{back_url}")
# redirect to default
end
elsif options[:referer]
redirect_to_referer_or default
return
end
redirect_to default
false

@ -20,6 +20,8 @@ class AttachmentsController < ApplicationController
before_filter :file_readable, :read_authorize, :only => [:show, :thumbnail]#Modified by young
before_filter :delete_authorize, :only => :destroy
before_filter :authorize_global, :only => :upload
before_filter :require_login, only: [:download]
accept_api_auth :show, :download, :upload

@ -20,6 +20,17 @@ class BidsController < ApplicationController
include ApplicationHelper
helper :projects
helper :words
helper :welcome
def homework_ajax_modal
@bid = Bid.find_by_id(params[:id])
# find_bid
respond_to do |format|
format.js
end
end
def index
@project_type = params[:project_type]
# Modified by nie
@ -735,12 +746,12 @@ class BidsController < ApplicationController
@homework.save_attachments(params[:attachments])
render_attachment_warning_if_needed(@homework)
if @homework.save
@homework_flag = l(:label_bidding_homework_succeed)
else
@homework_flag = l(:label_bidding_homework_failed)
end
@homework_flag = if @homework.save
l(:label_bidding_homework_succeed)
else
l(:label_bidding_homework_failed)
end
if @homework.attachments.empty?
@homework.delete
@ -754,7 +765,9 @@ class BidsController < ApplicationController
@homework_list = @bid.homeworks
respond_to do |format|
format.html{
redirect_to project_for_bid_path, notice: @homework_flag.to_s
#redirect_to project_for_bid_path, notice: @homework_flag.to_s
flash[:notice] = @homework_flag.to_s
redirect_back_or_default(project_for_bid_path)
}
format.js
end

@ -218,8 +218,10 @@ class ProjectsController < ApplicationController
def search
#modified by nie
@projects = Project.visible
@projects = @projects.visible.where('project_type = ?', params[:project_type]).like(params[:name]) if params[:name].present?
project_type = params[:project_type]
projects_all = (project_type.eql? Project::ProjectType_project) ? Project.project_entities : Project.course_entities
@projects = projects_all.visible
@projects = @projects.visible.like(params[:name]) if params[:name].present?
@offset, @limit = api_offset_and_limit({:limit => 10})
@project_count = @projects.visible.count
@project_pages = Paginator.new @project_count, @limit, params['page']
@ -346,7 +348,7 @@ class ProjectsController < ApplicationController
end
def new
@project_type = params[:project_type]
@project_type = params[:project_type] ||= params[:course]
@issue_custom_fields = IssueCustomField.sorted.all
@trackers = Tracker.sorted.all
@ -360,9 +362,9 @@ class ProjectsController < ApplicationController
@course_tag = params[:course]
@course = Course.new
@course.safe_attributes = params[:course]
else
render_404
return -1
else # default Project
@project = Project.new
@project.safe_attributes = params[:project]
end
render :layout => 'base'
end
@ -849,8 +851,7 @@ class ProjectsController < ApplicationController
def select_project_layout
project = Project.find_by_id(params[:id])
project ||= @project
project ||= @course
project ||= @project ||= @course ||= params[:course] ||= params[:project_type]
(project.try(:project_type) == Project::ProjectType_project) ? 'base_projects' : 'base_courses'
end

@ -144,7 +144,6 @@ class TagsController < ApplicationController
@taggable_type = numbers_to_object_type(params[:taggable_type])
@obj = get_object(@taggable_id,params[:taggable_type])
logger.debug "==========================================#{@obj}"
@object_flag = params[:taggable_type]
# if can_remove_tag?(User.current,@taggable_id,@taggable_type)

@ -17,56 +17,16 @@
class WelcomeController < ApplicationController
caches_action :robots
before_filter :fake, :only => [:index, :course]
before_filter :entry_select_course, :entry_select_contest, :entry_select_user, :only => [:index]
def index
# @news = News.latest User.current
# @projects = Project.latest User.current
#by young
(redirect_to(home_url); return) unless Setting.self_registration? || session[:auth_source_registration]
if request.get?
session[:auth_source_registration] = nil
@user = User.new(:language => current_language.to_s)
else
user_params = params[:user] || {}
@user = User.new
@user.safe_attributes = user_params
@user.admin = false
@user.register
if session[:auth_source_registration]
@user.activate
@user.login = session[:auth_source_registration][:login]
@user.auth_source_id = session[:auth_source_registration][:auth_source_id]
if @user.save
session[:auth_source_registration] = nil
self.logged_user = @user
flash[:notice] = l(:notice_account_activated)
redirect_to my_account_path
end
else
@user.login = params[:user][:login]
unless user_params[:identity_url].present? && user_params[:password].blank? && user_params[:password_confirmation].blank?
@user.password, @user.password_confirmation = user_params[:password], user_params[:password_confirmation]
end
projectActive = Project.project_entities.active
@projectCount = projectActive.count
@projectPublicCount = projectActive.all_public.count
@projectHidenCount = @projectCount - @projectPublicCount
case Setting.self_registration
when '1'
register_by_email_activation(@user)
when '3'
register_automatically(@user)
else
register_manually_by_administrator(@user)
end
end
end
#add by huang
# @memberships = @user.memberships.all(:conditions => Project.visible_condition(User.current))
# events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20)
# @events_by_day = events.group_by(&:event_date)
#
@developerCount = User.developer.count
end
def robots
@ -75,9 +35,9 @@ class WelcomeController < ApplicationController
end
def course
@course = Project.course_entities
@teacher = User.teacher
@student = User.student
@courseCount = Project.course_entities.count
@teacherCount = User.teacher.count
@studentCount = User.student.count
end
def contest
@ -126,9 +86,31 @@ class WelcomeController < ApplicationController
end
def entry_select_user
if request.original_url.match(/user\.trustie\.net/)
if request.original_url.match(/user\.trustie\.net$/)
redirect_to(:controller => "users", :action => "index")
return 0
end
end
def render(*args)
_fake if @fake_filter
super
end
private
def fake
@fake_filter = true
end
# 骗子方法
def _fake
instance_variables.map { |variable|
if variable.to_s =~ /Count$/
self.instance_variable_set(variable.to_sym,
("1" + (self.instance_variable_get(variable.to_sym).to_s)).to_i)
end
}
end
end

@ -1103,14 +1103,6 @@ module ApplicationHelper
url
end
# 完成毛 功能
# 具体信息参考account_controller#logout
def is_logout?
ret = cookies[:login_flag] == 1 ? true : false
cookies.delete(:login_flag)
ret
end
def back_url_hidden_field_tag
url = back_url
hidden_field_tag('back_url', url, :id => nil) unless url.blank?
@ -1482,12 +1474,20 @@ module ApplicationHelper
def hadcommittedhomework(cur,curb)
@attaches=HomeworkAttach.find_by_sql("select * from homework_attaches where(bid_id = #{curb})")
@attaches.each do |attach|
if attach.user_id == cur
return true
end
bid = Bid.find_by_id(curb)
return true if bid.nil?
case bid.homework_type
when Bid::HomeworkFile
attaches = HomeworkAttach.where(bid_id: curb)
attaches.map(&:user_id).include? cur
when Bid::HomeworkProject
attaches = BidingProject.where(user_id: User.current, bid_id: bid)
attaches.count > 0 # > 0 则有提交记录
else
true
end
end
def render_dynamic_nav

@ -70,15 +70,6 @@ module AttachmentsHelper
User.current.logged? && (container.author == user || user.admin?)
end
def hadcommittedhomework(cur,curb)
@attaches=HomeworkAttach.find_by_sql("select * from homework_attaches where(bid_id = #{curb})")
@attaches.each do |attach|
if attach.user_id == cur
retrun true
end
end
end
# this method is used to get all projects that tagged one tag
# added by william
def get_attachments_by_tag(tag_name)

@ -1,11 +1,20 @@
####by fq
=begin
bidreward_type
reward == 1
reward == 2
reward == 3
reward_type == 1
reward_type == 2
reward_type == 3
homework_type
homework_type == 1
homework_type == 2 Project
=end
class Bid < ActiveRecord::Base
Enterprise = 1
Contest = 2
Homework = 3
HomeworkFile = 1
HomeworkProject = 2
attr_accessible :author_id, :budget, :deadline, :name, :description, :homework_type, :password
include Redmine::SafeAttributes

@ -109,7 +109,7 @@ class Project < ActiveRecord::Base
validates_presence_of :name, :identifier
validates_uniqueness_of :identifier
validates_associated :repository, :wiki
validates_length_of :description, :maximum => 255
# validates_length_of :description, :maximum => 255
validates_length_of :name, :maximum => 255
validates_length_of :homepage, :maximum => 255
validates_length_of :identifier, :in => 1..IDENTIFIER_MAX_LENGTH

@ -82,6 +82,7 @@ class User < Principal
#####fq
has_many :jours, :class_name => 'JournalsForMessage', :dependent => :destroy
has_many :journals_messages, :class_name => 'JournalsForMessage', :foreign_key => "user_id", :dependent => :destroy
has_many :bids, :foreign_key => 'author_id', :dependent => :destroy
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :new_jours, :as => :jour, :class_name => 'JournalsForMessage', :conditions => "status=1"
@ -123,10 +124,16 @@ class User < Principal
## end
scope :teacher, -> {
joins(:user_extensions).where('user_extensions.identity = ?', 0)
joins(:user_extensions).where('user_extensions.identity = ?', UserExtensions::TEACHER)
}
scope :student, -> {
joins(:user_extensions).where('user_extensions.identity = ?', 1)
joins(:user_extensions).where('user_extensions.identity = ?', UserExtensions::STUDENT)
}
scope :developer, -> {
joins(:user_extensions).where('user_extensions.identity = ?', UserExtensions::DEVELOPER)
}
scope :enterprise, -> {
joins(:user_extensions).where('user_extensions.identity = ?', UserExtensions::ENTERPRISE)
}
attr_accessor :password, :password_confirmation

@ -287,7 +287,7 @@
<% end %>
<span id = 'name' style = 'display:none'>
<p><%= f.text_field :firstname, :required => true %></p>
<!--<p><%= f.text_field :lastname, :required => true %></p>-->
<p><%= f.text_field :lastname, :required => true %></p>
</span>
<span id = 'enterprise' style = 'display:none'>
<p><table><tr><td class="info" align="right" style="width: 90px"><strong>企业名<span class="required"> *</span></strong></td>

@ -4,7 +4,6 @@
暂无作业!
<% else %>
<% bids.each do |bid|%>
<table class="content-text-list">
<tr><td colspan="2" valign="top" width="50" ><%= link_to(image_tag(url_to_avatar(bid.author), :class => 'avatar'), user_path(bid.author), :class => "avatar") %></td>
<td>
@ -14,6 +13,8 @@
<span class="font_lighter"><%= l(:label_user_create_project_homework) %></span>
<span><%= link_to(bid.name, respond_path(bid), :class => 'bid_path') %></span>
<span style="float: right">
<%# 提交作业按钮 %>
<%= link_to l(:label_commit_homework), '#OpenWindow', rel: 'leanModal', onclick: "showSubH(#{bid.id}, '#{bid.name}');" if User.current.member_of?(@project) %>
<% if (User.current.admin?||User.current.id==bid.author_id) %>
<%= link_to(
l(:button_edit),
@ -29,7 +30,6 @@
) %></span>
<% end %>
</td>
</tr>
<tr>
<td colspan="2"><span class="font_lighter">
@ -61,7 +61,7 @@
</tr>
<tr>
<td colspan="2" width="580px" ><span class="font_description"><%= bid.description %></span></td>
</tr>
</tr>
<tr>
<td align="left"><span class="font_lighter"><span> <%= l(:label_create_time) %> :&nbsp; <%=format_time bid.created_on %></span><span style="float: right"> <%= l(:field_deadline) %> :&nbsp; <%=bid.deadline %></span></td>
<td></td>

@ -22,7 +22,7 @@
<td>
<table width="580px" border="0">
<tr>
<td colspan="2" valign="top"><strong> <%= link_to homework.user, user_path(homework.user)%></strong> <span class="font_lighter">提交了作业</span></td>
<td colspan="2" valign="top"><strong> <%= link_to homework.user, user_path(homework.user)%></strong> <span class="font_lighter">提交</span></td>
</tr>
<tr>
<td colspan="2" valign="top">&nbsp;

@ -0,0 +1,3 @@
$('#OpenWindow-content').html(' <%=
j(render partial: "projects/homeworkupload", locals: {bid: @bid})
%>');

@ -14,7 +14,7 @@
<% else %>
<% end %>
<div class="bid_description">
<%= @bid.description %>
<%= textilizable(@bid, :description) %>
<% if @bid.attachments.any?%>
<% options = {:author => true} %>
<%= render :partial => 'attachments/links', :locals => {:attachments => @bid.attachments, :options => options} %>

@ -1,4 +1,5 @@
<!--add by huang-->
<div class="clearfix"></div>
<div id="footer" style="margin-left:-5px;padding-top: 50px;clear: both;">
<div style="border-top:solid 1px #C6E9F1;width:940px;margin-left:auto;margin-right:auto;margin-bottom: 5px;margin-top: -10px;"></div>
<div class="base_footer"><div align="center">

@ -1,34 +1,26 @@
<%
request.headers['REQUEST_URI'] = "" if request.headers['REQUEST_URI'].nil?
realUrl = request.original_url
if (realUrl.match(/users/))
@nav_dispaly_home_path_label = 1
@nav_dispaly_main_course_label = 1
@nav_dispaly_main_project_label = 1
elsif (realUrl.match(/contest/))
@nav_dispaly_contest_label = 1
elsif (realUrl.match(/calls/))
@nav_dispaly_home_path_label = 1
@nav_dispaly_bid_label = 1
elsif (realUrl.match(/forums/))
@nav_dispaly_forum_label = 1
elsif (realUrl.match(/forge\.trustie\.net\/*/))
if (realUrl.match(/forge\.trustie\.net\/*/))
@nav_dispaly_project_label = 1
@nav_dispaly_forum_label = 1
elsif (realUrl.match(/course\.trustie\.net\/*/))
@nav_dispaly_course_all_label = 1
@nav_dispaly_forum_label = 1
@nav_dispaly_course_label = nil
@nav_dispaly_store_all_label = 1
elsif (realUrl.match(/user\.trustie\.net\/*/))
@nav_dispaly_home_path_label = 1
@nav_dispaly_main_course_label = 1
@nav_dispaly_main_project_label = 1
else
@nav_dispaly_project_all_label = 1
@nav_dispaly_course_all_label = 1
@nav_dispaly_forum_label = 1
@nav_dispaly_bid_label = 1
@nav_dispaly_contest_label = 1
@nav_dispaly_store_all_label = 1
@nav_dispaly_user_label = 1
end
%>
<div id="top-menu" style="background-color: #15bccf;height:40px;margin-top: 10px;margin-bottom: 10px;">

@ -11,6 +11,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" %>
<%= heads_for_theme %>
<%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags -->
@ -42,7 +43,7 @@
</td>
</tr>
<tr>
<td style="padding-left: 8px"><a><%=link_to request.host()+"/course", :controller => 'projects', :action => 'course' %></a></td>
<td style="padding-left: 8px"><%=link_to request.host()+"/course", :controller => 'projects', :action => 'course' %></td>
<td><p class="top-content-list"><%=link_to "主页", home_path %> > <%=link_to l(:label_course_practice), :controller => 'projects', :action => 'course' %> > <%=link_to @project.name, nil %></p></td>
</tr>
</table>
@ -78,8 +79,8 @@
<%= render :partial => 'courses/set_course_time', :locals => {:project => @project}%>
<% else %>
<%= join_in_course(@project, User.current) %></div>
<% end %> </div>
<%= join_in_course(@project, User.current) %>
<% end %>
<% unless User.current.member_of?(@project) %>
<!-- <%= image_tag "/images/fav.png" %> -->
<div style="padding-right: 10px">
@ -87,7 +88,7 @@
<%= watcher_link(@project, User.current) %></span></div>
<% end %>
<% end %>
</div>
</td></tr></table>
</td>
</tr>
@ -232,8 +233,8 @@
<!-- <li><%= link_to(l(:label_course_repository), {:controller => 'repositories', :action => 'show', :id => @project, :repository_id => nil, :path => nil, :rev => nil, :course => 1 })%></li> -->
<% if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, @project.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, @project.id).first.roles&Role.where('id = ? or id = ?', 7, 9)).size >0))%>
</ul>
<% end %>
</ul>
</div>
<%= render_flash_messages %>
<%= yield %>

@ -82,6 +82,9 @@
<tr>
<td><%= l(:label_limit_time) %>: <%= @bid.deadline %></td>
</tr>
<tr>
<td>作业类型: <%=@bid.homework_type==Bid::HomeworkFile ? "提交文件" : "提交项目"%></td>
</tr>
<% unless @bid.parent_id.nil?%>
<tr>
<td>

@ -78,7 +78,7 @@
<% user_changesets_score = user_changesets_count * 0.3 %>
<% finall_user_project_score = journals_score + user_changesets_score %>
<% journals_for_messages_count = @user.journals_for_messages.count %>
<% journals_for_messages_count = @user.journals_messages.count %>
<% activities_count = @user.activities.count %>
<% journals_for_messages_score = journals_for_messages_count * 0.05 %>
<% activities_score = activities_count * 0.2 %>

@ -104,7 +104,7 @@
<div style="float: right"><%= toggle_link l(:button_reply), "reply", :focus => 'message_content' %></div>
</div>
<% if !@topic.locked? && authorize_for('messages', 'reply') %>
@ -172,7 +172,7 @@
<% if !@topic.locked? && authorize_for('messages', 'reply') %>
<div id="reply" style="display:none;">
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f, :replying => true} %>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save