devaslanphp / project-management

An open source Project management tool based on Laravel and Filament
https://devaslanphp.github.io/project-management
MIT License
572 stars 165 forks source link

Custom fields for projects, issues, epics #89

Open thomaswacker opened 12 months ago

thomaswacker commented 12 months ago

I often need custom fields, especially for issues. The scope for a custom field should be

In Redmine you can do this very easy. I know its not as easy to implement as you need for Filament. But it would be a great enhancement.

mihaisolomon commented 12 months ago

Could you put some screenshots to have an idea. I worked a long time ago with redmine.

thomaswacker commented 11 months ago

Here are some screenshots from my Redmine.

Overview:

admin_custom_fields_overview

Create field - first step:

admin_create_custom_field_2

Create field - second step:

admin_create_custom_field_1

mihaisolomon commented 11 months ago

Could you put the Redmine task view with some custom fields added, so we will know how it will look in the end.

thomaswacker commented 11 months ago

It looks like every other field. You can't see any difference between custom fields and default fields, except they are placed below the default fields.

mihaisolomon commented 11 months ago

I found this packaged https://github.com/sunel/eav that could solve a part o the problem, let's say managing the custom fields.

The only thing that needs done it's the interface and the way we create the tickets to add those fields into the views.

From my point we have to do the followings:

If I'm missing something please add here.

thomaswacker commented 11 months ago

That would be one possibility. Another possibility would be to use only one table for the values - that's how Redmine does it. You can use "textarea" as the data type for the field. Attached are all the tables from a Redmine instance for custom fields ("custom_field_enumerations" was never filled).

redmine_custom_fields.txt

mihaisolomon commented 11 months ago

The structure is almost the same with the one generated by this library https://github.com/sunel/eav . The only difference is that we have some of the logic already done.

I will start soon a PR with some basic functionalities and we go from there.