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:
10
app.py
10
app.py
@@ -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 @)
|
# 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 '@' 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
|
# 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)
|
cnt = int(projects_ref.count().get()[0][0].value)
|
||||||
projects = []
|
projects = []
|
||||||
for doc in projects_ref.order_by("matter_description").limit(per_page).offset(offset).stream():
|
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
|
domain_search = domain_search[1:] # Remove the @ sign
|
||||||
|
|
||||||
# Filter by domain match in viewing_emails
|
# 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)
|
print("HERE domain", domain_search)
|
||||||
cnt = int(projects_ref.count().get()[0][0].value)
|
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)
|
return (projects, cnt)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
projects_ref = db.collection("projects")
|
projects_ref = db.collection("projects").where("is_archived", "==", False)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# For non-admin users, check if they have domain email or specific case email
|
# 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:
|
if case_domain_email:
|
||||||
# Use exact match on viewing_domains field
|
# Use exact match on viewing_domains field
|
||||||
domain_lower = case_domain_email.lower()
|
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:
|
elif case_email:
|
||||||
# Use the original logic for specific case email match
|
# 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:
|
else:
|
||||||
return ([], 0)
|
return ([], 0)
|
||||||
|
|
||||||
|
|||||||
@@ -73,13 +73,13 @@ def query_projects_for_user(
|
|||||||
domain_lower = filter_domain.lower()
|
domain_lower = filter_domain.lower()
|
||||||
projects_ref = db.collection("projects").where(
|
projects_ref = db.collection("projects").where(
|
||||||
"viewing_domains", "array_contains", domain_lower
|
"viewing_domains", "array_contains", domain_lower
|
||||||
)
|
).where("is_archived", "==", False)
|
||||||
else:
|
else:
|
||||||
# Email-based search
|
# Email-based search
|
||||||
email_lower = filter_email.lower()
|
email_lower = filter_email.lower()
|
||||||
projects_ref = db.collection("projects").where(
|
projects_ref = db.collection("projects").where(
|
||||||
"viewing_emails", "array_contains", email_lower
|
"viewing_emails", "array_contains", email_lower
|
||||||
)
|
).where("is_archived", "==", False)
|
||||||
|
|
||||||
# Get total count
|
# Get total count
|
||||||
total_count = int(projects_ref.count().get()[0][0].value)
|
total_count = int(projects_ref.count().get()[0][0].value)
|
||||||
|
|||||||
Reference in New Issue
Block a user