basxsoftwareassociation / basxconnect

Core Implementation of a CRM system for non-profit organizations
https://connect.basx.org/
BSD 3-Clause "New" or "Revised" License
27 stars 6 forks source link

Improve tooling for adding relationships #232

Open saemideluxe opened 2 years ago

saemideluxe commented 2 years ago

Adding relationships is currently not very straight-fordward. That should be improved.

I suggest that we have something like a drop-down button which lists all possible relationship types and clicking one will bring up the according dialog. Relationships with a reverse-name should be listed two times, once with the normal name and once with the reversed name. And the opening dialog can then populate the correct person, be it A or B.

Another improvment we can add is to add restrictions to the type of allowed "endpoints" for a relationship. For that we could have a ManyToMany field to "ContentType" and add an attribute lazy_choices for filtering to be limited to subclasses of core.Person. And we could even add a filter-field to limit the list of possible relationship endpoints. And then show only the options in the UI where there is a non-empty queryset.

So two parts for this: One is the UI and secondly the model. But in order to get more out of the UI we need to improve the model first.

saemideluxe commented 2 years ago

I think it would also be helpfull if we can reuse parts of the UI from other pages, not only directly on the relationship page, but e.g. having a single button which we can place anywhere which will bring up a modal to a specific relationship or something like that.