105 lines
2.9 KiB
Python
105 lines
2.9 KiB
Python
"""
|
|
Course Grading Settings page.
|
|
"""
|
|
|
|
from common.test.acceptance.pages.studio.settings import SettingsPage
|
|
|
|
|
|
class GradingPage(SettingsPage):
|
|
"""
|
|
Course Grading Settings page.
|
|
"""
|
|
|
|
url_path = "settings/grading"
|
|
|
|
def is_browser_on_page(self):
|
|
return self.q(css='body.grading').present
|
|
|
|
def letter_grade(self, selector):
|
|
"""
|
|
Returns: first letter of grade range on grading page
|
|
Example: if there are no manually added grades it would
|
|
return Pass, if a grade is added it will return 'A'
|
|
"""
|
|
return self.q(css=selector)[0].text
|
|
|
|
def add_new_grade(self):
|
|
"""
|
|
Add new grade
|
|
"""
|
|
self.q(css='.new-grade-button').click()
|
|
self.save_changes()
|
|
|
|
def remove_grade(self):
|
|
"""
|
|
Remove an added grade
|
|
"""
|
|
# Button displays after hovering on it
|
|
btn_css = '.remove-button'
|
|
self.browser.execute_script("$('{}').focus().click()".format(btn_css))
|
|
self.wait_for_ajax()
|
|
self.save_changes()
|
|
|
|
def remove_all_grades(self):
|
|
"""
|
|
Removes all grades
|
|
"""
|
|
while len(self.q(css='.remove-button')) > 0:
|
|
self.remove_grade()
|
|
|
|
def add_new_assignment_type(self):
|
|
"""
|
|
Add New Assignment type
|
|
"""
|
|
self.q(css='.add-grading-data').click()
|
|
self.save_changes()
|
|
|
|
def fill_assignment_type_fields(
|
|
self,
|
|
name,
|
|
abbreviation,
|
|
total_grade,
|
|
total_number,
|
|
drop
|
|
):
|
|
"""
|
|
Fills text to Assignment Type fields according to assignment box
|
|
number and text provided
|
|
|
|
Arguments:
|
|
name: Assignment Type Name
|
|
abbreviation: Abbreviation
|
|
total_grade: Weight of Total Grade
|
|
total_number: Total Number
|
|
drop: Number of Droppable
|
|
"""
|
|
self.q(css='#course-grading-assignment-name').fill(name)
|
|
self.q(css='#course-grading-assignment-shortname').fill(abbreviation)
|
|
self.q(css='#course-grading-assignment-gradeweight').fill(total_grade)
|
|
self.q(
|
|
css='#course-grading-assignment-totalassignments'
|
|
).fill(total_number)
|
|
|
|
self.q(css='#course-grading-assignment-droppable').fill(drop)
|
|
self.save_changes()
|
|
|
|
def assignment_name_field_value(self):
|
|
"""
|
|
Returns: Assignment type field value
|
|
"""
|
|
return self.q(css='#course-grading-assignment-name').attrs('value')
|
|
|
|
def delete_assignment_type(self):
|
|
"""
|
|
Deletes Assignment type
|
|
"""
|
|
self.q(css='.remove-grading-data').first.click()
|
|
self.save_changes()
|
|
|
|
def delete_all_assignment_types(self):
|
|
"""
|
|
Deletes all assignment types
|
|
"""
|
|
while len(self.q(css='.remove-grading-data')) > 0:
|
|
self.delete_assignment_type()
|