'Should return a dictionary of keys needed to render the template for the input type.
(Separate from get_html to faciliate testing of logic separately from the rendering)
The default implementation gets the following rendering context: basic things like value, id, status, and msg,
as well as everything in self.loaded_attributes, and everything returned by self._extra_context().
This means that input types that only parse attributes and pass them to the template get everything they need,
and don\'t need to override this method.'

def _get_render_context(self):

    context = {'id': self.input_id, 'value': self.value, 'status': Status(self.status, self.capa_system.i18n.ugettext), 'msg': self.msg, 'response_data': self.response_data, 'STATIC_URL': self.capa_system.STATIC_URL, 'describedby_html': HTML('')}
    descriptions = list()
    if (('trailing_text' in self.loaded_attributes) and self.loaded_attributes['trailing_text']):
        trailing_text_id = ('trailing_text_' + self.input_id)
        descriptions.append(trailing_text_id)
    status_id = ('status_' + self.input_id)
    descriptions.append(status_id)
    descriptions.extend(self.response_data.get('descriptions', {}).keys())
    description_ids = '    '.join(descriptions)
    context.update({'describedby_html': HTML('aria-describedby="{}"').format(description_ids)})
    context.update(((a, v) for (a, v) in self.loaded_attributes.iteritems() if (a in self.to_render)))
    context.update(self._extra_context())
    if self.answervariable:
        context.update({'answervariable': self.answervariable})
    return context
