diff --git a/src/abgabesystem/course.py b/src/abgabesystem/course.py new file mode 100644 index 0000000..3d3feff --- /dev/null +++ b/src/abgabesystem/course.py @@ -0,0 +1,35 @@ +import logging as log + + +class InvalidCourse(Exception): + pass + + +def create_subgroup(gl, name, parent_group): + log.info("Creating subgroup %s in group %s" % (name, parent_group.name)) + return gl.groups.create({ + "name": name, + "path": name, + "parent_id": parent_group.id + }) + + +def create_students_group(gl, parent_group): + return create_subgroup(gl, "students", parent_group) + + +def create_solutions_group(gl, parent_group): + return create_subgroup(gl, "solutions", parent_group) + + +def create_course(gl, course_name): + group = gl.groups.create({ + "name": course_name, + "path": course_name.lower().replace(" ", "_"), + "visibility": "internal", + }) + log.info("Created group %s" % course_name) + create_students_group(gl, group) + create_solutions_group(gl, group) + + return group