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
response = self.client.get("/api/person")  
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 3)
        response_all = self.client.get("/api/person/?category=all")
        self.assertEqual(response_all.status_code, status.HTTP_200_OK)
        self.assertListEqual(response.json()["results"], response_all.json()["results"])
        
        process_event(
            person_identified_using_event.distinct_ids[0],
            "",
            "",
            {"event": "$identify"},
            self.team.pk,
            timezone.now().isoformat(),
            timezone.now().isoformat(),
        )
        self.assertTrue(Person.objects.get(team_id=self.team.id, persondistinctid__distinct_id="klm").is_identified)
        
        response = self.client.get("/api/person/?category=anonymous")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 1)
        self.assertEqual(response.json()["results"][0]["id"], person_anonymous.id)
        
        response = self.client.get("/api/person/?category=identified")
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.json()["results"]), 2)
        self.assertEqual(response.json()["results"][0]["id"], person_identified_using_event.id)
        self.assertEqual(response.json()["results"][1]["id"], person_identified_already.id)
    def test_delete_person(self):