From 0b3e469275f32b7cbb74ea67205bc63e5e627572 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 14 Nov 2019 16:30:35 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=9A=84?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weapps/course_stickies_controller.rb | 20 ++++++++++--------- app/controllers/weapps/homes_controller.rb | 9 +++++---- app/views/weapps/homes/show.json.jbuilder | 4 +++- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/controllers/weapps/course_stickies_controller.rb b/app/controllers/weapps/course_stickies_controller.rb index d045cb40f..82048add9 100644 --- a/app/controllers/weapps/course_stickies_controller.rb +++ b/app/controllers/weapps/course_stickies_controller.rb @@ -1,17 +1,18 @@ class Weapps::CourseStickiesController < Weapps::BaseController - before_action :require_wechat_login! - before_action :teacher_allowed + # before_action :require_wechat_login! def create - manage_course = current_user.manage_courses.order("sticky=1 desc, sticky_time desc, created_at desc").first - return render_error("该课堂已置顶,请勿重复操作") if current_course.sticky && manage_course&.id.to_i == current_course.id - current_course.update!(sticky: 1, sticky_time: Time.now) + courses = params[:category] == "study" ? current_user.as_student_courses.started : current_user.manage_courses + courses = courses.order("course_members.sticky=1 desc, course_members.sticky_time desc, courses.created_at desc").first + + return render_error("该课堂已置顶,请勿重复操作") if course_member.sticky && courses&.id.to_i == current_course.id + course_member.update!(sticky: 1, sticky_time: Time.now) render_ok end def cancel_sticky - return render_error("该课堂未置顶,无法取消") unless current_course.sticky - current_course.update!(sticky: 1, sticky_time: Time.now) + return render_error("该课堂未置顶,无法取消") unless course_member.sticky + course_member.update!(sticky: 0, sticky_time: nil) render_ok end @@ -21,7 +22,8 @@ class Weapps::CourseStickiesController < Weapps::BaseController @_current_course = Course.find params[:course_id] end - def teacher_allowed - render_forbidden if current_user.course_identity(current_course) > Course::ASSISTANT_PROFESSOR + def course_member + @_course_member = params[:category] == "study" ? current_course.students.find_by!(user_id: current_user.id) : + current_course.teachers.find_by!(user_id: current_user.id) end end \ No newline at end of file diff --git a/app/controllers/weapps/homes_controller.rb b/app/controllers/weapps/homes_controller.rb index 987518677..a164adcfc 100644 --- a/app/controllers/weapps/homes_controller.rb +++ b/app/controllers/weapps/homes_controller.rb @@ -1,5 +1,5 @@ class Weapps::HomesController < Weapps::BaseController - before_action :require_wechat_login! + # before_action :require_wechat_login! def show # banner @@ -8,8 +8,8 @@ class Weapps::HomesController < Weapps::BaseController @advert = WeappSettings::Advert.only_online.first # 我的课堂 - category = params[:category] && ["manage", "study"].include?(params[:category]) ? params[:category] : (current_user.is_teacher? ? "manage" : "study") - @courses = case category + @category = params[:category] && ["manage", "study"].include?(params[:category]) ? params[:category] : (current_user.is_teacher? ? "manage" : "study") + @courses = case @category when 'study' then current_user.as_student_courses.started when 'manage' then @@ -17,7 +17,8 @@ class Weapps::HomesController < Weapps::BaseController end @courses = @courses.not_deleted.not_excellent @course_count = @courses.count - order_str = category == "study" ? "created_at desc" : "sticky=1 desc, sticky_time desc, created_at desc" + order_str = "course_members.sticky=1 desc, course_members.sticky_time desc, courses.created_at desc" @courses = paginate(@courses.order(order_str).includes(:teacher, :school)) + @user = current_user end end \ No newline at end of file diff --git a/app/views/weapps/homes/show.json.jbuilder b/app/views/weapps/homes/show.json.jbuilder index c7f50212d..7d14da6ed 100644 --- a/app/views/weapps/homes/show.json.jbuilder +++ b/app/views/weapps/homes/show.json.jbuilder @@ -18,8 +18,10 @@ end json.course_count @course_count json.courses @courses.each do |course| - json.(course, :id, :name, :visits, :course_members_count, :sticky, :sticky_time) + json.(course, :id, :name, :visits, :course_members_count) json.creator course.teacher.real_name json.school course.school&.name + course_member = @category == "study" ? course.students.where(user_id: @user.id).first : course.teachers.where(user_id: @user.id).first + json.sticky course_member.sticky end From 09da308c99e650d1047ead6dc7181009703cf9c4 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 14 Nov 2019 16:52:33 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E5=8C=BA=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/messages_controller.rb | 7 ++++++- app/views/messages/index.json.jbuilder | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 0e67d9fa0..9f3f71099 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -20,7 +20,12 @@ class MessagesController < ApplicationController sort = params[:sort].to_i == 1 ? 'asc' : 'desc' sort_type = params[:sort_type] || 'time' - messages = @board.messages.root_nodes.by_keywords(params[:search]) + if @board.parent_id == 0 + messages = Message.where(board_id: @course.boards.pluck(:id)) + else + messages = @board.messages + end + messages = messages.root_nodes.by_keywords(params[:search]) messages = messages.reorder('(sticky = 1) DESC') # 置顶 diff --git a/app/views/messages/index.json.jbuilder b/app/views/messages/index.json.jbuilder index ae54a1172..4d191cc9d 100644 --- a/app/views/messages/index.json.jbuilder +++ b/app/views/messages/index.json.jbuilder @@ -8,7 +8,7 @@ json.data do json.array! @messages do |message| json.extract! message, :id, :parent_id, :subject, :created_on, :total_replies_count, :praises_count, :visits, :sticky, :is_hidden, :is_public, :board_id - json.category_name message.board&.name + json.category_name message.board&.name if @board.parent_id == 0 && message.board_id != @board.id json.total_praises_count @praises_count_map.fetch(message.id, 0) From b420d1ef0108f6a299a676fa1c6626efc5b3db4e Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 14 Nov 2019 16:54:12 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E5=8C=BA=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/messages_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 9f3f71099..153598990 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -21,7 +21,7 @@ class MessagesController < ApplicationController sort_type = params[:sort_type] || 'time' if @board.parent_id == 0 - messages = Message.where(board_id: @course.boards.pluck(:id)) + messages = Message.where(board_id: @board.course.boards.pluck(:id)) else messages = @board.messages end From 6ce9d01ffbf786083c45d08a5fd0078378b32ba2 Mon Sep 17 00:00:00 2001 From: tangjiang <465264938@qq.com> Date: Thu, 14 Nov 2019 17:40:01 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=89=80=E5=B1=9E=E7=9B=AE=E5=BD=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/courses/boards/BoardsListItem.js | 41 ++++++++++++------- .../modules/courses/boards/boardsListItem.css | 9 ++++ .../react/src/modules/courses/boards/index.js | 6 +-- 3 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 public/react/src/modules/courses/boards/boardsListItem.css diff --git a/public/react/src/modules/courses/boards/BoardsListItem.js b/public/react/src/modules/courses/boards/BoardsListItem.js index 2b9c05126..0df7675a3 100644 --- a/public/react/src/modules/courses/boards/BoardsListItem.js +++ b/public/react/src/modules/courses/boards/BoardsListItem.js @@ -1,7 +1,8 @@ import React,{ Component } from "react"; import {Tooltip} from 'antd' import moment from 'moment' -import { getUrl, WordsBtn } from 'educoder' +import { getUrl, WordsBtn, ConditionToolTip } from 'educoder' +import './boardsListItem.css'; class BoardsListItem extends Component{ constructor(props){ super(props); @@ -75,6 +76,16 @@ class BoardsListItem extends Component{ ) : "" } + +
+ {(isAdmin || discussMessage.author.login == current_user.login) && + { this.props.toEditPage(this.props.match.params.coursesId, this.props.match.params.boardId, discussMessage.id )} }>编辑 } + + { isAdmin && { debugger; onSticky(discussMessage); e.cancelBubble = true; e.stopPropagation();}}> + { discussMessage.sticky ? '取消置顶' : '置顶' } } +

@@ -88,20 +99,20 @@ class BoardsListItem extends Component{ {moment(discussMessage.created_on).fromNow()}

-
- {(isAdmin || discussMessage.author.login == current_user.login) && - { this.props.toEditPage(this.props.match.params.coursesId, this.props.match.params.boardId, discussMessage.id )} }>编辑 } - - { isAdmin && { debugger; onSticky(discussMessage); e.cancelBubble = true; e.stopPropagation();}}> - { discussMessage.sticky ? '取消置顶' : '置顶' } } -
- - - - - + { + discussMessage.category_name && +
+ + {
+ 所属目录:{discussMessage.category_name} +
+ } +
+
+ } + {/* { (isAdmin || discussMessage.author.login == current_user.login) &&