From 490e08e6a5f42211902eb7e61a1a4c42d0efe01e Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 09:53:54 +0800
Subject: [PATCH 14/24] Jupyter
---
app/services/jupyter_service.rb | 43 ++++++++-------------------------
1 file changed, 10 insertions(+), 33 deletions(-)
diff --git a/app/services/jupyter_service.rb b/app/services/jupyter_service.rb
index 143b2eda7..109cb1242 100644
--- a/app/services/jupyter_service.rb
+++ b/app/services/jupyter_service.rb
@@ -20,15 +20,8 @@ module JupyterService
logger.info "test_juypter: #{res}"
@shixun_jupyter_port = res['port']
- jupyter_service = edu_setting('jupyter_service')
-
- url =
- if false
- "https://#{jupyter_service}:#{res['port']}/notebooks/data/workspace/myshixun_#{tpiID}/01.ipynb"
- else
- "https://#{res['port']}.#{jupyter_service}/notebooks/data/workspace/myshixun_#{tpiID}/01.ipynb"
- end
- return url
+
+ "https://#{jupyter_service(res['port'])}}/notebooks/data/workspace/myshixun_#{tpiID}/01.ipynb"
end
end
@@ -69,14 +62,7 @@ module JupyterService
repo_save_path = myshixun.repo_save_path
- jupyter_service = edu_setting('jupyter_service')
-
- if false
- "https://#{jupyter_service}:#{res['port']}/notebooks/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb"
- else
- "https://#{res['port']}.#{jupyter_service}/notebooks/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb"
- end
-
+ "https://#{jupyter_service(res['port'])}}/notebooks/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb"
end
end
@@ -99,14 +85,8 @@ module JupyterService
tpiID = "tpm#{shixun.id}"
- jupyter_service = edu_setting('jupyter_service')
- src_url =
- if false
- "https://#{jupyter_service}:#{jupyter_port}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/01.ipynb?download=true"
- else
- "https://#{jupyter_port}.#{jupyter_service}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/01.ipynb?download=true"
- end
- #https://47526.jupyter.educoder.net/nbconvert/notebook/data/workspace/myshixun_570461/f2ef5p798r20191210163135/01.ipynb?download=true
+ src_url = "#{jupyter_service(jupyter_port)}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/01.ipynb?download=true"
+
response = Faraday.get(src_url)
if response.status.to_i != 200
@@ -134,14 +114,7 @@ module JupyterService
repo_save_path = myshixun.repo_save_path
jupyter_service = edu_setting('jupyter_service')
-
- src_url =
- if false
- "https://#{jupyter_service}:#{jupyter_port}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb?download=true"
- else
- "https://#{jupyter_port}.#{jupyter_service}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb?download=true"
- end
-
+ "https://#{jupyter_service(jupyter_port)}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb?download=true"
response = Faraday.get(src_url)
if response.status.to_i != 200
@@ -215,5 +188,9 @@ module JupyterService
end
end
+ def jupyter_service jupyter_port
+ edu_setting('jupyter_service').gsub("PORT", jupyter_port)
+ end
+
end
From da986bff2299728db37aebe3ee184bbe7da678ab Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 10:01:48 +0800
Subject: [PATCH 15/24] Jupyter
---
app/services/jupyter_service.rb | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/app/services/jupyter_service.rb b/app/services/jupyter_service.rb
index 109cb1242..1bbad9390 100644
--- a/app/services/jupyter_service.rb
+++ b/app/services/jupyter_service.rb
@@ -21,7 +21,7 @@ module JupyterService
@shixun_jupyter_port = res['port']
- "https://#{jupyter_service(res['port'])}}/notebooks/data/workspace/myshixun_#{tpiID}/01.ipynb"
+ "#{jupyter_service(res['port'])}/notebooks/data/workspace/myshixun_#{tpiID}/01.ipynb"
end
end
@@ -62,7 +62,7 @@ module JupyterService
repo_save_path = myshixun.repo_save_path
- "https://#{jupyter_service(res['port'])}}/notebooks/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb"
+ "#{jupyter_service(res['port'])}/notebooks/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb"
end
end
@@ -113,8 +113,7 @@ module JupyterService
tpiID = myshixun.id
repo_save_path = myshixun.repo_save_path
- jupyter_service = edu_setting('jupyter_service')
- "https://#{jupyter_service(jupyter_port)}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb?download=true"
+ src_url = "#{jupyter_service(jupyter_port)}/nbconvert/notebook/data/workspace/myshixun_#{tpiID}/#{repo_save_path}/01.ipynb?download=true"
response = Faraday.get(src_url)
if response.status.to_i != 200
From 2e143635a2ff432207b9b82a649de35e73e8dad6 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 10:18:39 +0800
Subject: [PATCH 16/24] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/shixuns/create_shixun_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/shixuns/create_shixun_service.rb b/app/services/shixuns/create_shixun_service.rb
index 08b515163..0bf8d233c 100644
--- a/app/services/shixuns/create_shixun_service.rb
+++ b/app/services/shixuns/create_shixun_service.rb
@@ -44,7 +44,7 @@ class CreateShixunService < ApplicationService
end
# 如果是jupyter,先创建一个目录,为了挂载(因为后续数据集,开启Pod后环境在没销毁前,你上传数据集是挂载不上目录的,因此要先创建目录,方便中间层挂载)
if shixun.is_jupyter?
- folder = edu_setting('shixun_folder')
+ folder = EduSetting.get('shixun_folder')
path = "#{folder}/#{identifier}"
FileUtils.mkdir_p(path, :mode => 0777) unless File.directory?(dir)
end
From 81c32062cbaf842b93dccf0cad4e0f5c9acfa0ca Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 10:20:13 +0800
Subject: [PATCH 17/24] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=9B=AE=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/shixuns/create_shixun_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/shixuns/create_shixun_service.rb b/app/services/shixuns/create_shixun_service.rb
index 0bf8d233c..c85455901 100644
--- a/app/services/shixuns/create_shixun_service.rb
+++ b/app/services/shixuns/create_shixun_service.rb
@@ -46,7 +46,7 @@ class CreateShixunService < ApplicationService
if shixun.is_jupyter?
folder = EduSetting.get('shixun_folder')
path = "#{folder}/#{identifier}"
- FileUtils.mkdir_p(path, :mode => 0777) unless File.directory?(dir)
+ FileUtils.mkdir_p(path, :mode => 0777) unless File.directory?(path)
end
return shixun
end
From c0dfb67264ec490f693b8579ef511b2c00ec81d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Mon, 16 Dec 2019 10:22:47 +0800
Subject: [PATCH 18/24] =?UTF-8?q?=E5=88=86=E7=8F=AD=E5=AD=A6=E4=B9=A0?=
=?UTF-8?q?=E6=88=90=E7=BB=A9=E5=A2=9E=E5=8A=A0=E6=88=90=E7=BB=A9=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../modules/courses/statistics/Statistics.js | 64 +++++++++++++++++--
1 file changed, 57 insertions(+), 7 deletions(-)
diff --git a/public/react/src/modules/courses/statistics/Statistics.js b/public/react/src/modules/courses/statistics/Statistics.js
index 00a47a81d..21041a59c 100644
--- a/public/react/src/modules/courses/statistics/Statistics.js
+++ b/public/react/src/modules/courses/statistics/Statistics.js
@@ -99,7 +99,6 @@ class Statistics extends Component{
}
getwork_scoredata=(page,group_ids,sort,key)=>{
-
this.setState({
page:page,
sort:sort,
@@ -189,8 +188,45 @@ class Statistics extends Component{
}
+ //计算成绩
+ setComputeTimet = (homeworkid) => {
+ let url = `/courses/${homeworkid}/calculate_all_shixun_scores.json`;
+ try {
+ this.props.yslslowCheckresults();
+ } catch (e) {
+
+ }
+ axios.get(url).then((response) => {
+ if (response) {
+ if (response.data.status === 0) {
+ let{page,group_ids,sort}=this.state;
+ setTimeout(() => {
+ try {
+ this.props.showNotification(`${response.data.message}`);
+ } catch (e) {
+
+ }
+ try {
+ this.props.yslslowCheckresultsNo();
+ } catch (e) {
+
+ }
+ this.getwork_scoredata(page,group_ids,sort);
+ }, 2500);
+ }
+ }
+ }).catch((error) => {
+ try {
+ this.props.yslslowCheckresultsNo();
+ } catch (e) {
+
+ }
+ console.log(error)
+ });
+ };
+
render(){
- let {nd1,nd2,nd3,data,bomdata,course_members}=this.state;
+ let {nd1,nd2,nd3,data,bomdata,course_members,activeKey}=this.state;
const columns = [
{
@@ -360,12 +396,26 @@ class Statistics extends Component{
const operations =
- {course_grouptype===false||this.state.course_groups.length===0?"":this.getwork_scoredata(1,group_idss,'desc')}
- />}
+ {course_grouptype===false||this.state.course_groups.length===0?"":
+ this.state.activeKey==="1"?
+ this.getwork_scoredata(1,group_idss,'desc')
+ }
+ />
+ :""
+ }
+ {
+ this.state.activeKey==="1"?
+ this.setComputeTimet(this.props.match.params.coursesId)}>获取最新成绩
+ :""
+ }
+ {
+ this.state.activeKey==="1"?
this.derivefun(this.state.activeKey==="1"?`/courses/${this.props.match.params.coursesId}/export_member_scores_excel.xlsx`:`/courses/${this.props.match.params.coursesId}/export_member_act_score.xlsx`)}>导出
+ :""
+ }
;
return(
From f9132178249460e1b64904b6ae98aa81a9a0a2a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Mon, 16 Dec 2019 10:34:14 +0800
Subject: [PATCH 19/24] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E6=A0=B7=E5=BC=8F=E6=94=B9=E5=8A=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/tpm/TPMBanner.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/public/react/src/modules/tpm/TPMBanner.js b/public/react/src/modules/tpm/TPMBanner.js
index 7246a03a2..1811e876d 100644
--- a/public/react/src/modules/tpm/TPMBanner.js
+++ b/public/react/src/modules/tpm/TPMBanner.js
@@ -843,7 +843,7 @@ class TPMBanner extends Component {
-
学习人数
- {shixunsDetails.stu_num}
+ {shixunsDetails.stu_num}
{/*- */}
{/*经验值*/}
@@ -851,7 +851,7 @@ class TPMBanner extends Component {
{/*
*/}
-
难度级别
- {shixunsDetails.diffcult}
+ {shixunsDetails.diffcult}
From 5514594800157f73def938e6335ac2412bbe23a4 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 11:00:47 +0800
Subject: [PATCH 20/24] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E5=AE=9E=E8=AE=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/shixuns_controller.rb | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index 1c8928d98..faf30cb90 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -265,7 +265,12 @@ class ShixunsController < ApplicationController
project_fork(@new_shixun, @repo_path, current_user.login)
ShixunMember.create!(:user_id => User.current.id, :shixun_id => @new_shixun.try(:id), :role => 1)
-
+ # 如果是jupyter,先创建一个目录,为了挂载(因为后续数据集,开启Pod后环境在没销毁前,你上传数据集是挂载不上目录的,因此要先创建目录,方便中间层挂载)
+ if @new_shixun.is_jupyter?
+ folder = EduSetting.get('shixun_folder')
+ path = "#{folder}/#{@new_shixun.identifier}"
+ FileUtils.mkdir_p(path, :mode => 0777) unless File.directory?(path)
+ end
# 同步复制关卡
if @shixun.challenges.present?
@shixun.challenges.each do |challenge|
From 57c354635c8477bebab5d6ee4d1767127cb1f7c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Mon, 16 Dec 2019 11:22:27 +0800
Subject: [PATCH 21/24] .
---
public/react/config/webpack.config.prod.js | 4 ++--
public/react/src/modules/courses/poll/PollNew.js | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/public/react/config/webpack.config.prod.js b/public/react/config/webpack.config.prod.js
index 1fe7a6c93..596843f5f 100644
--- a/public/react/config/webpack.config.prod.js
+++ b/public/react/config/webpack.config.prod.js
@@ -326,8 +326,8 @@ module.exports = {
comments: false
},
compress: {
- drop_debugger: true,
- drop_console: true
+ drop_debugger: false,
+ drop_console: false
}
}
}),
diff --git a/public/react/src/modules/courses/poll/PollNew.js b/public/react/src/modules/courses/poll/PollNew.js
index 248434295..b6b7e4794 100644
--- a/public/react/src/modules/courses/poll/PollNew.js
+++ b/public/react/src/modules/courses/poll/PollNew.js
@@ -893,6 +893,7 @@ class PollNew extends Component {
//保存并继续
//保存并继续,即提交本题的新建并继续创建一个相同的题(该新题处于编辑模式,题目和选项不要清空)
Deleteadddomtwo = (indexo, object,bool) => {
+ debugger
var thiss = this;
@@ -1866,6 +1867,7 @@ class PollNew extends Component {
};
question = {"question": questiontwo};
//插入多选题
+
if (uuk !== -1) {
// console.log("修改")
this.edittotheserver(object, 2, arrc, null, object.question.max_choices, object.question.min_choices,object.question.answers.length);
From 67c20e766fa68256f367298d39d6a92d5a03f95d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Mon, 16 Dec 2019 11:35:21 +0800
Subject: [PATCH 22/24] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/courses/poll/PollNew.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/public/react/src/modules/courses/poll/PollNew.js b/public/react/src/modules/courses/poll/PollNew.js
index b6b7e4794..7384c7f6e 100644
--- a/public/react/src/modules/courses/poll/PollNew.js
+++ b/public/react/src/modules/courses/poll/PollNew.js
@@ -1450,7 +1450,6 @@ class PollNew extends Component {
//object 单个数组数据
Deleteadddomthree = (indexo, object,bool) => {
this.setState({
- Newdisplay:false,
newoption: false,
})
// console.log("deleteadddom 349")
@@ -1478,6 +1477,7 @@ class PollNew extends Component {
}
if (newarr[indexo].question.question_title === "") {
this.props.showNotification('题目不能为空!');
+
return
}
if (max > 0) {
@@ -2016,7 +2016,11 @@ class PollNew extends Component {
if (result !== undefined) {
if (result.data.status === 0) {
this.props.showNotification(`已完成`);
+
thiss.thisinitializationdatanew();
+ this.setState({
+ Newdisplay:false,
+ })
// console.log("确认创建问题")
// console.log(result)
// try {
From ffebb8c98ad3d05b644cee21f37f0987ab909ea9 Mon Sep 17 00:00:00 2001
From: cxt <853663049@qq.com>
Date: Mon, 16 Dec 2019 11:37:31 +0800
Subject: [PATCH 23/24] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E6=8C=89=E5=85=AC=E5=BC=80=E6=97=B6=E9=97=B4=E6=8E=92=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/shixuns_controller.rb | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb
index faf30cb90..f75dd7147 100644
--- a/app/controllers/shixuns_controller.rb
+++ b/app/controllers/shixuns_controller.rb
@@ -67,15 +67,11 @@ class ShixunsController < ApplicationController
## 排序参数
bsort = params[:sort] || 'desc'
- case params[:order_by] || 'publish_time'
- when 'new'
- @shixuns = @shixuns.order("shixuns.status = 2 desc, shixuns.created_at #{bsort}")
+ case params[:order_by] || 'new'
when 'hot'
- @shixuns = @shixuns.order("shixuns.status = 2 desc, shixuns.myshixuns_count #{bsort}")
- when 'mine'
- @shixuns = @shixuns.order("shixuns.created_at #{bsort}")
+ @shixuns = @shixuns.order("shixuns.public = 2 desc, shixuns.myshixuns_count #{bsort}")
else
- @shixuns = @shixuns.order("shixuns.status = 2 desc, shixuns.publish_time #{bsort}")
+ @shixuns = @shixuns.order("shixuns.public = 2 desc, shixuns.publish_time #{bsort}")
end
# 用id计数会快10+MS左右,对于搜索的内容随着数据的增加,性能会提升一些。
From 07921e9d3397fc281c25606e68055f817cc337c1 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Mon, 16 Dec 2019 11:39:50 +0800
Subject: [PATCH 24/24] =?UTF-8?q?=E5=BC=80=E5=90=AFJupyter=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0myshixun=5Fidentifier?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/services/jupyter_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/jupyter_service.rb b/app/services/jupyter_service.rb
index 1bbad9390..0f5af6cb8 100644
--- a/app/services/jupyter_service.rb
+++ b/app/services/jupyter_service.rb
@@ -48,7 +48,7 @@ module JupyterService
tpiID = myshixun.id
mount = myshixun.shixun.data_sets.present?
- params = {tpiID: tpiID, identifier: shixun.identifier, needMount: mount,
+ params = {tpiID: tpiID, identifier: shixun.identifier, myshixunIdentifier: myshixun.identifier, needMount: mount,
:containers => "#{Base64.urlsafe_encode64(shixun_container_limit(shixun))}"}
res = uri_post uri, params