Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .pa11yci.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"http://website:8000/news/",
"http://website:8000/news/1/",
"http://website:8000/news/2/",
"http://website:8000/news/3/"
"http://website:8000/news/3/",
"http://website:8000/awards/"
]
}
5 changes: 5 additions & 0 deletions docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,11 @@ echo "4.8 Running 'python manage.py recompute_url_names' to de-collide historica
echo "******************************************"
python manage.py recompute_url_names

echo "****************** STEP 4.9/5: docker-entrypoint.sh ************************"
echo "4.9 Running 'python manage.py import_awards' to backfill missing Awards (idempotent)"
echo "******************************************"
python manage.py import_awards

# echo "****************** STEP 4.3/5: docker-entrypoint.sh ************************"
# echo "4.3 Running 'python manage.py rename_person_images' to rename person images"
# echo "******************************************"
Expand Down
159 changes: 159 additions & 0 deletions docs/plans/awards-content-audit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Awards page — content audit & redesign plan (#issue TBD)

Source data: prod snapshot `~/Downloads/makeability-prod-2026-06-14.sql.gz`, loaded into a
scratch DB (`award_scan`) and queried read-only. As of the snapshot there are **21**
`Award` rows and **298** news items; **54** news posts hit award keywords.

Two distinct buckets matter here:

- **`Award` model** → people / project / faculty *distinctions* (this page's top sections).
- **`Publication.award`** → **paper awards** (Best Paper, Honorable Mention). These render in
the page's "Best Paper Awards" / "Other Paper Awards" sections and must be set on the
*publication*, **not** entered as `Award` rows. Many news items below are paper awards — they
need a publication audit, not an Award entry.

Legend: `[ ]` = candidate to add · `STU` Student Award · `PHD` PhD Fellowship · `FAC` Faculty
Honor · `PROJ` Project Award · `PAPER` → goes on `Publication.award` · ⚠ needs a decision.

---

## ✅ Resolution (2026-06-19) — implemented as `import_awards`

Decisions from Jon's review are now encoded in the idempotent
`website/management/commands/import_awards.py` command (wired into
`docker-entrypoint.sh` step 4.9; `--dry-run` supported; covered by
`website/tests/test_import_awards.py`). That command's `ENTRIES` list is the
authoritative spec — this doc is the rationale. **Nothing ships until the
`awards-update` branch merges**, so trim entries there first.

What changed from the raw audit after checking the Grants table + publications:

- **Google awards use canonical titles** (from Grants): 2013 "Combining
Crowdsourcing and Computer Vision for Street-level Accessibility", 2017
"Wearable Sound Awareness Support for the Deaf and Hard of Hearing" (GlassEar),
2024 "Exploring AI-Enhanced Mixed-Ability Social Interactions" (Society-Centered
AI). The **2020** "Transforming How Blind and Low Vision Developers…" award is
**not in the Grants table** — consider adding it there too.
- **Section D is closed.** Every paper award is already on its publication —
including SoundWatch (Best Artifact) and **UbiFit's 10-Year Impact Award**
("Flowers or a robot army?", 2008) — so those are **not** added as Award rows.
The **only** missing paper award is **"Playing on Hard Mode"** (pub #685, award
field empty) → spin off a **separate issue** to set `Publication.award`.
- **Bonus find:** a **2013 "3M Non-Tenured Faculty Award"** (in Grants, not on the
CV list) is included as a Faculty Honor — confirm or drop.
- **Aditya / AJAS** (news 2024-10-02) is the **same** recognition as existing
award #20 (WA State delegate) → **skipped**.
- **#18 Facilitators' Choice** date fix (2020→2019 + PrototypAR) is applied
automatically by the command.
- Items flagged `# REVIEW` in `ENTRIES` are lower-confidence (a guessed date,
venue, or recipient): the 2013-vs-2012 Google date, the 3M award, "Inventors in
our Midst", the CV-only dissertation/BECC items, and the Madrona/AltGeoViz
venue details. Confirm or trim before merge.

---

## A. Faculty Honors — missing from the 21

- [ ] **2017 · NSF CAREER Award** (FAC) — Jon. News: `/news/nsf-career-award/` (2017-02-14). *On your CV; not in DB.*
- [ ] **2017 · Google Faculty Research Award — GlassEar** (FAC) — Jon, Leah Findlater. News: `/news/google-faculty-award-on-glassear/`. *CV ✓.*
- [ ] **2018 · 10-Year Impact Award — UbiFit** (FAC, test-of-time) — Jon. News: `/news/10-year-impact-award-for-ubifit/`. *Not on the CV list you sent — worth adding.*
- [ ] **2024 · Society-Centered AI Google Research Award** (FAC) — Jon, Jacob Wobbrock, Dhruv Jain, Arnavi Chheda-Kothary. News: `/news/society-centered-ai-google-research-award/`.
- [ ] **2012 · Google Faculty Research Award** — street-level accessibility (FAC) — Jon. *CV only; no news post found.*
- [ ] **2013 · "Inventors in our Midst", 1st DC-area Maker Faire** (FAC ⚠ or PROJ) — Jon. *CV only.*

In addition to the list above, I also received a Google Faculty Research Award for "Transforming How Blind and Low Vision Developers Design and Implement User Interfaces" in February 2020.

Here's their email: "We would like to thank you for submitting your proposal "Transforming How Blind and Low Vision Developers Design and Implement User Interfaces," to our Google Faculty Research Awards program. We appreciate your patience, as we conduct a very thorough review of all the submissions that we receive, involving several teams of Google engineers and researchers."

If possible, for all Google-related awards, I'd like to use actual titles. We should check that these are also in the grants database on that production dump.

## B. Student Awards & Fellowships — missing from the 21

- [ ] **2026 · NSF GRFP** (PHD) — Michael Duan **and** Ritesh Kanchi (alums). News: `/news/two-alums-receive-nsf-grfp/`. ⚠ one entry honoring both, or two? (recommend one).
- [ ] **2024 · CRA Outstanding Undergraduate Researcher — Honorable Mention** (STU) — Ritesh Kanchi. News: `/news/ritesh-earns-honorable-mention-for-cra-outstanding-undergraduate-researcher/`.
- [ ] **2024 · ACM Student Research Competition (Tapia)** (STU) — Daniel Campos Zamora. News: `/news/daniel-wins-acm-student-research-competition-at-the-tapia-conference/`.
- [ ] **2024 · American Junior Academy of Science — selected** (STU) — Aditya Sengupta. News: `/news/...selected-to-attend-american-junior-academy-of-science/`. ⚠ Possibly the same recognition as existing award #20 (Aditya, WA State delegate, 2024) — verify before adding.
- [ ] **2022 · CRA Outstanding Undergraduate Researcher** (STU) — Michael Duan. News: `/news/congrats-michael-duan-for-cra-undergrad-award/`.
- [ ] **2021 · Google-CMD-IT LEAP Alliance Fellowship** (PHD) — Dhruv Jain. News: `/news/dhruv-jain-selected-for-google-cmd-it-leap-alliance-fellowship/`.
- [ ] **2021 · Bob Bandes Memorial Teaching Award — Honorable Mention** (STU, teaching) — Liang He. News: `/news/liang-he-receives-bob-bandes-memorial-honorable-mention-teaching-award/`.
- [ ] **2019 · National SWE Scholarship** (STU) — Aileen Zeng. News: `/news/aileen-awarded-national-swe-scholarship/`.
- [ ] **2019 · Mary Gates Research Scholarship** (STU) — Aileen Zeng. News: `/news/aileen-zeng-awarded-mary-gates-research-scholarship/`.
- [ ] **2019 · Google Lime Scholarship** (STU) — Venkatesh Potluri. News: `/news/venkatesh-receives-google-lime-scholarship/`.
- [ ] **2017 · All-S.T.A.R. Fellow** (PHD/STU) — Matt Mauriello. News: `/news/matt-mauriello-selected-as-all-star-fellow/`.
- [ ] **2016 · ACM-W Scholarship (CHI 2016)** (STU) — Manaswi Saha. News: `/news/acm-w-scholarship-to-attend-chi-2016/`.
- [ ] **2012 · Graduate School Distinguished Dissertation Award, UW** (STU) — Jon. *CV only.*
- [ ] **2012 · CGS/ProQuest Distinguished Dissertation Award — Honorable Mention** (STU) — Jon. *CV only.*
- [ ] **2009 · Precourt Center Fellow, BECC** (PHD/STU) — Jon. *CV only.*

Low-priority / ⚠ judgment calls (probably skip or batch):
- [ ] 2016 · Matt Mauriello "Future Faculty Program" — *selected*, not an award. (skip?)
- [ ] 2023 · Ritesh — Google Product Inclusion & Equity Summit — *attended*, not an award. (skip?)
- [ ] 2018 · Dhruv — Tapia travel award / AccessComputing travel award — minor travel grants. (skip?)

Agree with this list and things to skip. If possible, when we create these entries, can we make sure to link to canonical sources.

## C. Project Awards — missing from the 21

- [ ] **2024 · Smart City Hub Switzerland Award (ZüriACT)** (PROJ) — Project Sidewalk. News: `/news/zuriact-with-project-sidewalk-win-smart-city-hub-switzerland-award-2024/`.
- [ ] **2024 · People's Choice Award — AltGeoViz** (PROJ ⚠) — Chu Li / AltGeoViz. News: `/news/altgeoviz-receives-people-choice-award/`. ⚠ could be a demo/poster award.
- [ ] **2020 · Best Artifact Award, ASSETS — SoundWatch** (PROJ ⚠) — Dhruv Jain, Leah Findlater. News: `/news/soundwatch-wins-best-artifact-award-at-assets/`. ⚠ artifact award — PROJ vs PAPER.
- [ ] **2019 · People's Choice Award — HomeSound** (PROJ) — Dhruv Jain. News: `/news/homesound-wins-peoples-choice-award/`.
- [ ] **2018 · People's Choice Award, Allen School Research Day — AR Captioning** (PROJ) — Dhruv Jain. News: `/news/ar-captioning-wins-the-peoples-choice-award.../`. *CV "2018 People's Choice [C.44]" ✓.*
- [ ] **2016 · Facilitators' Choice Award, NSF Video Showcase — BodyVis** (PROJ) — "13 of 156 (8.3%)". *CV ✓; missing from DB.*
- [ ] **2019 · Madrona Innovation Prize — HomeSound [C.58]** (PROJ ⚠ or PAPER) — *CV; verify whether to attach to the HomeSound paper instead.*

Good list.

## D. Paper awards found in news → set on `Publication.award` (NOT Award rows)

These should be entered on the **publication's** Award field so they appear in the page's
Best/Other Paper sections. Needs a separate publication audit.

- [ ] 2026 · Best Paper, GAZE'26 workshop — "Causal Egocentric Gaze Estimation"
- [ ] 2026 · Best Paper, CHI'26 — GeoVisA11y
- [ ] 2024 · Best Paper, ASSETS'24 — ArtInsight ("Engaging with Children's Artwork…")
- [ ] 2024 · Best Paper (Belonging & Inclusion), UIST'24 — CookAR
- [ ] 2024 · Best Paper, IDEATExR'24 — ARSports / ARTennis
- [ ] 2024 · Best Paper **Nomination**, ASSETS'24 — ArtInsight (nomination only)
- [ ] 2021 · Honorable Mention + D&I Award, CSCW'21 — Small Group Captioning
- [ ] 2019 · Best Student Paper, ASSETS'19 — Deep Learning for Sidewalk Assessment
- [ ] 2019 · two Best Paper noms, ASSETS'19 (nominations only)
- [ ] 2019 · two Best Paper Awards, CHI'19 — Project Sidewalk / Anchored Audio Sampling
- [ ] 2017 · Best Paper, CHI'17 — MakerWear
- [ ] 2024 · **Best Academic Research, The Game Accessibility Conference** — "Playing on Hard Mode" [C.69]. *CV ✓.*

I'm pretty sure these are all already marked in publications, except for "Playing on Hard Mode". We could do a double check and create a separate Issue for this.

## E. Excluded (matched keywords but not awards)

Grants: Mapillary Camera Grant (2025), $1.2m NSF Grant (2018), GPSS Travel Grant (2020).
Other: "Project Sidewalk used in award-winning APA paper" (someone else's award); Distinguished
Lecture @ UMN (invited talk); CS Distinguished Lecture: Bjoern Hartmann (external speaker);
Liang's CHI'19 t-shirt design contest.

I think we can ignore these.

## F. Data fixes to existing rows

- [ ] **Award #18 — Facilitators' Choice (NSF Video Showcase)**: dated **2020-05-20**, description
"21 of 242 (8.7%)". That stat + news #113 indicate this is the **2019 PrototypAR** award.
Fix the date to 2019 and attach the **PrototypAR** project (recipient Seokbin Kang).
- [ ] Confirm William Chan #9 (Jon, 2012) vs #10 (Dhruv, 2023) — both correct, leave as-is.

Good call. And yes, both me and Dhruv got the same award.

## G. CV items already represented (no action)

SIGCHI Societal Impact 2026, PacTrans 2022, COE Outstanding Faculty 2021, Sloan 2017,
Madrona Prize 2009, Best Clean-Tech / UW Business Plan 2009, 1st Place UW Env. Innovation
Challenge 2009, MSR Graduate Fellowship 2008, COE Student Innovator 2010, William Chan 2012,
Project Sidewalk / Scistarter 2023.

---

### Open question for Jon
Once you've triaged A–D, do you want these entered **by hand in the admin**, or shipped as an
**idempotent `import_awards` management command** (wired into `docker-entrypoint.sh`, the
established pattern) so they land on test/prod via deploy? ~25 new rows makes the command worth it.

I'd like to use the command approach.
4 changes: 2 additions & 2 deletions makeabilitylab/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

# Makeability Lab Global Variables, including Makeability Lab version
ML_WEBSITE_VERSION = "2.13.0" # Keep this updated with each release and also change the short description below
ML_WEBSITE_VERSION_DESCRIPTION = "Feature: replace django-ckeditor (CKEditor 4, EOL with unpatched XSS) with django-prose-editor for the News editor (#1269), unblocking the Django 6.1 LTS upgrade. Content stays raw HTML and migrates near-losslessly; sanitized on save via an nh3 allowlist. In-body image upload moves to a staff-only picker view (reuses media/uploads/ + validate_image_upload); adds an 'Edit HTML' source view. News images are now responsive by default — a one-shot normalize_news_image_styles command strips legacy inline width/height. A small in-repo ckeditor_uploader shim keeps gitignored historical migrations importable (cleanup tracked in #1317). Field swap is TEXT->TEXT (no schema change)."
ML_WEBSITE_VERSION = "2.14.0" # Keep this updated with each release and also change the short description below
ML_WEBSITE_VERSION_DESCRIPTION = "Feature: redesigned Awards page. Each award now renders as a card with a category-specific visual anchor — recipient photo (student awards), project thumbnail (project awards), or a gold medal icon (faculty honors), with an optional uploaded emblem (new Award.badge field) overriding any of these — led by a prominent golden-orange year badge. A new idempotent import_awards management command (wired into docker-entrypoint.sh) backfills ~27 people/project/faculty awards mined from the news archive + CV that were missing from the Awards page, and corrects the mis-dated Facilitators' Choice (PrototypAR) entry. Paper awards stay on Publication.award; the one gap ('Playing on Hard Mode') is tracked in #1354. /awards/ added to the Pa11y scan set."
DATE_MAKEABILITYLAB_FORMED = datetime.date(2012, 1, 1) # Date Makeability Lab was formed
MAX_BANNERS = 7 # Maximum number of banners on a page

Expand Down
7 changes: 7 additions & 0 deletions website/admin/award_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ def get_fieldsets(self, request, obj=None):
('Links & Details', {
'fields': ['url', 'description'],
}),
('Display', {
'fields': ['badge', 'badge_alt_text'],
'description': 'Optional. On the Awards page, faculty honors show a medal icon, '
'student awards show the recipient’s photo, and project awards '
'show the project thumbnail. Upload a badge/logo here to override '
'that with a custom emblem (e.g., the awarding org’s logo).',
}),
]

def formfield_for_manytomany(self, db_field, request, **kwargs):
Expand Down
Loading
Loading