Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter function not working properly for Subpoena/Legal Order category #1893

Closed
stephaniesugars opened this issue Aug 15, 2024 · 22 comments
Closed
Assignees

Comments

@stephaniesugars
Copy link

I noticed that there are inconsistencies with the filter search pulling accurately pulling cases where the latest status is "upheld," and it may be the case for other metadata options as well. When running the search, it says there are seven cases, but a manual review has turned up at least seven others. There doesn't appear to be any obvious factor as to why some are being caught and others are not (cross listing, multiple legal orders, numerous status updates, etc. appear in both those captured in the filter and those not).

@harrislapiroff
Copy link
Contributor

@stephaniesugars To flesh out this issue can you provide some examples of the ones that aren't showing up in search?

@stephaniesugars
Copy link
Author

@harrislapiroff
Included in the search (six now, because I'm currently checking for updates and some have been carried out):

And (at least some) of those not showing up in the search:

@harrislapiroff
Copy link
Contributor

Thanks!

@sophieongithub
Copy link

hi team! Circling back on this

@harrislapiroff
Copy link
Contributor

Priority: Critical

@chigby
Copy link
Contributor

chigby commented Feb 10, 2025

I've done some looking into the situation and it looks like this search error is being caused by Orderable fields with null as their sort_order value giving unexpected results.

My guess is that: pages that were created after we migrated the subpoena/legal order metadata to use the new style did not automatically have the sort order applied. Pages that have been created using the Wagtail admin after the migration will have the correct values for the sort_order field.

Fixing this is slightly tricky, I think, since the sort order field is (a) not visible in the admin, (b) not directly editable, and (c) only applied to existing legal order updates when something about that update is changed. I've had some success locally by changing the order and/or the date on the updates, saving a draft, then changing it back and publishing. This might work as a manual process for the affected pages, but I admit it is fiddly. It would be possible to write a command to do this, or manually do it with direct access to the database or management shell in the production environment, but this would take longer.

@harrislapiroff
Copy link
Contributor

Let's go forward with writing a script to do this. I leave it to @chigby's discretion whether we write it as a management command or a series of shell commands to coordinate with infra to run as an ad-hoc task.

@chigby
Copy link
Contributor

chigby commented Feb 11, 2025

I've decided we ought to at least do some information gathering before I start writing a script that assumes anything.

@enpaul Would it be possible to see the output of running this script on production (note: it will be a fair bit of plain text)

from django.db.models import F, Q, OuterRef, Exists
from incident.models import LegalOrder, LegalOrderUpdate

def script():
    unordered_updates = LegalOrderUpdate.objects.filter(
        legal_order=OuterRef("pk"),
        sort_order=None,
    )
    los = LegalOrder.objects.annotate(
        has_unordered_updates=Exists(unordered_updates),
    )
    for lo in los:
        if not lo.has_unordered_updates:
            continue
        print(f'Incident id: {lo.incident_page.pk}; {lo.incident_page.title}')
        print(f'  Order id: {lo.pk}; type: {lo.get_order_type_display()}; info requested: {lo.get_information_requested_display()}, status: {lo.get_status_display()}')
        for update in lo.updates.order_by(F("date").asc(nulls_first=True)):
            sort_order = '<null>' if update.sort_order is None else str(update.sort_order)
            print(f'    {sort_order:>6} {update.date} {update.get_status_display()}')

script()

@chigby
Copy link
Contributor

chigby commented Feb 11, 2025

Which is to say, the output of this script when run inside a manage.py shell session on production

@enpaul
Copy link

enpaul commented Feb 11, 2025

@chigby Is the output sensitive? Should I post it here or send it via slack/signal/some other mechanism?

@chigby
Copy link
Contributor

chigby commented Feb 11, 2025

It's not sensitive, contains only database IDs and and public information. But you might as well send it to me on Slack rather than here.

@enpaul
Copy link

enpaul commented Feb 11, 2025

Also I hope it's ok, I just edited your script there to make it a bit more copy+paste friendly for the k8s exec terminal

@chigby
Copy link
Contributor

chigby commented Feb 12, 2025

I've identified two incidents that I think need some manual review prior to making a bulk change to the rest of them.

Spokesman-Review subpoenaed in defamation lawsuit, second subpoena:

Current order on page:

  1. Nov. 25, 2019: Pending
  2. Unknown date: Carried out
  3. June 1, 2021: Objected to
  4. Jan. 10, 2023: Upheld

Oberlin College subpoenas legal blogger for communications with source

Current order on page:

  1. June 7, 2018: Pending
  2. June 8, 2018: Objected to
  3. Unknown date: Dropped

The reason I'm singling these out is because of the "unknown date," the presence of which makes it harder to automatically determine the correct ordering.

If these orders are not correct, they should be updated to be correct.

If they are correct, then here's my workaround for saving that order to the database correctly. This

  1. In the Wagtail editor, make a change to each of the updates to the legal order (the base legal order status and date should not be changed). This can either be changing the date or status of the update to the legal order. It doesn't matter what it's changed to, as we will be changing it back before the page is published.
  2. Save a draft of the page.
  3. Undo all the changes you made to the legal order updates.
  4. Publish the page.

I've tested this procedure locally and it seems to work. I'm sorry this is fiddly, but I'm not sure wagtail allows editing this ordering data in a more direct way.

Once these two incidents have been corrected, I can apply a script to the rest of them that will use the date field to infer the order and make the change automatically.

@sophieongithub
Copy link

hi @chigby, thanks for this - Oberlin has been updated (the metadata was incorrect), so no longer has an unknown date entry. I followed the steps above for Spokesman-Review. Let me know if anything else is needed!

@chigby
Copy link
Contributor

chigby commented Feb 13, 2025

Great, thanks @sophieongithub -- I'm also now seeing it correctly coming up when searching for incidents whose legal orders have status "Carried out" (link to search), which is promising.

I've written up a new script that should update the remaining incidents

from django.db.models import F, Q, OuterRef, Exists
from incident.models import LegalOrder, LegalOrderUpdate


def update_orders():
    unordered_updates = LegalOrderUpdate.objects.filter(
        legal_order=OuterRef("pk"),
        sort_order=None,
    )
    los = LegalOrder.objects.annotate(
        has_unordered_updates=Exists(unordered_updates),
    )
    objects_to_update = []
    for lo in los:
        current_set = []
        for i, update in enumerate(lo.updates.order_by(F("date").asc())):
            if not update.date:
                current_set = []
                print(f'Skipping legal order {lo}')
                break
            print(f'{update}, sort_order={update.sort_order}, will be changed to {i}')
            update.sort_order = i
            current_set.append(update)
        objects_to_update.extend(current_set)
    LegalOrderUpdate.objects.bulk_update(objects_to_update, ['sort_order'])

update_orders()

@enpaul -- this is the next script to run. I've tried to write it in your copy/paste friendly style, so let's hope that step is easier.

I've tested this on staging and it seems to work, both to remove the null values and to preserve the ordering by date on the existing incidents.

@enpaul
Copy link

enpaul commented Feb 13, 2025

Sounds good @chigby !

To clarify, this script is making modifications to the database, yes? If so I'll just make sure I take a backup before running it.

@chigby
Copy link
Contributor

chigby commented Feb 13, 2025

@enpaul Yes, it does make changes. It will also output the changes that it is making, which I think is an additional layer of help, on top of the backup.

@enpaul
Copy link

enpaul commented Feb 13, 2025

@chigby This is all set now. The script has been run and I have a pre-script backup if necessary. Let me know if I can help with anything else!

Script Output
LegalOrderUpdate object (24), sort_order=None, will be changed to 0
LegalOrderUpdate object (25), sort_order=None, will be changed to 1
LegalOrderUpdate object (44), sort_order=None, will be changed to 0
LegalOrderUpdate object (45), sort_order=None, will be changed to 1
LegalOrderUpdate object (62), sort_order=None, will be changed to 0
LegalOrderUpdate object (63), sort_order=None, will be changed to 1
LegalOrderUpdate object (66), sort_order=None, will be changed to 0
LegalOrderUpdate object (65), sort_order=None, will be changed to 1
LegalOrderUpdate object (68), sort_order=None, will be changed to 0
LegalOrderUpdate object (69), sort_order=None, will be changed to 1
LegalOrderUpdate object (70), sort_order=None, will be changed to 0
LegalOrderUpdate object (71), sort_order=None, will be changed to 1
LegalOrderUpdate object (72), sort_order=None, will be changed to 0
LegalOrderUpdate object (73), sort_order=None, will be changed to 1
LegalOrderUpdate object (74), sort_order=None, will be changed to 0
LegalOrderUpdate object (75), sort_order=None, will be changed to 1
LegalOrderUpdate object (76), sort_order=None, will be changed to 2
LegalOrderUpdate object (77), sort_order=None, will be changed to 0
LegalOrderUpdate object (78), sort_order=None, will be changed to 1
LegalOrderUpdate object (79), sort_order=None, will be changed to 2
LegalOrderUpdate object (82), sort_order=None, will be changed to 0
LegalOrderUpdate object (83), sort_order=None, will be changed to 1
LegalOrderUpdate object (96), sort_order=None, will be changed to 0
LegalOrderUpdate object (97), sort_order=None, will be changed to 1
LegalOrderUpdate object (98), sort_order=None, will be changed to 2
LegalOrderUpdate object (99), sort_order=None, will be changed to 3
LegalOrderUpdate object (109), sort_order=None, will be changed to 0
LegalOrderUpdate object (127), sort_order=None, will be changed to 0
LegalOrderUpdate object (128), sort_order=None, will be changed to 1
LegalOrderUpdate object (129), sort_order=None, will be changed to 0
LegalOrderUpdate object (130), sort_order=None, will be changed to 1
LegalOrderUpdate object (131), sort_order=None, will be changed to 2
LegalOrderUpdate object (132), sort_order=None, will be changed to 3
LegalOrderUpdate object (133), sort_order=None, will be changed to 0
LegalOrderUpdate object (134), sort_order=None, will be changed to 0
LegalOrderUpdate object (84), sort_order=None, will be changed to 0
LegalOrderUpdate object (85), sort_order=None, will be changed to 1
LegalOrderUpdate object (86), sort_order=None, will be changed to 2
LegalOrderUpdate object (94), sort_order=None, will be changed to 0
LegalOrderUpdate object (95), sort_order=None, will be changed to 1
LegalOrderUpdate object (118), sort_order=None, will be changed to 0
LegalOrderUpdate object (110), sort_order=0, will be changed to 0
LegalOrderUpdate object (522), sort_order=1, will be changed to 1
LegalOrderUpdate object (523), sort_order=2, will be changed to 2
LegalOrderUpdate object (524), sort_order=3, will be changed to 3
LegalOrderUpdate object (135), sort_order=None, will be changed to 0
LegalOrderUpdate object (136), sort_order=None, will be changed to 1
LegalOrderUpdate object (104), sort_order=None, will be changed to 0
LegalOrderUpdate object (125), sort_order=None, will be changed to 0
LegalOrderUpdate object (126), sort_order=None, will be changed to 1
LegalOrderUpdate object (8), sort_order=None, will be changed to 0
LegalOrderUpdate object (9), sort_order=None, will be changed to 1
LegalOrderUpdate object (10), sort_order=None, will be changed to 2
LegalOrderUpdate object (525), sort_order=0, will be changed to 0
LegalOrderUpdate object (124), sort_order=1, will be changed to 1
LegalOrderUpdate object (526), sort_order=2, will be changed to 2
LegalOrderUpdate object (106), sort_order=None, will be changed to 0
LegalOrderUpdate object (107), sort_order=None, will be changed to 1
LegalOrderUpdate object (108), sort_order=None, will be changed to 2
LegalOrderUpdate object (452), sort_order=0, will be changed to 0
LegalOrderUpdate object (453), sort_order=1, will be changed to 1
LegalOrderUpdate object (472), sort_order=0, will be changed to 0
LegalOrderUpdate object (473), sort_order=1, will be changed to 1
LegalOrderUpdate object (93), sort_order=0, will be changed to 0
LegalOrderUpdate object (456), sort_order=1, will be changed to 1
LegalOrderUpdate object (80), sort_order=None, will be changed to 0
LegalOrderUpdate object (81), sort_order=None, will be changed to 1
LegalOrderUpdate object (67), sort_order=None, will be changed to 0
LegalOrderUpdate object (58), sort_order=None, will be changed to 0
LegalOrderUpdate object (59), sort_order=None, will be changed to 1
LegalOrderUpdate object (60), sort_order=None, will be changed to 2
LegalOrderUpdate object (61), sort_order=None, will be changed to 3
LegalOrderUpdate object (116), sort_order=None, will be changed to 0
LegalOrderUpdate object (26), sort_order=None, will be changed to 0
LegalOrderUpdate object (514), sort_order=0, will be changed to 0
LegalOrderUpdate object (536), sort_order=1, will be changed to 1
LegalOrderUpdate object (515), sort_order=2, will be changed to 2
LegalOrderUpdate object (537), sort_order=3, will be changed to 3
Skipping legal order LegalOrder object (44)
LegalOrderUpdate object (43), sort_order=0, will be changed to 0
LegalOrderUpdate object (447), sort_order=1, will be changed to 1
LegalOrderUpdate object (448), sort_order=2, will be changed to 2
LegalOrderUpdate object (454), sort_order=0, will be changed to 0
LegalOrderUpdate object (455), sort_order=1, will be changed to 1
LegalOrderUpdate object (20), sort_order=None, will be changed to 0
LegalOrderUpdate object (430), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (88)
LegalOrderUpdate object (442), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (60)
LegalOrderUpdate object (34), sort_order=None, will be changed to 0
LegalOrderUpdate object (35), sort_order=None, will be changed to 1
LegalOrderUpdate object (5), sort_order=None, will be changed to 0
LegalOrderUpdate object (6), sort_order=None, will be changed to 1
LegalOrderUpdate object (7), sort_order=None, will be changed to 2
LegalOrderUpdate object (450), sort_order=1, will be changed to 0
Skipping legal order LegalOrder object (13)
LegalOrderUpdate object (141), sort_order=None, will be changed to 0
LegalOrderUpdate object (54), sort_order=None, will be changed to 0
LegalOrderUpdate object (111), sort_order=0, will be changed to 0
LegalOrderUpdate object (112), sort_order=1, will be changed to 1
LegalOrderUpdate object (38), sort_order=0, will be changed to 0
LegalOrderUpdate object (39), sort_order=1, will be changed to 1
LegalOrderUpdate object (56), sort_order=None, will be changed to 0
LegalOrderUpdate object (57), sort_order=None, will be changed to 1
LegalOrderUpdate object (64), sort_order=None, will be changed to 0
LegalOrderUpdate object (87), sort_order=None, will be changed to 0
LegalOrderUpdate object (88), sort_order=None, will be changed to 1
LegalOrderUpdate object (89), sort_order=None, will be changed to 2
LegalOrderUpdate object (100), sort_order=None, will be changed to 0
Skipping legal order LegalOrder object (59)
LegalOrderUpdate object (55), sort_order=None, will be changed to 0
Skipping legal order LegalOrder object (82)
LegalOrderUpdate object (101), sort_order=None, will be changed to 0
LegalOrderUpdate object (4), sort_order=None, will be changed to 0
LegalOrderUpdate object (11), sort_order=None, will be changed to 0
LegalOrderUpdate object (12), sort_order=None, will be changed to 1
LegalOrderUpdate object (13), sort_order=None, will be changed to 0
LegalOrderUpdate object (14), sort_order=None, will be changed to 1
LegalOrderUpdate object (28), sort_order=None, will be changed to 0
LegalOrderUpdate object (29), sort_order=None, will be changed to 1
LegalOrderUpdate object (143), sort_order=None, will be changed to 0
LegalOrderUpdate object (144), sort_order=None, will be changed to 1
LegalOrderUpdate object (529), sort_order=2, will be changed to 2
LegalOrderUpdate object (530), sort_order=3, will be changed to 3
LegalOrderUpdate object (543), sort_order=0, will be changed to 0
LegalOrderUpdate object (446), sort_order=0, will be changed to 0
LegalOrderUpdate object (119), sort_order=0, will be changed to 0
LegalOrderUpdate object (521), sort_order=1, will be changed to 1
LegalOrderUpdate object (36), sort_order=None, will be changed to 0
LegalOrderUpdate object (37), sort_order=None, will be changed to 1
LegalOrderUpdate object (40), sort_order=None, will be changed to 0
LegalOrderUpdate object (41), sort_order=None, will be changed to 1
LegalOrderUpdate object (52), sort_order=0, will be changed to 0
LegalOrderUpdate object (53), sort_order=1, will be changed to 1
LegalOrderUpdate object (3), sort_order=None, will be changed to 0
LegalOrderUpdate object (33), sort_order=None, will be changed to 0
LegalOrderUpdate object (32), sort_order=None, will be changed to 0
LegalOrderUpdate object (30), sort_order=None, will be changed to 0
LegalOrderUpdate object (31), sort_order=None, will be changed to 1
LegalOrderUpdate object (428), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (18)
LegalOrderUpdate object (142), sort_order=None, will be changed to 0
LegalOrderUpdate object (449), sort_order=1, will be changed to 0
Skipping legal order LegalOrder object (16)
LegalOrderUpdate object (532), sort_order=0, will be changed to 0
LegalOrderUpdate object (21), sort_order=None, will be changed to 0
LegalOrderUpdate object (22), sort_order=None, will be changed to 1
LegalOrderUpdate object (1), sort_order=None, will be changed to 0
LegalOrderUpdate object (2), sort_order=None, will be changed to 1
LegalOrderUpdate object (102), sort_order=0, will be changed to 0
LegalOrderUpdate object (103), sort_order=1, will be changed to 1
LegalOrderUpdate object (533), sort_order=0, will be changed to 0
LegalOrderUpdate object (113), sort_order=0, will be changed to 0
LegalOrderUpdate object (114), sort_order=1, will be changed to 1
Skipping legal order LegalOrder object (77)
LegalOrderUpdate object (105), sort_order=0, will be changed to 0
LegalOrderUpdate object (451), sort_order=1, will be changed to 1
LegalOrderUpdate object (534), sort_order=2, will be changed to 2
LegalOrderUpdate object (145), sort_order=None, will be changed to 0
LegalOrderUpdate object (146), sort_order=None, will be changed to 0
LegalOrderUpdate object (147), sort_order=None, will be changed to 0
LegalOrderUpdate object (148), sort_order=None, will be changed to 1
LegalOrderUpdate object (149), sort_order=None, will be changed to 0
LegalOrderUpdate object (152), sort_order=None, will be changed to 0
LegalOrderUpdate object (153), sort_order=None, will be changed to 1
LegalOrderUpdate object (155), sort_order=None, will be changed to 0
LegalOrderUpdate object (156), sort_order=None, will be changed to 1
LegalOrderUpdate object (157), sort_order=None, will be changed to 0
LegalOrderUpdate object (158), sort_order=None, will be changed to 1
LegalOrderUpdate object (159), sort_order=None, will be changed to 2
LegalOrderUpdate object (160), sort_order=None, will be changed to 3
LegalOrderUpdate object (164), sort_order=None, will be changed to 0
LegalOrderUpdate object (165), sort_order=None, will be changed to 1
LegalOrderUpdate object (166), sort_order=None, will be changed to 0
LegalOrderUpdate object (178), sort_order=None, will be changed to 0
LegalOrderUpdate object (179), sort_order=None, will be changed to 1
LegalOrderUpdate object (180), sort_order=None, will be changed to 0
LegalOrderUpdate object (181), sort_order=None, will be changed to 1
LegalOrderUpdate object (187), sort_order=None, will be changed to 0
LegalOrderUpdate object (214), sort_order=None, will be changed to 0
LegalOrderUpdate object (215), sort_order=None, will be changed to 1
LegalOrderUpdate object (216), sort_order=None, will be changed to 0
LegalOrderUpdate object (217), sort_order=None, will be changed to 1
LegalOrderUpdate object (221), sort_order=None, will be changed to 0
LegalOrderUpdate object (222), sort_order=None, will be changed to 1
LegalOrderUpdate object (223), sort_order=None, will be changed to 0
LegalOrderUpdate object (224), sort_order=None, will be changed to 1
LegalOrderUpdate object (225), sort_order=None, will be changed to 2
LegalOrderUpdate object (226), sort_order=None, will be changed to 0
LegalOrderUpdate object (227), sort_order=None, will be changed to 1
LegalOrderUpdate object (228), sort_order=None, will be changed to 2
LegalOrderUpdate object (229), sort_order=None, will be changed to 3
LegalOrderUpdate object (230), sort_order=None, will be changed to 0
LegalOrderUpdate object (231), sort_order=None, will be changed to 1
LegalOrderUpdate object (232), sort_order=None, will be changed to 2
LegalOrderUpdate object (233), sort_order=None, will be changed to 3
LegalOrderUpdate object (234), sort_order=None, will be changed to 0
LegalOrderUpdate object (235), sort_order=None, will be changed to 1
LegalOrderUpdate object (236), sort_order=None, will be changed to 0
LegalOrderUpdate object (237), sort_order=None, will be changed to 1
LegalOrderUpdate object (238), sort_order=None, will be changed to 0
LegalOrderUpdate object (239), sort_order=None, will be changed to 0
LegalOrderUpdate object (240), sort_order=None, will be changed to 1
LegalOrderUpdate object (241), sort_order=None, will be changed to 0
LegalOrderUpdate object (242), sort_order=None, will be changed to 1
LegalOrderUpdate object (243), sort_order=None, will be changed to 0
LegalOrderUpdate object (244), sort_order=None, will be changed to 1
LegalOrderUpdate object (246), sort_order=None, will be changed to 0
LegalOrderUpdate object (247), sort_order=None, will be changed to 0
LegalOrderUpdate object (251), sort_order=None, will be changed to 0
LegalOrderUpdate object (252), sort_order=None, will be changed to 1
LegalOrderUpdate object (259), sort_order=None, will be changed to 0
LegalOrderUpdate object (261), sort_order=None, will be changed to 0
LegalOrderUpdate object (262), sort_order=None, will be changed to 1
LegalOrderUpdate object (263), sort_order=None, will be changed to 0
LegalOrderUpdate object (264), sort_order=None, will be changed to 1
LegalOrderUpdate object (265), sort_order=None, will be changed to 2
LegalOrderUpdate object (266), sort_order=None, will be changed to 3
LegalOrderUpdate object (267), sort_order=None, will be changed to 0
LegalOrderUpdate object (268), sort_order=None, will be changed to 1
LegalOrderUpdate object (269), sort_order=None, will be changed to 2
LegalOrderUpdate object (270), sort_order=None, will be changed to 3
LegalOrderUpdate object (271), sort_order=None, will be changed to 0
LegalOrderUpdate object (272), sort_order=None, will be changed to 1
LegalOrderUpdate object (273), sort_order=None, will be changed to 2
LegalOrderUpdate object (274), sort_order=None, will be changed to 3
LegalOrderUpdate object (281), sort_order=None, will be changed to 0
LegalOrderUpdate object (286), sort_order=None, will be changed to 0
LegalOrderUpdate object (287), sort_order=None, will be changed to 0
LegalOrderUpdate object (253), sort_order=None, will be changed to 0
LegalOrderUpdate object (278), sort_order=None, will be changed to 0
LegalOrderUpdate object (292), sort_order=0, will be changed to 0
LegalOrderUpdate object (293), sort_order=1, will be changed to 1
LegalOrderUpdate object (303), sort_order=None, will be changed to 0
LegalOrderUpdate object (304), sort_order=None, will be changed to 1
LegalOrderUpdate object (305), sort_order=None, will be changed to 0
LegalOrderUpdate object (306), sort_order=None, will be changed to 1
LegalOrderUpdate object (307), sort_order=None, will be changed to 0
LegalOrderUpdate object (308), sort_order=None, will be changed to 1
LegalOrderUpdate object (282), sort_order=None, will be changed to 0
LegalOrderUpdate object (283), sort_order=None, will be changed to 1
LegalOrderUpdate object (284), sort_order=None, will be changed to 0
LegalOrderUpdate object (285), sort_order=None, will be changed to 1
LegalOrderUpdate object (275), sort_order=None, will be changed to 0
LegalOrderUpdate object (277), sort_order=None, will be changed to 0
LegalOrderUpdate object (276), sort_order=None, will be changed to 0
LegalOrderUpdate object (248), sort_order=None, will be changed to 0
LegalOrderUpdate object (249), sort_order=None, will be changed to 1
LegalOrderUpdate object (255), sort_order=None, will be changed to 0
LegalOrderUpdate object (256), sort_order=None, will be changed to 1
LegalOrderUpdate object (211), sort_order=0, will be changed to 0
LegalOrderUpdate object (212), sort_order=1, will be changed to 1
LegalOrderUpdate object (508), sort_order=2, will be changed to 2
LegalOrderUpdate object (509), sort_order=3, will be changed to 3
LegalOrderUpdate object (289), sort_order=None, will be changed to 0
LegalOrderUpdate object (218), sort_order=0, will be changed to 0
LegalOrderUpdate object (219), sort_order=1, will be changed to 1
LegalOrderUpdate object (290), sort_order=None, will be changed to 0
LegalOrderUpdate object (186), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (127)
LegalOrderUpdate object (209), sort_order=None, will be changed to 0
LegalOrderUpdate object (210), sort_order=None, will be changed to 1
LegalOrderUpdate object (168), sort_order=0, will be changed to 0
LegalOrderUpdate object (201), sort_order=None, will be changed to 0
LegalOrderUpdate object (202), sort_order=None, will be changed to 1
LegalOrderUpdate object (203), sort_order=None, will be changed to 0
LegalOrderUpdate object (204), sort_order=None, will be changed to 1
LegalOrderUpdate object (205), sort_order=None, will be changed to 0
LegalOrderUpdate object (206), sort_order=None, will be changed to 1
LegalOrderUpdate object (207), sort_order=None, will be changed to 0
LegalOrderUpdate object (208), sort_order=None, will be changed to 1
LegalOrderUpdate object (197), sort_order=None, will be changed to 0
LegalOrderUpdate object (198), sort_order=None, will be changed to 1
LegalOrderUpdate object (199), sort_order=None, will be changed to 0
LegalOrderUpdate object (200), sort_order=None, will be changed to 1
LegalOrderUpdate object (188), sort_order=None, will be changed to 0
LegalOrderUpdate object (294), sort_order=None, will be changed to 0
LegalOrderUpdate object (163), sort_order=None, will be changed to 0
LegalOrderUpdate object (301), sort_order=None, will be changed to 0
LegalOrderUpdate object (302), sort_order=None, will be changed to 1
LegalOrderUpdate object (520), sort_order=0, will be changed to 0
LegalOrderUpdate object (220), sort_order=1, will be changed to 1
LegalOrderUpdate object (189), sort_order=None, will be changed to 0
LegalOrderUpdate object (190), sort_order=None, will be changed to 1
LegalOrderUpdate object (193), sort_order=None, will be changed to 0
LegalOrderUpdate object (194), sort_order=None, will be changed to 1
LegalOrderUpdate object (311), sort_order=0, will be changed to 0
LegalOrderUpdate object (538), sort_order=1, will be changed to 1
LegalOrderUpdate object (312), sort_order=2, will be changed to 2
LegalOrderUpdate object (169), sort_order=None, will be changed to 0
LegalOrderUpdate object (170), sort_order=None, will be changed to 1
LegalOrderUpdate object (171), sort_order=2, will be changed to 2
LegalOrderUpdate object (172), sort_order=3, will be changed to 3
LegalOrderUpdate object (195), sort_order=None, will be changed to 0
LegalOrderUpdate object (196), sort_order=None, will be changed to 1
LegalOrderUpdate object (254), sort_order=None, will be changed to 0
LegalOrderUpdate object (257), sort_order=None, will be changed to 0
LegalOrderUpdate object (258), sort_order=None, will be changed to 1
LegalOrderUpdate object (184), sort_order=0, will be changed to 0
LegalOrderUpdate object (185), sort_order=1, will be changed to 1
LegalOrderUpdate object (377), sort_order=2, will be changed to 2
LegalOrderUpdate object (444), sort_order=3, will be changed to 3
LegalOrderUpdate object (167), sort_order=None, will be changed to 0
LegalOrderUpdate object (295), sort_order=None, will be changed to 0
LegalOrderUpdate object (296), sort_order=None, will be changed to 1
LegalOrderUpdate object (279), sort_order=None, will be changed to 0
LegalOrderUpdate object (309), sort_order=0, will be changed to 0
LegalOrderUpdate object (310), sort_order=1, will be changed to 1
LegalOrderUpdate object (417), sort_order=2, will be changed to 2
LegalOrderUpdate object (418), sort_order=3, will be changed to 3
LegalOrderUpdate object (419), sort_order=4, will be changed to 4
LegalOrderUpdate object (420), sort_order=5, will be changed to 5
LegalOrderUpdate object (544), sort_order=6, will be changed to 6
LegalOrderUpdate object (260), sort_order=None, will be changed to 0
LegalOrderUpdate object (154), sort_order=None, will be changed to 0
LegalOrderUpdate object (151), sort_order=None, will be changed to 0
LegalOrderUpdate object (297), sort_order=None, will be changed to 0
LegalOrderUpdate object (298), sort_order=None, will be changed to 1
LegalOrderUpdate object (162), sort_order=None, will be changed to 0
LegalOrderUpdate object (150), sort_order=0, will be changed to 0
LegalOrderUpdate object (555), sort_order=1, will be changed to 1
LegalOrderUpdate object (556), sort_order=2, will be changed to 2
Skipping legal order LegalOrder object (105)
LegalOrderUpdate object (436), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (118)
LegalOrderUpdate object (182), sort_order=0, will be changed to 0
LegalOrderUpdate object (183), sort_order=1, will be changed to 1
LegalOrderUpdate object (378), sort_order=2, will be changed to 2
LegalOrderUpdate object (445), sort_order=3, will be changed to 3
LegalOrderUpdate object (516), sort_order=0, will be changed to 0
LegalOrderUpdate object (245), sort_order=1, will be changed to 1
LegalOrderUpdate object (517), sort_order=2, will be changed to 2
LegalOrderUpdate object (518), sort_order=3, will be changed to 3
LegalOrderUpdate object (519), sort_order=4, will be changed to 4
LegalOrderUpdate object (291), sort_order=None, will be changed to 0
LegalOrderUpdate object (528), sort_order=0, will be changed to 0
LegalOrderUpdate object (161), sort_order=0, will be changed to 0
LegalOrderUpdate object (288), sort_order=None, will be changed to 0
LegalOrderUpdate object (177), sort_order=None, will be changed to 0
LegalOrderUpdate object (250), sort_order=0, will be changed to 0
LegalOrderUpdate object (480), sort_order=1, will be changed to 1
LegalOrderUpdate object (481), sort_order=2, will be changed to 2
LegalOrderUpdate object (482), sort_order=3, will be changed to 3
LegalOrderUpdate object (483), sort_order=4, will be changed to 4
LegalOrderUpdate object (325), sort_order=None, will be changed to 0
LegalOrderUpdate object (326), sort_order=None, will be changed to 1
LegalOrderUpdate object (327), sort_order=None, will be changed to 0
LegalOrderUpdate object (328), sort_order=None, will be changed to 1
LegalOrderUpdate object (329), sort_order=None, will be changed to 0
LegalOrderUpdate object (330), sort_order=None, will be changed to 1
LegalOrderUpdate object (331), sort_order=None, will be changed to 0
LegalOrderUpdate object (323), sort_order=None, will be changed to 0
LegalOrderUpdate object (388), sort_order=0, will be changed to 0
LegalOrderUpdate object (389), sort_order=1, will be changed to 1
LegalOrderUpdate object (457), sort_order=0, will be changed to 0
LegalOrderUpdate object (458), sort_order=1, will be changed to 1
LegalOrderUpdate object (459), sort_order=2, will be changed to 2
LegalOrderUpdate object (460), sort_order=3, will be changed to 3
LegalOrderUpdate object (461), sort_order=4, will be changed to 4
LegalOrderUpdate object (462), sort_order=5, will be changed to 5
LegalOrderUpdate object (463), sort_order=6, will be changed to 6
LegalOrderUpdate object (464), sort_order=7, will be changed to 7
LegalOrderUpdate object (465), sort_order=8, will be changed to 8
LegalOrderUpdate object (470), sort_order=9, will be changed to 9
LegalOrderUpdate object (390), sort_order=0, will be changed to 0
LegalOrderUpdate object (391), sort_order=1, will be changed to 1
LegalOrderUpdate object (382), sort_order=0, will be changed to 0
LegalOrderUpdate object (383), sort_order=1, will be changed to 1
LegalOrderUpdate object (19), sort_order=None, will be changed to 0
LegalOrderUpdate object (409), sort_order=0, will be changed to 0
LegalOrderUpdate object (421), sort_order=1, will be changed to 1
LegalOrderUpdate object (363), sort_order=0, will be changed to 0
LegalOrderUpdate object (426), sort_order=0, will be changed to 0
LegalOrderUpdate object (427), sort_order=1, will be changed to 1
LegalOrderUpdate object (280), sort_order=None, will be changed to 0
LegalOrderUpdate object (474), sort_order=0, will be changed to 0
LegalOrderUpdate object (475), sort_order=1, will be changed to 1
LegalOrderUpdate object (299), sort_order=None, will be changed to 0
LegalOrderUpdate object (300), sort_order=None, will be changed to 1
LegalOrderUpdate object (120), sort_order=None, will be changed to 0
LegalOrderUpdate object (121), sort_order=None, will be changed to 1
LegalOrderUpdate object (122), sort_order=None, will be changed to 2
LegalOrderUpdate object (123), sort_order=None, will be changed to 3
LegalOrderUpdate object (353), sort_order=0, will be changed to 0
LegalOrderUpdate object (359), sort_order=1, will be changed to 1
LegalOrderUpdate object (354), sort_order=0, will be changed to 0
LegalOrderUpdate object (360), sort_order=1, will be changed to 1
LegalOrderUpdate object (422), sort_order=2, will be changed to 2
LegalOrderUpdate object (332), sort_order=None, will be changed to 0
LegalOrderUpdate object (333), sort_order=None, will be changed to 1
LegalOrderUpdate object (349), sort_order=0, will be changed to 0
LegalOrderUpdate object (350), sort_order=0, will be changed to 0
LegalOrderUpdate object (351), sort_order=0, will be changed to 0
LegalOrderUpdate object (352), sort_order=0, will be changed to 0
LegalOrderUpdate object (347), sort_order=1, will be changed to 0
Skipping legal order LegalOrder object (221)
LegalOrderUpdate object (173), sort_order=0, will be changed to 0
LegalOrderUpdate object (174), sort_order=None, will be changed to 1
LegalOrderUpdate object (175), sort_order=2, will be changed to 2
LegalOrderUpdate object (176), sort_order=3, will be changed to 3
LegalOrderUpdate object (191), sort_order=None, will be changed to 0
LegalOrderUpdate object (192), sort_order=None, will be changed to 1
LegalOrderUpdate object (334), sort_order=None, will be changed to 0
LegalOrderUpdate object (335), sort_order=None, will be changed to 1
LegalOrderUpdate object (550), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (217)
LegalOrderUpdate object (416), sort_order=0, will be changed to 0
LegalOrderUpdate object (476), sort_order=1, will be changed to 1
LegalOrderUpdate object (477), sort_order=2, will be changed to 2
LegalOrderUpdate object (355), sort_order=0, will be changed to 0
LegalOrderUpdate object (361), sort_order=1, will be changed to 1
LegalOrderUpdate object (356), sort_order=0, will be changed to 0
LegalOrderUpdate object (362), sort_order=1, will be changed to 1
LegalOrderUpdate object (368), sort_order=0, will be changed to 0
LegalOrderUpdate object (369), sort_order=0, will be changed to 0
LegalOrderUpdate object (380), sort_order=0, will be changed to 0
LegalOrderUpdate object (381), sort_order=1, will be changed to 1
LegalOrderUpdate object (338), sort_order=0, will be changed to 0
LegalOrderUpdate object (339), sort_order=1, will be changed to 1
LegalOrderUpdate object (340), sort_order=2, will be changed to 2
LegalOrderUpdate object (341), sort_order=3, will be changed to 3
LegalOrderUpdate object (342), sort_order=4, will be changed to 4
LegalOrderUpdate object (400), sort_order=5, will be changed to 5
LegalOrderUpdate object (401), sort_order=6, will be changed to 6
LegalOrderUpdate object (407), sort_order=0, will be changed to 0
LegalOrderUpdate object (408), sort_order=1, will be changed to 1
LegalOrderUpdate object (313), sort_order=0, will be changed to 0
LegalOrderUpdate object (314), sort_order=1, will be changed to 1
LegalOrderUpdate object (315), sort_order=2, will be changed to 2
LegalOrderUpdate object (316), sort_order=3, will be changed to 3
LegalOrderUpdate object (373), sort_order=0, will be changed to 0
LegalOrderUpdate object (374), sort_order=1, will be changed to 1
LegalOrderUpdate object (375), sort_order=2, will be changed to 2
LegalOrderUpdate object (376), sort_order=3, will be changed to 3
LegalOrderUpdate object (379), sort_order=0, will be changed to 0
LegalOrderUpdate object (402), sort_order=1, will be changed to 1
Skipping legal order LegalOrder object (219)
LegalOrderUpdate object (322), sort_order=None, will be changed to 0
LegalOrderUpdate object (403), sort_order=0, will be changed to 0
LegalOrderUpdate object (404), sort_order=1, will be changed to 1
LegalOrderUpdate object (384), sort_order=0, will be changed to 0
LegalOrderUpdate object (385), sort_order=1, will be changed to 1
LegalOrderUpdate object (386), sort_order=0, will be changed to 0
LegalOrderUpdate object (387), sort_order=1, will be changed to 1
LegalOrderUpdate object (357), sort_order=0, will be changed to 0
LegalOrderUpdate object (392), sort_order=0, will be changed to 0
LegalOrderUpdate object (393), sort_order=1, will be changed to 1
LegalOrderUpdate object (394), sort_order=0, will be changed to 0
LegalOrderUpdate object (395), sort_order=1, will be changed to 1
LegalOrderUpdate object (396), sort_order=0, will be changed to 0
LegalOrderUpdate object (397), sort_order=1, will be changed to 1
LegalOrderUpdate object (398), sort_order=0, will be changed to 0
LegalOrderUpdate object (399), sort_order=1, will be changed to 1
LegalOrderUpdate object (370), sort_order=0, will be changed to 0
LegalOrderUpdate object (371), sort_order=1, will be changed to 1
LegalOrderUpdate object (90), sort_order=None, will be changed to 0
LegalOrderUpdate object (91), sort_order=None, will be changed to 1
LegalOrderUpdate object (92), sort_order=None, will be changed to 2
LegalOrderUpdate object (336), sort_order=None, will be changed to 0
LegalOrderUpdate object (337), sort_order=None, will be changed to 1
LegalOrderUpdate object (405), sort_order=0, will be changed to 0
LegalOrderUpdate object (406), sort_order=0, will be changed to 0
LegalOrderUpdate object (411), sort_order=0, will be changed to 0
LegalOrderUpdate object (412), sort_order=1, will be changed to 1
LegalOrderUpdate object (413), sort_order=2, will be changed to 2
Skipping legal order LegalOrder object (214)
Skipping legal order LegalOrder object (218)
LegalOrderUpdate object (324), sort_order=None, will be changed to 0
LegalOrderUpdate object (423), sort_order=0, will be changed to 0
LegalOrderUpdate object (424), sort_order=1, will be changed to 1
LegalOrderUpdate object (365), sort_order=0, will be changed to 0
LegalOrderUpdate object (367), sort_order=1, will be changed to 1
LegalOrderUpdate object (425), sort_order=0, will be changed to 0
LegalOrderUpdate object (15), sort_order=None, will be changed to 0
LegalOrderUpdate object (16), sort_order=None, will be changed to 1
LegalOrderUpdate object (317), sort_order=None, will be changed to 0
LegalOrderUpdate object (318), sort_order=None, will be changed to 1
LegalOrderUpdate object (319), sort_order=None, will be changed to 2
LegalOrderUpdate object (320), sort_order=None, will be changed to 3
LegalOrderUpdate object (17), sort_order=None, will be changed to 0
LegalOrderUpdate object (18), sort_order=None, will be changed to 1
LegalOrderUpdate object (137), sort_order=None, will be changed to 0
LegalOrderUpdate object (138), sort_order=None, will be changed to 1
LegalOrderUpdate object (139), sort_order=None, will be changed to 0
LegalOrderUpdate object (140), sort_order=None, will be changed to 1
LegalOrderUpdate object (410), sort_order=0, will be changed to 0
LegalOrderUpdate object (433), sort_order=1, will be changed to 1
Skipping legal order LegalOrder object (285)
LegalOrderUpdate object (439), sort_order=0, will be changed to 0
LegalOrderUpdate object (440), sort_order=0, will be changed to 0
LegalOrderUpdate object (432), sort_order=0, will be changed to 0
LegalOrderUpdate object (540), sort_order=1, will be changed to 1
LegalOrderUpdate object (343), sort_order=0, will be changed to 0
LegalOrderUpdate object (415), sort_order=0, will be changed to 0
LegalOrderUpdate object (478), sort_order=1, will be changed to 1
LegalOrderUpdate object (479), sort_order=2, will be changed to 2
LegalOrderUpdate object (372), sort_order=0, will be changed to 0
Skipping legal order LegalOrder object (241)
LegalOrderUpdate object (498), sort_order=0, will be changed to 0
LegalOrderUpdate object (499), sort_order=1, will be changed to 1
LegalOrderUpdate object (500), sort_order=2, will be changed to 2
LegalOrderUpdate object (501), sort_order=3, will be changed to 3
LegalOrderUpdate object (502), sort_order=4, will be changed to 4
LegalOrderUpdate object (484), sort_order=0, will be changed to 0
LegalOrderUpdate object (485), sort_order=1, will be changed to 1
LegalOrderUpdate object (486), sort_order=2, will be changed to 2
LegalOrderUpdate object (487), sort_order=3, will be changed to 3
LegalOrderUpdate object (488), sort_order=4, will be changed to 4
LegalOrderUpdate object (489), sort_order=5, will be changed to 5
LegalOrderUpdate object (490), sort_order=6, will be changed to 6
LegalOrderUpdate object (491), sort_order=0, will be changed to 0
LegalOrderUpdate object (492), sort_order=1, will be changed to 1
LegalOrderUpdate object (493), sort_order=2, will be changed to 2
LegalOrderUpdate object (494), sort_order=3, will be changed to 3
LegalOrderUpdate object (495), sort_order=4, will be changed to 4
LegalOrderUpdate object (496), sort_order=5, will be changed to 5
LegalOrderUpdate object (497), sort_order=6, will be changed to 6
LegalOrderUpdate object (364), sort_order=0, will be changed to 0
LegalOrderUpdate object (366), sort_order=1, will be changed to 1
Skipping legal order LegalOrder object (289)
LegalOrderUpdate object (510), sort_order=0, will be changed to 0
LegalOrderUpdate object (213), sort_order=1, will be changed to 1
LegalOrderUpdate object (511), sort_order=2, will be changed to 2
LegalOrderUpdate object (512), sort_order=3, will be changed to 3
Skipping legal order LegalOrder object (142)
Skipping legal order LegalOrder object (286)
Skipping legal order LegalOrder object (287)
Skipping legal order LegalOrder object (288)
LegalOrderUpdate object (535), sort_order=0, will be changed to 0
LegalOrderUpdate object (539), sort_order=0, will be changed to 0
LegalOrderUpdate object (541), sort_order=0, will be changed to 0
LegalOrderUpdate object (542), sort_order=1, will be changed to 1
LegalOrderUpdate object (549), sort_order=0, will be changed to 0
LegalOrderUpdate object (358), sort_order=0, will be changed to 0
LegalOrderUpdate object (551), sort_order=0, will be changed to 0
LegalOrderUpdate object (552), sort_order=1, will be changed to 1
LegalOrderUpdate object (545), sort_order=0, will be changed to 0
LegalOrderUpdate object (546), sort_order=1, will be changed to 1
LegalOrderUpdate object (553), sort_order=2, will be changed to 2
LegalOrderUpdate object (547), sort_order=0, will be changed to 0
LegalOrderUpdate object (548), sort_order=1, will be changed to 1
LegalOrderUpdate object (554), sort_order=2, will be changed to 2
LegalOrderUpdate object (557), sort_order=0, will be changed to 0
LegalOrderUpdate object (558), sort_order=0, will be changed to 0
LegalOrderUpdate object (559), sort_order=1, will be changed to 1
LegalOrderUpdate object (560), sort_order=2, will be changed to 2
LegalOrderUpdate object (561), sort_order=0, will be changed to 0
LegalOrderUpdate object (562), sort_order=1, will be changed to 1
LegalOrderUpdate object (563), sort_order=2, will be changed to 2
LegalOrderUpdate object (566), sort_order=0, will be changed to 0
LegalOrderUpdate object (567), sort_order=1, will be changed to 1
LegalOrderUpdate object (568), sort_order=2, will be changed to 2
LegalOrderUpdate object (569), sort_order=3, will be changed to 3
LegalOrderUpdate object (570), sort_order=4, will be changed to 4
LegalOrderUpdate object (571), sort_order=5, will be changed to 5
LegalOrderUpdate object (564), sort_order=0, will be changed to 0
LegalOrderUpdate object (565), sort_order=1, will be changed to 1
LegalOrderUpdate object (574), sort_order=0, will be changed to 0
LegalOrderUpdate object (576), sort_order=0, will be changed to 0
LegalOrderUpdate object (573), sort_order=0, will be changed to 0
LegalOrderUpdate object (575), sort_order=0, will be changed to 0
LegalOrderUpdate object (578), sort_order=1, will be changed to 0
Skipping legal order LegalOrder object (308)
LegalOrderUpdate object (580), sort_order=1, will be changed to 0
Skipping legal order LegalOrder object (309)
LegalOrderUpdate object (581), sort_order=0, will be changed to 0
LegalOrderUpdate object (582), sort_order=1, will be changed to 1
LegalOrderUpdate object (583), sort_order=0, will be changed to 0
LegalOrderUpdate object (584), sort_order=1, will be changed to 1
LegalOrderUpdate object (585), sort_order=2, will be changed to 2
LegalOrderUpdate object (586), sort_order=3, will be changed to 3
LegalOrderUpdate object (321), sort_order=None, will be changed to 0

@chigby
Copy link
Contributor

chigby commented Feb 13, 2025

I think this is looking really good! Thank you

@harrislapiroff
Copy link
Contributor

@stephaniesugars @sophieongithub We think this is completed—can one or both of you review the accuracy of search now and let us know if you agree? If so, we can close this.

@sophieongithub
Copy link

hi @harrislapiroff, I just tested filter searches for unknown, partially upheld, dropped, upheld, ignored, and carried out and they all seem to be working correctly - thank you!

@harrislapiroff
Copy link
Contributor

Closing as completed. Thanks all!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants