Implement ticket types priorities and custom fields #8

Merged
Twyco merged 3 commits from codex/0.1-kanban-foundation/05-ticket-types-priorities-and-custom-fields into main 2026-03-30 17:55:58 +00:00
Owner
No description provided.
Eric reviewed 2026-03-26 19:04:51 +00:00
@@ -0,0 +33,4 @@
->get()
->values()
->each(function (TicketType $ticketType, int $index): void {
$ticketType->forceFill([
Owner

Warum machen wir forcefill auf Built in

Warum machen wir forcefill auf Built in
Author
Owner

gut frage warum wir(codex) das macht. adde ich der liste

gut frage warum wir(codex) das macht. adde ich der liste
Twyco marked this conversation as resolved
@@ -0,0 +36,4 @@
$ticketType->forceFill([
'is_builtin' => true,
'position' => $index + 1,
])->saveQuietly();
Owner

Wenn die Action nur beimErstellen eines neuen Projekts läuft, ist das neuvergeben von posi doppelt oder nicth. Die Built-ins werden ja bereits mit position 1 und 2 angelegt.

Wenn die Action nur beimErstellen eines neuen Projekts läuft, ist das neuvergeben von posi doppelt oder nicth. Die Built-ins werden ja bereits mit position 1 und 2 angelegt.
Author
Owner

wird ja aber nicht nur beim erstellen, sondern bei jedem speichern aufgerufen

wird ja aber nicht nur beim erstellen, sondern bei jedem speichern aufgerufen
Twyco marked this conversation as resolved
@@ -0,0 +30,4 @@
public function show(Request $request, Project $project): Response
{
$this->abortUnlessCanManage($request, $project);
$this->initializeProjectTicketMetadata->handle($project);
Owner

warum machen wir das hier? werden die metadaten nicht beim project erstellen initialisoiert
Weil bei Show View ist initialize auch komisch benannt oder bin ich am trippen

warum machen wir das hier? werden die metadaten nicht beim project erstellen initialisoiert Weil bei Show View ist initialize auch komisch benannt oder bin ich am trippen
Author
Owner

ja, hier aus show kanns raus, sollte nur bei store oder update

ja, hier aus show kanns raus, sollte nur bei store oder update
Twyco marked this conversation as resolved
@@ -0,0 +51,4 @@
{
$this->abortUnlessCanManage($request, $project);
$this->initializeProjectTicketMetadata->handle($project);
Owner

same here

same here
Author
Owner

renaming wär gut ja, der in der method selber wird ja sichergestellt, dass immer (auch nach jedem bearbeiten) parent und task an 1 und 2 stelle sind und existieren

renaming wär gut ja, der in der method selber wird ja sichergestellt, dass immer (auch nach jedem bearbeiten) parent und task an 1 und 2 stelle sind und existieren
Author
Owner

built in ticket types überarbeitet ich aber eh nochmal, hab mir da was anders überlegt.

built in ticket types überarbeitet ich aber eh nochmal, hab mir da was anders überlegt.
Twyco marked this conversation as resolved
@@ -0,0 +79,4 @@
TicketType $ticketType,
): RedirectResponse {
$this->abortUnlessCanManage($request, $project);
$this->initializeProjectTicketMetadata->handle($project);
Owner

Hier auch wieso machen wir das in jeder Methode? Können wir das nicht einmal initialisieren beim erstellen des Projekts und dann sind die gegeben und wir müssen sie nciht in jeder Methode nochmal callen.

Hier auch wieso machen wir das in jeder Methode? Können wir das nicht einmal initialisieren beim erstellen des Projekts und dann sind die gegeben und wir müssen sie nciht in jeder Methode nochmal callen.
Twyco marked this conversation as resolved
@@ -0,0 +190,4 @@
$ticketFieldDefinition = $project->ticketFieldDefinitions()->create([
'field_type' => $request->validated('field_type'),
'label' => $request->validated('label'),
'position' => $project->ticketFieldDefinitions()->count() + 1,
Owner

find posi immernoch strange, aber das wegen Position wie es im Ticket zu sehen ist wahrscheinlich oder?

find posi immernoch strange, aber das wegen Position wie es im Ticket zu sehen ist wahrscheinlich oder?
@@ -0,0 +12,4 @@
*/
public function authorize(): bool
{
return $this->user() !== null;
Owner

hier maybe auch admin und nicht jeder authorisierte user

hier maybe auch admin und nicht jeder authorisierte user
Author
Owner

es gibt ja extra user permissions

es gibt ja extra user permissions
Twyco marked this conversation as resolved
@@ -0,0 +14,4 @@
*/
public function authorize(): bool
{
return $this->user() !== null;
Owner

hier auch

hier auch
Author
Owner

selbe

selbe
Twyco marked this conversation as resolved
@@ -0,0 +12,4 @@
*/
public function authorize(): bool
{
return $this->user() !== null;
Owner

hier auch

hier auch
Author
Owner

selbe

selbe
Twyco marked this conversation as resolved
@@ -0,0 +12,4 @@
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
Owner

🤨

🤨
Twyco marked this conversation as resolved
@@ -0,0 +20,4 @@
{
return [
'is_builtin' => false,
'name' => fake()->unique()->jobTitle(),
Owner

hö wieso JobTitle

hö wieso JobTitle
Twyco marked this conversation as resolved
@@ -0,0 +18,4 @@
$table->unsignedInteger('position');
$table->timestamps();
$table->unique(['project_id', 'position']);
Owner

sollten wir priority nicht nh value oderso noch geben das man wenn man mehrere tickets in eineer column hat die nach prio easy sortieren kann ?

sollten wir priority nicht nh value oderso noch geben das man wenn man mehrere tickets in eineer column hat die nach prio easy sortieren kann ?
Author
Owner

hast du was geraucht? was denkst du was denkst du was position ist?

hast du was geraucht? was denkst du was denkst du was position ist?
Twyco marked this conversation as resolved
@@ -0,0 +17,4 @@
public function run(): void
{
$initializeProjectTicketMetadata = app(InitializeProjectTicketMetadata::class);
Owner

warum so kann man kein constreuct hier machen und das dann so injecten?

warum so kann man kein constreuct hier machen und das dann so injecten?
Author
Owner

weil dass hier ein seeder ist und der nicht zur runtime läuft

weil dass hier ein seeder ist und der nicht zur runtime läuft
Twyco marked this conversation as resolved
@@ -0,0 +6,4 @@
project_id: number;
created_at: string;
updated_at: string;
[key: string]: unknown;
Owner

weg

weg
@@ -0,0 +6,4 @@
created_at: string;
updated_at: string;
[key: string]: unknown;
};
Owner

weg

weg
Twyco changed target branch from codex/0.1-kanban-foundation/04-board-columns-and-project-workflow-settings to main 2026-03-26 20:53:22 +00:00
Twyco added 1 commit 2026-03-26 20:53:22 +00:00
Twyco added 1 commit 2026-03-26 20:59:27 +00:00
Merge branch 'main' into codex/0.1-kanban-foundation/05-ticket-types-priorities-and-custom-fields
linter / quality (pull_request) Successful in 1m15s
tests / ci (8.4) (pull_request) Successful in 1m14s
65022b405e
Twyco added 1 commit 2026-03-30 17:55:47 +00:00
addded missing-features
linter / quality (pull_request) Successful in 1m9s
tests / ci (8.4) (pull_request) Successful in 1m25s
3d764d461d
Twyco merged commit c9784be16f into main 2026-03-30 17:55:58 +00:00
Twyco deleted branch codex/0.1-kanban-foundation/05-ticket-types-priorities-and-custom-fields 2026-03-30 17:55:58 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: PetschStudios/KanbanGit#8