def METHOD_NAME(self, unread_only: bool, page=1, per_page=10) -> ReturnRenderWith:
    pagination = NotificationRecipient.web_notifications_for(
        current_auth.user, unread_only
    ).paginate(page=page, per_page=per_page, max_per_page=100)
    results = {
        'unread_only': unread_only,
        'show_transport_alert': not current_auth.user.has_transport_sms(),
        'notifications': [
            {
                'notification': nr.current_access(datasets=('primary', 'related')),
                'html': nr.views.render.web(),
                'document_type': nr.notification.document_type,
                'document': nr.document.current_access(
                    datasets=('primary', 'related')
                )
                if nr.document
                else None,
                'fragment_type': nr.notification.fragment_type,
                'fragment': nr.fragment.current_access(
                    datasets=('primary', 'related')
                )
                if nr.fragment
                else None,
            }
            for nr in pagination.items
            if nr.is_not_deleted(revoke=True)
        ],
        'has_next': pagination.has_next,
        'has_prev': pagination.has_prev,
        'page': pagination.page,
        'per_page': pagination.per_page,
        'pages': pagination.pages,
        'next_num': pagination.next_num,
        'prev_num': pagination.prev_num,
        'count': pagination.total,
    }
    db.session.commit()
    return results