

@classmethod
def get_recent_notifications(cls, user_id):
    "Gets a list of recent notifications to show on this user's\n        dashboard.\n\n        Returns a 2-tuple. The first element is a float representing the number\n        of milliseconds since the Epoch when the job was queued. The second\n        element is a list of recent updates to explorations and feedback\n        threads; each entry is a dict with keys 'type', 'activity_id',\n        'activity_title', 'last_updated_ms', 'author_id' and 'subject'. Here,\n        'type' is either feconf.UPDATE_TYPE_EXPLORATION_COMMIT or\n        feconf.UPDATE_TYPE_FEEDBACK_MESSAGE, 'activity_id' is the id of the\n        exploration being committed to or to which the feedback thread belongs,\n        and 'activity_title' is the corresponding title.\n        "
    user_model = user_models.UserRecentChangesBatchModel.get(user_id, strict=False)
    return ((user_model.job_queued_msec if user_id else None), (user_model.output if user_model else []))

dataset/ETHPy150Open oppia/oppia/core/domain/user_jobs_continuous.py DashboardRecentUpdatesAggregator.get_recent_notifications/VarMisuse@39/334 `user_model`->`user_id`