diff --git a/home/forms/admin_forms.py b/home/forms/admin_forms.py index 22fe4d63..caab6259 100644 --- a/home/forms/admin_forms.py +++ b/home/forms/admin_forms.py @@ -531,10 +531,10 @@ def clean(self): # Used on /admin when verifying professors that might be duplicates of already # verified professors. class ProfessorInfoModal(Form): - def __init__(self, unverified_professor: Professor, verified_professor: Professor): + def __init__(self, unverified_professor, verified_professors): super().__init__() self.unverified_professor = unverified_professor - self.verified_professor = verified_professor + self.verified_professors = verified_professors self.helper = FormHelper() self.helper.form_tag = False self.helper.layout = self.generate_layout() @@ -557,44 +557,46 @@ def get_courses(professor: Professor): return "No Courses" if len(courses) == 0 else ', '.join(course.name for course in courses) + def create_row(professor: Professor): + row = ''' + + {verified_name} + {verified_courses} + + + ''' + + merge_data = { + "merge_subject": self.unverified_professor.name, + "subject_id": self.unverified_professor.pk, + "merge_target": professor.name, + "target_id": professor.pk + } + + kwargs = { + "absolute_url": professor.get_absolute_url(), + "verified_name": professor.name, + "verified_courses": get_courses(professor), + "merge_args": merge_data + } + return format_html(row, **kwargs) + table_str = ''' - - - - - - - +
NameCourses
- - - - - - - - + ''' + for professor in self.verified_professors: + table_str += create_row(professor) + + table_str += '''
{unverified_name} (this professor){unverified_courses}
{verified_name}{verified_courses}
''' - kwargs = { - "unverified_name": self.unverified_professor.name, - "unverified_courses": get_courses(self.unverified_professor), - "absolute_url": self.verified_professor.get_absolute_url(), - "verified_name": self.verified_professor.name, - "verified_courses": get_courses(self.verified_professor) - } modal_title = ( - f'This {self.unverified_professor.type} might be a duplicate of {self.verified_professor.name} ({self.verified_professor.pk}).
' - f'Given the information below, please decide if these {self.unverified_professor.type}s are the same.' + f'This {self.unverified_professor.type} might be a duplicate of one of the professors below.
' + f'{self.unverified_professor.name} has taught: {get_courses(self.unverified_professor)}' ) - merge_data = { - "merge_subject": self.unverified_professor.name, - "subject_id": self.unverified_professor.pk, - "merge_target": self.verified_professor.name, - "target_id": self.verified_professor.pk - } verify_data = { "professor_id": self.unverified_professor.pk, @@ -604,14 +606,10 @@ def get_courses(professor: Professor): return Layout( Modal( - HTML(format_html(table_str, **kwargs)), - Div( - Button("verify", "Verify", css_class="btn btn-success", onclick=format_html("verifyProfessor({args})", args=verify_data)), - Button("merge", "Merge", css_class="btn btn-primary", onclick=format_html("mergeProfessor({args})", args=merge_data)), - css_class="btn-group w-100" - ), + HTML(table_str), + Button("verify", "Verify", css_class="btn btn-success w-100", onclick=format_html("verifyProfessor({args})", args=verify_data)), css_id="info-modal", title=format_html(modal_title), - title_class="text-center" + title_class="text-center w-100" ) )