diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index e1ea6935a..281f779d7 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -34,6 +34,7 @@ class OrganizationsController < ApplicationController end + def new @organization = Organization.new render :layout => 'new_base' @@ -74,10 +75,12 @@ class OrganizationsController < ApplicationController if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) @subfield_content = @organization.org_subfields.order("priority") # 项目两种动态 + @project_acts = get_project_activities_org @organization @project_issue_acts = get_project_issue_activities_org @organization @project_message_acts = get_project_message_activities_org @organization # 磕碜动态 #@project_acts_issues = get_project_activities_org @organization + @course_acts = get_course_activities_org @organization @course_acts_homework = get_course_homework_activities_org @organization @course_acts_message = get_course_message_activities_org @organization @course_acts_news = get_course_news_activities_org @organization @@ -153,6 +156,29 @@ class OrganizationsController < ApplicationController #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' and org_act_type = 'issue' order by updated_at desc limit 4;") end + # 获取整过项目的动态 + def get_project_activities_org org + project_ids = org.projects.map{|project| project.id}.join(",") + unless project_ids.blank? + project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' order by updated_at desc limit 3;") + else + project_acts = nil + end + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{project_ids}) and container_type = 'project' and org_act_type = 'issue' order by updated_at desc limit 4;") + end + + # 获取整过课程的动态 + def get_course_activities_org org + course_ids = org.courses.map{|course| course.id}.join(",") + unless course_ids.blank? + project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' order by updated_at desc limit 6;") + else + project_acts = nil + end + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' order by updated_at desc limit 5;") + #project_acts = OrgActivity.find_by_sql("SELECT * FROM org_activities where container_id in (#{course_ids}) and container_type = 'course' and org_act_type = 'HomeworkCommon' order by updated_at desc limit 1;") + end + def get_course_homework_activities_org org course_ids = org.courses.map{|course| course.id}.join(",") unless course_ids.blank? @@ -228,11 +254,6 @@ class OrganizationsController < ApplicationController end end - - def clear_org_avatar_temp - - end - def set_homepage @org = Organization.find(params[:id]) @org.home_id = params[:home_id] diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index c2ba5b03b..3cbdcafaa 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -30,7 +30,7 @@ module OrganizationsHelper end def get_message_org(org_id, field_id) - OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and org_subfield_id = #{field_id} and parent_id is null order by updated_at desc limit 2;") + OrgDocumentComment.find_by_sql("SELECT * FROM org_document_comments where organization_id = #{org_id} and org_subfield_id = #{field_id} and parent_id is null order by updated_at desc limit 3;") end def get_message_reply_org(org_id, ids) diff --git a/app/views/layouts/base_org_newstyle.html.erb b/app/views/layouts/base_org_newstyle.html.erb index ff94326a0..7b3bdb754 100644 --- a/app/views/layouts/base_org_newstyle.html.erb +++ b/app/views/layouts/base_org_newstyle.html.erb @@ -110,9 +110,10 @@ <% if is_default_field?(field) %> <% case field.name %> <% when 'course' %> -
+
+ <% if false %>
-

课程动态

course activities

+

课程动态

course activities

    <% unless @course_acts_homework.nil? %> @@ -140,68 +141,81 @@
+ <% else %> +
+

课程动态

+
+ <%= render :partial => 'organizations/org_new_course_act_list', :locals =>{:activities => @course_acts, :field => field, :organization => @organization} %> + +
+
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+
+ <% end %>
<% when 'project' %> -
+ <% if true %>
-

项目动态

project activities

+

项目动态

+
+
    + <% unless @project_acts.nil? %> + + <%= render :partial => 'organizations/org_new_project_pic', :locals => {:activities => @project_acts} %> + + <% end %> +
    +
+
+
+ <% else %> +
+

<%= field.name %>

- <% unless @project_message_acts.nil? %> -
- - <% @project_message_acts.each do |act| %> - <%= render :partial => 'organizations/org_new_project_message', :locals => {:activity => Message.find(act.org_act_id)} %> - <% end %> - <%= link_to "More", organization_path(@organization, :type => 1), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% end %> - - <% unless @project_issue_acts.nil? %> -
- <% @project_issue_acts.each do |act| %> - <%= render :partial => 'organizations/org_new_project_issues', :locals => {:activity => Issue.find(act.org_act_id)} %> - <% end %> - <%= link_to "More", organization_path(@organization, :type => 1), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% end %> - + <%= render :partial => 'organizations/org_new_project_act_list', :locals =>{:activities => @project_acts, :field => field, :organization => @organization} %> +
-
-
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+
+ <% end %> + <% end %> <% else %> <% if field.field_type == "Post" %> <%# 讨论类型 %> <% message_ats = get_message_org(@organization.id, field.id) %> <% ids = field.org_document_comments.map{|o| o.id}.join(",") %>
-
-

<%= field.name %>

discussion zone

-
-
- <% message_ats.each do |act| %> - <%= render :partial => 'organizations/org_new_forum', :locals => {:activity => act, :field => field, :organization => @organization} %> - <% end %> - <%#= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn mt30 fr", :target => "_blank" %> -
-
- <% unless ids.blank? %> - <% message_reply_ats = get_message_reply_org(@organization.id, ids) %> -
- <% message_reply_ats.each do |act| %> - <%= render :partial => 'organizations/org_new_forum_reply', :locals => {:activity => act, :field => field, :organization => @organization} %> - <% end %> -
-
+ <% if false %> +
+

<%= field.name %>

+
+
    - <% end %> -
-
-
- <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> -
+ <% message_ats.each do |act| %> + <%= render :partial => 'organizations/org_new_forum_pic', :locals => {:activity => act, :field => field, :organization => @organization} %> + <% end %> +
+ +
+
+ <% else %> +
+

<%= field.name %>

+
+ <% message_ats.each do |act| %> + <%= render :partial => 'organizations/org_new_forum_list', :locals => {:activity => act, :field => field, :organization => @organization} %> + <% end %> + +
+
+ <%= link_to "More", organization_path(@organization, :org_subfield_id => field.id), :class => "more-btn-center mt30" , :target => "_blank" %> +
+
+
+ <% end %>
<% elsif field.field_type == "Resource" %> <% org_attachs = get_attach_org2(field) %> diff --git a/app/views/organizations/_org_new_course_act_list.html.erb b/app/views/organizations/_org_new_course_act_list.html.erb new file mode 100644 index 000000000..18a1e6662 --- /dev/null +++ b/app/views/organizations/_org_new_course_act_list.html.erb @@ -0,0 +1,48 @@ +<% activities.each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.user),:width => "40", :height => "40"), user_path(activity.user), :class => "fl user-img" %> + +
+ <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:user).try(:realname).nil? ? activity.try(:user).try(:login) : activity.try(:user).try(:realname) %> + <%= activity.journals_for_messages.count %>

+
+ +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
+ <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% end %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.children.count %>

+
+ +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
+ <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
+ <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

+
+
+ <% end %> + +<% end %> \ No newline at end of file diff --git a/app/views/organizations/_org_new_forum_list.html.erb b/app/views/organizations/_org_new_forum_list.html.erb new file mode 100644 index 000000000..a8e531b50 --- /dev/null +++ b/app/views/organizations/_org_new_forum_list.html.erb @@ -0,0 +1,14 @@ + +
+ <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
+ <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

+
+ +
+ + diff --git a/app/views/organizations/_org_new_forum_pic.html.erb b/app/views/organizations/_org_new_forum_pic.html.erb new file mode 100644 index 000000000..c4fd061a5 --- /dev/null +++ b/app/views/organizations/_org_new_forum_pic.html.erb @@ -0,0 +1,24 @@ +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.content) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank' %> +
    +
    + <%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> +

    <%= format_date activity.created_at %>

    +
    <%= activity.children.count %>
    +
    + +
  • + + + + diff --git a/app/views/organizations/_org_new_project_act_list.html.erb b/app/views/organizations/_org_new_project_act_list.html.erb new file mode 100644 index 000000000..b3754024f --- /dev/null +++ b/app/views/organizations/_org_new_project_act_list.html.erb @@ -0,0 +1,49 @@ +<% activities.each do |act| %> + <% if act.org_act_type == "Issue" %> + <% activity = Issue.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
    + <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.journals.count %>

    +
    + +
    + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.author),:width => "40", :height => "40"), user_path(activity.author), :class => "fl user-img" %> + +
    + <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "fl ziyuan-title" %> + <% end %> + <%#= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_on %> + 作者:<%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> + <%= activity.children.count %>

    +
    + +
    + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
    + <%= link_to image_tag(url_to_avatar(activity.creator),:width => "40", :height => "40"), user_path(activity.creator), :class => "fl user-img" %> + +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "fl ziyuan-title" %> +

    发布时间:<%= format_date activity.updated_at %> + 作者:<%= activity.try(:creator).try(:realname).nil? ? activity.try(:creator).try(:login) : activity.try(:creator).try(:realname) %> + <%= activity.children.count %>

    +
    +
    + <% end %> + +<% end %> \ No newline at end of file diff --git a/app/views/organizations/_org_new_project_pic.html.erb b/app/views/organizations/_org_new_project_pic.html.erb new file mode 100644 index 000000000..aa91659ce --- /dev/null +++ b/app/views/organizations/_org_new_project_pic.html.erb @@ -0,0 +1,77 @@ + + <% activities.each do |act| %> + <% if act.org_act_type == "Issue" %> + <% activity = Issue.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.description) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank' %> +
    +
    + <%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> +

    <%= format_date activity.updated_on %>

    +
    <%= activity.journals.count %>
    +
    + +
  • + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.content) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank' %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank' %> + <% end %> +
    +
    + <%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> +

    <%= format_date activity.updated_on %>

    +
    <%= activity.children.count %>
    +
    + +
  • + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> +
  • + +
    + <% iamge_path = get_image_path_from_content(activity.description) %> + <% if iamge_path.nil? %> + # + <% else %> + + <% end %> +
    +
    + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank' %> +
    +
    + <%= activity.try(:author).try(:realname).nil? ? activity.try(:author).try(:login) : activity.try(:author).try(:realname) %> +

    <%= format_date activity.created_on %>

    +
    <%= activity.comments.count %>
    +
    + +
  • + + <% end %> + + <% end %> + diff --git a/db/migrate/20160331060004_add_type_to_organization.rb b/db/migrate/20160331060004_add_type_to_organization.rb deleted file mode 100644 index e9313433b..000000000 --- a/db/migrate/20160331060004_add_type_to_organization.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddTypeToOrganization < ActiveRecord::Migration - def change - add_column :organizations, :type, :integer, :default => true - end -end diff --git a/db/schema.rb b/db/schema.rb index 8041b347b..732a42c6f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160328022623) do +ActiveRecord::Schema.define(:version => 20160331060004) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1302,6 +1302,7 @@ ActiveRecord::Schema.define(:version => 20160328022623) do t.boolean "allow_guest_download", :default => true t.integer "visits", :default => 0 t.integer "show_mode", :default => 0 + t.integer "type", :default => 1 end create_table "phone_app_versions", :force => true do |t|