import sys
from getpass import getpass
from os import linesep
from devilryrestfullib import RestfulFactory

from devilrycliscriptslib.argparsewrapper import ArgumentParser
from devilrycliscriptslib.login import login_using_args
from devilrycliscriptslib.commonargs import add_common_args
from devilrycliscriptslib.queries import find_period_id_by_shortnames
from devilrycliscriptslib.queries import aggregate_points_for_each_student
from devilrycliscriptslib.utils import split_path


argparser = ArgumentParser(description=('Show a table with CSV results for each '
                                        'student on the entire period '
                                        'aggregated. Meaning of the numbers in '
                                        'the table: 0: No deliveries, 1: Not approved, 2: Approved'))
add_common_args(argparser)
argparser.add_argument('--period', required=True,
                       help='Path to the period. E.g: "duck1010.spring2010"')
args = argparser.parse_args()

logincookie = login_using_args(args, getpass())
restful_factory = RestfulFactory(args.url)
PeriodApi = restful_factory.make('/administrator/restfulsimplifiedperiod/')
AssignmentApi = restful_factory.make('/administrator/restfulsimplifiedassignment/')
AssignmentGroupApi = restful_factory.make('/administrator/restfulsimplifiedassignmentgroup/')


def csv_approvedstats(students, all_assignments):
    """
from devilrycliscriptslib.queries import find_groups_in_assignment
from devilrycliscriptslib.queries import find_assignment_id_by_shortnames
from devilrycliscriptslib.utils import split_path

example = """

Examples
========

Download all assignments where you have admin permission:
$ download-all-deliveries-on-assignment.py --url https://devilry.ifi.uio.no --user myusername --assignment inf1000.2013h.oblig-3 --outdir . --role administrator

Same example, but only download groups where you are examiner:
$ download-all-deliveries-on-assignment.py --url https://devilry.ifi.uio.no --user myusername --assignment inf1000.2013h.oblig-3 --outdir . --role examiner
"""
argparser = ArgumentParser(description='Download all deliveries on an assignment.', epilog=example,
        formatter_class=RawDescriptionHelpFormatter)
add_common_args(argparser)
argparser.add_argument('--assignment', required=True,
        help='Path to assignment. E.g: "duck1010.spring2010.assignment1"')
argparser.add_argument('--role', required=True,
        help='Your role. Valid values: "examiner", "administrator".')
argparser.add_argument('--outdir', required=True,
        help='Local filesystem directory to put the result in. Will create a directory named what you put in ``--assignment`` within this directory.')
args = argparser.parse_args()

logincookie = login_using_args(args, getpass())
outdir = args.outdir
role = args.role
if not role in ('examiner', 'administrator'):
    raise SystemExit('Invalid role: {}. See --help.'.format(role))
예제 #3
0
#!/usr/bin/env python

import json
from getpass import getpass
from devilryrestfullib import RestfulFactory

from devilrycliscriptslib.argparsewrapper import ArgumentParser
from devilrycliscriptslib.login import login_using_args
from devilrycliscriptslib.commonargs import add_common_args
from devilrycliscriptslib.queries import find_groups_in_assignment
from devilrycliscriptslib.queries import find_assignment_id_by_shortnames
from devilrycliscriptslib.utils import split_path

argparser = ArgumentParser(description='List groups on an assignment as json encoded data.')
add_common_args(argparser)
argparser.add_argument('--assignment', required=True,
                       help='Path to assignment. E.g: "duck1010.spring2010.assignment1"')
args = argparser.parse_args()

logincookie = login_using_args(args, getpass())
restful_factory = RestfulFactory(args.url)
AssignmentGroupApi = restful_factory.make('/administrator/restfulsimplifiedassignmentgroup/')
AssignmentApi = restful_factory.make('/administrator/restfulsimplifiedassignment/')
DeadlineApi = restful_factory.make('/administrator/restfulsimplifieddeadline/')


try:
    path = split_path(args.assignment, '--assignment', 3)
    source_assignment_id = find_assignment_id_by_shortnames(AssignmentApi, logincookie,
                                                            *path)
except LookupError:
#!/usr/bin/env python

from getpass import getpass
from devilryrestfullib import RestfulFactory

from devilrycliscriptslib.argparsewrapper import ArgumentParser
from devilrycliscriptslib.login import login_using_args
from devilrycliscriptslib.commonargs import add_common_args
from devilrycliscriptslib.queries import find_groups_in_assignment
from devilrycliscriptslib.queries import find_assignment_id_by_shortnames
from devilrycliscriptslib.managegroups import create_group
from devilrycliscriptslib.utils import split_path


argparser = ArgumentParser(description='Copy groups from one assignment to another.')
add_common_args(argparser)
argparser.add_argument('--deadline', required=True,
                       help=('Initial deadline of the created groups. '
                             'Format: "YYYY-MM-DD hh:mm". Example: "2010-02-22 22:32"'))
argparser.add_argument('--source', required=True,
                       help='Path to assignment to copy from. E.g: "duck1010.spring2010.assignment1"')
argparser.add_argument('--target', required=True,
                       help='Path to assignment to copy to. E.g: "duck1010.spring2010.assignment2"')
argparser.add_argument('--allow_nonempty', default=False, action='store_true',
                       help=('Allow non-empty target assignment? If you enable '
                             'this, students are copied to the target even if they '
                             'already exist in a group within the target.'))
args = argparser.parse_args()

logincookie = login_using_args(args, getpass())
restful_factory = RestfulFactory(args.url)