Skip to content

Commit

Permalink
restored changes
Browse files Browse the repository at this point in the history
  • Loading branch information
malloc-nbytes committed Dec 6, 2024
1 parent 06261ba commit 1a43350
Show file tree
Hide file tree
Showing 8 changed files with 144 additions and 42 deletions.
25 changes: 24 additions & 1 deletion BackEndFlask/controller/Routes/Assessment_task_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
create_assessment_task,
replace_assessment_task,
toggle_lock_status,
toggle_published_status,
)

from models.completed_assessment import (
Expand Down Expand Up @@ -270,7 +271,28 @@ def toggle_lock_status_route():
)
except Exception as e:
return create_bad_response(
f"An error occurred copying course assessments {e}", "assessment_tasks", 400
f"An error occurred toggling the lock status for assessment {e}", "assessment_tasks", 400
)


@bp.route('/assessment_task_toggle_published', methods=['PUT'])
@jwt_required()
@bad_token_check()
@AuthCheck()
def toggle_published_status_route():
try:
assessmentTaskId = request.args.get('assessmentTaskId')

toggle_published_status(assessmentTaskId)

return create_good_response(
assessment_task_schema.dump(get_assessment_task(assessmentTaskId)),
201,
"assessment_tasks"
)
except Exception as e:
return create_bad_response(
f"An error occurred toggling the published status for assessment {e}", "assessment_tasks", 400
)


Expand Down Expand Up @@ -336,6 +358,7 @@ class Meta:
"max_team_size",
"notification_sent",
"locked",
"published",
)


Expand Down
2 changes: 1 addition & 1 deletion BackEndFlask/controller/Routes/Rating_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,4 +95,4 @@ class Meta:
)

student_feedback_schema = StudentFeedbackSchema()
student_feedbacks_schema = StudentFeedbackSchema(many=True)
student_feedbacks_schema = StudentFeedbackSchema(many=True)
28 changes: 28 additions & 0 deletions BackEndFlask/models/assessment_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ def create_assessment_task(assessment_task):
time_zone=assessment_task["time_zone"],
show_suggestions=assessment_task["show_suggestions"],
locked=assessment_task["locked"],
published=assessment_task["published"],
show_ratings=assessment_task["show_ratings"],
unit_of_assessment=assessment_task["unit_of_assessment"],
create_team_password=assessment_task["create_team_password"],
Expand Down Expand Up @@ -131,6 +132,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 2
"assessment_task_name": "Formal Communication Assessment",
Expand All @@ -146,6 +148,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 3
"assessment_task_name": "Information Processing Assessment",
Expand All @@ -161,6 +164,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 4
"assessment_task_name": "Interpersonal Communication",
Expand All @@ -176,6 +180,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": True,
"published": True,
},
{ # Assessment Task 5
"assessment_task_name": "Management Assessment",
Expand All @@ -191,6 +196,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 6
"assessment_task_name": "Problem Solving Assessment",
Expand All @@ -206,6 +212,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 7
"assessment_task_name": "Teamwork Assessment",
Expand All @@ -221,6 +228,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 8
"assessment_task_name": "Critical Thinking Assessment 2",
Expand All @@ -236,6 +244,7 @@ def load_demo_admin_assessment_task():
"time_zone": "CST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 9
"assessment_task_name": "AAAAAAAAAAAA",
Expand All @@ -251,6 +260,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 10
"assessment_task_name": "CCCCCCCCCCCCC",
Expand All @@ -266,6 +276,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 11
"assessment_task_name": "DDDDDDDDDDDDDD",
Expand All @@ -281,6 +292,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": True,
"locked": False,
"published": True,
},
{ # Assessment Task 12
"assessment_task_name": "Student 1",
Expand All @@ -296,6 +308,7 @@ def load_demo_admin_assessment_task():
"time_zone": "EST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 13
"assessment_task_name": "Student 2 Individ",
Expand All @@ -311,6 +324,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 14
"assessment_task_name": "UI 1",
Expand All @@ -326,6 +340,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 15
"assessment_task_name": "UI 2",
Expand All @@ -341,6 +356,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 16
"assessment_task_name": "Calc 1",
Expand All @@ -356,6 +372,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 17
"assessment_task_name": "Calc 2",
Expand All @@ -371,6 +388,7 @@ def load_demo_admin_assessment_task():
"time_zone": "PST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 18
"assessment_task_name": "Phys 1",
Expand All @@ -386,6 +404,7 @@ def load_demo_admin_assessment_task():
"time_zone": "MST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
{ # Assessment Task 19
"assessment_task_name": "Phys 2",
Expand All @@ -401,6 +420,7 @@ def load_demo_admin_assessment_task():
"time_zone": "MST",
"unit_of_assessment": False,
"locked": False,
"published": True,
},
]

Expand All @@ -414,6 +434,7 @@ def load_demo_admin_assessment_task():
"role_id": assessment["role_id"],
"show_suggestions": assessment["show_suggestions"],
"locked": assessment["locked"],
"published": assessment["published"],
"show_ratings": assessment["show_ratings"],
"unit_of_assessment": assessment["unit_of_assessment"],
"create_team_password": assessment["create_team_password"],
Expand Down Expand Up @@ -480,3 +501,10 @@ def toggle_lock_status(assessment_task_id):
one_assessment_task.locked = not one_assessment_task.locked
db.session.commit()
return one_assessment_task

@error_log
def toggle_published_status(assessment_task_id):
one_assessment_task = AssessmentTask.query.filter_by(assessment_task_id=assessment_task_id).first()
one_assessment_task.published = not one_assessment_task.published
db.session.commit()
return one_assessment_task
1 change: 1 addition & 0 deletions BackEndFlask/models/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ class AssessmentTask(db.Model):
max_team_size = db.Column(db.Integer, nullable=True)
notification_sent = db.Column(DateTime(timezone=True), nullable=True)
locked = db.Column(db.Boolean, nullable=False)
published = db.Column(db.Boolean, nullable=False)

class Checkin(db.Model): # keeps students checking to take a specific AT
__tablename__ = "Checkin"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import Loading from '../../../Loading/Loading.js';
import { IconButton } from '@mui/material';
import LockIcon from '@mui/icons-material/Lock';
import LockOpenIcon from '@mui/icons-material/LockOpen';

import PublishIcon from '@mui/icons-material/Publish';
import UnpublishedIcon from '@mui/icons-material/Unpublished';

class ViewAssessmentTasks extends Component {
constructor(props) {
Expand All @@ -25,6 +26,7 @@ class ViewAssessmentTasks extends Component {
completedAssessments: null,
assessmentTasks: null,
lockStatus: {},
publishedStatus: {},
}

this.handleDownloadCsv = (atId, exportButtonId, assessmentTaskIdToAssessmentTaskName) => {
Expand All @@ -40,13 +42,14 @@ class ViewAssessmentTasks extends Component {
var assessmentName = assessmentTaskIdToAssessmentTaskName[atId];

var newExportButtonJSON = this.state.exportButtonId;

newExportButtonJSON[assessmentName] = exportButtonId;

this.setState({
downloadedAssessment: assessmentName,
exportButtonId: newExportButtonJSON
}); }
});
}
});
}

Expand All @@ -65,6 +68,23 @@ class ViewAssessmentTasks extends Component {
);
});
};

this.handlePublishToggle = (assessmentTaskId, task) => {
this.setState((prevState) => {
const newPublishedStatus = { ...prevState.publishedStatus };
newPublishedStatus[assessmentTaskId] = !newPublishedStatus[assessmentTaskId];
return { publishedStatus: newPublishedStatus };
}, () => {
const publishedStatus = this.state.publishedStatus[assessmentTaskId];

genericResourcePUT(
`/assessment_task_toggle_published?assessmentTaskId=${assessmentTaskId}`,
this,
JSON.stringify({ published: publishedStatus })
);
});
};

}

componentDidUpdate () {
Expand All @@ -81,9 +101,9 @@ class ViewAssessmentTasks extends Component {
link.click();

var assessmentName = this.state.downloadedAssessment;

const exportAssessmentTask = document.getElementById(this.state.exportButtonId[assessmentName])

setTimeout(() => {
if(exportAssessmentTask) {
exportAssessmentTask.removeAttribute("disabled");
Expand Down Expand Up @@ -116,16 +136,17 @@ class ViewAssessmentTasks extends Component {

const assessmentTasks = this.props.navbar.adminViewAssessmentTask.assessmentTasks;
const initialLockStatus = {};
const initialPublishedStatus = {};

assessmentTasks.forEach((task) => {
initialLockStatus[task.assessment_task_id] = task.locked;
initialPublishedStatus[task.assessment_task_id] = task.published;
});

this.setState({ lockStatus: initialLockStatus });
this.setState({ lockStatus: initialLockStatus, publishedStatus: initialPublishedStatus });
}

render() {

if (this.state.assessmentTasks === null || this.state.completedAssessments === null) {
return <Loading />;
}
Expand All @@ -138,8 +159,6 @@ class ViewAssessmentTasks extends Component {
var rubricNames = adminViewAssessmentTask.rubricNames;
var assessmentTasks = adminViewAssessmentTask.assessmentTasks;

const lockStatus = this.state.lockStatus;

let assessmentTasksToDueDates = {};

for(let index = 0; index < assessmentTasks.length; index++) {
Expand Down Expand Up @@ -280,6 +299,29 @@ class ViewAssessmentTasks extends Component {
}
}
},
{
name: "assessment_task_id",
label: "Publish",
options: {
filter: false,
sort: false,
setCellHeaderProps: () => { return { align:"center", width:"70px", className:"button-column-alignment"}},
setCellProps: () => { return { align:"center", width:"70px", className:"button-column-alignment"} },
customBodyRender: (atId) => {
const task = assessmentTasks.find((task) => task["assessment_task_id"] === atId);
const isPublished = this.state.publishedStatus[atId] !== undefined ? this.state.publishedStatus[atId] : (task ? task.published : false);

return (
<IconButton
aria-label={isPublished ? "unlock" : "lock"}
onClick={() => this.handlePublishToggle(atId, task)}
>
{isPublished ? <UnpublishedIcon /> : <PublishIcon />}
</IconButton>
);
}
}
},
{
name: "assessment_task_id",
label: "Lock",
Expand Down
Loading

0 comments on commit 1a43350

Please sign in to comment.