Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into develop

dev_jupyter
杨树林 5 years ago
commit f72ffc2a87

@ -399,7 +399,7 @@ class ExercisesController < ApplicationController
choice_random = params[:choice_random] ? true : false
score_open = params[:score_open] ? true : false #分数是否公开
answer_open = params[:answer_open] ? true : false #答案是否公开
assistant_auth = params[:assistant_auth] ? true : false # 助教权限
assistant_auth = params[:assistant_auth] # 助教权限
# 统一设置或者分班为0则更新试卷并删除试卷分组
if unified_setting || (course_group_ids.size == 0)
@ -532,7 +532,8 @@ class ExercisesController < ApplicationController
:answer_open => answer_open,
:exercise_status => exercise_status,
:publish_time => p_time,
:end_time => e_time
:end_time => e_time,
:assistant_auth => assistant_auth
}
@exercise.update!(exercise_params)
if @exercise.exercise_status == Exercise::PUBLISHED
@ -773,10 +774,11 @@ class ExercisesController < ApplicationController
ex_group_setting = exercise.exercise_group_settings
old_exercise_groups = ex_group_setting.find_in_exercise_group("course_group_id", g_course) #试卷的分组设置
left_course_groups = teacher_course_group_ids - g_course
all_left_groups = all_course_group_ids - g_course
left_exercise_groups = ex_group_setting.find_in_exercise_group("course_group_id", left_course_groups)
if left_exercise_groups.blank? && exercise.unified_setting
if left_course_groups.size > 0 #开始为统一设置但是立即截止为分班。则创建没有立即截止的班级的exercise_group_setting
left_course_groups.each do |g|
if all_left_groups.size > 0 #开始为统一设置但是立即截止为分班。则创建没有立即截止的班级的exercise_group_setting
all_left_groups.each do |g|
ex_group_options = {
:exercise_id => exercise.id,
:course_group_id => g,

@ -359,6 +359,9 @@ class HomeworkCommonsController < ApplicationController
def new
tip_exception("type参数有误") if params[:type].blank? || ![1, 3].include?(params[:type].to_i)
@homework_type = params[:type].to_i
module_type = params[:type].to_i == 1 ? "common_homework" : "group_homework"
@main_category = @course.course_modules.find_by(module_type: module_type)
@category = @main_category.course_second_categories.find_by(id: params[:category]) if params[:category].present?
end
def create
@ -376,6 +379,11 @@ class HomeworkCommonsController < ApplicationController
@homework.user_id = current_user.id
@homework.course_id = @course.id
if params[:category].present?
category = @course.course_second_categories.find_by(id: params[:category])
@homework.course_second_category_id = category&.id.to_i
end
homework_detail_manual = HomeworkDetailManual.new
@homework.homework_detail_manual = homework_detail_manual
homework_detail_manual.te_proportion = 0.7
@ -404,7 +412,12 @@ class HomeworkCommonsController < ApplicationController
end
def edit
if @homework.course_second_category_id == 0
module_type = @homework.homework_type == "normal" ? "common_homework" : "group_homework"
@main_category = @course.course_modules.find_by(module_type: module_type)
else
@category = @homework.course_second_category
end
end
def update

@ -212,6 +212,11 @@ class QuestionBanksController < ApplicationController
homework_type: homework.homework_type, course_id: course.id, homework_bank_id: homework.id,
reference_answer: homework.reference_answer)
if params[:category].present?
category = course.course_second_categories.find_by(id: params[:category])
new_homework.course_second_category_id = category&.id.to_i
end
# 作业的基本设置复制
new_homework.homework_detail_manual = HomeworkDetailManual.new
new_homework_detail_manual = new_homework.homework_detail_manual

@ -69,17 +69,18 @@ class HomeworkCommon < ApplicationRecord
# 作业对应的子目录/父目录名称
def category_info
case self.homework_type
when 'normal'
{category_id: course.common_course_modules.first.try(:id), category_name: course.common_course_modules.first.try(:module_name), main: 1}
when 'group'
{category_id: course.group_course_modules.first.try(:id), category_name: course.group_course_modules.first.try(:module_name), main: 1}
when 'practice'
if self.course_second_category.present?
{category_id: self.course_second_category.try(:id), category_name: self.course_second_category.try(:name), main: 0}
else
{category_id: course.shixun_course_modules.take.try(:id), category_name: course.shixun_course_modules.take.try(:module_name), main: 1}
end
if self.course_second_category.present?
{category_id: self.course_second_category.try(:id), category_name: self.course_second_category.try(:name), main: 0}
else
course_module = case homework_type
when 'normal'
course.common_course_modules.take
when 'group'
course.group_course_modules.take
when 'practice'
course.shixun_course_modules.take
end
{category_id: course_module.try(:id), category_name: course_module.try(:module_name), main: 1}
end
end

@ -1,7 +1,7 @@
json.exercise do
json.extract! @exercise, :id,:exercise_name, :exercise_status,:time,:publish_time,
:end_time,:score_open,:answer_open,:question_random,:choice_random,
:unified_setting,:show_statistic
:unified_setting,:show_statistic,:assistant_auth
json.course_id @course.id
json.published_count @exercise_publish_count
json.unpublish_count @exercise_unpublish_count

@ -14,6 +14,7 @@ json.data do
json.partial! "users/user_simple", user: attachment.author
end
# json.partial! "files/course_groups", attachment_group_settings: attachment.attachment_group_settings
json.category_id attachment.course_second_category_id
if @course_second_category_id.to_i == 0
json.category_name attachment.course_second_category&.name
end

@ -1,6 +1,16 @@
json.course_id @course.id
json.course_name @course.name
json.category @homework.category_info
# json.category @homework.category_info
json.category do
if @category.present?
json.category_id @category.id
json.category_name @category.name
else
json.category_id @main_category&.id
json.category_name @main_category&.module_name
end
end
json.(@homework, :id, :name, :description, :reference_answer)

@ -1,3 +1,11 @@
json.course_id @course.id
json.course_name @course.name
json.category @course.category_info(@homework_type == 1 ? "common_homework" : "group_homework")
json.category do
if @category.present?
json.category_id @category.id
json.category_name @category.name
else
json.category_id @main_category&.id
json.category_name @main_category&.module_name
end
end

@ -130,16 +130,17 @@ class CoursesBanner extends Component {
axios.get(url,{params:
dataqueryss
}).then((result) => {
if(result.data.status===-2){
// this.setState({
// AccountProfiletype:true,
// content:result.data.message,
// okText:"立即认证",
// cannelText:"稍后认证",
// okHref:`/account/certification`,
// Accounturltype:true
// })
}else{
try {
if(result.data.status===-2){
// this.setState({
// AccountProfiletype:true,
// content:result.data.message,
// okText:"立即认证",
// cannelText:"稍后认证",
// okHref:`/account/certification`,
// Accounturltype:true
// })
}else{
if( result!=undefined){
let data = result.data;
this.setState({
@ -150,8 +151,12 @@ class CoursesBanner extends Component {
}else{
this.onloadupdatabanner()
}
}
}catch (e) {
}
})
};
foo=(url)=> {

@ -42,8 +42,8 @@ class ModulationModal_exercise extends Component {
}
componentDidMount = () => {
console.log("ModulationModal_exercise");
console.log(this.props);
// console.log("ModulationModal_exercise");
// console.log(this.props);
this.setState({
subjective_score: this.props.subjective_score,
objective_score: this.props.objective_score,

@ -75,9 +75,10 @@ class ExerciseListItem extends Component{
let{item,checkBox,index}=this.props;
let {coursesId,Id}=this.props.match.params
const IsAdmin =this.props.isAdmin();
const IsStudent =this.props.isStudent();
const isAssistant=this.props.isAssistant();
const IsStudent =this.props.isStudent();
// console.log(this.props.current_user.user_id)
return(
<div className="workList_Item" style={{cursor : IsAdmin ? "pointer" : "default",padding:"30px" }} onClick={() => window.$(`.exerciseitem${index} input`).click() }>
{
@ -189,8 +190,31 @@ class ExerciseListItem extends Component{
{ IsAdmin &&<div className="homepagePostSetting" style={{"right":"-17px","top":"46px","display":"block","width":"200px"}}>
<a className="btn colorblue font-16 ml20" onClick={()=>this.toDetailPage(`/classrooms/${coursesId}/exercises/${item.id}/student_exercise_list?tab=0`)}>查看详情</a>
<Link className="btn colorblue font-16 ml20" to={`/classrooms/${coursesId}/exercises/${item.id}/edit`}>编辑</Link>
{
isAssistant===true?
(
item&&item.assistant_auth===true?
<a className="btn colorblue font-16 ml20" onClick={()=>this.toDetailPage(`/classrooms/${coursesId}/exercises/${item.id}/student_exercise_list?tab=0`)}>查看详情</a>
:
<a className="btn colorblue font-16 " style={{
marginLeft: "73px"
}} onClick={()=>this.toDetailPage(`/classrooms/${coursesId}/exercises/${item.id}/student_exercise_list?tab=0`)}>查看详情</a>
)
:
<a className="btn colorblue font-16 ml20" onClick={()=>this.toDetailPage(`/classrooms/${coursesId}/exercises/${item.id}/student_exercise_list?tab=0`)}>查看详情</a>
}
{
isAssistant===true?
(
item&&item.assistant_auth===true?
<Link className="btn colorblue font-16 ml20" to={`/classrooms/${coursesId}/exercises/${item.id}/edit`}>编辑</Link>
:
""
)
:
<Link className="btn colorblue font-16 ml20" to={`/classrooms/${coursesId}/exercises/${item.id}/edit`}>编辑</Link>
}
<Link className="btn colorblue ml20 font-16" to={`/classrooms/${coursesId}/exercises/${item.id}/student_exercise_list?tab=3`}>设置</Link>
</div> }

@ -75,10 +75,11 @@ class Exercisesetting extends Component{
limit:10,
searchtext:"",
order: "end_at",
assistant_auth:false
}
console.log("Exercisesetting");
console.log("69");
console.log(props);
// console.log("Exercisesetting");
// console.log("69");
// console.log(props);
}
_getRequestParams() {
const { order, exercise_group_id,searchtext, page ,limit} = this.state
@ -92,6 +93,12 @@ class Exercisesetting extends Component{
}
//加载
componentDidMount=()=>{
this.setState({
assistant_auth:this.props.assistant_auth,
})
this.getSettingInfo();
// window.addEventListener('click', this.handleClick);
@ -108,11 +115,34 @@ class Exercisesetting extends Component{
if(this.props.isAdmin() === false){
this.cancelEdit()
}
try {
//是否为助教
if(this.props.isAssistant()===true){
//如果是助教是否有权限
if(this.props.assistant_auth===true){
this.setState({
flagPageEdit:true
})
}else{
this.setState({
flagPageEdit:false
})
}
}
}catch (e) {
}
}
componentDidUpdate = (prevProps) => {
if(prevProps.Commonheadofthetestpaper!= this.props.Commonheadofthetestpaper){
this.editSetting()
}
if(prevProps.assistant_auth!= this.props.assistant_auth){
this.setState({
assistant_auth:this.props.assistant_auth,
})
}
}
_getRequestParams() {
@ -348,10 +378,16 @@ class Exercisesetting extends Component{
this.commitSetting((result)=>{
console.log(result)
if(result.status==200){
if(result.status===200){
this.props.showNotification(`${result.data.message}`);
this.getSettingInfo(1);
this.cancelEdit();
try {
this.props.assistantauthoritys(this.state.assistant_auth);
}catch (e) {
}
}
})
}
@ -371,6 +407,12 @@ class Exercisesetting extends Component{
this.props.showNotification(`${result.data.message}`);
this.cancelEdit();
this.getSettingInfo(1);
try {
this.props.assistantauthoritys(this.state.assistant_auth);
}catch (e) {
}
}
});
@ -386,11 +428,12 @@ class Exercisesetting extends Component{
publish_time:this.state.publish_time,
end_time:this.state.end_time,
show_statistic:this.state.show_statistic,
choice_random:this.state.choice_random,
choice_random:this.state.choice_random,
score_open:this.state.score_open,
answer_open:this.state.answer_open,
question_random:this.state.question_random,
time:this.state.time,
assistant_auth:this.state.assistant_auth,
}
}else{
let list=this.state.rules;
@ -403,7 +446,6 @@ class Exercisesetting extends Component{
}
lists.push(newlist)
})
params={
unified_setting:this.state.unified_setting,
show_statistic:this.state.show_statistic,
@ -413,6 +455,7 @@ class Exercisesetting extends Component{
answer_open:this.state.answer_open,
publish_time_groups:lists,
time:this.state.time,
assistant_auth:this.state.assistant_auth,
}
}
axios.post((url),params).then((result)=>{
@ -491,6 +534,12 @@ class Exercisesetting extends Component{
})
}
assistantauthority=(e)=>{
this.setState({
assistant_auth:e.target.checked
})
}
onChangeTimepublish=(date, dateString)=>{
if(date===null){
this.setState({
@ -555,9 +604,33 @@ class Exercisesetting extends Component{
modalSave:this.cancelBox
})
}else{
this.setState({
flagPageEdit:true
})
if(this.props.isAdmin()===true){
try {
//是否为助教
if(this.props.isAssistant()===true){
//如果是助教是否有权限
if(this.props.assistant_auth===true){
this.setState({
flagPageEdit:true
})
}else{
this.setState({
flagPageEdit:false
})
}
}else{
//是老师
this.setState({
flagPageEdit:true
})
}
}catch (e) {
this.setState({
flagPageEdit:true
})
}
}
}
}
//取消编辑
@ -608,7 +681,9 @@ class Exercisesetting extends Component{
// console.log("asdasdasda");
// console.log(this.props);
// console.log(this.props.Commonheadofthetestpaper);
return(
return(
<div>
<Modals
modalsType={modalsType}
@ -623,13 +698,22 @@ class Exercisesetting extends Component{
<span className="font-16 fl">发布设置<span className="color-grey-c font-14"></span></span>
{
!flagPageEdit&&this.props.isAdmin()===true ?
<a className="fr mr6 white-btn edu-blueline-btn lineh-24" onClick={this.editSetting}>
编辑设置
{/*<Tooltip title="编辑">*/}
{/*<i className="iconfont icon-bianjidaibeijing font-20 color-green"></i>*/}
{/*</Tooltip>*/}
</a>
:""
(
this.props.isAssistant()===true?
(
this.props.assistant_auth===true?
<a className="fr mr6 white-btn edu-blueline-btn lineh-24" onClick={this.editSetting}>
编辑设置
</a>
:
""
)
:
<a className="fr mr6 white-btn edu-blueline-btn lineh-24" onClick={this.editSetting}>
编辑设置
</a>
)
:""
}
</p>
@ -769,7 +853,7 @@ class Exercisesetting extends Component{
<div className="padding20-30">
<p className="mb30 clearfix font-16">公开设置</p>
<p className="mb30 clearfix font-16">属性设置</p>
<div className="pl33">
<p className="mb20">
@ -790,7 +874,7 @@ class Exercisesetting extends Component{
</Form.Item>
<span className="color-grey-c">(选中则在试卷截止时间之后已提交答题的学生可以查看试卷题目的答案否则不能查看)</span>
</p>
<p className="clearfix mb5">
<p className="clearfix mb20">
<Form.Item className="fl pollForm">
{getFieldDecorator('show_statistic')
(
@ -799,6 +883,15 @@ class Exercisesetting extends Component{
</Form.Item>
<span className="color-grey-c">(选中则在试卷截止时间之后已提交答题的学生可以查看答题统计否则不能查看)</span>
</p>
<p className="clearfix mb5">
<Form.Item className="fl pollForm">
{getFieldDecorator('assistantauthority')
(
<Checkbox disabled={this.props.isAdmin()===true?!flagPageEdit:true} className="mr15 font-16 color-grey-6" checked={this.state.assistant_auth} onChange={this.assistantauthority}>助教权限</Checkbox>
)}
</Form.Item>
<span className="color-grey-c">(选中则允许助教查看答案)</span>
</p>
</div>
</div>
@ -808,7 +901,10 @@ class Exercisesetting extends Component{
<div className="clearfix mt30 ml40" style={{paddingBottom:'40px'}}>
<Button type="primary" htmlType="submit" className="defalutSubmitbtn fl mr20">提交</Button>
<a className="defalutCancelbtn fl" onClick={this.cancelEdit}>取消</ a>
</div>:""
</div>
:""
}
</Form>
@ -820,70 +916,3 @@ const WrappedExercisesetting = Form.create({ name: 'exercisesetting' })(Exercise
export default WrappedExercisesetting;
// //提交form表单
// handleSubmit = (e) => {
//
// let{unified_setting,answer_open}=this.state;
// e.preventDefault();
// let exercise_id=this.props.match.params.Id;
//
// this.props.form.validateFieldsAndScroll((err, values) => {
// debugger
// if(!err){
// // 第一次进行问卷设置或者勾选了统一设置
// if(unified_setting==true){
// if(this.state.p_flag == false && this.state.e_flag == true){
// // 选择了发布时间但截至时间没有选择
// this.setState({
// modalsType:true,
// modalsTopval:"请选择截止时间",
// loadtype:true,
// modalSave:this.cancelBox
// })
// return;
// }else if(this.state.p_flag == true && this.state.e_flag == true){
// // 如果两个时间都没有填写则弹出立即发布弹框
// let{publish_time,end_time}=this.state
// if(publish_time==undefined && end_time ==undefined){
//
// }else{
// // 否则就是选择的时间错误
// this.setState({
// modalsType:true,
// modalsTopval:"请选择正确的发布时间和截止时间",
// loadtype:true,
// modalSave:this.cancelBox
// })
// }
// return;
// }
// }
//
// let url=`/exercises/${exercise_id}/commit_setting.json`;
// let params=[];
// if(values.unitSet){
// params={
// unified_setting:values.unitSet,
// publish_time:this.state.publish_time,
// end_time:this.state.end_time,
// show_result:values.public,
// un_anonymous:values.real
// }
// }else{
// params={
// unified_setting:values.unitSet,
// show_result:values.public,
// un_anonymous:values.real,
// publish_time_groups:this.state.rules
// }
// }
// axios.post((url),{params}).then((result)=>{
// if(result.status==200){
// this.props.showNotification(`${result.data.message}`);
// }
// }).catch((error)=>{
// console.log(error);
// })
// }
// })
// }

@ -28,6 +28,7 @@ const RadioGroup = Radio.Group;
const CheckboxGroup = Checkbox.Group;
const {Option} = Select;
//学生老师页面
let columnsystwo=[];
class Studentshavecompletedthelist extends Component {
// http://localhost:3007/courses/1309/exercises/722/exercises/student_exercise_list?debug=s
constructor(props) {
@ -1158,237 +1159,56 @@ class Studentshavecompletedthelist extends Component {
<span>
{
record.submitstate === "未提交"||record.commit_method===5?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank" onClick={() => this.Adjustment(record.user_id)}>评阅</a>
(//是否助教
this.props.isAssistant()&&this.props.isAssistant()===true?
(//助教是否有权限
this.props.assistant_auth&&this.props.assistant_auth===true?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank" onClick={() => this.Adjustment(record.user_id)}>评阅</a>
:
(//是否截止
this.props.Commonheadofthetestpaper && this.props.Commonheadofthetestpaper.exercise_status===3?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank" onClick={() => this.Adjustment(record.user_id)}>评阅</a>
:
<span style={{textAlign: "center", color: '#999999'}}>--</span>
)
)
:
<a style={{textAlign: "center"}} className="color-blue"
target="_blank" onClick={() => this.Adjustment(record.user_id)}>评阅</a>
)
:record.submitstate === "已提交"?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank"
href={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${record.myid}`}>{record.finalscore}</a>
(//是否助教
this.props.isAssistant()&&this.props.isAssistant()===true?
(//助教是否有权限
this.props.assistant_auth&&this.props.assistant_auth===true?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank"
href={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${record.myid}`}>{record.finalscore}</a>
:
(//是否截止
this.props.Commonheadofthetestpaper && this.props.Commonheadofthetestpaper.exercise_status===3?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank"
href={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${record.myid}`}>{record.finalscore}</a>
:
<span style={{textAlign: "center", color: '#999999'}}>--</span>
)
)
:
<a style={{textAlign: "center"}} className="color-blue"
target="_blank"
href={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${record.myid}`}>{record.finalscore}</a>
)
:
<span style={{textAlign: "center", color: '#999999'}}>--</span>
}
</span>
</span>
)
},
],
columnsystwo: [
{
title: '序号',
dataIndex: 'number',
key: 'number',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
{record.number === "--" ?
<span style={{color: '#999999', textAlign: "center"}}>--</span>
:
<span style={{color: '#07111B', textAlign: "center"}}>{record.number}</span>
}
</span>
)
},
{
title: '姓名',
dataIndex: 'name',
key: 'name',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
{record.name==="--"?
<span style={{color: '#999999', textAlign: "center"}}>{record.name}</span>
:
<span style={{color: '#07111B', textAlign: "center"}}>{record.name}</span>
}
</span>
)
},
{
title: '学号',
dataIndex: 'stduynumber',
key: 'stduynumber',
align: 'center',
className: "edu-txt-center font-14",
sorter: true,
sortDirections: sortDirections,
render: (text, record) => (
<span>
{record.stduynumber === "--" ?
<span style={{color: '#999999', textAlign: "center"}}>{record.stduynumber}</span>
:
<span style={{color: '#9A9A9A', textAlign: "center"}}>{record.stduynumber}</span>
}
</span>
),
},
{
title: '分班',
key: 'classroom',
dataIndex: 'classroom',
align: 'center',
className: "edu-txt-center font-14 maxnamewidth260 ",
width:'260px',
render: (text, record) => (
<span>
{record.classroom==="--"?
<span style={{color: '#999999', textAlign: "center"}} className="maxnamewidth260">{record.classroom}</span>
:
<a style={{color: '#07111B', textAlign: "center"}} className="maxnamewidth260" title={record.classroom}>{record.classroom}</a>
}
</span>
)
},
{
title: '提交状态',
dataIndex: 'submitstate',
key: 'submitstate',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
<span style={record.submitstate === "未提交" ? {
color: '#999999',
textAlign: "center"
} : record.submitstate === "已提交" ? {color: '#29BD8B', textAlign: "center"} : {
color: '#29BD8B',
textAlign: "center"
}}>{record.submitstate}</span>
</span>
)
},
{
title: '提交时间',
dataIndex: 'updatetime',
key: 'updatetime',
align: 'center',
className: "edu-txt-center font-14",
sorter: true,
defaultSortOrder: 'descend',
sortDirections: sortDirections,
render: (text, record) => (
<span>
{record.updatetime==="--"?
<span style={{color: '#999999', textAlign: "center"}}>--</span>
:
<span style={{color: '#9A9A9A', textAlign: "center"}}>{record.updatetime}</span>
}
</span>
),
},
{
title: '客观题得分',
dataIndex: 'completion',
key: 'completion',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
{record.completion=== "--"?
<span style={{color: '#999999', textAlign: "center"}}>--</span>
:
<span style={{color: '#07111B', textAlign: "center"}}>{record.completion}</span>
}
</span>
)
},
{
title: '主观题得分',
dataIndex: 'levelscore',
key: 'levelscore',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
{record.levelscore==="--"?
<span style={{color: '#999999', textAlign: "center"}}>--</span>
:
<span style={{color: '#FF6800', textAlign: "center"}}>{record.levelscore}</span>
}
</span>
)
},
{
title: '最终成绩',
dataIndex: 'efficiencyscore',
key: 'efficiencyscore',
align: 'center',
className: "edu-txt-center font-14",
sorter: true,
sortDirections: sortDirections,
render: (text, record) => (
<span>
{record.efficiencyscore === "--" ?
<Tooltip placement="bottom" title={<div>
<div>未评分</div>
</div>}>
<a style={{color: '#999999',
textAlign: "center",}}>--</a>
</Tooltip>
:
record.commit_method===5?
<Tooltip placement="bottom" title={
<div>
<div>最终调整成绩{record.efficiencyscore}</div>
</div>}>
<span style={parseInt(record.efficiencyscore) > 90 ? {
color: '#DD1717',
textAlign: "center",
} : parseInt(record.efficiencyscore) <= 90 ? {
color: '#FF6800',
textAlign: "center",
} : parseInt(record.efficiencyscore) <= 60 ? {
color: '#747A7F',
textAlign: "center",
} : {
color: '#747A7F',
textAlign: "center",
}}>{record.efficiencyscore}</span>
</Tooltip>
:
<span style={parseInt(record.efficiencyscore) > 90 ? {
color: '#DD1717',
textAlign: "center",
} : parseInt(record.efficiencyscore) <= 90 ? {
color: '#FF6800',
textAlign: "center",
} : parseInt(record.efficiencyscore) <= 60 ? {
color: '#747A7F',
textAlign: "center",
} : {
color: '#747A7F',
textAlign: "center",
}}>{record.efficiencyscore}</span>
}
</span>
)
},
{
title: '操作',
dataIndex: 'finalscore',
key: 'finalscore',
align: 'center',
className: "edu-txt-center font-14",
render: (text, record) => (
<span>
{
record.submitstate === "未提交"||record.commit_method===5?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank" onClick={() => this.Adjustment(record.user_id)}>评阅</a>
:record.submitstate === "已提交"?
<a style={{textAlign: "center"}} className="color-blue"
target="_blank"
href={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/users/${record.myid}`}>{record.finalscore}</a>
:
<span style={{textAlign: "center", color: '#999999'}}>--</span>
}
</span>
)
},
],//columnsystwo 也会被columnsys当作参数接收
// 也会被columnsys当作参数接收
exercise_status:0,
order_type: "desc",
exeuserid: 0,
@ -1449,20 +1269,23 @@ class Studentshavecompletedthelist extends Component {
}
componentDidMount() {
// if(this.props.isAdmin() === true){
// this.Teacherliststudentlistsy();
// //console.log("1111111111111111");
// //console.log(this.props.isAdmin());
// }else {
//被columnsys当作参数接收
// console.log("componentDidMount");
// console.log(columnsystwo);
try {
columnsystwo=this.state.columnsys;
}catch (e) {
}
// console.log(columnsystwo);
this.Teacherliststudentlist();
// //console.log("2222222222222");
// //console.log(this.props.isAdmin());
// }
try {
this.props.triggerRef(this);
}catch (e) {
}
}
componentWillReceiveProps = (nextProps) => {
@ -2163,7 +1986,7 @@ class Studentshavecompletedthelist extends Component {
course_groups: response.data.course_groups,
mylistansum:response.data.exercise_types.answer_users+response.data.exercise_types.unanswer_users,
loadingstate: false,
columnsys: this.state.columnsystwo,
columnsys: columnsystwo,
subjective: response.data.exercise_types.subjective,
objective_score: response.data.exercise_types.objective_score,
subjective_score: response.data.exercise_types.subjective_score,
@ -2772,8 +2595,16 @@ class Studentshavecompletedthelist extends Component {
}
// 调分
Adjustment = (e) => {
console.log("Adjustment");
console.log(e);
// console.log("Adjustment");
// console.log(e);
if(this.state.objective_score===0&&this.state.subjective_score===0){
this.props.showNotification('试卷题型分被限制为0分不能调分请点击编辑试卷修改题型分数');
return
}
this.setState({
testpapergradingboll: true,
exeuserid: e,
@ -2828,8 +2659,8 @@ class Studentshavecompletedthelist extends Component {
// //console.log("this.props.Commonheadofthetestpaper.exercise_status");
// //console.log(this.props.Commonheadofthetestpaper&&this.props.Commonheadofthetestpaper.exercise_status);
// //console.log(exercise_status);
console.log("Studentshavecompletedthelis123123t");
console.log(columnss);
// console.log("Studentshavecompletedthelis123123t");
// console.log(columnss);
return (
isAdmin === true ?
(

@ -35,6 +35,7 @@ class Testpapersettinghomepage extends Component{
DownloadMessageval:undefined,
donwloading:false,
exercise_status:3,
assistant_auth:false, //设置助教
}
}
//切换tab
@ -72,6 +73,7 @@ class Testpapersettinghomepage extends Component{
Commonheadofthetestpaper:response.data,
current_status:response.data.user_permission.current_status,
exercise_status:response.data.exercise_status,
assistant_auth:response.data.assistant_auth,
})
// console.log(JSON.stringify(response.data.show_statistic));
@ -85,6 +87,12 @@ class Testpapersettinghomepage extends Component{
}
assistantauthoritys=(bool)=>{
this.setState({
assistant_auth:bool,
})
}
Ecerciseacallagain=()=>{
this.setState({
visible:true
@ -287,9 +295,11 @@ class Testpapersettinghomepage extends Component{
this.props.history.goBack()
}
render(){
let {tab,visible,Commonheadofthetestpaper,exercise_status}=this.state;
let {tab,visible,Commonheadofthetestpaper,exercise_status,assistant_auth}=this.state;
const isAdmin =this.props.isAdmin();
const isStudent = this.props.isStudent();
const isAssistant=this.props.isAssistant();
const isStudent = this.props.isStudent();
// TODO
//console.log(Commonheadofthetestpaper.exercise_status);
@ -353,7 +363,26 @@ class Testpapersettinghomepage extends Component{
<div className="stud-class-set bor-bottom-greyE ">
<div className=" clearfix edu-back-white pl30 pr30">
<div className="fl task_menu_ul">
{this.props.isAdmin()===true?
{isAssistant===true?
(
assistant_auth===true?
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>
<Menu.Item key="0" className={"exercisesafonts"}>答题列表</Menu.Item>
<Menu.Item key="1" className={"exercisesafonts"}>统计结果</Menu.Item>
<Menu.Item key="2" className={"exercisesafonts"}>试卷预览</Menu.Item>
<Menu.Item key="3" className={"exercisesafonts"}>设置</Menu.Item>
</Menu>
:
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>
<Menu.Item key="0" className={"exercisesafonts"}>答题列表</Menu.Item>
{Commonheadofthetestpaper&&Commonheadofthetestpaper.show_statistic===true?
Commonheadofthetestpaper && Commonheadofthetestpaper.exercise_status===3?
<Menu.Item key="1" className={"exercisesafonts"}>统计结果</Menu.Item>:"":""}
<Menu.Item key="3" className={"exercisesafonts"}>设置</Menu.Item>
</Menu>
)
:
this.props.isAdmin()===true?
<Menu mode="horizontal" selectedKeys={tab} onClick={this.changeTab}>
<Menu.Item key="0" className={"exercisesafonts"}>答题列表</Menu.Item>
<Menu.Item key="1" className={"exercisesafonts"}>统计结果</Menu.Item>
@ -437,7 +466,23 @@ class Testpapersettinghomepage extends Component{
getsetdata={this.getsetdata}
></ImmediatelyPublish>
:"":""}
{isAdmin === true? <Link className="fr color-blue font-16 mt20 mr20" to={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/edit`}>编辑试卷</Link>:""}
{/*const isAdminOrTeacher*/}
{/*assistant_auth===true*/}
{/**/}
{isAdmin === true?
(
isAssistant===true?
(
assistant_auth===true?
<Link className="fr color-blue font-16 mt20 mr20" to={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/edit`}>编辑试卷</Link>
:
""
)
:
<Link className="fr color-blue font-16 mt20 mr20" to={`/classrooms/${this.props.match.params.coursesId}/exercises/${this.props.match.params.Id}/edit`}>编辑试卷</Link>
)
:""}
{isAdmin === false && this.props.current_user !== undefined?
Commonheadofthetestpaper&&Commonheadofthetestpaper.user_permission.current_status===2?
@ -461,22 +506,22 @@ class Testpapersettinghomepage extends Component{
/>
{
// 教师列表
parseInt(tab[0])==0 ? <Studentshavecompletedthelist {...this.props} {...this.state} triggerRef={this.bindRef} setcourse_groupysls={(value)=>this.setcourse_groupysls(value)} current_status = {this.state.current_status} Commonheadofthetestpaper={this.state.Commonheadofthetestpaper} yslstustate={[`${polls_status[Commonheadofthetestpaper && Commonheadofthetestpaper.exercise_status]}`]}></Studentshavecompletedthelist>:""
parseInt(tab[0])==0 ? <Studentshavecompletedthelist {...this.props} {...this.state} assistant_auth={assistant_auth} triggerRef={this.bindRef} setcourse_groupysls={(value)=>this.setcourse_groupysls(value)} current_status = {this.state.current_status} Commonheadofthetestpaper={this.state.Commonheadofthetestpaper} yslstustate={[`${polls_status[Commonheadofthetestpaper && Commonheadofthetestpaper.exercise_status]}`]}></Studentshavecompletedthelist>:""
}
{/*统计结果*/}
{
parseInt(tab[0])==1 ? <Exercisestatisticalresult {...this.props} {...this.state} triggerRef={this.bindRef}></Exercisestatisticalresult>:""
parseInt(tab[0])==1 ? <Exercisestatisticalresult {...this.props} {...this.state} assistant_auth={assistant_auth} triggerRef={this.bindRef}></Exercisestatisticalresult>:""
}
{
parseInt(tab[0])==2 ? <ExerciseDisplay {...this.props} {...this.state} triggerRef={this.bindRef}></ExerciseDisplay>:""
parseInt(tab[0])==2 ? <ExerciseDisplay {...this.props} {...this.state} assistant_auth={assistant_auth} triggerRef={this.bindRef}></ExerciseDisplay>:""
}
{
parseInt(tab[0])==3 ? <WrappedExercisesetting Commonheadofthetestpaper={this.state.Commonheadofthetestpaper} {...this.props} {...this.state} triggerRef={this.bindRef} Commonheadofthetestpapers={this.Commonheadofthetestpaper}></WrappedExercisesetting>:""
parseInt(tab[0])==3 ? <WrappedExercisesetting Commonheadofthetestpaper={this.state.Commonheadofthetestpaper} {...this.props} {...this.state} assistant_auth={assistant_auth} triggerRef={this.bindRef} Commonheadofthetestpapers={this.Commonheadofthetestpaper} assistantauthoritys={(bool)=>this.assistantauthoritys(bool)}></WrappedExercisesetting>:""
}
</div>
</div>

@ -276,6 +276,10 @@ export function TPMIndexHOC(WrappedComponent) {
isAdminOrTeacher = () => {
return this.state.coursedata&&this.state.coursedata.course_identity < 4
}
// 助教===4
isAssistant=()=>{
return this.state.coursedata&&this.state.coursedata.course_identity ===4
}
// 超管、运维、课堂管理、老师、助教0-4
isAdmin = () => {
return this.state.coursedata&&this.state.coursedata.course_identity < 5
@ -711,6 +715,7 @@ export function TPMIndexHOC(WrappedComponent) {
isAdmin: this.isAdmin,
isAdminOrTeacher: this.isAdminOrTeacher,
isAssistant:this.isAssistant,
isStudent: this.isStudent,
isAdminOrStudent: this.isAdminOrStudent,
isNotMember: this.isNotMember,

Loading…
Cancel
Save