Add TODOs
This commit is contained in:
parent
4ccd148184
commit
562eb155b8
1 changed files with 33 additions and 13 deletions
|
@ -37,13 +37,13 @@ def parse_groups_csv(csvfile, encoding='utf-8'):
|
||||||
|
|
||||||
|
|
||||||
def parse_users_csv(csvfile, encoding='utf-8'):
|
def parse_users_csv(csvfile, encoding='utf-8'):
|
||||||
"""Reads user information from a CSV file and yields each user as a dict"""
|
"""Reads user information from a CSV file and yields id and group"""
|
||||||
|
|
||||||
with open(csvfile, 'r', encoding=encoding) as lines:
|
with open(csvfile, 'r', encoding=encoding) as lines:
|
||||||
reader = csv.DictReader(lines, delimiter=';', quotechar='"')
|
reader = csv.DictReader(lines, delimiter=';', quotechar='"')
|
||||||
|
|
||||||
for line in reader:
|
for line in reader:
|
||||||
yield line['Nutzernamen'], line['E-Mail'], group_name(line['Gruppe'])
|
yield line['Nutzernamen'], group_name(line['Gruppe'])
|
||||||
|
|
||||||
|
|
||||||
def create_student(user_id, email, tutorial):
|
def create_student(user_id, email, tutorial):
|
||||||
|
@ -68,11 +68,10 @@ def create_tutorial(course, group):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subgroup = gl.groups.create({'name': group, 'path': path, 'parent_id': course.id})
|
subgroup = gl.groups.create({'name': group, 'path': path, 'parent_id': course.id})
|
||||||
|
return subgroup
|
||||||
except gitlab.exceptions.GitlabHttpError as e:
|
except gitlab.exceptions.GitlabHttpError as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
|
||||||
return subgroup
|
|
||||||
|
|
||||||
|
|
||||||
def create_course(course_name):
|
def create_course(course_name):
|
||||||
|
|
||||||
|
@ -88,6 +87,33 @@ def create_course(course_name):
|
||||||
return course
|
return course
|
||||||
|
|
||||||
|
|
||||||
|
def create_course_admin_group(course):
|
||||||
|
"""Creates an administrative group for the course
|
||||||
|
This group will be added as owner of each student repo"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
subgroup = gl.groups.create({'name': 'admin', 'path': 'admin', 'parent_id': course.id})
|
||||||
|
return subgroup
|
||||||
|
except gitlab.exceptions.GitlabHttpError as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
|
"""TODO
|
||||||
|
- create admin group for course and add hiwis
|
||||||
|
|
||||||
|
- add users (LDAP) with custom attribute for group, matrikelnummer
|
||||||
|
+ if user exists set custom attributes
|
||||||
|
|
||||||
|
- add users to course
|
||||||
|
|
||||||
|
- create student repos
|
||||||
|
+ fork from common repo
|
||||||
|
+ add admin group to each repo as owner / master
|
||||||
|
|
||||||
|
|
||||||
|
- create search for custom attribute (-> checkout repos for group)
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Import groups and users from data source')
|
parser = argparse.ArgumentParser(description='Import groups and users from data source')
|
||||||
|
@ -105,15 +131,9 @@ if __name__ == '__main__':
|
||||||
if type == 'text/csv':
|
if type == 'text/csv':
|
||||||
|
|
||||||
course = create_course(course)
|
course = create_course(course)
|
||||||
print('created course', course)
|
admins = create_course_admin_group(course)
|
||||||
|
# TODO get functions from API and add hiwis to admins
|
||||||
groupnames = parse_groups_csv(args.source[0], args.encoding[0])
|
#users = parse_users_csv(args.source[0], args.encoding[0])
|
||||||
for group in groupnames:
|
|
||||||
create_tutorial(course, group)
|
|
||||||
print('created tutorial group', group)
|
|
||||||
|
|
||||||
users = parse_users_csv(args.source[0], args.encoding[0])
|
|
||||||
|
|
||||||
|
|
||||||
elif type == None:
|
elif type == None:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue