Project

General

Profile

Brainstorming dynamic/nested list fields

Added by Anonymous about 11 years ago

I'm interested in finding a way to work nested lists into Redmine, and I'm wondering if anyone else has put any thought into the subject...

For clarity, when I say nested list, I'm referring to the concept of having an initial List A that is visible on the form, and upon selecting an item from it, a variable List B appears, and so on.

Looking at how Redmine stores custom field settings, I think we're limited to two types of approaches:

  1. Make several lists and relate them somehow
  2. Make a single list with some kind of format that outlines the different levels

There are pros and cons, for sure.

Related lists
Child lists could be easily shared by different parents if 2+ options at one level would have a common subset of choices. There would also be distinct, separate values stored in the database for each level, allowing for much easier querying. However, significant attention would need to be paid to the list design interface, as there's no existing concept for relating custom fields. As well, once made a sublist, many behavior questions come up: is a sublist still an independent custom field that can be added all by itself to another tracker or project? Or is it unavailable without the parent? What happens when dealing with various configurations? What the heck happens if you change or delete one of the rows in one of the lists?

Single list
Redmine stores the current list type as a single string of--I think--comma separated values (maybe semicolons, I'm not sure). This could maybe be adapted to use some kind of nesting syntax. For example:

(Item 1(Sub 1.1(Sub 1.1.1, Sub 1.1.2), Sub 1.2, Sub 1.3), Item 2(Sub 2.1, Sub 2.2), Item 3)

Each level a comma-separated list contained within its parent list item. With a format like this, concerns about complex management of separate custom fields are removed, and the string can either be generated from a friendly UI, or entered manually in the required format. Downsides include list item duplication: if two list items share a common sublist, you're entering that sublist two separate times. Generating external (i.e., SQL query) reports becomes a little more complicated, because the custom field values table in Redmine's database will contain entries like "Item 1|Sub 1.1|Sub 1.1.2" or thereabouts.

I'm very interested in feedback on this. It's one of those features that feels like it should be implemented some day, and I just can't decide which way is the best way.

One thing I'm sure of, though, is to avoid dynamically populated lists--like having a list populated based on a custom user formula where one variable is the value of another list. Start going for CMS-level complexity like that and...well, pain and suffering and all that. >_>


Replies (2)

RE: Brainstorming dynamic/nested list fields - Added by Terence Mill about 11 years ago

I `m also verz interested in this feature. I know it from Ms Sharpoint where its was verz usable for me, except the rest of Sharepoint ;)
Some could know it as wenn from Ms Excel.
What you did not say ist that a list item selection could also be the filter for two other fields to show not just one more field next.
Furthermore a "list" shall be more table where every entry can have more than one key (relation) used for selection to select/show the other values in this entry. I think that would need a n:n relation table where evey value can be an forerigb key for another entry.

RE: Brainstorming dynamic/nested list fields - Added by Dipan Mehta about 11 years ago

Need more context here: where is this intended to be used? - nested multi-valued custom fields -as I gather?

And the list you showed:

(Item 1(Sub 1.1(Sub 1.1.1, Sub 1.1.2), Sub 1.2, Sub 1.3), Item 2(Sub 2.1, Sub 2.2), Item 3)

will this be what users will enter, or is this internal storage or you are just describing the model here?

    (1-2/2)