Export
------

Log in as manager:

    >>> manager = Browser('manager', 'schooltool')

Now, set up two school years and a couple of terms in them:

    >>> from schooltool.app.browser.ftests import setup

    >>> setup.addSchoolYear('2005', '2005-01-01', '2005-12-31')
    >>> setup.addTerm('Semester1', '2005-01-01', '2005-06-30', '2005')
    >>> setup.addTerm('Semester2', '2005-07-01', '2005-12-31', '2005')

    >>> setup.addSchoolYear('2006', '2006-01-01', '2006-12-31')
    >>> setup.addTerm('Semester1', '2006-01-01', '2006-06-30', '2006')
    >>> setup.addTerm('Semester2', '2006-07-01', '2006-12-31', '2006')

Set up some courses:

    >>> setup.addCourse('Physics I', '2005')
    >>> setup.addCourse('Math I', '2005')
    >>> setup.addCourse('Physics II', '2006')
    >>> setup.addCourse('Math II', '2006')

Set up persons:

    >>> from schooltool.basicperson.browser.ftests.setup import addPerson
    >>> addPerson('Paul', 'Cardune', 'paul', 'pwd', browser=manager)
    >>> addPerson('Tom', 'Hoffman', 'tom', 'pwd', browser=manager)
    >>> addPerson('Claudia', 'Richter', 'claudia', 'pwd', browser=manager)
    >>> addPerson('Stephan', 'Richter', 'stephan', 'pwd', browser=manager)
    >>> addPerson('Alan', 'Elkner', 'alan', 'pwd', browser=manager)

Set up a section for each term:

    >>> setup.addSection('Physics I', '2005', 'Semester1',
    ...                  instructors=['Stephan'],
    ...                  members=['Tom', 'Claudia', 'Paul'])
    >>> setup.addSection('Math I', '2005', 'Semester2',
    ...                  instructors=['Alan'],
    ...                  members=['Tom', 'Claudia', 'Paul'])
    >>> setup.addSection('Physics I', '2006', 'Semester1',
    ...                  instructors=['Stephan'],
    ...                  members=['Tom', 'Claudia', 'Paul'])
    >>> setup.addSection('Math I', '2006', 'Semester2',
    ...                  instructors=['Alan'],
    ...                  members=['Tom', 'Claudia', 'Paul'])

Log in as stephan, teacher of the Physics sections:

    >>> stephan = Browser('stephan', 'pwd')

Add a couple of activities to the default worksheet:

    >>> stephan.getLink('Gradebook').click()

    >>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
    2005 / Semester1
    >>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
    Physics I - Physics I (1)

    >>> stephan.getLink('New Activity').click()
    >>> stephan.getControl('Title').value = 'HW 1'
    >>> stephan.getControl('Description').value = 'Homework 1'
    >>> stephan.getControl('Category').displayValue = ['Assignment']
    >>> stephan.getControl('Maximum').value = '50'
    >>> stephan.getControl('Add').click()

    >>> stephan.getLink('New Activity').click()
    >>> stephan.getControl('Title').value = 'Quiz'
    >>> stephan.getControl('Description').value = 'Week 1 Pop Quiz'
    >>> stephan.getControl('Category').displayValue = ['Exam']
    >>> stephan.getControl('Add').click()

Add some grades:

    >>> stephan.getControl(name='Activity_paul').value = '40'
    >>> stephan.getControl(name='Activity_tom').value = '48'
    >>> stephan.getControl(name='Activity_claudia').value = '45'

    >>> stephan.getControl(name='Activity-2_paul').value = '90'
    >>> stephan.getControl(name='Activity-2_tom').value = '88'
    >>> stephan.getControl(name='Activity-2_claudia').value = '29'

    >>> stephan.getControl('Save').click()

Let's go to his other section in the 2006 year:

    >>> stephan.getControl(name='currentTerm').displayValue = ['2006 / Semester1']
    >>> stephan.getForm().submit()
    >>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
    2006 / Semester1
    >>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
    Physics II - Physics II (1)

Add a couple of activities:

    >>> stephan.getLink('New Activity').click()
    >>> stephan.getControl('Title').value = 'HW 1'
    >>> stephan.getControl('Description').value = 'Homework 1'
    >>> stephan.getControl('Category').displayValue = ['Assignment']
    >>> stephan.getControl('Add').click()

    >>> stephan.getLink('New Activity').click()
    >>> stephan.getControl('Title').value = 'Quiz'
    >>> stephan.getControl('Description').value = 'Week 1 Pop Quiz'
    >>> stephan.getControl('Category').displayValue = ['Exam']
    >>> stephan.getControl('Add').click()

Add some grades:

    >>> stephan.getControl(name='Activity_paul').value = '90'
    >>> stephan.getControl(name='Activity_tom').value = '80'
    >>> stephan.getControl(name='Activity_claudia').value = '95'

    >>> stephan.getControl(name='Activity-2_paul').value = '100'
    >>> stephan.getControl(name='Activity-2_tom').value = '95'
    >>> stephan.getControl(name='Activity-2_claudia').value = '87'

    >>> stephan.getControl('Save').click()

Now let's log in as Alan:

    >>> alan = Browser('alan', 'pwd')

Add a couple of activities to the default worksheet:

    >>> alan.getLink('Gradebook').click()

    >>> alan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
    2005 / Semester2
    >>> alan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
    Math I - Math I (1)

    >>> alan.getLink('New Activity').click()
    >>> alan.getControl('Title').value = 'HW 1'
    >>> alan.getControl('Description').value = 'Homework 1'
    >>> alan.getControl('Category').displayValue = ['Assignment']
    >>> alan.getControl('Maximum').value = '50'
    >>> alan.getControl('Add').click()

    >>> alan.getLink('New Activity').click()
    >>> alan.getControl('Title').value = 'Quiz'
    >>> alan.getControl('Description').value = 'Week 1 Pop Quiz'
    >>> alan.getControl('Category').displayValue = ['Exam']
    >>> alan.getControl('Add').click()

Add some grades:

    >>> alan.getControl(name='Activity_paul').value = '50'
    >>> alan.getControl(name='Activity_tom').value = '37'
    >>> alan.getControl(name='Activity_claudia').value = '31'

    >>> alan.getControl(name='Activity-2_paul').value = '80'
    >>> alan.getControl(name='Activity-2_tom').value = '70'
    >>> alan.getControl(name='Activity-2_claudia').value = '60'

    >>> alan.getControl('Save').click()

Let's go to his other section in the 2006 year:

    >>> alan.getControl(name='currentTerm').displayValue = ['2006 / Semester2']
    >>> alan.getForm().submit()
    >>> alan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
    2006 / Semester2
    >>> alan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
    Math II - Math II (1)

Add a couple of activities:

    >>> alan.getLink('New Activity').click()
    >>> alan.getControl('Title').value = 'HW 1'
    >>> alan.getControl('Description').value = 'Homework 1'
    >>> alan.getControl('Category').displayValue = ['Assignment']
    >>> alan.getControl('Add').click()

    >>> alan.getLink('New Activity').click()
    >>> alan.getControl('Title').value = 'Quiz'
    >>> alan.getControl('Description').value = 'Week 1 Pop Quiz'
    >>> alan.getControl('Category').displayValue = ['Exam']
    >>> alan.getControl('Add').click()

Add some grades:

    >>> alan.getControl(name='Activity_paul').value = '70'
    >>> alan.getControl(name='Activity_tom').value = '85'
    >>> alan.getControl(name='Activity_claudia').value = '100'

    >>> alan.getControl(name='Activity-2_paul').value = '70'
    >>> alan.getControl(name='Activity-2_tom').value = '80'

    >>> alan.getControl('Save').click()


Export Worksheets as XLS
~~~~~~~~~~~~~~~~~~~~~~~~

Gradebook's worksheets can be exported to a XLS file:

    >>> stephan.getLink('Export XLS').click()
    >>> stephan.headers.get('Content-Type')
    'application/vnd.ms-excel'
    >>> stephan.open('http://localhost/gradebook.html')
    >>> stephan.getLink('Worksheets').click()
    >>> stephan.getLink('Export XLS').click()
    >>> stephan.headers.get('Content-Type')
    'application/vnd.ms-excel'

