def form_module_handlers(page, request, context, *args, **kwargs): """ Hook function that iterates over every Streamfield's blocks on a page and sets the context for any form modules. """ form_modules = {} streamfields = util.get_streamfields(page) for fieldname, blocks in streamfields.items(): for index, child in enumerate(blocks): if hasattr(child.block, 'get_result'): if fieldname not in form_modules: form_modules[fieldname] = {} if not request.method == 'POST': is_submitted = child.block.is_submitted( request, fieldname, index ) module_context = child.block.get_result( page, request, child.value, is_submitted ) form_modules[fieldname].update({index: module_context}) if form_modules: context['form_modules'] = form_modules
def get_streamfields_returns_dict_of_streamfields(self, mock_streamvalueclass, mock_vars, mock_isinstance): page = mock.Mock() mock_vars.items.return_value = {'key': 'value'} mock_isinstance.return_value = True result = util.get_streamfields(page) self.assertEqual(result, {'key': 'value'})