'Override read_group to always display all states.'

@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):

    if (groupby and (groupby[0] == 'stage_id')):
        states_read = self.env['mail.mass_mailing.stage'].search_read([], ['name'])
        states = [(state['id'], state['name']) for state in states_read]
        read_group_all_states = [{'__context': {'group_by': groupby[1:]}, '__domain': (domain + [('stage_id', '=', state_value)]), 'stage_id': state_value, 'state_count': 0} for (state_value, state_name) in states]
        read_group_res = super(MassMailingCampaign, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby)
        result = []
        for (state_value, state_name) in states:
            res = filter((lambda x: (x['stage_id'] == (state_value, state_name))), read_group_res)
            if (not res):
                res = filter((lambda x: (x['stage_id'] == state_value)), read_group_all_states)
            res[0]['stage_id'] = [state_value, state_name]
            result.append(res[0])
        return result
    else:
        return super(MassMailingCampaign, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby)
