diff --git a/app/models.py b/app/models.py index 08a9e9ad6..d447505b2 100644 --- a/app/models.py +++ b/app/models.py @@ -2123,7 +2123,8 @@ class ServiceContactList(db.Model): updated_at = db.Column(db.DateTime, nullable=True, onupdate=datetime.datetime.utcnow) archived = db.Column(db.Boolean, nullable=False, default=False) - def get_job_count(self): + @property + def job_count(self): today = datetime.datetime.utcnow().date() return Job.query.filter( Job.contact_list_id == self.id, @@ -2137,13 +2138,20 @@ class ServiceContactList(db.Model): ) ).count() + @property + def has_jobs(self): + return bool(Job.query.filter( + Job.contact_list_id == self.id, + ).first()) + def serialize(self): created_at_in_bst = convert_utc_to_bst(self.created_at) contact_list = { "id": str(self.id), "original_file_name": self.original_file_name, "row_count": self.row_count, - "job_count": self.get_job_count(), + "recent_job_count": self.job_count, + "has_jobs": self.has_jobs, "template_type": self.template_type, "service_id": str(self.service_id), "created_by": self.created_by.name, diff --git a/tests/app/service/test_service_contact_list_rest.py b/tests/app/service/test_service_contact_list_rest.py index 3ce45755d..82a1fc1cb 100644 --- a/tests/app/service/test_service_contact_list_rest.py +++ b/tests/app/service/test_service_contact_list_rest.py @@ -69,7 +69,7 @@ def test_get_contact_list(admin_request, notify_db_session): assert len(response) == 1 assert response[0] == contact_list.serialize() - assert response[0]['job_count'] == 0 + assert response[0]['recent_job_count'] == 0 @pytest.mark.parametrize('days_of_email_retention, expected_job_count', ( @@ -107,10 +107,12 @@ def test_get_contact_list_counts_jobs( assert len(response) == 2 assert response[0]['id'] == str(contact_list_2.id) - assert response[0]['job_count'] == expected_job_count + assert response[0]['recent_job_count'] == expected_job_count + assert response[0]['has_jobs'] is True assert response[1]['id'] == str(contact_list_1.id) - assert response[1]['job_count'] == 0 + assert response[1]['recent_job_count'] == 0 + assert response[1]['has_jobs'] is False def test_get_contact_list_returns_for_service(admin_request, notify_db_session):