-
Notifications
You must be signed in to change notification settings - Fork 4
Code snippets
Atul Varma edited this page Dec 6, 2019
·
12 revisions
This page contains some code snippets that might be useful for one-off use. Since they're not part of the primary codebase, of course, they may not work anymore. Please feel free to delete or update them if that's the case.
- Migrating a custom field from RapidPro to a Django model - See the comment in #925.
- Finding users dropped by follow-up campaigns - See #919.
- Determining when a RapidPro contact was added to a contact group - Work on this was done in #902 but the code was never merged because it wasn't needed more than once.
To find users in a portfolio that's rooted in a BBL (using Who Owns What's algorithm), see #944.
#401 contained a snippet we can run when we add a new derived data field for onboarding:
import os
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
import django
django.setup()
from onboarding.models import OnboardingInfo
for info in OnboardingInfo.objects.filter(pad_bbl=''):
print(f"Updating address metadata for {info.user}.")
info.save()
SELECT onb.user_id
FROM onboarding_onboardinginfo as onb
WHERE onb.lease_type = 'NYCHA' AND onb.pad_bbl <> '' AND onb.pad_bbl NOT IN (
SELECT pad_bbl from nycha_nychaproperty
)
Conversely, here's a query for users who didn't self-report as NYCHA but are actually in a NYCHA BBL:
SELECT onb.user_id, onb.lease_type
FROM onboarding_onboardinginfo as onb
WHERE onb.lease_type <> 'NYCHA' AND onb.pad_bbl <> '' AND onb.pad_bbl IN (
SELECT pad_bbl from nycha_nychaproperty
)
SELECT u.username, u.last_login, lr.created_at
FROM users_justfixuser AS u, loc_letterrequest AS lr
WHERE u.id = lr.user_id AND u.last_login > lr.created_at;