From ad2f12c9d03c772053d4b3772331f1678f55f770 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 12 May 2016 15:02:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8D=E5=B8=88=E5=88=97=E8=A1=A8=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organizations_controller.rb | 46 +++++-- .../_org_left_subfield_list.html.erb | 6 +- .../organizations/_org_teachers_list.html.erb | 6 +- .../organizations/_show_teachers.html.erb | 8 +- app/views/organizations/show.html.erb | 123 +++++++++--------- app/views/organizations/teachers.html.erb | 27 ++++ app/views/organizations/teachers.js.erb | 2 + config/routes.rb | 2 +- public/javascripts/org.js | 34 +++++ 9 files changed, 168 insertions(+), 86 deletions(-) create mode 100644 app/views/organizations/teachers.html.erb create mode 100644 app/views/organizations/teachers.js.erb diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index 71a39d7ac..5de6887cb 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -28,7 +28,7 @@ class OrganizationsController < ApplicationController helper :project_score helper :issues include UsersHelper - before_filter :find_organization, :only => [:show, :members, :apply_subdomain, :select_org_layout] + before_filter :find_organization, :only => [:show, :members, :apply_subdomain, :select_org_layout, :teachers] layout 'base_org' def index @@ -102,10 +102,18 @@ class OrganizationsController < ApplicationController if params[:org_subfield_id] @org_subfield = OrgSubfield.find(params[:org_subfield_id]) if @org_subfield.field_type == "Comptec" || @org_subfield.field_type == "Compstu" + # @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,( SELECT `courses`.* FROM `courses` INNER JOIN `members` ON `courses`.`id` = `members`.`course_id` WHERE `members`.`user_id` = u.id AND (courses.status<>9)) as course_count # from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 order by course_count desc") @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 order by course_count desc") - # @org_resources = + # @org_count = @org_teachers.count + # @limit = 25 + # @is_remote = true + # @atta_count = @attachments.count + # @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 + # @offset ||= @atta_pages.offset + # #@curse_attachments_all = @all_attachments[@offset, @limit] + # @attachments = paginateHelper @attachments,25 else @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 @org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) @@ -150,17 +158,29 @@ class OrganizationsController < ApplicationController end - def teacher_search - "SELECT homework_commons.* FROM homework_commons INNER JOIN courses ON homework_commons.course_id = courses.id where homework_type in #{type_ids} and course_id in #{visible_course_ids} and publish_time <= '#{Date.today}' and (homework_commons.name like '%#{search}%' " - teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 order by course_count desc") - q = "#{params[:search].strip}" - @org_teachers = searchmember_by_name(teachers, q) - @is_remote = true - #@result_count = results.count - #@results = paginateHelper results, 10 - # @results = results - # @search_name = q - + def teachers + q = params[:search].nil? ? "" : "#{params[:search].strip}" + if params[:type] == "courses" || params[:type].nil? + @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count + from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and concat(lastname,firstname,login) like '%#{q}%' order by course_count desc") + elsif params[:type] == "students" + @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count + from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and concat(lastname,firstname,login) like '%#{q}%' order by course_count desc") + elsif params[:type] == "resources" + @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from attachments where attachments.author_id = u.id) as course_count + from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and concat(lastname,firstname,login) like '%#{q}%' order by course_count desc") + end + limit = 10 + # @is_remote = true + @teachers_count = @org_teachers.count + @atta_pages = Paginator.new @teachers_count, limit, params['page'] || 1 + @offset ||= @atta_pages.offset + #@curse_attachments_all = @all_attachments[@offset, @limit] + @org_teachers = paginateHelper @org_teachers, limit + respond_to do |format| + format.html + format.js + end end def searchmember_by_name members, name diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 90019354c..681cd90c8 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -101,7 +101,11 @@ <%= link_to "#{field.name}", show_org_subfield_organization_path(:id => organization.id, :sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% end %> <% else %> - <%= link_to "#{field.name}", organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <% if field.field_type == "Comptec" %> + <%= link_to "#{field.name}", teachers_organization_path(organization), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <% else %> + <%= link_to "#{field.name}", organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <% end %> <% end %> <% if User.current.logged? and User.current.admin_of_org?(organization) %> <%=link_to "", new_organization_org_document_comment_path(organization, :field_id => field.id), :method => "get", :class => "homepageMenuSetting fr", :title => "发布帖子" %> diff --git a/app/views/organizations/_org_teachers_list.html.erb b/app/views/organizations/_org_teachers_list.html.erb index 6397a9cb1..6b3fd5e37 100644 --- a/app/views/organizations/_org_teachers_list.html.erb +++ b/app/views/organizations/_org_teachers_list.html.erb @@ -14,17 +14,17 @@ <%= org_teacher.technical_title %> <% end %>
-
<%= org_teacher_course_count(org_teacher) %>
+
<%= @org_count %>
课程数
-
<%= org_student_course_count(org_teacher) %>500
+
<%#= org_student_course_count(org_teacher) %>500
学生数
-
<%= org_teacher_resource_count(org_teacher) %>
+
<%#= org_teacher_resource_count(org_teacher) %>
资源数
diff --git a/app/views/organizations/_show_teachers.html.erb b/app/views/organizations/_show_teachers.html.erb index 3531b9a58..355e5a731 100644 --- a/app/views/organizations/_show_teachers.html.erb +++ b/app/views/organizations/_show_teachers.html.erb @@ -9,10 +9,10 @@ - + + +
diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb index 24c1ab791..d93ead84b 100644 --- a/app/views/organizations/show.html.erb +++ b/app/views/organizations/show.html.erb @@ -1,72 +1,66 @@ -<% if !params[:org_subfield_id].nil? && @org_subfield.field_type == "Compstu" %> - <%= render 'organizations/show_students', :field => @org_subfield %> -<% elsif !params[:org_subfield_id].nil? && @org_subfield.field_type == "Comptec" %> - <%= render 'organizations/show_teachers', :field => @org_subfield %> -<% else %> - <%= javascript_include_tag "jquery.infinitescroll.js" %> +<%= javascript_include_tag "jquery.infinitescroll.js" %> - <%= content_for(:header_tags) do %> - <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> - <% end %> +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> +<% end %> - <% if params[:show_homepage].nil? and User.current.logged? %> -
-
<%= @org_subfield.nil? ? "最新动态":"#{@org_subfield.name}" %>
- <% if params[:org_subfield_id].nil? %> -
+<% end %> +<% if !@organization.home_id.nil? and OrgDocumentComment.where("id = ?", @organization.home_id).count > 0 and params[:org_subfield_id].nil? %> + + <% act = OrgActivity.where("org_act_type = 'OrgDocumentComment' and org_act_id =?", @organization.home_id).first %> + <%= render :partial => 'show_home_page', :locals => {:document => OrgDocumentComment.find(@organization.home_id), :home_id => @organization.home_id, :act => act} %> +<% end %> +<% if @org_activities %> + <%= render :partial => 'organizations/org_activities', + :locals => {:org_activities => @org_activities, + :page=> @page, + :org => @organization, + :org_act_count=> @org_activities.count} %> <% end %> @@ -75,3 +69,4 @@ + diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb new file mode 100644 index 000000000..211641fcb --- /dev/null +++ b/app/views/organizations/teachers.html.erb @@ -0,0 +1,27 @@ +
+
+ <%= form_tag( url_for(:controller => 'organizations', :action => 'teachers'), + :remote => true , :method => 'get', :id => 'resource_search_form') do %> + + <%= submit_tag '', :class => 'homepageSearchIcon', :onfocus => 'this.blur();', :style => 'border-style:none', :class => "teacher-search-icon fl" %> + + <% end %> + + + + +
+
+
+ <%=render 'organizations/org_teachers_list', :org_teachers => @org_teachers %> +
+
+
    + <%= pagination_links_full @atta_pages, @teachers_count, :per_page_links => false, :flag => true %> +
+
+
\ No newline at end of file diff --git a/app/views/organizations/teachers.js.erb b/app/views/organizations/teachers.js.erb new file mode 100644 index 000000000..c2920716c --- /dev/null +++ b/app/views/organizations/teachers.js.erb @@ -0,0 +1,2 @@ +$("#org_teachers_list").html('<%= escape_javascript( render :partial => 'organizations/org_teachers_list')%>'); +$("#pages").html('<%= pagination_links_full @atta_pages, @teachers_count, :per_page_links => false, :remote => @is_remote, :flag => true %>'); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 9910cbe6c..0df73ea68 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -76,7 +76,7 @@ RedmineApp::Application.routes.draw do get 'more_org_projects' get 'more_org_courses' get 'search_courses' - get 'teacher_search' + get 'teachers' post 'join_course_menu' post 'join_courses' get 'search_projects' diff --git a/public/javascripts/org.js b/public/javascripts/org.js index d1cd30a3a..5b18372ed 100644 --- a/public/javascripts/org.js +++ b/public/javascripts/org.js @@ -74,4 +74,38 @@ function search_tag_attachment(url,tag_name,q,course_id,sort) ); } +} + +// 教师选项 +var sendType = '1'; +var lastSendType ;//初始为发送到我的课程 +function chooseTeacherType(org_id){ + sendType = $("#teacher_type_select").val(); + if (sendType === lastSendType) { + alert("666"); + return; + } else if(lastSendType != null) { //不是第一次点击的时候 + if (sendType == '1') { + alert("te"); + $.ajax({ + type: 'get', + url: '/organizations/' + org_id + '/teachers', + data:{type:"teachers"} + }); + } else if(sendType == '2') { + alert(org_id); + $.ajax({ + type: 'get', + url: '/organizations/' + org_id + '/teachers', + data:{type:"students"} + }); + }else if(sendType == '3'){ + $.ajax({ + type: 'get', + url: '/organizations/' + org_id + '/teachers', + data:{type:"resources"} + }); + } + } + lastSendType = sendType; } \ No newline at end of file