<%= form_tag(admins_shixuns_path, method: :get, class: 'form-inline search-form',id:"shixuns-search-form",remote:true) do %>
-
+
<% status_options = [['全部', ''], ["编辑中(#{@editing_shixuns})", "editing"], ["待审核(#{@pending_shixuns})", 'pending'], ["已发布(#{@processed_shixuns})", 'processed'],["已关闭(#{@closed_shixuns})",'closed']] %>
<%= select_tag(:status, options_for_select(status_options), class: 'form-control') %>
+
+
+ <% public_options = [['全部', ''], ["未公开(#{@none_public_shixuns})", "editing"], ["待审核(#{@pending_public_shixuns})", 'pending'], ["已公开(#{@processed_pubic_shixuns})", 'processed']] %>
+ <%= select_tag(:public, options_for_select(public_options), class: 'form-control') %>
+
+
<%= select_tag(:tag, options_for_select(@shixuns_type_check.unshift(["",nil])), class: 'form-control',id:"tag-choosed") %>
-
diff --git a/app/views/admins/shixuns/shared/_list.html.erb b/app/views/admins/shixuns/shared/_list.html.erb
index 7503d8fd2..9ee44ece3 100644
--- a/app/views/admins/shixuns/shared/_list.html.erb
+++ b/app/views/admins/shixuns/shared/_list.html.erb
@@ -2,14 +2,15 @@
序号 |
ID |
- 实训名称 |
+ 实训名称 |
技术平台 |
Fork源 |
实践 |
选择 |
状态 |
+ 公开 |
创建者 |
- <%= sort_tag('创建于', name: 'created_at', path: admins_shixuns_path) %> |
+ <%= sort_tag('创建于', name: 'created_at', path: admins_shixuns_path) %> |
单测 |
操作 |
@@ -33,6 +34,7 @@
<%= shixun.challenges.where(:st => 0).size %> |
<%= shixun.challenges.where(:st => 1).size %> |
<%= shixun_authentication_status shixun %> |
+
<%= shixun_public_status shixun %> |
<%= link_to shixun.user.try(:real_name),"/users/#{shixun.user.try(:login)}",target:'_blank' %> |
<%= format_time shixun.created_at %> |
diff --git a/app/views/shixuns/_top.json.jbuilder b/app/views/shixuns/_top.json.jbuilder
index ebb77ec74..32c00cc79 100644
--- a/app/views/shixuns/_top.json.jbuilder
+++ b/app/views/shixuns/_top.json.jbuilder
@@ -16,3 +16,5 @@ json.diffcult diff_to_s(shixun.trainee)
json.score_info shixun.shixun_preference_info # todo: 这块可以改成只显示实训的平均分,不用每次都去取每种星的分数了。
# 用于是否显示导航栏中的'背景知识'
json.propaedeutics shixun.propaedeutics.present?
+
+json.public shixun.public
diff --git a/config/routes.rb b/config/routes.rb
index 3d4495edc..a6e9a3421 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -256,6 +256,7 @@ Rails.application.routes.draw do
post :send_to_course
delete :collaborators_delete
get :cancel_publish
+ get :cancel_apply_public
get :publish
get :shixun_exec
post :review_shixun
diff --git a/db/migrate/20191212025227_add_public_status_to_shixun.rb b/db/migrate/20191212025227_add_public_status_to_shixun.rb
index 0111db6ec..d1d817fb8 100644
--- a/db/migrate/20191212025227_add_public_status_to_shixun.rb
+++ b/db/migrate/20191212025227_add_public_status_to_shixun.rb
@@ -1,4 +1,5 @@
class AddPublicStatusToShixun < ActiveRecord::Migration[5.2]
def change
+ add_column :shixuns, :public, :integer, default: 0
end
end
diff --git a/db/migrate/20191212034354_migrate_shixun_status.rb b/db/migrate/20191212034354_migrate_shixun_status.rb
new file mode 100644
index 000000000..bb977f173
--- /dev/null
+++ b/db/migrate/20191212034354_migrate_shixun_status.rb
@@ -0,0 +1,9 @@
+class MigrateShixunStatus < ActiveRecord::Migration[5.2]
+ def change
+ # 平台上所有已发布且未隐藏的实训都设为公开
+ Shixun.unhidden.update_all(public: 2)
+
+ # 所有已申请发布的实训状态都改为已发布,申请发布改为申请公开
+ Shixun.where(status: 1, id: ApplyAction.where(container_type: 'ApplyShixun', status: 0).pluck(:container_id)).update_all(status: 2, public: 1)
+ end
+end
From ef9596d48a1e94def8671f406fdd67b15e8e2019 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Thu, 12 Dec 2019 16:18:22 +0800
Subject: [PATCH 03/10] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/search_service.rb | 2 +-
app/services/shixun_search_service.rb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index 7947ce5d8..a45875e07 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -39,7 +39,7 @@ class SearchService < ApplicationService
def extra_options
case params[:type].to_s.strip
when 'shixun' then
- { where: { id: Laboratory.current.shixuns.where(public: 2, status: 2, fork_from: nil).or(Laboratory.current.shixuns.where(status: 2, id: current_user.shixuns)).pluck(:id) } }
+ { where: { id: Laboratory.current.shixuns.where(public: 2, status: 2, fork_from: nil).or(Laboratory.current.shixuns.where(status: 2, id: User.current.shixuns)).pluck(:id) } }
when 'subject' then
{ where: { id: Laboratory.current.subjects.pluck(:id) } }
when 'course' then
diff --git a/app/services/shixun_search_service.rb b/app/services/shixun_search_service.rb
index 580208dfe..649de87bf 100644
--- a/app/services/shixun_search_service.rb
+++ b/app/services/shixun_search_service.rb
@@ -25,7 +25,7 @@ class ShixunSearchService < ApplicationService
else
none_shixun_ids = ShixunSchool.where("school_id != #{User.current.school_id}").pluck(:shixun_id)
- @shixuns = @shixuns.where.not(id: none_shixun_ids).where(hidden: 0)
+ @shixuns = @shixuns.where.not(id: none_shixun_ids).where(hidden: 0, status: 2, public: 2).or(@shixuns.where(id: current_user.shixuns))
end
end
From 7ad3538839ccefef4b62489d5ef9f1b38144c571 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Thu, 12 Dec 2019 16:46:51 +0800
Subject: [PATCH 04/10] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E7=9A=84=E6=88=90=E7=BB=A9=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/courses_controller.rb | 14 ++++++++++++--
config/routes.rb | 1 +
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index de24f7a8e..4f82a4c9b 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -29,7 +29,7 @@ class CoursesController < ApplicationController
:informs, :update_informs, :online_learning, :update_task_position, :tasks_list,
:join_excellent_course, :export_couser_info, :export_member_act_score, :new_informs,
:delete_informs, :change_member_role, :course_groups, :join_course_group, :statistics,
- :work_score, :act_score]
+ :work_score, :act_score, :calculate_all_shixun_scores]
before_action :user_course_identity, except: [:join_excellent_course, :index, :create, :new, :apply_to_join_course,
:search_course_list, :get_historical_course_students, :mine, :search_slim, :board_list]
before_action :teacher_allowed, only: [:update, :destroy, :settings, :search_teacher_candidate,
@@ -48,7 +48,7 @@ class CoursesController < ApplicationController
before_action :validate_page_size, only: :mine
before_action :course_tasks, only: [:tasks_list, :update_task_position]
before_action :validate_inform_params, only: [:update_informs, :new_informs]
- before_action :course_member_allowed, only: [:statistics, :work_score, :act_score]
+ before_action :course_member_allowed, only: [:statistics, :work_score, :act_score, :calculate_all_shixun_scores]
if RUBY_PLATFORM =~ /linux/
require 'simple_xlsx_reader'
@@ -1332,6 +1332,16 @@ class CoursesController < ApplicationController
end
end
+ # 计算课堂所有已发布的实训作业成绩
+ def calculate_all_shixun_scores
+ tip_exception(-1, "课堂已结束") if @course.is_end
+ shixun_homeworks = @course.homework_commons.homework_published.where(homework_type: 4)
+ shixun_homeworks.includes(:homework_challenge_settings, :published_settings, :homework_commons_shixun).each do |homework|
+ homework.update_homework_work_score
+ end
+ normal_status(0, "更新成功")
+ end
+
def search_slim
courses = current_user.manage_courses.not_deleted.processing
diff --git a/config/routes.rb b/config/routes.rb
index a6e9a3421..919fd9e70 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -420,6 +420,7 @@ Rails.application.routes.draw do
get 'statistics'
post :inform_up
post :inform_down
+ get :calculate_all_shixun_scores
end
collection do
From baec0f86d789b8fc7739bff453da02ef80429ca3 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Thu, 12 Dec 2019 17:57:41 +0800
Subject: [PATCH 05/10] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E4=BD=9C=E4=B8=9A?=
=?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=AD=94=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/models/game.rb | 6 ++++++
app/models/myshixun.rb | 5 +++--
app/views/student_works/shixun_work_report.json.jbuilder | 2 +-
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/app/models/game.rb b/app/models/game.rb
index d82392a59..ca7339352 100644
--- a/app/models/game.rb
+++ b/app/models/game.rb
@@ -119,6 +119,12 @@ class Game < ApplicationRecord
# self.outputs.pluck(:query_index).first
#end
+ # 是否查看了答案(通关的是否在通关前看的答案)
+ def view_answer
+ answer_exists = Grade.exists?("container_type = 'Answer' and container_id = #{id} and created_at < '#{end_time}'")
+ answer_open != 0 ? (status == 2 ? answer_exists : true) : false
+ end
+
# 用户关卡得分
def get_user_final_score
diff --git a/app/models/myshixun.rb b/app/models/myshixun.rb
index 54dcf9011..9b824c0d8 100644
--- a/app/models/myshixun.rb
+++ b/app/models/myshixun.rb
@@ -83,9 +83,10 @@ class Myshixun < ApplicationRecord
self.games.select{|game| game.status == 2}.size
end
- # 查看答案的关卡数
+ # 查看答案的关卡数,只统计通关前看的关卡
def view_answer_count
- self.games.select{|game| game.status == 2 && game.answer_open != 0}.size
+ answer_ids = user.grades.joins("join games on grades.container_id = games.id").where("container_type = 'Answer' and games.status=2 and games.end_time > grades.created_at").pluck(:container_id)
+ self.games.select{|game| game.status == 2 && game.answer_open != 0 && answer_ids.include?(game.id)}.size
end
# 通关时间
diff --git a/app/views/student_works/shixun_work_report.json.jbuilder b/app/views/student_works/shixun_work_report.json.jbuilder
index 162e2ab1c..068151856 100644
--- a/app/views/student_works/shixun_work_report.json.jbuilder
+++ b/app/views/student_works/shixun_work_report.json.jbuilder
@@ -42,7 +42,7 @@ if @shixun
json.challenge_comment challenge_comment&.comment
json.challenge_comment_hidden @user_course_identity < Course::STUDENT ? challenge_comment&.hidden_comment : nil
json.comment_id challenge_comment&.id
- json.view_answer game ? game.answer_open != 0 : 0
+ json.view_answer game ? game.view_answer : false
end
end
From d94c79cb061c58458fa5fca0b7e4dd9d6aee23e1 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Thu, 12 Dec 2019 20:40:21 +0800
Subject: [PATCH 06/10] =?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0local=E5=8F=82=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/myshixuns_controller.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/controllers/myshixuns_controller.rb b/app/controllers/myshixuns_controller.rb
index b5c8af1f3..d603b557e 100644
--- a/app/controllers/myshixuns_controller.rb
+++ b/app/controllers/myshixuns_controller.rb
@@ -217,7 +217,8 @@ class MyshixunsController < ApplicationController
shixun_tomcat = edu_setting('tomcat_webssh')
uri = "#{shixun_tomcat}/bridge/webssh/getConnectInfo"
# 由于中间层采用混合云的方式,因为local参数表示在有文件生成的实训是在本地生成,还是在其他云端生成评测文件
- params = {tpiID:@myshixun.id, podType:@myshixun.shixun.try(:webssh), local: @myshixun.shixun.show_type != -1,
+ local = @myshixun.shixun.challenges.where.not(show_type: -1).count == 0
+ params = {tpiID:@myshixun.id, podType:@myshixun.shixun.try(:webssh), local: local,
containers:(Base64.urlsafe_encode64(shixun_container_limit @myshixun.shixun))}
res = uri_post uri, params
if res && res['code'].to_i != 0
From 0aa695d7f1c1ce89780e6eef3d08d3029df7a148 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Thu, 12 Dec 2019 23:46:25 +0800
Subject: [PATCH 07/10] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E5=BC=B9=E6=A1=86=20?=
=?UTF-8?q?=E5=A1=9E=E9=80=89=E6=94=B9=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../courses/coursesPublic/NewShixunModel.js | 72 +++++++++---
.../courses/coursesPublic/Newshixunmodel.css | 108 +++++++++++++++++-
2 files changed, 164 insertions(+), 16 deletions(-)
diff --git a/public/react/src/modules/courses/coursesPublic/NewShixunModel.js b/public/react/src/modules/courses/coursesPublic/NewShixunModel.js
index a20f7733c..462df7608 100644
--- a/public/react/src/modules/courses/coursesPublic/NewShixunModel.js
+++ b/public/react/src/modules/courses/coursesPublic/NewShixunModel.js
@@ -19,7 +19,8 @@ class NewShixunModel extends Component{
order:'desc',
diff:0,
limit:15,
- sort:"myshixuns_count"
+ sort:"myshixuns_count",
+ belongtoindex:0,
}
}
componentDidMount() {
@@ -161,7 +162,17 @@ class NewShixunModel extends Component{
})
let{status,order,diff,limit,sort}=this.state;
if(this.props.type==='shixuns'){
- this.getdatalist(1,value,status,undefined,order,diff,limit)
+ this.getdatalist(1,value,status,undefined,order,diff,limit);
+ if(value==="all"){
+ this.setState({
+ belongtoindex:0
+ })
+ }else{
+ this.setState({
+ belongtoindex:1
+ })
+ }
+
}else{
this.getdatalist(1,value,undefined,undefined,order,undefined,limit,undefined,sort)
}
@@ -322,6 +333,7 @@ class NewShixunModel extends Component{
this.getdatalist(page,type,status,keyword,order,diff,limit)
}
+
updatepathlist=(sorts,orders)=>{
let{page,type,keyword,order,diff,limit,status,sort}=this.state;
let seartorders;
@@ -352,7 +364,7 @@ class NewShixunModel extends Component{
}
render() {
- let {diff,Grouplist,status,shixun_list,shixuns_count,page,type,order,sort}=this.state;
+ let {diff,Grouplist,status,shixun_list,shixuns_count,page,type,order,sort,belongtoindex}=this.state;
// let {visible,patheditarry}=this.props;
// console.log(Grouplist)
// console.log(allGrouplist)
@@ -446,7 +458,7 @@ class NewShixunModel extends Component{
-
+
@@ -472,7 +484,36 @@ class NewShixunModel extends Component{
onSearch={ (value)=>this.setdatafuns(value)} />
-
+
+
+
+
+
+
+ {this.props.type==='shixuns'?
+
+ 筛选:
+ this.belongto("all")}>全部实训
+ this.belongto("mine")}>普通实训
+ :""
+ }
+ {/*{this.props.type==='shixuns'? */}
+ {/* */}
+ {/* {diff===0?"难度":diff===1?"初级":diff===2?"中级":diff===3?"高级":diff===4?"顶级":""}*/}
+ {/* */}
+ {/*:""}*/}
+ {this.props.type==='shixuns'?
+
+ 难度:
+ this.DropdownClick(0)}>全部
+ this.DropdownClick(1)}>初级
+ this.DropdownClick(2)}>中级
+ this.DropdownClick(3)}>高级
+ this.DropdownClick(4)}>顶级
+ :""
+ }
+
+
-
- {/* this.props.hideNewShixunModelType()}>返回*/}
- this.belongto("mine")}>我的{this.props.type==='shixuns'?'实训':"课程"}
- this.belongto("all")}>全部{this.props.type==='shixuns'?'实训':"课程"}
+
+
+ {this.props.type==='shixuns'?"":
+ this.belongto("mine")}>我的课程
+ }
+
+ {this.props.type==='shixuns'?"":
+ this.belongto("all")}>全部课程
+ }
@@ -684,4 +726,4 @@ export default NewShixunModel;
// {}
// )
// })}
-// }
\ No newline at end of file
+// }
diff --git a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css
index 42595bf29..307035602 100644
--- a/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css
+++ b/public/react/src/modules/courses/coursesPublic/Newshixunmodel.css
@@ -384,4 +384,110 @@
.newshixunmodels{
margin: 0 auto;
-}
\ No newline at end of file
+}
+
+/* 中间居中 */
+.intermediatecenter{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+/* 简单居中 */
+.intermediatecenterysls{
+ display: flex;
+ align-items: center;
+}
+.spacearound{
+ display: flex;
+ justify-content: space-around;
+
+}
+.spacebetween{
+ display: flex;
+ justify-content: space-between;
+}
+/* 头顶部居中 */
+.topcenter{
+ display: -webkit-flex;
+ flex-direction: column;
+ align-items: center;
+
+}
+
+
+/* x轴正方向排序 */
+/* 一 二 三 四 五 六 七 八 */
+.sortinxdirection{
+ display: flex;
+ flex-direction:row;
+}
+/* x轴反方向排序 */
+/* 八 七 六 五 四 三 二 一 */
+.xaxisreverseorder{
+ display: flex;
+ flex-direction:row-reverse;
+}
+/* 垂直布局 正方向*/
+/* 一
+ 二
+ 三
+ 四
+ 五
+ 六
+ 七
+ 八 */
+.verticallayout{
+ display: flex;
+ flex-direction:column;
+}
+/* 垂直布局 反方向*/
+.reversedirection{
+ display: flex;
+ flex-direction:column-reverse;
+}
+
+.nandu{
+ width: 42px;
+ height: 19px;
+ font-size: 14px;
+ color: #000000;
+ line-height: 19px;
+ margin-left: 6px;
+}
+
+.clickbuts{
+ text-align: center;
+ width: 60px;
+ height: 32px;
+ background: #4CACFF;
+ border-radius: 16px;
+ line-height: 30px;
+ color: #FFFFFF;
+ cursor:pointer;
+}
+.clickbutst{
+ height:19px;
+ font-size:14px;
+ color:#505050;
+ line-height:19px;
+ cursor:pointer;
+}
+
+.clickbutstwo{
+ text-align: center;
+ width: 85px;
+ height: 32px;
+ background: #4CACFF;
+ border-radius: 16px;
+ line-height: 30px;
+ color: #FFFFFF;
+ cursor:pointer;
+}
+.clickbutstwos{
+ height:19px;
+ font-size:14px;
+ color:#505050;
+ line-height:19px;
+ cursor:pointer;
+}
From fe3c794a2063feee9a1cf7e815ed8bc1e686ad33 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Fri, 13 Dec 2019 09:53:30 +0800
Subject: [PATCH 08/10] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=8F=91=E5=B8=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/hacks_controller.rb | 10 ++++++++--
app/views/hack_user_lastest_codes/show.json.jbuilder | 2 +-
app/views/hacks/index.json.jbuilder | 2 +-
config/routes.rb | 1 +
4 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/app/controllers/hacks_controller.rb b/app/controllers/hacks_controller.rb
index 657ad0f2a..cab952a04 100644
--- a/app/controllers/hacks_controller.rb
+++ b/app/controllers/hacks_controller.rb
@@ -1,8 +1,8 @@
class HacksController < ApplicationController
before_action :require_login, except: [:index]
- before_action :find_hack, only: [:edit, :update, :publish, :start, :update_set, :delete_set, :destroy]
+ before_action :find_hack, only: [:edit, :update, :publish, :start, :update_set, :delete_set, :destroy, :cancel_publish]
before_action :require_teacher_identity, only: [:create]
- before_action :require_auth_identity, only: [:update, :edit, :publish, :update_set, :delete_set, :destroy]
+ before_action :require_auth_identity, only: [:update, :edit, :publish, :update_set, :delete_set, :destroy, :cancel_publish]
# 开启编程,如果第一次开启,创建一条记录,如果已经开启过的话,直接返回标识即可
@@ -99,6 +99,12 @@ class HacksController < ApplicationController
render_ok
end
+ # 取消发布
+ def cancel_publish
+ @hack.update_attribute(:status, 0)
+ render_ok
+ end
+
# 发布列表
def unpulished_list
limit = params[:limit] || 16
diff --git a/app/views/hack_user_lastest_codes/show.json.jbuilder b/app/views/hack_user_lastest_codes/show.json.jbuilder
index 2d7ffd2bf..cfdc87d25 100644
--- a/app/views/hack_user_lastest_codes/show.json.jbuilder
+++ b/app/views/hack_user_lastest_codes/show.json.jbuilder
@@ -1,5 +1,5 @@
json.hack do
- json.(@hack, :name, :difficult, :time_limit, :description, :score, :identifier)
+ json.(@hack, :name, :difficult, :time_limit, :description, :score, :identifier, :status)
json.language @hack.language
json.username @hack.user.real_name
json.code @my_hack.code
diff --git a/app/views/hacks/index.json.jbuilder b/app/views/hacks/index.json.jbuilder
index c86884a41..2b4a8b8c7 100644
--- a/app/views/hacks/index.json.jbuilder
+++ b/app/views/hacks/index.json.jbuilder
@@ -8,6 +8,6 @@ end
json.hacks_count @hacks_count
json.hacks_list do
json.array! @hacks do |hack|
- json.(hack,:identifier, :name , :hack_user_lastest_codes_count, :difficult, :passed_rate, :category)
+ json.(hack,:identifier, :name , :hack_user_lastest_codes_count, :difficult, :passed_rate, :category, :open_or_not, :status)
end
end
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 972579201..19cbe4058 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -41,6 +41,7 @@ Rails.application.routes.draw do
end
member do
post :publish
+ post :cancel_publish
get :start
post :update_set
delete :delete_set
From f93347f6ca51a002970966a96ce9a92cd7528d70 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Fri, 13 Dec 2019 11:19:53 +0800
Subject: [PATCH 09/10] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E7=9A=84=E7=94=B3?=
=?UTF-8?q?=E8=AF=B7=E5=85=AC=E5=BC=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/shixuns_controller.rb | 32 +++++++++++++--------------
config/routes.rb | 1 +
2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index f2a382e65..63bf059e0 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -17,7 +17,7 @@ class ShixunsController < ApplicationController
:get_mirror_script, :download_file, :shixun_list, :batch_send_to_course]
before_action :find_repo_name, only: [:repository, :commits, :file_content, :update_file, :shixun_exec, :copy, :add_file]
- before_action :allowed, only: [:update, :close, :update_propaedeutics, :settings, :publish,
+ before_action :allowed, only: [:update, :close, :update_propaedeutics, :settings, :publish, :apply_public,
:shixun_members_added, :change_manager, :collaborators_delete,
:cancel_apply_public, :cancel_publish, :add_collaborators, :add_file]
before_action :portion_allowed, only: [:copy]
@@ -839,27 +839,27 @@ class ShixunsController < ApplicationController
end
end
if @status == 0
- ActiveRecord::Base.transaction do
- @shixun.update_attributes!(:status => 2)
- apply = ApplyAction.where(:container_type => "ApplyShixun", :container_id => @shixun.id).order("created_at desc").first
- if apply && apply.status == 0
- @status = 0
- else
- ApplyAction.create(:container_type => "ApplyShixun", :container_id => @shixun.id, :user_id => current_user.id, :status => 0)
- #begin
- # status = Trustie::Sms.send(mobile: '18711011226', send_type:'publish_shixun' , name: '管理员')
- #rescue => e
- # Rails.logger.error "发送验证码出错: #{e}"
- #end
- @status = 1
- end
- end
+ @shixun.update_attributes!(:status => 2)
end
rescue Exception => e
logger.error("pushlish game #{e}")
end
end
+ def apply_public
+ tip_exception(-1, "请先发布实训再申请公开") if @shixun.status != 2
+ ActiveRecord::Base.transaction do
+ @shixun.update_attributes!(pubic: 1)
+ apply = ApplyAction.where(:container_type => "ApplyShixun", :container_id => @shixun.id).order("created_at desc").first
+ if apply && apply.status == 0
+ @status = 0
+ else
+ ApplyAction.create(:container_type => "ApplyShixun", :container_id => @shixun.id, :user_id => current_user.id, :status => 0)
+ end
+ end
+ normal_status(0, "申请成功")
+ end
+
# 设置私密版本库的在tpm中的目录
def set_secret_dir
raise("设置路径不能为空") if params[:secret_dir_path].blank?
diff --git a/config/routes.rb b/config/routes.rb
index 972579201..b89976c89 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -259,6 +259,7 @@ Rails.application.routes.draw do
get :cancel_publish
get :cancel_apply_public
get :publish
+ get :apply_public
get :shixun_exec
post :review_shixun
get :review_newest_record
From 9de3195e3a2754459f8d9382a9b582d00cec1cf5 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Fri, 13 Dec 2019 11:55:24 +0800
Subject: [PATCH 10/10] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E7=94=B3=E8=AF=B7?=
=?UTF-8?q?=E5=85=AC=E5=BC=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/shixuns_controller.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index 63bf059e0..caa716f16 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -849,7 +849,7 @@ class ShixunsController < ApplicationController
def apply_public
tip_exception(-1, "请先发布实训再申请公开") if @shixun.status != 2
ActiveRecord::Base.transaction do
- @shixun.update_attributes!(pubic: 1)
+ @shixun.update_attributes!(public: 1)
apply = ApplyAction.where(:container_type => "ApplyShixun", :container_id => @shixun.id).order("created_at desc").first
if apply && apply.status == 0
@status = 0
|