From bb8a6af13e35eeaa1ce73ff8a15b5e57bc425285 Mon Sep 17 00:00:00 2001 From: linchun Date: Fri, 4 Mar 2016 15:31:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?admin=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B2=BE=E5=93=81=E8=AF=BE=E7=A8=8B=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E8=AF=A5=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E7=B2=BE=E5=93=81=E8=AF=BE=E7=A8=8B=E6=98=AF=E5=9B=BA=E5=AE=9A?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 7 ++ app/helpers/courses_helper.rb | 5 ++ app/views/admin/excellent_courses.html.erb | 75 ++++++++++++++++++++++ config/locales/en.yml | 1 + config/locales/zh.yml | 1 + config/routes.rb | 1 + db/schema.rb | 7 +- lib/redmine.rb | 1 + 8 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 app/views/admin/excellent_courses.html.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 01703f679..1701e6b7c 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -49,6 +49,13 @@ class AdminController < ApplicationController end end + def excellent_courses + @courses = Course.where("is_excellent =? or excellent_option =?", 1, 1 ) + respond_to do |format| + format.html + end + end + def users sort_init 'login', 'asc' sort_update %w(login firstname lastname mail admin created_on last_login_on) diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 2cdb277be..1875f920d 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -71,6 +71,11 @@ module CoursesHelper project.members.count end + # 统计课程中作品的数量 + def student_works_num course + StudentWork.find_by_sql("SELECT * FROM student_works WHERE homework_common_id IN (SELECT id FROM homework_commons WHERE course_id = '#{course.id}')").count + end + # 返回教师数量,即roles表中定义的Manager def teacherCount project project ? project.members.count - studentCount(project).to_i : 0 diff --git a/app/views/admin/excellent_courses.html.erb b/app/views/admin/excellent_courses.html.erb new file mode 100644 index 000000000..e21ba32aa --- /dev/null +++ b/app/views/admin/excellent_courses.html.erb @@ -0,0 +1,75 @@ +

+ <%=l(:label_excellent_courses_list)%> +

+ +
+ + + + + + + + + + + + + + + + <% @courses.each do |course| %> + "> + + + + + + + + + + + <% end %> + +
+ 序号 + + 课程名 + + 主讲老师 + + 学生数 + + 作业数 + + 作品数 + + 资源数 + + 帖子数 + + 动态数 +
+ <%= course.id %> + + + <%= link_to(course.name, course_path(course.id)) %> + + + <%= link_to(course.try(:teacher).try(:realname).truncate(6, omission: '...'), user_path(course.teacher)) %> + + <%= studentCount(course) %> + + <%= course.homework_commons.count%> + + <%= student_works_num(course) %> + + <%= visable_attachemnts_incourse(course).count%> + + <%= course.boards.first.topics.count + Message.where("board_id =? and parent_id is not ?", course.boards.first.id, nil).count %> + + + <%= course.course_activities.count%> +
+
\ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 2bed45103..ec4d69147 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1520,6 +1520,7 @@ en: label_submit_comments: Submit_comments label_course_empty_select: You have not selected course! label_enterprise_page_made: enterprise_page + label_excellent_courses_list: excellent_courses #api label_recently_updated_notification: Recently updated notification diff --git a/config/locales/zh.yml b/config/locales/zh.yml index e9d3ed813..98983ffa7 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -483,6 +483,7 @@ zh: label_requirement: 需求 label_new_course: 课程列表 label_course_all: 课程列表 + label_excellent_courses_list: 精品课程列表 label_teacher_all: 所有教师 label_requirement_enterprise_list: 众包列表 label_new_homework: 作业 diff --git a/config/routes.rb b/config/routes.rb index 7754365ad..445cecaf9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -933,6 +933,7 @@ RedmineApp::Application.routes.draw do match 'admin', :to => 'admin#index', :via => :get match 'admin/projects', :via => :get get 'admin/courses' + get 'admin/excellent_courses' match 'admin/users', :via => :get match 'admin/messages', :via => :get match 'admin/first_page_made', as: :first_page_made diff --git a/db/schema.rb b/db/schema.rb index 2593e09fd..2dad292f4 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 => 20160224074034) do +ActiveRecord::Schema.define(:version => 20160225031230) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -2013,6 +2013,11 @@ ActiveRecord::Schema.define(:version => 20160224074034) do add_index "wikis", ["project_id"], :name => "wikis_project_id" + create_table "wlcs", :force => true do |t| + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "workflows", :force => true do |t| t.integer "tracker_id", :default => 0, :null => false t.integer "old_status_id", :default => 0, :null => false diff --git a/lib/redmine.rb b/lib/redmine.rb index 8ebdacfa6..7bb43f905 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -391,6 +391,7 @@ Redmine::MenuManager.map :admin_menu do |menu| menu.push :messages_list, {:controller => 'admin', :action => 'messages_list'}, :caption => :label_message_plural menu.push :notices, {:controller => 'admin', :action => 'notices'}, :caption => :label_notification_list menu.push :latest_login_users, {:controller => 'admin', :action => 'latest_login_users'}, :caption => :label_latest_login_user_list + menu.push :excellent_courses, {:controller => 'admin', :action => 'excellent_courses'}, :caption => :label_excellent_courses_list menu.push :homework, {:controller => 'admin', :action => 'homework'}, :caption => :label_user_homework end From b7f4b584f2c83d16456574a1c6bfc11caf0824c3 Mon Sep 17 00:00:00 2001 From: linchun Date: Mon, 7 Mar 2016 16:46:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E7=95=8C=E9=9D=A2=E8=AF=BE=E7=A8=8B=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 14 ++++ app/views/admin/course_resource_list.html.erb | 67 +++++++++++++++++++ .../_search_attachment_results.html.erb | 2 +- config/locales/en.yml | 1 + config/locales/zh.yml | 1 + config/routes.rb | 1 + lib/redmine.rb | 1 + 7 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 app/views/admin/course_resource_list.html.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 1701e6b7c..4259aa333 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -49,6 +49,7 @@ class AdminController < ApplicationController end end + #管理员界面精品课程列表 def excellent_courses @courses = Course.where("is_excellent =? or excellent_option =?", 1, 1 ) respond_to do |format| @@ -56,6 +57,19 @@ class AdminController < ApplicationController end end + #管理员界面课程资源列表 + def course_resource_list + @resource = Attachment.find_all_by_container_id(12) + + @resource = paginateHelper @resource,30 + @page = (params['page'] || 1).to_i - 1 + + respond_to do |format| + format.html + end + + end + def users sort_init 'login', 'asc' sort_update %w(login firstname lastname mail admin created_on last_login_on) diff --git a/app/views/admin/course_resource_list.html.erb b/app/views/admin/course_resource_list.html.erb new file mode 100644 index 000000000..7a2ac1af1 --- /dev/null +++ b/app/views/admin/course_resource_list.html.erb @@ -0,0 +1,67 @@ +

<%=l(:label_course_resource_list)%>

+ + +
+ + + + + + + + + + + + + + + <% @resource.each do |resource| %> + "> + + + + + + + + + <% end %> + + + + +
+ 资源名称 + + 资源大小 + + 资源类型 + + 上传时间 + + 下载次数 + + 上传者 + + 所属课程 +
+ <%= resource.filename %> + + <%= number_to_human_size(resource.filesize)%> + + 课程资源 + + <%= format_date(resource.created_on)%> + + <%= resource.downloads %> + + <%= link_to(User.find(resource.author_id).realname, user_path(User.find(resource.author_id)) ) %> + + <%=link_to Course.find(resource.container_id).name, course_path(Course.find(resource.container_id)), :class => "hidden fl w170" %> +
+
+ + \ No newline at end of file diff --git a/app/views/welcome/_search_attachment_results.html.erb b/app/views/welcome/_search_attachment_results.html.erb index 21ba68336..e51706085 100644 --- a/app/views/welcome/_search_attachment_results.html.erb +++ b/app/views/welcome/_search_attachment_results.html.erb @@ -21,6 +21,6 @@ <% end %>
- <%= paginate attachments,:params => {:controller => 'welcome', :action => 'search',:search_type=>'attachment'}%> + {:controller => 'welcome', :action => 'search',:search_type=>'attachment'}%>
<% end %> \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index ec4d69147..86a285342 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1521,6 +1521,7 @@ en: label_course_empty_select: You have not selected course! label_enterprise_page_made: enterprise_page label_excellent_courses_list: excellent_courses + label_course_resource_list: course_resource_list #api label_recently_updated_notification: Recently updated notification diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 98983ffa7..8884b0e67 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -484,6 +484,7 @@ zh: label_new_course: 课程列表 label_course_all: 课程列表 label_excellent_courses_list: 精品课程列表 + label_course_resource_list: 课程资源列表 label_teacher_all: 所有教师 label_requirement_enterprise_list: 众包列表 label_new_homework: 作业 diff --git a/config/routes.rb b/config/routes.rb index 445cecaf9..e92590895 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -934,6 +934,7 @@ RedmineApp::Application.routes.draw do match 'admin/projects', :via => :get get 'admin/courses' get 'admin/excellent_courses' + get 'admin/course_resource_list' match 'admin/users', :via => :get match 'admin/messages', :via => :get match 'admin/first_page_made', as: :first_page_made diff --git a/lib/redmine.rb b/lib/redmine.rb index 7bb43f905..21309b710 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -392,6 +392,7 @@ Redmine::MenuManager.map :admin_menu do |menu| menu.push :notices, {:controller => 'admin', :action => 'notices'}, :caption => :label_notification_list menu.push :latest_login_users, {:controller => 'admin', :action => 'latest_login_users'}, :caption => :label_latest_login_user_list menu.push :excellent_courses, {:controller => 'admin', :action => 'excellent_courses'}, :caption => :label_excellent_courses_list + menu.push :var, {:controller => 'admin', :action => 'course_resource_list'}, :caption => :label_course_resource_list menu.push :homework, {:controller => 'admin', :action => 'homework'}, :caption => :label_user_homework end From 3c66a297673f1f6ee3102a5c0049c984783307e0 Mon Sep 17 00:00:00 2001 From: linchun Date: Tue, 8 Mar 2016 11:01:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=88=97=E8=A1=A8=EF=BC=8C=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B5=84=E6=BA=90=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 14 +++- app/views/admin/course_resource_list.html.erb | 21 +++--- .../admin/project_resource_list.html.erb | 64 +++++++++++++++++++ config/locales/en.yml | 1 + config/locales/zh.yml | 1 + config/routes.rb | 1 + lib/redmine.rb | 3 +- 7 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 app/views/admin/project_resource_list.html.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 4259aa333..7ff36c11d 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -59,17 +59,27 @@ class AdminController < ApplicationController #管理员界面课程资源列表 def course_resource_list - @resource = Attachment.find_all_by_container_id(12) - + @resource = Attachment.where(:container_type => 'Course') @resource = paginateHelper @resource,30 @page = (params['page'] || 1).to_i - 1 respond_to do |format| format.html end + end + + #管理员界面項目资源列表 + def project_resource_list + @pro_resource = Attachment.where(:container_type => 'Project') + @pro_resource = paginateHelper @pro_resource,30 + @page = (params['page'] || 1).to_i - 1 + respond_to do |format| + format.html + end end + def users sort_init 'login', 'asc' sort_update %w(login firstname lastname mail admin created_on last_login_on) diff --git a/app/views/admin/course_resource_list.html.erb b/app/views/admin/course_resource_list.html.erb index 7a2ac1af1..4316555f7 100644 --- a/app/views/admin/course_resource_list.html.erb +++ b/app/views/admin/course_resource_list.html.erb @@ -6,25 +6,25 @@ - + 资源名称 - + 资源大小 - + 资源类型 - + 上传时间 - + 下载次数 上传者 - + 所属课程 @@ -33,10 +33,10 @@ <% @resource.each do |resource| %> "> - <%= resource.filename %> + <%= link_to truncate(resource.filename, :length => 18), download_named_attachment_path(resource.id, resource.filename ), :title => resource.filename,:class=>'resourcesBlack'%> - <%= number_to_human_size(resource.filesize)%> + <%= number_to_human_size(resource.filesize)%> 课程资源 @@ -51,13 +51,10 @@ <%= link_to(User.find(resource.author_id).realname, user_path(User.find(resource.author_id)) ) %> - <%=link_to Course.find(resource.container_id).name, course_path(Course.find(resource.container_id)), :class => "hidden fl w170" %> + <%=link_to truncate(Course.find(resource.container_id).name, :length => 10), course_path(Course.find(resource.container_id)), :title => Course.find(resource.container_id).name, :class => "hidden fl w170" %> <% end %> - - - diff --git a/app/views/admin/project_resource_list.html.erb b/app/views/admin/project_resource_list.html.erb new file mode 100644 index 000000000..c245f73b8 --- /dev/null +++ b/app/views/admin/project_resource_list.html.erb @@ -0,0 +1,64 @@ +

<%=l(:label_project_resource_list)%>

+ + +
+ + + + + + + + + + + + + + + <% @pro_resource.each do |pro_resource| %> + "> + + + + + + + + + <% end %> + +
+ 资源名称 + + 资源大小 + + 资源类型 + + 上传时间 + + 下载次数 + + 上传者 + + 所属项目 +
+ <%= link_to truncate(pro_resource.filename, :length => 18), download_named_attachment_path(pro_resource.id, pro_resource.filename ), :title => pro_resource.filename,:class=>'resourcesBlack'%> + + <%= number_to_human_size(pro_resource.filesize)%> + + 项目资源 + + <%= format_date(pro_resource.created_on)%> + + <%= pro_resource.downloads %> + + <%= link_to(User.find(pro_resource.author_id).realname, user_path(User.find(pro_resource.author_id)) ) %> + + <%=link_to truncate(Project.find(pro_resource.container_id).name, :length => 10), project_path(Project.find(pro_resource.container_id)), :title => Project.find(pro_resource.container_id).name, :class => "hidden fl w170" %> +
+
+ + \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 86a285342..3da533eb7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1522,6 +1522,7 @@ en: label_enterprise_page_made: enterprise_page label_excellent_courses_list: excellent_courses label_course_resource_list: course_resource_list + label_project_resource_list: project_resource_list #api label_recently_updated_notification: Recently updated notification diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 8884b0e67..b6bd6afa4 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -485,6 +485,7 @@ zh: label_course_all: 课程列表 label_excellent_courses_list: 精品课程列表 label_course_resource_list: 课程资源列表 + label_project_resource_list: 項目资源列表 label_teacher_all: 所有教师 label_requirement_enterprise_list: 众包列表 label_new_homework: 作业 diff --git a/config/routes.rb b/config/routes.rb index e92590895..de1d9d652 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -935,6 +935,7 @@ RedmineApp::Application.routes.draw do get 'admin/courses' get 'admin/excellent_courses' get 'admin/course_resource_list' + get 'admin/project_resource_list' match 'admin/users', :via => :get match 'admin/messages', :via => :get match 'admin/first_page_made', as: :first_page_made diff --git a/lib/redmine.rb b/lib/redmine.rb index 21309b710..47ee3d38f 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -392,7 +392,8 @@ Redmine::MenuManager.map :admin_menu do |menu| menu.push :notices, {:controller => 'admin', :action => 'notices'}, :caption => :label_notification_list menu.push :latest_login_users, {:controller => 'admin', :action => 'latest_login_users'}, :caption => :label_latest_login_user_list menu.push :excellent_courses, {:controller => 'admin', :action => 'excellent_courses'}, :caption => :label_excellent_courses_list - menu.push :var, {:controller => 'admin', :action => 'course_resource_list'}, :caption => :label_course_resource_list + menu.push :course_resource_list, {:controller => 'admin', :action => 'course_resource_list'}, :caption => :label_course_resource_list + menu.push :project_resource_list, {:controller => 'admin', :action => 'project_resource_list'}, :caption => :label_project_resource_list menu.push :homework, {:controller => 'admin', :action => 'homework'}, :caption => :label_user_homework end