alkem-io / client-web

Default web frontend, enabling browsing the Alkemio platform - so the hosted Challenges and communities collaborating around those Challenges.
https://alkem.io
European Union Public License 1.2
15 stars 6 forks source link

BUG: Innovation Flow states cannot have a comma in their name #6108

Open ccanos opened 6 months ago

ccanos commented 6 months ago

Describe the bug When an innovation flow state has a comma in the display name, weird things happen. the flow-state tagset is misinterpreted and the callouts in that state disappear.

To Reproduce Steps to reproduce the behavior:

  1. Go to Any subspace with admin rights
  2. Click on Manage innovation flow
  3. Add a state with a comma in its name
  4. Move a callout to that new state
  5. See how that callout dissappears
  6. See in the how the callout flow-state tagset comes with two tags instead of one.

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Add any other context about the problem here.

Areas that will be affected Optional, to be added by developer if relevant

me-andre commented 6 months ago

I guess that's what happens when you store arrays as comma-separated string in the database. For the issue I see 3 solutions:

  1. (nameID-like?) id for each flow state, so that it never has a comma
  2. Migrate from simple-array to JSON for tags
  3. Stop misusing tags for connecting callouts to innovation flow states

I'd personally go with the 3rd because unlike as with callout locations there seems to be a strong relation between a callout and a flow state and it seem to lay within the business logic/domain.

techsmyth commented 6 months ago

@me-andre my preference for now is #1, going to 2 is possible, #3 is too disruptive a change to pick up at the moment.

After furthter discussion: please do option 1, with enforcement server side.