Release of #1700. The following lines need to be added to posthog/celery.py to release PR. Deliberately excluded to manually test the PR without sending everyone an email.

```python
# inside setup_periodic_tasks
sender.add_periodic_task(
    crontab(day_of_week="mon"), task_weekly_email_report.s(),
)

# bottom of file
@app.task
def task_weekly_email_report(self):
    from posthog.tasks.email import send_weekly_email_report

    send_weekly_email_report()
```
posthog/api/test/test_person.py
import json
from django.utils import timezone
from rest_framework import status
from posthog.models import Cohort, Event, Organization, Person, Team
from posthog.tasks.process_event import process_event
from .base import APIBaseTest
class TestPerson(APIBaseTest):
    def test_search(self) -> None:
        Person.objects.create(
            team=self.team, distinct_ids=["distinct_id"], properties={"email": "someone@gmail.com"},
        )
        Person.objects.create(
            team=self.team, distinct_ids=["distinct_id_2"], properties={"email": "another@gmail.com"},
        )
        Person.objects.create(team=self.team, distinct_ids=["distinct_id_3"], properties={})
        response = self.client.get("/api/person/?search=has:email")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 2)
        response = self.client.get("/api/person/?search=another@gm")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 1)
        response = self.client.get("/api/person/?search=_id_3")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 1)
    def test_properties(self) -> None: