Skip to content

feat: add card dependencies#7879

Open
luka-nextcloud wants to merge 1 commit intomainfrom
card-dependencies
Open

feat: add card dependencies#7879
luka-nextcloud wants to merge 1 commit intomainfrom
card-dependencies

Conversation

@luka-nextcloud
Copy link
Copy Markdown
Contributor

@luka-nextcloud luka-nextcloud commented Apr 23, 2026

Summary

Introduces the concept of "dependent cards", allowing users to assign and remove dependencies between cards. The implementation includes backend support, API routes, database migration, and frontend UI integration for managing card dependencies.

Checklist

  • Code is properly formatted
  • Sign-off message is added to all commits
  • Tests (unit, integration, api and/or acceptance) are included
  • Documentation (manuals or wiki) has been updated or is not required

@luka-nextcloud luka-nextcloud requested review from a team, hweihwang and mejo- and removed request for a team April 23, 2026 16:20
@github-actions
Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 95978 was 93102 (+3.08%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

@github-actions
Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 96859 was 93102 (+4.03%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

@github-actions
Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 96819 was 93102 (+3.99%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

@github-actions
Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 96814 was 93102 (+3.98%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

@DesertCookie
Copy link
Copy Markdown

Awesome to see some movement on this.

@luka-nextcloud
Copy link
Copy Markdown
Contributor Author

Recording video:

demo.mp4

Signed-off-by: Luka Trovic <luka@nextcloud.com>
@github-actions
Copy link
Copy Markdown
Contributor

🐢 Performance warning.
It looks like the query count of the integration tests increased with this PR.
Database query count is now 96891 was 93102 (+4.06%)
Please check your code again. If you added a new test this can be expected and the base value in tests/integration/base-query-count.txt can be increased.

Copy link
Copy Markdown
Member

@grnd-alt grnd-alt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't review everything yet. It basically works, but looking at the comment in the migration step, I think this part needs a rework.

if ($boardId) {
$board = $this->boardService->find($boardId, false);
if ($board->getExternalId()) {
// External board support can be added later if needed
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we don't implement it yet we should throw a not implement exception here

$schema = $schemaClosure();

if ($schema->hasTable('deck_cards')) {
$table = $schema->getTable('deck_cards');
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curios about the thought process of storing related cards as json field. Why not have it as an actual db relation so we can have both depends on and required by displayed.
Storing it this way also removes the ability to auto-delete relations, right now if a card is deleted the depending json will never be changed and the frontend will keep trying to retrieve that card, while the json only keeps growing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dependencies / Subtasks for cards

4 participants