Add Research Software Engineer title; relabel affiliation fields (#1437) - #1438
Merged
jonfroehlich merged 2 commits intoJul 28, 2026
Merged
Conversation
Two related fixes to Position.
Adds Title.RESEARCH_SOFTWARE_ENGINEER ("Research Software Engineer" is the
term of art for staff who build the lab's research software). It sorts just
after Research Scientist, counts as a professional position so it groups under
"Professionals" on the people pages, and is mentor-eligible in the admin.
Relabels school/department, which prompted editors for a "School" and a
"Department" as if every affiliation were academic — collaborators come from
nonprofits, companies, and medical centers too. The DB columns keep their
names: this repo regenerates migrations non-interactively per environment,
where a rename can't be confirmed and would drop the column (same reason
grad_mentor kept its name in #806), so this is verbose_name + help_text only,
with no schema change. The department default stays UW/Allen School, which is
right for the overwhelming majority of rows.
Also replaces the first-five-characters fallback in
get_department_abbreviated() with the treatment schools already get: acronym
with filler words dropped, and pass the name through when the acronym would be
a single letter. "Disability and Human Development" now reads DHD rather than
"Disab", and "Psychology" stays "Psychology" rather than "Psych".
Tests: new test_position_titles.py pins the title and wards that every Title
has a TITLE_ORDER_MAPPING entry (get_sorted_titles() KeyErrors otherwise);
test_position_mentor_label.py broadened to pin all three relabeled fields;
department cases added to test_ml_utils.py.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…are-engineer-title-and-affiliation-labels # Conflicts: # makeabilitylab/settings.py
jonfroehlich
deleted the
1437-research-software-engineer-title-and-affiliation-labels
branch
July 28, 2026 20:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1437.
1. New title: Research Software Engineer
Title.RESEARCH_SOFTWARE_ENGINEER— the term of art for staff who build and maintain the lab's research software. It:Research ScientistinTITLE_ORDER_MAPPING,get_active_mentors_queryset).No data is retitled by this PR — existing people need their
Positionedited in/adminonce it deploys.2. "School"/"Department" → "Institution or organization"/"Department or unit"
The labels prompted editors as if every affiliation were academic, but plenty of collaborators are from nonprofits, companies, and medical centers (e.g. Judy Shanley at Easterseals).
No field rename, deliberately. This repo regenerates migrations non-interactively per environment, where a rename can't be confirmed and would drop the column — the same reason
grad_mentorkept its name in #806. So this isverbose_name+help_textonly, with no schema change. Thedepartmentdefault stays UW/Allen School, which is right for the overwhelming majority of rows.Position.schoolUniversity, company, nonprofit, or school (e.g. "University of Washington", "Easterseals")Position.departmentThe unit within the institution or organization. Clear the default for affiliations that don't have one.Person.get_current_school/get_current_departmentadmin column headers were updated to match.3.
get_department_abbreviated()no longer truncates to five charactersIt returned
dept_name[:5]for anything unrecognized, which is fine for a fixed set of CS departments and bad for everything else. Now it does whatget_school_abbreviated()already does: acronym with filler words dropped (of/and/for/the/in/at), and pass the name through unchanged when the acronym would be a single letter.Effect on real rows (only previously-unmatched departments change; everything matched by an existing rule is untouched):
DisabDHDCenteCVNRColleCEPsychPsychologyNatioNCMMTesting
website/tests/test_position_titles.py(new) — pins the title, its ordering and professional bucketing, plus a general ward that everyTitlehas aTITLE_ORDER_MAPPINGentry (get_sorted_titles()raisesKeyErrorotherwise — the trap for the next person adding a title).website/tests/test_position_mentor_label.py— broadened from the Change Grad Mentor to simply Mentor so any ML member can be selected as a mentor #806 mentor label into label pins for all three relabeled fields and the two admin columns.website/tests/test_ml_utils.py— department acronym / pass-through / empty cases.UI / a11y
No markup, template, or CSS changes — the visible diff is form label text in
/adminand the abbreviation strings on people cards. Pa11y not re-run for that reason; happy to add admin before/after screenshots if you want them on the record.Notes / follow-ups (not in this PR)
Title.PROJECT_COORDINATORis missing fromis_professional_position(), so those people group under a bare "Project Coordinator" heading instead of "Professionals" — looks like an oversight from the UIC subaward change."information" in dept_lowrule is greedy: Gallaudet's "Information Technology" abbreviates to "iSchool".🤖 Generated with Claude Code