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))
#!/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)