@property
    def paginated_list(self):
        invitations = SelfRegistrationInvitation.objects.filter(
            domain=self.domain
        ).order_by('-created_date')
        doc_info_cache = {}
        for invitation in invitations[self.skip:self.skip + self.limit]:
            if invitation.app_id in doc_info_cache:
                doc_info = doc_info_cache[invitation.app_id]
            else:
                doc_info = get_doc_info_by_id(self.domain, invitation.app_id)
                doc_info_cache[invitation.app_id] = doc_info
            yield {
                'itemData': {
                    'id': invitation.pk,
                    'created_date': (ServerTime(invitation.created_date)
                                     .user_time(self.project_timezone)
                                     .done()
                                     .strftime(SERVER_DATETIME_FORMAT)),
                    'phone_number': invitation.phone_number % '+%s',
                    'status': self.format_status(invitation),
                    'expiration_date': invitation.expiration_date.strftime(SERVER_DATE_FORMAT),
                    'app_name': doc_info.display,
                    'app_link': doc_info.link,
                    'phone_type': dict(SelfRegistrationInvitation.PHONE_TYPE_CHOICES).get(invitation.phone_type),
                },
                'template': 'invitations-template',
            }
dataset/ETHPy150Open dimagi/commcare-hq/corehq/apps/sms/views.py/ManageRegistrationInvitationsView.paginated_list/swapped operands of `%`