45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
"""
|
|
Page that allows the student to grade calibration essays
|
|
(requirement for being allowed to grade peers).
|
|
"""
|
|
|
|
|
|
from bok_choy.page_object import PageObject
|
|
from bok_choy.promise import Promise
|
|
|
|
|
|
class PeerCalibratePage(PageObject):
|
|
"""
|
|
Grade calibration essays.
|
|
"""
|
|
|
|
url = None
|
|
|
|
def is_browser_on_page(self):
|
|
|
|
def _is_correct_page():
|
|
is_present = (
|
|
self.q(css='div.peer-grading-tools').present or
|
|
self.q(css='div.calibration-panel.current-state').present
|
|
)
|
|
return is_present, is_present
|
|
|
|
return Promise(_is_correct_page, 'On the peer grading calibration page.').fulfill()
|
|
|
|
def continue_to_grading(self):
|
|
"""
|
|
Continue to peer grading after completing calibration.
|
|
"""
|
|
self.q(css='input.calibration-feedback-button').first.click()
|
|
|
|
@property
|
|
def message(self):
|
|
"""
|
|
Return a message shown to the user, or None if no message is available.
|
|
"""
|
|
messages = self.q(css='div.peer-grading-tools > div.message-container > p').text
|
|
if len(messages) < 1:
|
|
return None
|
|
else:
|
|
return messages[0]
|