feat: exclude archived projects from dashboard and query results

Add is_archived == False filter to all project queries so archived cases are hidden from users.
This commit is contained in:
2026-05-12 23:39:49 -07:00
parent 3ed260ef23
commit c62de705de
2 changed files with 7 additions and 7 deletions

10
app.py
View File

@@ -55,7 +55,7 @@ def projects_for(profile, case_email_match, per_page, offset):
# Check if case_email_match is a valid email address (contains @)
if '@' in case_email_match_lower and not case_email_match_lower.startswith('@'):
# If it's a complete email address, filter by exact match in viewing_emails
projects_ref = db.collection("projects").where("viewing_emails", "array_contains", case_email_match_lower)
projects_ref = db.collection("projects").where("viewing_emails", "array_contains", case_email_match_lower).where("is_archived", "==", False)
cnt = int(projects_ref.count().get()[0][0].value)
projects = []
for doc in projects_ref.order_by("matter_description").limit(per_page).offset(offset).stream():
@@ -69,7 +69,7 @@ def projects_for(profile, case_email_match, per_page, offset):
domain_search = domain_search[1:] # Remove the @ sign
# Filter by domain match in viewing_emails
projects_ref = db.collection("projects").where("viewing_domains", "array_contains", domain_search)
projects_ref = db.collection("projects").where("viewing_domains", "array_contains", domain_search).where("is_archived", "==", False)
print("HERE domain", domain_search)
cnt = int(projects_ref.count().get()[0][0].value)
@@ -79,7 +79,7 @@ def projects_for(profile, case_email_match, per_page, offset):
return (projects, cnt)
else:
projects_ref = db.collection("projects")
projects_ref = db.collection("projects").where("is_archived", "==", False)
else:
# For non-admin users, check if they have domain email or specific case email
@@ -89,10 +89,10 @@ def projects_for(profile, case_email_match, per_page, offset):
if case_domain_email:
# Use exact match on viewing_domains field
domain_lower = case_domain_email.lower()
projects_ref = db.collection("projects").where("viewing_domains", "array_contains", domain_lower)
projects_ref = db.collection("projects").where("viewing_domains", "array_contains", domain_lower).where("is_archived", "==", False)
elif case_email:
# Use the original logic for specific case email match
projects_ref = db.collection("projects").where("viewing_emails", "array_contains", case_email.lower())
projects_ref = db.collection("projects").where("viewing_emails", "array_contains", case_email.lower()).where("is_archived", "==", False)
else:
return ([], 0)

View File

@@ -73,13 +73,13 @@ def query_projects_for_user(
domain_lower = filter_domain.lower()
projects_ref = db.collection("projects").where(
"viewing_domains", "array_contains", domain_lower
)
).where("is_archived", "==", False)
else:
# Email-based search
email_lower = filter_email.lower()
projects_ref = db.collection("projects").where(
"viewing_emails", "array_contains", email_lower
)
).where("is_archived", "==", False)
# Get total count
total_count = int(projects_ref.count().get()[0][0].value)