def unread_for_user(self, user): """ Returns all unread logs for user. """ jobs = user.get_profile().job_set.all() entries = self.filter(job__in=jobs, read=False, log_type__in=user_visible_types()).values('id') res = list(entries) entries.update(read=True) return res
def recent_for_job(self, job=None, num=4, user_visible=True): """ Returns `num` recent logs for given job. :param job: job logs should be returned for. If `None`, display all. :param num: up to how many results should be returned. 0 means all. :param user_visible: whether return only those visible for users """ if job: logs = self.filter(job=job).order_by('-id') else: logs = self.all().order_by('-id') recent_list = logs if user_visible: recent_list = recent_list.filter(log_type__in=user_visible_types()) if num: return recent_list[:num] else: return recent_list