List Shifter: Reverse, Rotate, Swap and ITERATE (Loop) Over Bubble Lists | Now Part of Floppy

Hey @wrightj2, whatever the issue is here, it’s not from List Shifter. List Shifter always just outputs whatever its “List to Shift” is. You don’t show how you’re actually implementing the filtering (there are multiple ways we might do that), but when you’re applying filtering, that does not change what is present at List Shifter’s outputs.

If you really want to force your RG to update back to showing all of the items at a List Shifter output, you could do the action “Display List” and force the data source back to being whatever output of List Shifter it’s supposed to be looking at.

In terms of what’s probably causing you consternation:

If you’re doing your filtering in the RG based on Conditions, you probably need to add a Condition that sets the RG’s data source back to the unfiltered list, when whatever criteria occurs that represents the “we are not filtering” state. Note that composing a “When” expression for this may be impossible, which is why you’d just force a Display Data action, as I suggest above (you would do this in the “When Reset All is clicked” workflow, and add it as step 2 after Reset Group Filters.)

Edit: I meant to also add the following… The RESET action in List Shifter does the following (this is documented in the plugin itself, but Bubble doesn’t expose this documentation in any meaningful way – you have to actually look at it in the plugin editor – yet another really stupid Bubble thing). Anyway, here is what RESET does:

“Execute this action to reset List Shifter’s Shifted List to its initialized state. Transformations such as SWAP Items are cleared and most other values revert to their initial state. Note: This action DOES NOT clear List Shifter’s Processed List, Custom Value, and Custom List as these values are only published in response to your own workflow actions.”

@keith thank you for your amazing plugin. I have already used it successfully a few times.
I have a use case that I think list shifter and/or list popper is going to be a better solution to than the one I have right now, but I just can’t figure out how to do it. Maybe you are willing to show me a step in the right direction. I had a look at probably all of your videos and explanations but I think my use case is a little different or maybe I just can’t see the solution because I have no experience with code or JS at all. Or it also might be a wrong setup of my database structure.

I have basically these datatypes right now:

Meal Plan |
Meal | Recipe | Portions | Meal Plan
Recipe | Ingredient | Quantity | Unit
Shopping list | Ingredient | QuantitySum | Unit | Meal Plan

When a user wants to look at a shopping list for a Meal Plan, I want to calculate that. So what has to happen is that for each Ingredient in a meal it has to calculate portions*quantity and then to sum that quantity up grouped by the unit and the ingredient.
At the moment what happens is that in the backend I have a recursive workflow, that is pretty slow.
This is how it works right now:

  1. Clear shopping list
  2. send list of meals to backend workflow
  3. Take the first ingredient from the first meals recipe
  4. Multiply the meal’s portion size with the ingredient quantity
  5. If the ingredient with this unit already exists → add portion*quantity to the quantitySum, if it doesn’t exist create a new shopping list item
  6. repeat with the next ingredient from the first meal
    When it finishes with the last ingredient from the first meal, it goes to the second meal and so on.

I have thought about creating a parallel list of quantitySum with “process” action but wasn’t successful. I also tried to two “iterate” workflows, to mimic what I do right now in the backend, but didn’t get that to work either.
I am out of ideas so I thought maybe you have one.

Best regards
Michael

@keith
How do I suspend iteration of list B until an iteration of list A inside B is complete?
So basically its an iteration inside an iteration?
Please help
image

Learn to use Process List for this.

Would you mind to tell me if this plugin does dynamic grouping?

How to create sorting by count of matches?

Hey everyone! I have list of user… Each user has the list of interests. I want to display to RG the of users who has at least one match and sort it by count of matches. Finding users with matches is done (I used the intersect … :count) , but I can’t figure out how to sort it, please help me!

Thanks!

This is a common problem in bubble that there are easy-ish code solutions for but that I’ve not published an explicit plugin for.

But List Shifter can help you with this, if you want to get down in it. See:

Thank you. I tried, but I really can’t understand how to do that for my case. Could you describe it a little bit, please?

Loom video)
There’s explanation of my case.

@keith Hi, i’ve come across a real head-scratcher on my app:

List shifter is iterating over a list, as per usual, but for some reason on this particular page, it’s stopping at the second item, not iterating over the entire list. Have you seen this happen before? what can i do?

Here’s my workflow:

I’ve verified the list has more than 2 items, and that the iterate event is getting triggered… but it just updates the index on items 1 & 2, but not the remaining items in the list :confused:

Well, what’s going on in the console?

Not seeing any errors for listShifter… could the lottie plugin errors be affecting it?

Well, yes.

okay, thanks, i’ll remove it tomorrow and check it out :slight_smile:

I have removed the plugin from the page, my console doesn’t show that error anymore, just it’s still not working, and I can’t seem to find the option in list shifter that prints the logs to console… is that a setting somewhere i’m missing? - Coulda swore that was a feature at one point :thinking:

My console now:

Are you sure you’re not trying to fire Begin Iterate before List Shifter is fully initialized?

fairly certain, even added a pause in my workflow:

FYI i have quite a few other listshifters on this page, all of which work great… its weird. Think i’m gonna try deleting this one and using another one

Okay Update! I’ve tried replacing and deleting and rebuilding the workflows, no effect.

But i just found something very interesting: The other listshifter i thought was working properly, apparently it is… up to two list items :man_facepalming:
Furthermore, it seems both listshifters aren’t “seeing” anymore items to work with because they even fire the “when listshifter iteration is completed” action successfully after the 2 items, even though i’ve confirmed there’s more than just 2 items in the list they’re pointing too… This is weirdd, i’m at a brick wall here :confused:

Oh and also, it must be fully initialized before i fire it, since it’s running through part of the list? wouldn’t it just flat-out not work if it didn’t finish initializing?

Not necessarily, because Bubble. But you could rule that out by examining the Initialized output in your workflow (drop Debug Buddy in there and write The List Shifter in Question’s Initialized to the console). Not being able to see your project I can’t really offer anything but spitballing. Obviously, List Shifter’s iterate function works in general, so… :man_shrugging: