New way to manually re-order RG lists?

Hi everyone,
I’m trying to build a repeating group that will allow my users to manually rearrange each cell with an “up” or a “down” button. For example, the users can generate a list of project bio’s that they can export and send. The content and order of this list will change depending on the needs of the each user. The user selects the projects, from the project database, which then gets saved as a list in the Proposal database. I’ve read and watched a ton of threads and videos, but they all require either a custom field in the datatype to set the order or the use of custom states. Custom fields will set the order of the the projects for all users, which will not work. Custom states would work, but I don’t think I can save that order for future use.

I’ve seen a plugins that allow users to drag and drop items in an RG, but the cells in my RG are way too bug to be able to drag around like that.

In trying to solve this issue, I just realized that if a user triggers a workflow to remove a project from the list in their proposal database and then adds it again, with will appear as last (at the bottom) of the list. This tells me that there should be a way to re-order the items in the database without having to create a custom field. Thats as far as I’ve gotten, but I’d love to hear your thoughts on whether this is possible.

this is as far as I got. this workflow does work to send the current item to the bottom of the list. any ideas on how to proceed further?

Try to create a backend workflow. Give them five key values:

  1. “index” which will be where in the list the item should go.
  2. “item” which will be the item that is changing locations.
  3. The “data type” that the list is saved to.
  4. “iteration” which will be a number starting at 1.
  5. The “list” before it is changed: minus the item that is moving.

Then give four actions in the following order:

  1. If “iteration” is 1, then make changes to “data type” clear list.
  2. If “iteration” is not “index”, make changes to “data type” list add “list”:first item.
  3. If “iteration” is index, make changes to “data type” list add “item”.
  4. If “list”:count > 1 AND iteration is not index, Schedule API Workflow (“the same one”). “iteration” = “iteration + 1”; “index” = “index”; “number” = “number”; “list” = “list:minus first item”; “data type” = “data type”.
  5. If “list”:count > 0 AND iteration is index, Schedule API Workflow (“the same one”). “iteration” = “iteration + 1”; “index” = “index”; “number” = “number”; “list” = “list”; “data type” = “data type”.

Thanks! ended up finding this and adapting it. seems to work, but I’m curious which way seems better.