85
85
# Required cap: None (for yourself)
86
86
# Returns a JSON encoded listing of a students is enrollments
90
# userservice/create_project_set
91
# Required cap: CAP_MANAGEPROJECTS
92
# Creates a project set for a offering - returns the projectsetid
94
# offeringid, max_students_per_group
96
# userservice/create_project
97
# Required cap: CAP_MANAGEPROJECTS
98
# Creates a project in a specific project set
102
# synopsys, url, deadline
104
# userservice/create_group
105
# Required cap: CAP_MANAGEGROUPS
106
# Creates a project group in a specific project set
108
# projectsetid, groupnm
112
# userservice/assign_to_group
113
# Required cap: CAP_MANAGEGROUPS
114
# Assigns a user to a project group
115
# Required: loginid, groupid
415
444
req.content_type = "text/plain"
416
445
req.write(response)
447
def handle_create_project_set(req, fields):
448
"""Creates a project set for a offering - returns the projectsetid"""
450
if req.method != "POST":
451
req.throw_error(req.HTTP_METHOD_NOT_ALLOWED,
452
"Only POST requests are valid methods to create_user.")
453
# Check if this user has CAP_MANAGEPROJECTS
454
if not req.user.hasCap(caps.CAP_MANAGEPROJECTS):
455
req.throw_error(req.HTTP_FORBIDDEN,
456
"You do not have permission to manage projects.")
457
# Get required fields
458
offeringid = fields.getfirst('offeringid')
459
max_students_per_group = fields.getfirst('max_students_per_group')
460
if offeringid is None or max_students_per_group is None:
461
req.throw_error(req.HTTP_BAD_REQUEST,
462
"Required: offeringid, max_students_per_group")
464
projectsetid = "Not set"
467
dbquery = db.return_insert(
469
'offeringid': offeringid,
470
'max_students_per_group': max_students_per_group,
473
frozenset(["offeringid", "max_students_per_group"]),
478
response = cjson.encode(dbquery.dictresult()[0])
480
req.content_type = "text/plain"
483
# TODO: write userservice/create_project
484
# Required cap: CAP_MANAGEPROJECTS
485
# Creates a project in a specific project set
489
# synopsys, url, deadline
491
# TODO: write userservice/create_group
492
# Required cap: CAP_MANAGEGROUPS
493
# Creates a project group in a specific project set
495
# projectsetid, groupnm
499
# TODO: write userservice/assign_to_group
500
# Required cap: CAP_MANAGEGROUPS
501
# Assigns a user to a project group
502
# Required: loginid, groupid
418
504
# Map action names (from the path)
419
505
# to actual function objects
423
509
"update_user": handle_update_user,
424
510
"get_user": handle_get_user,
425
511
"get_enrolments": handle_get_enrolments,
512
"create_project_set": handle_create_project_set,