Skip to content
Snippets Groups Projects
Commit 218d9b2f authored by Christopher Bohn's avatar Christopher Bohn :thinking:
Browse files

Added code to create partners for code review & response assignments

parent 3878dc42
No related branches found
No related tags found
No related merge requests found
from prep_assignment import *
from common_functions import select_from_list
# TODO: look for opportunity to reduce DRY, relative to main function in prep_assignment
def create_partners():
print('Creating pairs from students')
the_groupset: str = input('Please provide the name of the student groupset: ')
the_student_set: Set[CompositeUser] = get_students()
# TODO: check for changes to course roster
# TODO: check for changes to gitlab usernames
the_partners: List[Tuple[int, CompositeUser, CompositeUser, Optional[CompositeUser]]] = \
create_pairs(the_student_set, the_groupset)
print()
save_student_roster(the_student_set)
create_contact_list(the_groupset, the_partners)
print()
create_groups(the_groupset, the_partners)
def clone_forks():
print('Cloning the forks (... not yet)')
if __name__ == '__main__':
print('There are two steps, creating partners (before the completion of the assignment to be reviewed),')
print('and cloning/verifying successful forks (after deadline to fork & add Maintainers)')
print()
tasks = {'Create partners': create_partners, 'Clone forks': clone_forks}
task = select_from_list(list(tasks), 'task')
tasks[task]()
......@@ -175,7 +175,7 @@ def create_contact_list(groupset_name: str,
student_pairs: List[Tuple[int, CompositeUser, CompositeUser, Optional[CompositeUser]]]) -> None:
filename = f'{groupset_name}-partners.md'
print(f'Writing {filename}.')
zero_padding: int = ceil(log10(len(partners)))
zero_padding: int = ceil(log10(len(student_pairs)))
with open(filename, mode='w') as pair_file:
pair_file.write(f'# PARTNERS FOR ASSIGNMENT {groupset_name}\n\n')
for pair in student_pairs:
......@@ -190,7 +190,7 @@ def create_repositories(groupset_name: str,
student_pairs: List[Tuple[int, CompositeUser, CompositeUser, Optional[CompositeUser]]]) -> None:
filename = f'{groupset_name}-clone.sh'
print(f'Creating file for clone script: {filename}. Creating repositories on Gitlab.')
zero_padding: int = ceil(log10(len(partners)))
zero_padding: int = ceil(log10(len(student_pairs)))
with open(filename, mode='w') as clone_file:
clone_file.write('#!/bin/bash\n\n')
clone_file.write('# Auto-generated clone script.\n')
......@@ -216,7 +216,7 @@ def create_groups(groupset_name: str,
print(f'Creating groupset {groupset_name} and student groups on Canvas.')
course = CanvasCourse(Course.canvas_course_id)
group_set = course.create_user_groupset(groupset_name)
zero_padding: int = ceil(log10(len(partners)))
zero_padding: int = ceil(log10(len(student_pairs)))
for pair in student_pairs:
print(f'\tCreating group for pair number {str(pair[0]).zfill(zero_padding)}')
group = group_set.create_group(f'\t{groupset_name} {str(pair[0]).zfill(zero_padding)}')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment