diff --git a/app/controllers/org_member_controller.rb b/app/controllers/org_member_controller.rb
index 4b842f9dc..642a100c3 100644
--- a/app/controllers/org_member_controller.rb
+++ b/app/controllers/org_member_controller.rb
@@ -16,7 +16,7 @@ class OrgMemberController < ApplicationController
member_ids = params[:membership][:user_ids]
role_id = params[:orgRole]
member_ids.each do |user_id|
- member = OrgMember.create(:user_id=>user_id)
+ member = OrgMember.create(:user_id=>user_id, :created_at => Time.now)
@org.org_members << member
OrgMemberRole.create(:org_member_id => member.id, :role_id => role_id)
end
diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb
index fdd12030f..6a1030adc 100644
--- a/app/controllers/organizations_controller.rb
+++ b/app/controllers/organizations_controller.rb
@@ -1,5 +1,33 @@
# encoding: utf-8
class OrganizationsController < ApplicationController
+
+
+ helper :sort
+ include SortHelper
+ helper :custom_fields
+ include CustomFieldsHelper
+ include AvatarHelper
+ include WordsHelper
+ include GitlabHelper
+ include UserScoreHelper
+
+ include PollHelper
+ helper :user_score
+ helper :journals
+
+ # added by liuping 关注
+
+ helper :watchers
+ helper :activities
+
+ ### added by william
+ include ActsAsTaggableOn::TagsHelper
+
+ # fq
+ helper :words
+ helper :project_score
+ helper :issues
+ include UsersHelper
before_filter :find_organization, :only => [:show, :members]
layout 'base_org'
def index
@@ -27,10 +55,19 @@ class OrganizationsController < ApplicationController
def show
if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
@organization = Organization.find(params[:id])
- @activities = OrgActivity.where('container_id =? and container_type =? ',
- @organization.id, 'Organization ').order('updated_at desc')
-
- @activities = paginateHelper @activities, 10
+ project_ids = @organization.projects.map(&:id) << 0
+ @org_activities = OrgActivity.where("(container_id =? and container_type =?) or (container_type ='Project' and container_id in (#{project_ids.join(',')}))",
+ @organization.id, 'Organization').order('updated_at desc').page(params[:page] || 1).per(10)
+ @org_activities_count = OrgActivity.where("(container_id =? and container_type =?) or (container_type ='Project' and container_id in (#{project_ids.join(',')}))" ,
+ @organization.id, 'Organization ').count
+ # @org_project_activties = ForgeActivity.where("project_id in (#{project_ids.join(',')}) and forge_act_type in('Issue','Message','ProjectCreateInfo')").order("updated_at desc").page(params[:page] || 1).per(10)
+ # @org_project_activties_count = ForgeActivity.where('project_id in (?)',project_ids.join(',')).count
+ #@org_activities = paginateHelper @org_activities, 10
+ @page = params[:page]
+ respond_to do |format|
+ format.html
+ format.js
+ end
else
render_403
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 273d48ccf..776e6b7d5 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -1918,6 +1918,20 @@ class UsersController < ApplicationController
end
end
+ def search_user_orgs
+ name=""
+ if !params[:search_orgs].nil?
+ name = params[:search_orgs].strip
+ end
+ name = "%"+name+"%"
+ @orgs = User.current.organizations.where("name like ?", name)
+ @user = User.current
+ respond_to do |format|
+ format.html {render :layout => 'static_base'}
+ format.js
+ end
+ end
+
private
def find_user
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index e08259b11..f4e0f88ff 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -2374,8 +2374,10 @@ module ApplicationHelper
link_to "作品(#{homework.student_works.count})",student_work_index_path(:homework => homework.id),:class => "c_blue"
else #学生显示提交作品、修改作品等按钮
work = cur_user_works_for_homework homework
- if work.nil?
+ if work.nil? && Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")
link_to "提交作品(#{homework.student_works.count})", new_student_work_path(:homework => homework.id),:class => 'c_blue'
+ elsif work.nil? && Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d")
+ link_to "补交作品(#{homework.student_works.count})", new_student_work_path(:homework => homework.id),:class => 'c_red'
else
if homework.homework_detail_manual && homework.homework_detail_manual.comment_status == 2 #匿评作业,且作业状态不是在开启匿评之前
link_to "作品匿评", student_work_index_path(:homework => homework.id), :class => 'c_blue', :title => "开启匿评后不可修改作品"
diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb
index 55a7a5d42..607d2af5c 100644
--- a/app/helpers/organizations_helper.rb
+++ b/app/helpers/organizations_helper.rb
@@ -17,4 +17,6 @@ module OrganizationsHelper
s + content_tag('ul', links,:class => 'wlist',:style=>'float:left !important', :id => "org_member_pagination_links" )
end
+
+
end
diff --git a/app/models/forge_activity.rb b/app/models/forge_activity.rb
index c4f13c6d0..8a94f1019 100644
--- a/app/models/forge_activity.rb
+++ b/app/models/forge_activity.rb
@@ -20,7 +20,7 @@ class ForgeActivity < ActiveRecord::Base
validates :forge_act_id,presence: true
validates :forge_act_type, presence: true
has_many :user_acts, :class_name => 'UserAcivity',:as =>:act
- after_save :add_user_activity
+ after_save :add_user_activity, :add_org_activity
before_destroy :destroy_user_activity
#在个人动态里面增加当前动态
@@ -45,6 +45,16 @@ class ForgeActivity < ActiveRecord::Base
end
end
+ def add_org_activity
+ OrgActivity.create(:user_id => self.user_id,
+ :org_act_id => self.forge_act_id,
+ :org_act_type => self.forge_act_type,
+ :container_id => self.project_id,
+ :container_type => 'Project',
+ :created_at => self.created_at,
+ :updated_at => self.updated_at)
+ end
+
def destroy_user_activity
user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'")
user_activity.destroy_all
diff --git a/app/views/organizations/_org_activities.html.erb b/app/views/organizations/_org_activities.html.erb
new file mode 100644
index 000000000..cb69738b6
--- /dev/null
+++ b/app/views/organizations/_org_activities.html.erb
@@ -0,0 +1,56 @@
+<% unless org_activities.nil? %>
+ <% org_activities.each do |act| %>
+ <% if act.container_type == 'Organization' %>
+ <% if act.org_act_type == 'CreateOrganization' %>
+
展开更多<%=link_to "", organization_path(org,:page => page.to_i + 1),:id => "more_org_activities_link",:remote => "true",:class => "none" %>
+ <%#= link_to "点击展开更多",user_activities_path(@user.id,:type => type,:page => page),:id => "show_more_activities",:remote => "true",:class => "loadMore mt10 f_grey"%>
+<% end%>
+
+
\ No newline at end of file
diff --git a/app/views/organizations/_org_members.html.erb b/app/views/organizations/_org_members.html.erb
index 3940a6576..ee15e19d7 100644
--- a/app/views/organizations/_org_members.html.erb
+++ b/app/views/organizations/_org_members.html.erb
@@ -5,7 +5,7 @@
-
+
加入时间
<% members.each do |member| %>
@@ -16,6 +16,9 @@
<%= l(:label_username)%>
<%= link_to(member.user.show_name, user_path(member.user),:class => "ml5 c_blue02") %>
身份:<%= member.user.admin_of_org?(organization)?"组织管理员":"组织成员" %>
+ <% if member.created_at %>
+
<%= format_time(member.created_at) %>
+ <% end %>
<% end%>
diff --git a/app/views/organizations/_org_project_activities.html.erb b/app/views/organizations/_org_project_activities.html.erb
new file mode 100644
index 000000000..b46996661
--- /dev/null
+++ b/app/views/organizations/_org_project_activities.html.erb
@@ -0,0 +1,28 @@
+<% org_project_activties.each do |act|%>
+<% if act %>
+ <% if act %>
+ <% case act.forge_act_type.to_s %>
+ <% when 'Issue' %>
+ <%= render :partial => 'organizations/org_project_issue', :locals => {:activity => act.forge_act,:user_activity_id =>act.id} %>
+ <% when 'Message' %>
+ <%= render :partial => 'organizations/project_message', :locals => {:activity => act.forge_act,:user_activity_id =>act.id} %>
+ <% when 'ProjectCreateInfo'%>
+ <%= render :partial => 'organizations/project_create', :locals => {:activity => act,:user_activity_id =>act.id} %>
+ <% end %>
+ <% end %>
+<% end %>
+<% end %>
+<% if org_act_count == 10 || pro_act_count == 10 %>
+
展开更多<%=link_to "", organization_path(org,:page => page.to_i + 1),:id => "more_org_activities_link",:remote => "true",:class => "none" %>
+ <%#= link_to "点击展开更多",user_activities_path(@user.id,:type => type,:page => page),:id => "show_more_activities",:remote => "true",:class => "loadMore mt10 f_grey"%>
+<% end%>
+
+
+
diff --git a/app/views/organizations/_org_project_issue.html.erb b/app/views/organizations/_org_project_issue.html.erb
new file mode 100644
index 000000000..573429752
--- /dev/null
+++ b/app/views/organizations/_org_project_issue.html.erb
@@ -0,0 +1,136 @@
+
+
+
+ <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+
+ <% if activity.try(:author).try(:realname) == ' ' %>
+ <%= link_to activity.try(:author), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% end %> TO
+ <%= link_to activity.project.name.to_s+" | 项目问题", project_issues_path(activity.project), :class => "newsBlue ml15"%>
+
+
+ <%= link_to activity.subject.to_s, issue_path(activity), :class => "postGrey" %>
+
+ <%#= get_issue_priority(activity.priority_id)[1] %>
+
+
+
+
指派给
+ <% unless activity.assigned_to_id.nil? %>
+ <% if activity.try(:assigned_to).try(:realname) == ' ' %>
+ <%= link_to activity.try(:assigned_to), user_path(activity.assigned_to_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:assigned_to).try(:realname), user_path(activity.assigned_to_id), :class => "newsBlue mr15" %>
+ <% end %>
+ <% end %>
+
+
+ 时间:
+ <%=format_time(activity.created_on) %>
+
+
+
+
+ <% if activity.description? %>
+ <%= textAreailizable activity, :description, :attachments => activity.attachments %>
+ <% end %>
+
+
+
+
+
+
+
+ <% if activity.attachments.any? %>
+ <% activity.attachments.each do |attachment| %>
+
+
+
+ <%= link_to_short_attachment attachment,:length=> 58, :class => 'link_file_a fl newsBlue', :download => true -%>
+
+ <% if attachment.is_text? %>
+ <%= link_to image_tag('magnifier.png'),
+ :controller => 'attachments',
+ :action => 'show',
+ :id => attachment,
+ :class => 'fl',
+ :filename => attachment.filename %>
+ <% end %>
+
+ (
+ <%= number_to_human_size attachment.filesize %>)
+
+
+ <%= link_to h(truncate(attachment.author.name, length: 10, omission: '...')),user_path(attachment.author),:class => "c_orange" %>,
+ <%= format_time(attachment.created_on) %>
+
+
+ <% end %>
+ <% end %>
+
+
+
+
+ <% count = activity.journals.count %>
+
+
+
+
回复(<%= count %>)
+
<%#= format_date(activity.updated_on) %>
+ <% if count > 3 %>
+
+ <% end %>
+
+
+ <% replies_all_i = 0 %>
+ <% if count > 0 %>
+
+
+ <% activity.journals.reorder("created_on desc").each do |reply| %>
+
+ <% replies_all_i=replies_all_i + 1 %>
+
+
+ <%= link_to image_tag(url_to_avatar(reply.user), :width => "33", :height => "33"), user_path(reply.user_id), :alt => "用户头像" %>
+
+
+
+ <% if reply.try(:user).try(:realname) == ' ' %>
+ <%= link_to reply.try(:user), user_path(reply.user_id), :class => "newsBlue mr10 f14" %>
+ <% else %>
+ <%= link_to reply.try(:user).try(:realname), user_path(reply.user_id), :class => "newsBlue mr10 f14" %>
+ <% end %>
+ <%= format_time(reply.created_on) %>
+
+
+ <% if reply.details.any? %>
+ <% details_to_strings(reply.details).each do |string| %>
+
<%= string %>
+ <% end %>
+ <% end %>
+
<%= reply.notes.nil? ? "" : reply.notes.html_safe %>
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+
+
+
+
diff --git a/app/views/organizations/_project_create.html.erb b/app/views/organizations/_project_create.html.erb
new file mode 100644
index 000000000..d966d8e18
--- /dev/null
+++ b/app/views/organizations/_project_create.html.erb
@@ -0,0 +1,38 @@
+<% project = Project.find(activity.project_id) %>
+<% user = User.find(project.user_id)%>
+
+
+
+ <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %>
+
+
+
+ <% if user.try(:realname) == ' ' %>
+ <%= link_to user, user_path(user), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to user.try(:realname), user_path(user), :class => "newsBlue mr15" %>
+ <% end %>
+ TO
+ <%= link_to project.to_s+" | 项目", project_path(project.id,:host=>Setting.host_course), :class => "newsBlue ml15" %>
+
+
+ <%= link_to project.name, project_path(project.id,:host=>Setting.host_course), :class => "postGrey" %>
+
+
+ 创建时间:<%= format_time(project.created_on) %>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/organizations/_project_message.html.erb b/app/views/organizations/_project_message.html.erb
new file mode 100644
index 000000000..85ed08f2f
--- /dev/null
+++ b/app/views/organizations/_project_message.html.erb
@@ -0,0 +1,100 @@
+
+
+
+ <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+
+ <% if activity.try(:author).try(:realname) == ' ' %>
+ <%= link_to activity.try(:author), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% end %>
+ TO
+ <%= link_to activity.project.name.to_s+" | 项目讨论区",project_boards_path(activity.project), :class => "newsBlue ml15 mr5"%>
+
+
+
+ <% if activity.parent_id.nil? %>
+ <%= link_to activity.subject.to_s.html_safe, project_boards_path(activity.project,:parent_id =>activity.id, :topic_id => activity.id), :class=> "postGrey"
+ %>
+ <% else %>
+ <%= link_to activity.parent.subject.to_s.html_safe, project_boards_path(activity.project,:parent_id =>activity.parent_id, :topic_id => activity.id), :class=> "postGrey"
+ %>
+ <% end %>
+
+
+ 时间:<%= format_time(activity.created_on) %>
+
+
+
+ <% if activity.parent_id.nil? %>
+ <%= activity.content.to_s.html_safe%>
+ <% else %>
+ <%= activity.parent.content.to_s.html_safe%>
+ <% end %>
+
+
+
+
+
+
+
+
+
+ <% count = 0 %>
+ <% if activity.parent %>
+ <% count=activity.parent.children.count%>
+ <% else %>
+ <% count=activity.children.count%>
+ <% end %>
+
+
+
+
回复(
+ <%=count %>
+ )
+
<%#=format_date(activity.updated_on)%>
+ <%if count>3 %>
+
+ <% end %>
+
+
+ <% activity= activity.parent_id.nil? ? activity : activity.parent %>
+ <% replies_all_i = 0 %>
+ <% if count > 0 %>
+
+
+ <% activity.children.reorder("created_on desc").each do |reply| %>
+
+ <% replies_all_i=replies_all_i+1 %>
+
+
+ <%= link_to image_tag(url_to_avatar(reply.author), :width => "33", :height => "33"), user_path(reply.author_id), :alt => "用户头像" %>
+
+
+
+ <% if reply.try(:author).try(:realname) == ' ' %>
+ <%= link_to reply.try(:author), user_path(reply.author_id), :class => "newsBlue mr10 f14" %>
+ <% else %>
+ <%= link_to reply.try(:author).try(:realname), user_path(reply.author_id), :class => "newsBlue mr10 f14" %>
+ <% end %>
+ <%= format_time(reply.created_on) %>
+
+
+ <%= reply.content.html_safe %>
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb
index deaec4437..a85ffa687 100644
--- a/app/views/organizations/show.html.erb
+++ b/app/views/organizations/show.html.erb
@@ -30,40 +30,16 @@
init_activity_KindEditor_data(<%= @organization.home_id%>, null, "87%");
});
-
<%= render :partial => 'show_org_document', :locals => {:document => OrgDocumentComment.find(@organization.home_id), :home_id => @organization.home_id} %>
<% end %>
- <% unless @activities.nil? %>
- <% @activities.each do |act| %>
- <% if act.org_act_type == 'CreateOrganization' %>
-
- <% end %>
- <% if act.org_act_type == 'OrgDocumentComment' && act.org_act_id != @organization.home_id %>
-
- <%= render :partial => 'show_org_document', :locals => {:document => act.org_act} %>
- <% end %>
- <% end %>
-
- <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
-
- <% end %>
+<%= render :partial => 'organizations/org_activities',
+ :locals => {:org_activities =>@org_activities,
+ :page=>@page,
+ :org => @organization,
+ :org_act_count=>@org_activities.count}%>
+
+
diff --git a/app/views/organizations/show.js.erb b/app/views/organizations/show.js.erb
new file mode 100644
index 000000000..ee405d73c
--- /dev/null
+++ b/app/views/organizations/show.js.erb
@@ -0,0 +1,6 @@
+$("#show_more_activities").replaceWith("<%= escape_javascript( render :partial => 'organizations/org_activities',
+ :locals => {:org_activities =>@org_activities,
+ :page=>@page,
+ :org => @organization,
+ :org_act_count=>@org_activities.count} )%>");
+
diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb
index 38a4d6edd..d02cea104 100644
--- a/app/views/users/_course_homework.html.erb
+++ b/app/views/users/_course_homework.html.erb
@@ -23,7 +23,11 @@
<% else %>
匿评已禁用
<% end %>
-
作品提交中
+ <% if Time.parse(activity.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")%>
+
作品提交中
+ <% elsif Time.parse(activity.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") %>
+
作品补交中
+ <% end %>
<% elsif activity.homework_detail_manual.comment_status == 2%>
<% if activity.anonymous_comment == 0%>
匿评中
diff --git a/app/views/users/_show_user_org.html.erb b/app/views/users/_show_user_org.html.erb
new file mode 100644
index 000000000..e753092fa
--- /dev/null
+++ b/app/views/users/_show_user_org.html.erb
@@ -0,0 +1,39 @@
+<%= stylesheet_link_tag 'pleft','header','new_user','repository','org', 'project' %>
+<%#= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository','org' %>
+
+
+
+
+
组织列表
+
+ <%= form_tag url_for(:controller => 'users', :action => 'search_user_orgs', :id => User.current.id), :method => 'get', :id => "search_org_form", :class=>"resourcesSearchloadBox", :style=>"float:right; margin-top:-5px;" do %>
+
+
+
+
搜索
+ <% end %>
+
+
+
+ <% orgs.each do |org| %>
+
+
+ <%= link_to image_tag(url_to_avatar(org), :width => '78', :height => '78', :alt => '组织logo'), organization_path(org), :class => "linkGrey2" %>
+
+
+
+ <%= link_to org.name, organization_path(org), :class => 'f16 linkBlue' %>
+
+
<%= org.description %>
+
创建者:<%= link_to User.find(org.creator_id), user_path(org.creator_id), :class => 'linkGrey2', :target => '_blank' %>
+
创建时间:<%= format_activity_day(org.created_at) %> <%= format_time(org.created_at, false) %>
+
您的身份:<%= User.current.admin_of_org?(org) ? "组织管理员" : "组织成员" %>
+
+
+
+
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb
index 0c2a28e5c..539b8b603 100644
--- a/app/views/users/_user_homework_detail.html.erb
+++ b/app/views/users/_user_homework_detail.html.erb
@@ -23,7 +23,11 @@
<% else %>
匿评已禁用
<% end %>
-
作品提交中
+ <% if Time.parse(homework_common.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d")%>
+
作品提交中
+ <% elsif Time.parse(homework_common.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") %>
+
作品补交中
+ <% end %>
<% elsif homework_common.homework_detail_manual.comment_status == 2%>
<% if homework_common.anonymous_comment == 0%>
匿评中
diff --git a/app/views/users/search_user_orgs.html.erb b/app/views/users/search_user_orgs.html.erb
new file mode 100644
index 000000000..1a921d38e
--- /dev/null
+++ b/app/views/users/search_user_orgs.html.erb
@@ -0,0 +1 @@
+<%= render :partial => 'show_user_org', :locals => {:orgs => @orgs} %>
\ No newline at end of file
diff --git a/app/views/users/search_user_orgs.js.erb b/app/views/users/search_user_orgs.js.erb
new file mode 100644
index 000000000..7184a29c5
--- /dev/null
+++ b/app/views/users/search_user_orgs.js.erb
@@ -0,0 +1,2 @@
+
+//$("#org_list").replaceWith("<%#= escape_javascript(render :partial => 'show_user_org', :locals => {:orgs => @orgs}) %>")
\ No newline at end of file
diff --git a/app/views/users/user_organizations.html.erb b/app/views/users/user_organizations.html.erb
index 50fa03bbe..e2a24b2aa 100644
--- a/app/views/users/user_organizations.html.erb
+++ b/app/views/users/user_organizations.html.erb
@@ -1,4 +1,4 @@
-<%= stylesheet_link_tag 'pleft','header','new_user','repository','org' %>
+<%= stylesheet_link_tag 'pleft','header','new_user','repository','org', 'project' %>
<%#= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository','org' %>
@@ -6,30 +6,34 @@
组织列表
-
-
-
-
+ <%= form_tag url_for(:controller => 'users', :action => 'search_user_orgs', :id => User.current.id), :method => 'get', :id => "search_org_form", :class=>"resourcesSearchloadBox", :style=>"float:right; margin-top:-5px;" do %>
+
+
+
+
搜索
+ <% end %>
- <% @orgs.each do |org| %>
-
-
- <%= link_to image_tag(url_to_avatar(org), :width => '78', :height => '78', :alt => '组织logo'), organization_path(org), :class => "linkGrey2" %>
-
-
-
- <%= link_to org.name, organization_path(org), :class => 'f16 linkBlue' %>
+
+ <% @orgs.each do |org| %>
+
+
+ <%= link_to image_tag(url_to_avatar(org), :width => '78', :height => '78', :alt => '组织logo'), organization_path(org), :class => "linkGrey2" %>
-
<%= org.description %>
-
创建者:<%= link_to User.find(org.creator_id), user_path(org.creator_id), :class => 'linkGrey2', :target => '_blank' %>
-
创建时间:<%= format_activity_day(org.created_at) %> <%= format_time(org.created_at, false) %>
-
您的身份:<%= User.current.admin_of_org?(org) ? "组织管理员" : "组织成员" %>
+
+
+ <%= link_to org.name, organization_path(org), :class => 'f16 linkBlue' %>
+
+
<%= org.description %>
+
创建者:<%= link_to User.find(org.creator_id), user_path(org.creator_id), :class => 'linkGrey2', :target => '_blank' %>
+
创建时间:<%= format_activity_day(org.created_at) %> <%= format_time(org.created_at, false) %>
+
您的身份:<%= User.current.admin_of_org?(org) ? "组织管理员" : "组织成员" %>
+
+
+
-
-
-
- <% end %>
+ <% end %>
+
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 0f05c3521..69134e666 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -444,6 +444,7 @@ RedmineApp::Application.routes.draw do
get 'dealwith_apply_request'
get 'store_selected_resource'
get 'user_organizations'
+ get 'search_user_orgs'
# end
end
#resources :blogs
diff --git a/db/migrate/20151116020842_copy_forge_activities_to_org_activities.rb b/db/migrate/20151116020842_copy_forge_activities_to_org_activities.rb
new file mode 100644
index 000000000..95c4ed5bf
--- /dev/null
+++ b/db/migrate/20151116020842_copy_forge_activities_to_org_activities.rb
@@ -0,0 +1,16 @@
+class CopyForgeActivitiesToOrgActivities < ActiveRecord::Migration
+ def up
+ ForgeActivity.all.each do |forge_act|
+ OrgActivity.create(:user_id => forge_act.user_id,
+ :org_act_id => forge_act.forge_act_id,
+ :org_act_type => forge_act.forge_act_type,
+ :container_id => forge_act.project_id,
+ :container_type => 'Project',
+ :created_at => forge_act.created_at,
+ :updated_at => forge_act.updated_at)
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20151116070906_add_created_at_to_org_members.rb b/db/migrate/20151116070906_add_created_at_to_org_members.rb
new file mode 100644
index 000000000..33d3a2817
--- /dev/null
+++ b/db/migrate/20151116070906_add_created_at_to_org_members.rb
@@ -0,0 +1,5 @@
+class AddCreatedAtToOrgMembers < ActiveRecord::Migration
+ def change
+ add_column :org_members, :created_at, :timestamp
+ end
+end
diff --git a/db/migrate/20151116071721_set_time_for_org_member.rb b/db/migrate/20151116071721_set_time_for_org_member.rb
new file mode 100644
index 000000000..f9e78dff5
--- /dev/null
+++ b/db/migrate/20151116071721_set_time_for_org_member.rb
@@ -0,0 +1,13 @@
+class SetTimeForOrgMember < ActiveRecord::Migration
+ def up
+ OrgMember.all.each do |member|
+ if(member.created_at.nil?)
+ member.created_at = Time.now - 5.days
+ member.save
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 73924d83c..9b9e16eab 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -528,23 +528,26 @@ ActiveRecord::Schema.define(:version => 20151112072948) do
add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
add_index "documents", ["project_id"], :name => "documents_project_id"
- create_table "dts", :force => true do |t|
- t.string "IPLineCode"
- t.string "Description"
- t.string "Num"
- t.string "Variable"
- t.string "TraceInfo"
- t.string "Method"
+ create_table "dts", :primary_key => "Num", :force => true do |t|
+ t.string "Defect", :limit => 50
+ t.string "Category", :limit => 50
t.string "File"
- t.string "IPLine"
- t.string "Review"
- t.string "Category"
- t.string "Defect"
- t.string "PreConditions"
- t.string "StartLine"
+ t.string "Method"
+ t.string "Module", :limit => 20
+ t.string "Variable", :limit => 50
+ t.integer "StartLine"
+ t.integer "IPLine"
+ t.string "IPLineCode", :limit => 200
+ t.string "Judge", :limit => 15
+ t.integer "Review", :limit => 1
+ t.string "Description"
+ t.text "PreConditions", :limit => 2147483647
+ t.text "TraceInfo", :limit => 2147483647
+ t.text "Code", :limit => 2147483647
t.integer "project_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.integer "id", :null => false
end
create_table "enabled_modules", :force => true do |t|
@@ -569,6 +572,60 @@ ActiveRecord::Schema.define(:version => 20151112072948) do
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
+ create_table "exercise_answers", :force => true do |t|
+ t.integer "user_id"
+ t.integer "exercise_question_id"
+ t.integer "exercise_choice_id"
+ t.text "answer_text"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "exercise_choices", :force => true do |t|
+ t.integer "exercise_question_id"
+ t.text "choice_text"
+ t.integer "choice_position"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "exercise_questions", :force => true do |t|
+ t.string "question_title"
+ t.integer "question_type"
+ t.integer "question_number"
+ t.integer "exercise_id"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "exercise_standard_answers", :force => true do |t|
+ t.integer "exercise_question_id"
+ t.integer "exercise_choice_id"
+ t.text "answer_text"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "exercise_users", :force => true do |t|
+ t.integer "user_id"
+ t.integer "exercise_id"
+ t.integer "score"
+ t.datetime "start_at"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "exercises", :force => true do |t|
+ t.string "exercise_name"
+ t.text "exercise_description"
+ t.integer "course_id"
+ t.integer "exercise_status"
+ t.integer "user_id"
+ t.integer "time"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "first_pages", :force => true do |t|
t.string "web_title"
t.string "title"
@@ -814,16 +871,6 @@ ActiveRecord::Schema.define(:version => 20151112072948) do
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
- create_table "journal_details_copy", :force => true do |t|
- t.integer "journal_id", :default => 0, :null => false
- t.string "property", :limit => 30, :default => "", :null => false
- t.string "prop_key", :limit => 30, :default => "", :null => false
- t.text "old_value"
- t.text "value"
- end
-
- add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id"
-
create_table "journal_replies", :id => false, :force => true do |t|
t.integer "journal_id"
t.integer "user_id"
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index 05bba54f6..5469078a5 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -182,6 +182,7 @@ a.f_grey:hover {color:#000000;}
/*.upbtn{ margin:42px 0 0 10px; border:none; color:#999; width:150px;}*/
.red_btn_cir{ background:#e74c3c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_btn_cir{ background:#28be6c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
+.red_homework_btn_cir{ background:#e74c3c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_homework_btn_cir{ background:#28be6c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_btn_cir{ background:#b2b2b2; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
.grey_homework_btn_cir{ background:#b2b2b2; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css
index 368964f3b..6ccfc47f6 100644
--- a/public/stylesheets/new_user.css
+++ b/public/stylesheets/new_user.css
@@ -299,6 +299,7 @@ a:hover.bgreen_n_btn{background:#08a384;}
.green_btn_cir{ background:#28be6c; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.green_homework_btn_cir{ background:#28be6c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_btn_cir{ background:#b2b2b2; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
+.red_homework_btn_cir{ background:#e74c3c; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.grey_homework_btn_cir{ background:#b2b2b2; padding:1px 3px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}
.blue_btn_cir{ background:#3498db; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;}
.orange_btn_cir{ background:#e67e22; padding:1px 10px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal; font-size:12px;}