本文整理汇总了Python中compair.models.Assignment.compare_start方法的典型用法代码示例。如果您正苦于以下问题:Python Assignment.compare_start方法的具体用法?Python Assignment.compare_start怎么用?Python Assignment.compare_start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类compair.models.Assignment
的用法示例。
在下文中一共展示了Assignment.compare_start方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post
# 需要导入模块: from compair.models import Assignment [as 别名]
# 或者: from compair.models.Assignment import compare_start [as 别名]
def post(self, course_uuid):
course = Course.get_active_by_uuid_or_404(course_uuid)
# check permission first before reading parser arguments
new_assignment = Assignment(course_id=course.id)
require(CREATE, new_assignment,
title="Assignment Not Saved",
message="Sorry, your role in this course does not allow you to save assignments.")
params = new_assignment_parser.parse_args()
new_assignment.user_id = current_user.id
new_assignment.name = params.get("name")
new_assignment.description = params.get("description")
new_assignment.peer_feedback_prompt = params.get("peer_feedback_prompt")
new_assignment.answer_start = dateutil.parser.parse(params.get('answer_start'))
new_assignment.answer_end = dateutil.parser.parse(params.get('answer_end'))
new_assignment.educators_can_compare = params.get("educators_can_compare")
new_assignment.rank_display_limit = params.get("rank_display_limit", None)
if new_assignment.rank_display_limit != None and new_assignment.rank_display_limit <= 0:
new_assignment.rank_display_limit = None
# make sure that file attachment exists
file_uuid = params.get('file_id')
attachment = None
if file_uuid:
attachment = File.get_by_uuid_or_404(file_uuid)
new_assignment.file_id = attachment.id
else:
new_assignment.file_id = None
new_assignment.compare_start = params.get('compare_start', None)
if new_assignment.compare_start is not None:
new_assignment.compare_start = dateutil.parser.parse(params.get('compare_start', None))
new_assignment.compare_end = params.get('compare_end', None)
if new_assignment.compare_end is not None:
new_assignment.compare_end = dateutil.parser.parse(params.get('compare_end', None))
new_assignment.enable_self_evaluation = params.get('enable_self_evaluation', False)
new_assignment.self_eval_instructions = params.get('self_eval_instructions', None)
new_assignment.self_eval_start = params.get('self_eval_start', None)
if new_assignment.self_eval_start is not None:
new_assignment.self_eval_start = dateutil.parser.parse(new_assignment.self_eval_start)
new_assignment.self_eval_end = params.get('self_eval_end', None)
if new_assignment.self_eval_end is not None:
new_assignment.self_eval_end = dateutil.parser.parse(new_assignment.self_eval_end)
# validate answer + comparison period start & end times
valid, error_message = Assignment.validate_periods(course.start_date, course.end_date,
new_assignment.answer_start, new_assignment.answer_end,
new_assignment.compare_start, new_assignment.compare_end,
new_assignment.self_eval_start, new_assignment.self_eval_end)
if not valid:
abort(400, title="Assignment Not Saved", message=error_message)
new_assignment.students_can_reply = params.get('students_can_reply', False)
new_assignment.number_of_comparisons = params.get('number_of_comparisons')
new_assignment.enable_group_answers = params.get('enable_group_answers')
new_assignment.answer_grade_weight = params.get('answer_grade_weight')
new_assignment.comparison_grade_weight = params.get('comparison_grade_weight')
new_assignment.self_evaluation_grade_weight = params.get('self_evaluation_grade_weight')
pairing_algorithm = params.get("pairing_algorithm", PairingAlgorithm.random)
check_valid_pairing_algorithm(pairing_algorithm)
new_assignment.pairing_algorithm = PairingAlgorithm(pairing_algorithm)
criterion_uuids = [c.get('id') for c in params.criteria]
criterion_data = {c.get('id'): c.get('weight', 1) for c in params.criteria}
if len(criterion_data) == 0:
msg = "Please add at least one criterion to the assignment and save again."
abort(400, title="Assignment Not Saved", message=msg)
criteria = Criterion.query \
.filter(Criterion.uuid.in_(criterion_uuids)) \
.all()
if len(criterion_uuids) != len(criteria):
abort(400, title="Assignment Not Saved", message="Please double-check the criteria you selected and save again.")
# add criteria to assignment in order
for criterion_uuid in criterion_uuids:
criterion = next(criterion for criterion in criteria if criterion.uuid == criterion_uuid)
new_assignment.assignment_criteria.append(AssignmentCriterion(
criterion=criterion,
weight=criterion_data.get(criterion.uuid)
))
db.session.add(new_assignment)
db.session.commit()
# need to reorder after insert
new_assignment.assignment_criteria.reorder()
# update course grades
course.calculate_grades()
on_assignment_create.send(
self,
event_name=on_assignment_create.name,
#.........这里部分代码省略.........
示例2: post
# 需要导入模块: from compair.models import Assignment [as 别名]
# 或者: from compair.models.Assignment import compare_start [as 别名]
def post(self, course_uuid):
course = Course.get_active_by_uuid_or_404(course_uuid)
# check permission first before reading parser arguments
new_assignment = Assignment(course_id=course.id)
require(CREATE, new_assignment)
params = new_assignment_parser.parse_args()
new_assignment.user_id = current_user.id
new_assignment.name = params.get("name")
new_assignment.description = params.get("description")
new_assignment.answer_start = dateutil.parser.parse(params.get('answer_start'))
new_assignment.answer_end = dateutil.parser.parse(params.get('answer_end'))
new_assignment.educators_can_compare = params.get("educators_can_compare")
new_assignment.rank_display_limit = params.get("rank_display_limit", None)
if new_assignment.rank_display_limit != None and new_assignment.rank_display_limit <= 0:
new_assignment.rank_display_limit = None
# make sure that file attachment exists
file_uuid = params.get('file_id')
if file_uuid:
uploaded_file = File.get_by_uuid_or_404(file_uuid)
new_assignment.file_id = uploaded_file.id
else:
new_assignment.file_id = None
new_assignment.compare_start = params.get('compare_start', None)
if new_assignment.compare_start is not None:
new_assignment.compare_start = dateutil.parser.parse(params.get('compare_start', None))
new_assignment.compare_end = params.get('compare_end', None)
if new_assignment.compare_end is not None:
new_assignment.compare_end = dateutil.parser.parse(params.get('compare_end', None))
new_assignment.students_can_reply = params.get('students_can_reply', False)
new_assignment.number_of_comparisons = params.get('number_of_comparisons')
new_assignment.enable_self_evaluation = params.get('enable_self_evaluation')
new_assignment.answer_grade_weight = params.get('answer_grade_weight')
new_assignment.comparison_grade_weight = params.get('comparison_grade_weight')
new_assignment.self_evaluation_grade_weight = params.get('self_evaluation_grade_weight')
pairing_algorithm = params.get("pairing_algorithm", PairingAlgorithm.random)
check_valid_pairing_algorithm(pairing_algorithm)
new_assignment.pairing_algorithm = PairingAlgorithm(pairing_algorithm)
criterion_uuids = [c['id'] for c in params.criteria]
if len(criterion_uuids) == 0:
msg = 'You must add at least one criterion to the assignment'
return {"error": msg}, 400
criteria = Criterion.query \
.filter(Criterion.uuid.in_(criterion_uuids)) \
.all()
if len(criterion_uuids) != len(criteria):
msg = 'You select an invalid criterion'
return {"error": msg}, 400
# add criteria to assignment in order
for criterion_uuid in criterion_uuids:
criterion = next(criterion for criterion in criteria if criterion.uuid == criterion_uuid)
new_assignment.assignment_criteria.append(AssignmentCriterion(
criterion=criterion
))
db.session.add(new_assignment)
db.session.commit()
# need to reorder after insert
new_assignment.assignment_criteria.reorder()
# update course grades
course.calculate_grades()
on_assignment_create.send(
self,
event_name=on_assignment_create.name,
user=current_user,
course_id=course.id,
assignment=new_assignment,
data=marshal(new_assignment, dataformat.get_assignment(False)))
return marshal(new_assignment, dataformat.get_assignment())