def _task_matches_python_parts_of_filter(self, task: Task) -> bool: """ Does the task pass the Python parts of the filter? Only applicable to the direct (not "via index") route. """ assert not self._via_index # "Is task complete" filter if self._filter.complete_only: if not task.is_complete(): return False return True
def make_from_task( cls, task: Task, indexed_at_utc: Pendulum ) -> "TaskIndexEntry": """ Returns a task index entry for the specified :class:`camcops_server.cc_modules.cc_task.Task`. The returned index requires inserting into a database session. Args: task: a :class:`camcops_server.cc_modules.cc_task.Task` indexed_at_utc: current time in UTC """ assert indexed_at_utc is not None, "Missing indexed_at_utc" index = cls() index.indexed_at_utc = indexed_at_utc index.task_table_name = task.tablename index.task_pk = task.pk patient = task.patient index.patient_pk = patient.pk if patient else None index.device_id = task.device_id index.era = task.era index.when_created_utc = task.get_creation_datetime_utc() index.when_created_iso = task.when_created # noinspection PyProtectedMember index.when_added_batch_utc = task._when_added_batch_utc index.adding_user_id = task.get_adding_user_id() index.group_id = task.group_id index.task_is_complete = task.is_complete() return index