本文整理匯總了Python中models.review.ReviewUtils.has_completed_enough_reviews方法的典型用法代碼示例。如果您正苦於以下問題:Python ReviewUtils.has_completed_enough_reviews方法的具體用法?Python ReviewUtils.has_completed_enough_reviews怎麽用?Python ReviewUtils.has_completed_enough_reviews使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類models.review.ReviewUtils
的用法示例。
在下文中一共展示了ReviewUtils.has_completed_enough_reviews方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get
# 需要導入模塊: from models.review import ReviewUtils [as 別名]
# 或者: from models.review.ReviewUtils import has_completed_enough_reviews [as 別名]
def get(self):
"""Handles GET requests."""
student = self.personalize_page_and_get_enrolled()
if not student:
return
# Extract incoming args
unit_id = self.request.get('name')
course = self.get_course()
unit = course.find_unit_by_id(unit_id)
if not unit:
self.error(404)
return
self.template_value['navbar'] = {'course': True}
self.template_value['unit_id'] = unit_id
self.template_value['record_events'] = CAN_PERSIST_ACTIVITY_EVENTS.value
self.template_value['assessment_xsrf_token'] = (
XsrfTokenManager.create_xsrf_token('assessment-post'))
self.template_value['event_xsrf_token'] = (
XsrfTokenManager.create_xsrf_token('event-post'))
self.template_value['grader'] = unit.workflow.get_grader()
readonly_view = False
due_date_exceeded = False
submission_due_date = unit.workflow.get_submission_due_date()
if submission_due_date:
self.template_value['submission_due_date'] = (
submission_due_date.strftime(HUMAN_READABLE_DATETIME_FORMAT))
time_now = datetime.datetime.now()
if time_now > submission_due_date:
readonly_view = True
due_date_exceeded = True
self.template_value['due_date_exceeded'] = True
if course.needs_human_grader(unit):
self.template_value['matcher'] = unit.workflow.get_matcher()
rp = course.get_reviews_processor()
review_steps_by = rp.get_review_steps_by(
unit.unit_id, student.get_key())
# Determine if the student can see others' reviews of his/her work.
if (ReviewUtils.has_completed_enough_reviews(
review_steps_by, unit.workflow.get_review_min_count())):
submission_and_review_steps = (
rp.get_submission_and_review_steps(
unit.unit_id, student.get_key()))
submission_contents = submission_and_review_steps[0]
review_steps_for = submission_and_review_steps[1]
review_keys_for_student = []
for review_step in review_steps_for:
can_show_review = (
review_step.state == domain.REVIEW_STATE_COMPLETED
and not review_step.removed
and review_step.review_key
)
if can_show_review:
review_keys_for_student.append(review_step.review_key)
reviews_for_student = rp.get_reviews_by_keys(
unit.unit_id, review_keys_for_student)
self.template_value['reviews_received'] = [
create_readonly_assessment_params(
course.get_review_form_content(unit),
StudentWorkUtils.get_answer_list(review)
) for review in reviews_for_student]
else:
submission_contents = student_work.Submission.get_contents(
unit.unit_id, student.get_key())
# Determine whether to show the assessment in readonly mode.
if submission_contents or due_date_exceeded:
readonly_view = True
self.template_value['readonly_student_assessment'] = (
create_readonly_assessment_params(
course.get_assessment_content(unit),
StudentWorkUtils.get_answer_list(submission_contents)
)
)
if not readonly_view:
self.template_value['assessment_script_src'] = (
self.get_course().get_assessment_filename(unit_id))
# If a previous submission exists, reinstate it.
submission_contents = student_work.Submission.get_contents(
unit.unit_id, student.get_key())
saved_answers = (
StudentWorkUtils.get_answer_list(submission_contents)
if submission_contents else [])
self.template_value['saved_answers'] = transforms.dumps(
saved_answers)
#.........這裏部分代碼省略.........
示例2: get
# 需要導入模塊: from models.review import ReviewUtils [as 別名]
# 或者: from models.review.ReviewUtils import has_completed_enough_reviews [as 別名]
def get(self):
"""Handles GET requests."""
student = self.personalize_page_and_get_enrolled(supports_transient_student=True)
if not student:
return
# Extract incoming args
unit_id = self.request.get("name")
course = self.get_course()
unit = course.find_unit_by_id(unit_id)
if not unit:
self.error(404)
return
model_version = course.get_assessment_model_version(unit)
assert model_version in courses.SUPPORTED_ASSESSMENT_MODEL_VERSIONS
self.template_value["model_version"] = model_version
if model_version == courses.ASSESSMENT_MODEL_VERSION_1_4:
configure_readonly_view = self.configure_readonly_view_1_4
configure_active_view = self.configure_active_view_1_4
get_review_received = self.get_review_received_1_4
elif model_version == courses.ASSESSMENT_MODEL_VERSION_1_5:
configure_readonly_view = self.configure_readonly_view_1_5
configure_active_view = self.configure_active_view_1_5
get_review_received = self.get_review_received_1_5
else:
raise ValueError("Bad assessment model version: %s" % model_version)
self.template_value["navbar"] = {"course": True}
self.template_value["unit_id"] = unit_id
self.template_value["assessment_xsrf_token"] = XsrfTokenManager.create_xsrf_token("assessment-post")
self.template_value["event_xsrf_token"] = XsrfTokenManager.create_xsrf_token("event-post")
self.template_value["grader"] = unit.workflow.get_grader()
readonly_view = False
due_date_exceeded = False
submission_due_date = unit.workflow.get_submission_due_date()
if submission_due_date:
self.template_value["submission_due_date"] = submission_due_date.strftime(HUMAN_READABLE_DATETIME_FORMAT)
time_now = datetime.datetime.now()
if time_now > submission_due_date:
readonly_view = True
due_date_exceeded = True
self.template_value["due_date_exceeded"] = True
if course.needs_human_grader(unit) and not student.is_transient:
self.template_value["matcher"] = unit.workflow.get_matcher()
rp = course.get_reviews_processor()
review_steps_by = rp.get_review_steps_by(unit.unit_id, student.get_key())
# Determine if the student can see others' reviews of his/her work.
if ReviewUtils.has_completed_enough_reviews(review_steps_by, unit.workflow.get_review_min_count()):
submission_and_review_steps = rp.get_submission_and_review_steps(unit.unit_id, student.get_key())
submission_contents = submission_and_review_steps[0]
review_steps_for = submission_and_review_steps[1]
review_keys_for_student = []
for review_step in review_steps_for:
can_show_review = (
review_step.state == domain.REVIEW_STATE_COMPLETED
and not review_step.removed
and review_step.review_key
)
if can_show_review:
review_keys_for_student.append(review_step.review_key)
reviews_for_student = rp.get_reviews_by_keys(unit.unit_id, review_keys_for_student)
self.template_value["reviews_received"] = [
get_review_received(unit, review) for review in reviews_for_student
]
else:
submission_contents = student_work.Submission.get_contents(unit.unit_id, student.get_key())
# Determine whether to show the assessment in readonly mode.
if submission_contents or due_date_exceeded:
readonly_view = True
configure_readonly_view(unit, submission_contents)
if not readonly_view:
submission_contents = None
if not student.is_transient:
submission_contents = student_work.Submission.get_contents(unit.unit_id, student.get_key())
configure_active_view(unit, submission_contents)
self.render("assessment.html")
示例3: get
# 需要導入模塊: from models.review import ReviewUtils [as 別名]
# 或者: from models.review.ReviewUtils import has_completed_enough_reviews [as 別名]
def get(self):
"""Handles GET requests."""
student = self.personalize_page_and_get_enrolled(
supports_transient_student=True)
if not student:
return
# Extract incoming args, binding to self if needed.
assessment_name = self.request.get('name')
self.unit_id = assessment_name
self.template_value['assessment_name'] = assessment_name
course = self.get_course()
unit = course.find_unit_by_id(self.unit_id)
if not unit:
self.error(404)
return
# If the assessment is not currently available, and the user is not an
# admin, redirect to the main page.
if (not unit.now_available and
not Roles.is_course_admin(self.app_context)):
self.redirect('/')
return
model_version = course.get_assessment_model_version(unit)
assert model_version in courses.SUPPORTED_ASSESSMENT_MODEL_VERSIONS
self.template_value['model_version'] = model_version
if model_version == courses.ASSESSMENT_MODEL_VERSION_1_4:
configure_readonly_view = self.configure_readonly_view_1_4
configure_active_view = self.configure_active_view_1_4
get_review_received = self.get_review_received_1_4
elif model_version == courses.ASSESSMENT_MODEL_VERSION_1_5:
configure_readonly_view = self.configure_readonly_view_1_5
configure_active_view = self.configure_active_view_1_5
get_review_received = self.get_review_received_1_5
else:
raise ValueError('Bad assessment model version: %s' % model_version)
self.template_value['navbar'] = {'course': True}
self.template_value['unit_id'] = self.unit_id
self.template_value['assessment_xsrf_token'] = (
XsrfTokenManager.create_xsrf_token('assessment-post'))
self.template_value['event_xsrf_token'] = (
XsrfTokenManager.create_xsrf_token('event-post'))
self.template_value['grader'] = unit.workflow.get_grader()
readonly_view = False
due_date_exceeded = False
submission_due_date = unit.workflow.get_submission_due_date()
if submission_due_date:
self.template_value['submission_due_date'] = (
submission_due_date.strftime(HUMAN_READABLE_DATETIME_FORMAT))
time_now = datetime.datetime.now()
if time_now > submission_due_date:
readonly_view = True
due_date_exceeded = True
self.template_value['due_date_exceeded'] = True
if course.needs_human_grader(unit) and not student.is_transient:
self.template_value['matcher'] = unit.workflow.get_matcher()
rp = course.get_reviews_processor()
review_steps_by = rp.get_review_steps_by(
unit.unit_id, student.get_key())
# Determine if the student can see others' reviews of his/her work.
if (ReviewUtils.has_completed_enough_reviews(
review_steps_by, unit.workflow.get_review_min_count())):
submission_and_review_steps = (
rp.get_submission_and_review_steps(
unit.unit_id, student.get_key()))
submission_contents = submission_and_review_steps[0]
review_steps_for = submission_and_review_steps[1]
review_keys_for_student = []
for review_step in review_steps_for:
can_show_review = (
review_step.state == domain.REVIEW_STATE_COMPLETED
and not review_step.removed
and review_step.review_key
)
if can_show_review:
review_keys_for_student.append(review_step.review_key)
reviews_for_student = rp.get_reviews_by_keys(
unit.unit_id, review_keys_for_student)
self.template_value['reviews_received'] = [get_review_received(
unit, review) for review in reviews_for_student]
else:
submission_contents = student_work.Submission.get_contents(
unit.unit_id, student.get_key())
# Determine whether to show the assessment in readonly mode.
#.........這裏部分代碼省略.........
示例4: get_start
# 需要導入模塊: from models.review import ReviewUtils [as 別名]
# 或者: from models.review.ReviewUtils import has_completed_enough_reviews [as 別名]
def get_start(self):
"""Handles GET requests."""
student = self.personalize_page_and_get_enrolled()
if not student:
return
if not self.assert_participant_or_fail(student):
return
# Extract incoming args
unit_id = self.request.get("name")
course = self.get_course()
unit = course.find_unit_by_id(unit_id)
if not unit:
self.error(404)
return
self.template_value["navbar"] = {"course": True}
try:
AssessmentTracker.try_start_test(student, unit_id)
except ValueError as e:
self.template_value["error"] = e.message
self.render("assessment_denied.html")
return
self.template_value["unit_id"] = unit_id
self.template_value["record_events"] = CAN_PERSIST_ACTIVITY_EVENTS.value
self.template_value["assessment_xsrf_token"] = XsrfTokenManager.create_xsrf_token("assessment-post")
self.template_value["event_xsrf_token"] = XsrfTokenManager.create_xsrf_token("event-post")
self.template_value["grader"] = unit.workflow.get_grader()
readonly_view = False
due_date_exceeded = False
submission_due_date = unit.workflow.get_submission_due_date()
if submission_due_date:
self.template_value["submission_due_date"] = submission_due_date.strftime(HUMAN_READABLE_DATETIME_FORMAT)
time_now = datetime.datetime.now()
if time_now > submission_due_date:
readonly_view = True
due_date_exceeded = True
self.template_value["due_date_exceeded"] = True
if course.needs_human_grader(unit):
self.template_value["matcher"] = unit.workflow.get_matcher()
rp = course.get_reviews_processor()
review_steps_by = rp.get_review_steps_by(unit.unit_id, student.get_key())
# Determine if the student can see others' reviews of his/her work.
if ReviewUtils.has_completed_enough_reviews(review_steps_by, unit.workflow.get_review_min_count()):
submission_and_review_steps = rp.get_submission_and_review_steps(unit.unit_id, student.get_key())
submission_contents = submission_and_review_steps[0]
review_steps_for = submission_and_review_steps[1]
review_keys_for_student = []
for review_step in review_steps_for:
can_show_review = (
review_step.state == domain.REVIEW_STATE_COMPLETED
and not review_step.removed
and review_step.review_key
)
if can_show_review:
review_keys_for_student.append(review_step.review_key)
reviews_for_student = rp.get_reviews_by_keys(unit.unit_id, review_keys_for_student)
self.template_value["reviews_received"] = [
create_readonly_assessment_params(
course.get_review_form_content(unit), StudentWorkUtils.get_answer_list(review)
)
for review in reviews_for_student
]
else:
submission_contents = student_work.Submission.get_contents(unit.unit_id, student.get_key())
# Determine whether to show the assessment in readonly mode.
if submission_contents or due_date_exceeded:
readonly_view = True
self.template_value["readonly_student_assessment"] = create_readonly_assessment_params(
course.get_assessment_content(unit), StudentWorkUtils.get_answer_list(submission_contents)
)
if not readonly_view:
self.template_value["assessment_script_src"] = self.get_course().get_assessment_filename(unit_id)
# If a previous submission exists, reinstate it.
submission_contents = student_work.Submission.get_contents(unit.unit_id, student.get_key())
saved_answers = StudentWorkUtils.get_answer_list(submission_contents) if submission_contents else []
self.template_value["saved_answers"] = transforms.dumps(saved_answers)
self.render("assessment.html")