def METHOD_NAME(self, progress_list, key="P"):
    def _owed_cell(progress):
        owed = progress.num_unsubmitted()
        cell = {
            'text': owed,
            'sort': owed,
            'class': 'text-danger strong' if owed > 0 else 'text-success',
        }
        return cell
    owed_header = {
        'key': 'owed',
        'icon': 'slash',
        'tooltip': _("Unsubmitted feedback ballots"),
    }
    owed_data = [_owed_cell(progress) for progress in progress_list]
    self.add_column(owed_header, owed_data)
    if self._show_record_links:
        def _record_link(progress):
            if isinstance(progress, FeedbackProgressForTeam):
                url_name = 'participants-team-record' if self.admin else 'participants-public-team-record'
                pk = progress.team.pk
            elif isinstance(progress, FeedbackProgressForAdjudicator):
                url_name = 'participants-adjudicator-record' if self.admin else 'participants-public-adjudicator-record'
                pk = progress.adjudicator.pk
            else:
                logger.error("Unrecognised progress type: %s", progress.__class__.__name__)
                return ''
            return reverse_tournament(url_name, self.tournament, kwargs={'pk': pk})
        owed_link_header = {
            'key': 'submitted',
            'icon': 'check',
        }
        owed_link_data = [{
            'text': _("View Missing Feedback"),
            'link': _record_link(progress),
        } for progress in progress_list]
        self.add_column(owed_link_header, owed_link_data)