[PR #3721] [MERGED] feat: set person birth date (web only) #10092

Closed
opened 2026-02-05 14:15:53 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/3721
Author: @daniele-athome
Created: 8/16/2023
Status: Merged
Merged: 8/18/2023
Merged by: @jrasm91

Base: mainHead: feat/person-birth-date


📝 Commits (10+)

  • 771b0ce Person birth date (data layer)
  • 334db9c Person birth date (data layer)
  • 247a4ac Person birth date (service layer)
  • f13e014 Person birth date (service layer, API)
  • b695851 Person birth date (service layer, API)
  • ece5124 Person birth date (UI) (wip)
  • 3ad97d3 Person birth date (UI) (wip)
  • dd9c88f Person birth date (UI) (wip)
  • 6f8d21a Person birth date (UI) (wip)
  • 0390b0d UI: Use "date of birth" everywhere

📊 Changes

24 files changed (+459 additions, -39 deletions)

View changed files

📝 cli/src/api/open-api/api.ts (+18 -0)
📝 mobile/openapi/doc/PeopleUpdateItem.md (+1 -0)
📝 mobile/openapi/doc/PersonResponseDto.md (+1 -0)
📝 mobile/openapi/doc/PersonUpdateDto.md (+1 -0)
📝 mobile/openapi/lib/model/people_update_item.dart (+13 -1)
📝 mobile/openapi/lib/model/person_response_dto.dart (+13 -1)
📝 mobile/openapi/lib/model/person_update_dto.dart (+13 -1)
📝 mobile/openapi/test/people_update_item_test.dart (+6 -0)
📝 mobile/openapi/test/person_response_dto_test.dart (+5 -0)
📝 mobile/openapi/test/person_update_dto_test.dart (+6 -0)
📝 server/immich-openapi-specs.json (+18 -0)
📝 server/src/domain/person/person.dto.ts (+32 -1)
📝 server/src/domain/person/person.service.spec.ts (+20 -0)
📝 server/src/domain/person/person.service.ts (+17 -5)
📝 server/src/infra/entities/person.entity.ts (+3 -0)
server/src/infra/migrations/1692112147855-AddPersonBirthDate.ts (+13 -0)
server/test/e2e/person.e2e-spec.ts (+81 -0)
📝 server/test/fixtures/person.stub.ts (+31 -0)
📝 web/src/api/open-api/api.ts (+18 -0)
📝 web/src/lib/components/asset-viewer/detail-panel.svelte (+7 -0)

...and 4 more files

📄 Description

This PR implements #3348: setting the date of birth for a person and showing their age in a photo.

In a person page, there is a new context menu item (the same menu item is also in the people page in each face context menu):

context_menu

which will open a modal:

popup_dialog

Opening as draft since it somewhat works now but it lacks tests and some final polishing.

Things to address before marking as ready:

  • handle malformed input
  • handle resetting birth date (i.e. setting it to null)
  • context menu doesn't close when the modal opens, not sure how to fix that yet
  • domain tests (server - person.service.spec.ts)
  • test fixtures (server - person.stub.ts)
  • update PR screenshots

Things to expect from review:

  • using input type=date vs a proper (non-popup) date picker
  • using Date vs string in DTOs, entities, etc.
  • birthDate vs dateOfBirth (mainly naming differences between the database and the UI)
  • e2e tests (nothing to start from, people features have no e2e tests)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/3721 **Author:** [@daniele-athome](https://github.com/daniele-athome) **Created:** 8/16/2023 **Status:** ✅ Merged **Merged:** 8/18/2023 **Merged by:** [@jrasm91](https://github.com/jrasm91) **Base:** `main` ← **Head:** `feat/person-birth-date` --- ### 📝 Commits (10+) - [`771b0ce`](https://github.com/immich-app/immich/commit/771b0ce7c9a1019f7bd936bc804051eab5fe2351) Person birth date (data layer) - [`334db9c`](https://github.com/immich-app/immich/commit/334db9cfeb57adec71e7db4ee95b4be44df11592) Person birth date (data layer) - [`247a4ac`](https://github.com/immich-app/immich/commit/247a4acb1b6cb13e4c1dc952cb6dd253605526d1) Person birth date (service layer) - [`f13e014`](https://github.com/immich-app/immich/commit/f13e014d927ae55f113a3fc1c84fc0594c5c4e26) Person birth date (service layer, API) - [`b695851`](https://github.com/immich-app/immich/commit/b695851e6925cc555f9ac28c0ef914b7e9de098c) Person birth date (service layer, API) - [`ece5124`](https://github.com/immich-app/immich/commit/ece5124d78937c66886992f7b18fd80cb7cd281c) Person birth date (UI) (wip) - [`3ad97d3`](https://github.com/immich-app/immich/commit/3ad97d301aa5ec8b1a5c2b5ea89df0e7f3bc7fcd) Person birth date (UI) (wip) - [`dd9c88f`](https://github.com/immich-app/immich/commit/dd9c88f5e86e13b598de7c2724ae708940c095f3) Person birth date (UI) (wip) - [`6f8d21a`](https://github.com/immich-app/immich/commit/6f8d21a803f249aff9109c3d905bcef0c6c83a09) Person birth date (UI) (wip) - [`0390b0d`](https://github.com/immich-app/immich/commit/0390b0d903e6abe407668de2437d453cd07880a7) UI: Use "date of birth" everywhere ### 📊 Changes **24 files changed** (+459 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `cli/src/api/open-api/api.ts` (+18 -0) 📝 `mobile/openapi/doc/PeopleUpdateItem.md` (+1 -0) 📝 `mobile/openapi/doc/PersonResponseDto.md` (+1 -0) 📝 `mobile/openapi/doc/PersonUpdateDto.md` (+1 -0) 📝 `mobile/openapi/lib/model/people_update_item.dart` (+13 -1) 📝 `mobile/openapi/lib/model/person_response_dto.dart` (+13 -1) 📝 `mobile/openapi/lib/model/person_update_dto.dart` (+13 -1) 📝 `mobile/openapi/test/people_update_item_test.dart` (+6 -0) 📝 `mobile/openapi/test/person_response_dto_test.dart` (+5 -0) 📝 `mobile/openapi/test/person_update_dto_test.dart` (+6 -0) 📝 `server/immich-openapi-specs.json` (+18 -0) 📝 `server/src/domain/person/person.dto.ts` (+32 -1) 📝 `server/src/domain/person/person.service.spec.ts` (+20 -0) 📝 `server/src/domain/person/person.service.ts` (+17 -5) 📝 `server/src/infra/entities/person.entity.ts` (+3 -0) ➕ `server/src/infra/migrations/1692112147855-AddPersonBirthDate.ts` (+13 -0) ➕ `server/test/e2e/person.e2e-spec.ts` (+81 -0) 📝 `server/test/fixtures/person.stub.ts` (+31 -0) 📝 `web/src/api/open-api/api.ts` (+18 -0) 📝 `web/src/lib/components/asset-viewer/detail-panel.svelte` (+7 -0) _...and 4 more files_ </details> ### 📄 Description This PR implements #3348: setting the date of birth for a person and showing their age in a photo. In a person page, there is a new context menu item (the same menu item is also in the people page in each face context menu): ![context_menu](https://github.com/immich-app/immich/assets/3763726/983e2371-f2a8-4f35-883c-87dea2159d8b) which will open a modal: ![popup_dialog](https://github.com/immich-app/immich/assets/3763726/11f06502-a98d-49b5-bc22-8438deff1c51) Opening as draft since it somewhat works now but it lacks tests and some final polishing. Things to address before marking as ready: - [x] handle malformed input - [x] handle resetting birth date (i.e. setting it to null) - [ ] context menu doesn't close when the modal opens, not sure how to fix that yet - [x] domain tests (server - person.service.spec.ts) - [x] test fixtures (server - person.stub.ts) - [x] update PR screenshots Things to expect from review: * using input type=date vs a proper (non-popup) date picker * using Date vs string in DTOs, entities, etc. * birthDate vs dateOfBirth (mainly naming differences between the database and the UI) * e2e tests (nothing to start from, people features have no e2e tests) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 14:15:53 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#10092