I've pushed two more patches to the branch. The first resolves the bug with fast scans or sorting causing the duplicate entry error, while the second teaches prepend() how to reset sort columns (which is needed to avoid having to do full collect()'s all the time if a sort order is in effect). From the description of the second patch:
On the checkin and checkout grids, due to a quirk of how
sorting in arrayNotifier-based data sources work, the grids
will behave like this:
- User processes a bunch of items, with each new one
showing up at the top of the list
- User sorts the grid to look at something
- User processes another item. A collect() happens.
The new item will show up at the top of the list, with the remaining
items following the previous sort order.
- User processes more items; the prepending will coninue
and remain fast.
That second patch is option if we want the last sort order to be strictly enforced, but I think it arrive at a good compromise between having prepends in order to make the checkin and checkout grids faster while continuing to allow operators to use sorting.
I've pushed two more patches to the branch. The first resolves the bug with fast scans or sorting causing the duplicate entry error, while the second teaches prepend() how to reset sort columns (which is needed to avoid having to do full collect()'s all the time if a sort order is in effect). From the description of the second patch:
On the checkin and checkout grids, due to a quirk of how
sorting in arrayNotifier-based data sources work, the grids
will behave like this:
- User processes a bunch of items, with each new one
showing up at the top of the list
- User sorts the grid to look at something
- User processes another item. A collect() happens.
The new item will show up at the top of the list, with the remaining
items following the previous sort order.
- User processes more items; the prepending will coninue
and remain fast.
That second patch is option if we want the last sort order to be strictly enforced, but I think it arrive at a good compromise between having prepends in order to make the checkin and checkout grids faster while continuing to allow operators to use sorting.