Error message

  • User error: "id" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "name" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "picture" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "url" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "id" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "name" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "picture" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • User error: "url" is an invalid render array key in Drupal\Core\Render\Element::children() (line 98 of core/lib/Drupal/Core/Render/Element.php).
    Drupal\Core\Render\Element::children(Array, 1) (Line: 451)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 114)
    __TwigTemplate_f8e413589152ea1b4160b5288cda03a3->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/node.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 66)
    __TwigTemplate_0e86bda84fcd4d62e42faf37f2598358->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view-unformatted.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view_unformatted', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array) (Line: 475)
    Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 85)
    __TwigTemplate_049754c1d7194613fb1d4b831df0c502->doDisplay(Array, Array) (Line: 394)
    Twig\Template->displayWithErrorHandling(Array, Array) (Line: 367)
    Twig\Template->display(Array) (Line: 379)
    Twig\Template->render(Array) (Line: 38)
    Twig\TemplateWrapper->render(Array) (Line: 39)
    twig_render_template('themes/custom/urbact/templates/views/views-view.html.twig', Array) (Line: 348)
    Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 480)
    Drupal\Core\Render\Renderer->doRender(Array) (Line: 493)
    Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 240)
    Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
    Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 627)
    Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
    Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
    Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
    Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
    call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
    Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
    Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
    Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
    Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
    Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
    Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 191)
    Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
    Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
    Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
    Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
    Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 49)
    Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object, 1, 1) (Line: 51)
    Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
    Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
    
  • Liège makes purchasing a key ingredient of a local and sustainable food ecosystem

    Copy linkFacebookXLinkedInEmail
    12/04/2024

    Liège brings public procurement into the mix for a more local, seasonal and sustainable food system.

    Articles
    More sustainable and healthy meal at the canteen (photo credit: MAdil).

    Network
    From urbact
    On

    Going from 0% to 70% ‘sustainable food’¹ in three years, and more than 50% local: “We're not out of work!” says Davide Arcadipane, from Intercommunale de Soins Spécialisés de Liège (ISoSL). ISoSL is the inter-municipal association providing 4,000 meals per day to more than half of the elementary school canteens in Liège, Belgium. 

    Since the launch of the URBACT BioCanteens #2 Transfer Network (2021-2022), ISoSL has undertaken a 360° transformation of its practices: adapting menus and integrating organic, local, healthy, fresh and seasonal products, setting up a working dynamic between the cooks and the city’s schools, measuring food waste, developing a mobile meal-ordering application to alleviate administrative work for schools and provide cooks with accurate order numbers, organising visits to producers with the cooks, the purchasing department and the dieticians, modifying six out of nine public food contracts for schools and nurseries, with the objective of 100% local, organic food by 2024

    All of these transformations put together have culminated in a profound change in the ISoSL system. In anticipation of the next EU City Lab, which will take place in Liège, this article explores the city’s integrated food system and, in particular, the role of public procurement in combatting food waste.

     

    A strategy for an integrated food system

     

    At the beginning of 2021, ISoSL decided to take a systemic approach to its collective catering, encompassing four main areas of work: purchasing policy, production management, waste reduction and awareness of sustainable food. 

    A lot more could be written on each aspect of this approach, and the Liège food ecosystem as a whole. For the purpose of this article, it is worth examining a few prompts for the strategy: How can the city change the way it buys so that sustainable products enter the kitchens? What constitutes a purchasing strategy that is consistent with the values of sustainable food? How can ISoSL’s purchasing power be leveraged to invest in local, sustainable and resilient food systems?

    ISoSL inter-municipal association central kitchen preparing 12,000 meals per day (Photo credit, Strategic Design Scenarios)

    ISoSL inter-municipal association central kitchen preparing 12,000 meals per day (Photo credit, Strategic Design Scenarios).

     

    Revolutioning food procurement processes

     

    Agricultural issues are not always well understood by those who are not involved in the sector. That's why ISoSL systematically visits producers and farms when analysing offers. “We adapt our needs to what the region has to offer, rather than the other way round”. For Davide Arcadipane, it's a real paradigm shift when it comes to sourcing, moving towards fresh, seasonal produce, from short distribution channels and as raw as possible. Meeting producers is essential. It allows cooks and dieticians to understand the history of products and the diversity of local production.   

    The timing for change is also linked to ISoSL's purchasing policy: markets end and start at very specific times. The city's purchasing department has drawn up a schedule of contracts to be renewed, which are dealt with one after the other.

    The work always starts with an inventory of requirements: what products for which usage? What quantities? How often? Etc. In short, all the information relevant to the preparation of meals, and therefore to the award of a new public tender.

    The next step is to carry out research in the field to find out which local producers and businesses could meet these needs. It's important to know what's on offer so that you can draw up appropriate specifications. The offer, here, must be understood as the overall offer at a given moment, in a given territory and not as the submission of a bid by a tenderer. 

    Once ISoSL is certain that all the suppliers have a range of products that can be used to produce healthy, diversified menus, new selection criteria are incorporated into the public procurement tender. Public procurement legislation is not easy to use, and it is not always easy to find the right criteria. A multi-disciplinary team made up of the purchasing department and legal experts (both internal and external to ISoSL) is working on introducing criteria to ensure that products are environmentally friendly, respect animal welfare, are healthy and fair, and do not contribute to food waste. This is followed by a classic procedure involving the submission of tenders, culinary tests, appointment of the supplier, etc.

    On paper, it looks fairly simple to introduce sustainable products into community kitchens, but in reality it's rather complex and requires a lot of energy”, continues Davide. “There are logistical, human and financial obstacles, in particular the duality between the demand for low prices from canteen users and the need to offer remunerative prices to producers”. 

     

    Going beyond the canteen to tackle food waste

     

    In Belgium, the ‘hot meal’ in the canteen often has a bad reputation. In fact, only a dozen percent of schoolchildren eat there. The others make do with their ‘sandwich box’ brought from home, which rarely contains a balanced, healthy and varied meal. Canteens are often noisy places where children eat in a hurry, without being accompanied or encouraged to taste. In Belgium, lunchtime is also considered ‘non-school time’. It is therefore a time not financed by the Wallonia-Brussels Federation in charge. As a result, the tendency is often to neglect these moments, to have the children looked after by ‘auxiliaries’, i.e, generally unqualified, untrained staff. The change in school canteens, while crucial, will affect and raise awareness in far fewer people than in other European countries where school canteens are mainstream. This is another reason not to stop there, to extend these policies to all collective catering and to develop general awareness.

    The URBACT BioCanteens #2 Transfer Network played a key role in the development of an integrated local food approach in Liège, protecting both the health of citizens and the environment. Within the framework of BioCanteens, the ISoSL kitchens selected nine pilot schools from which an in-depth diagnosis of the lunchtime process was carried out. Within the framework of this diagnosis, particular attention was paid to the reduction of waste. “The observation phase made it possible to point out three critical moments where this waste was visually present”, explains Julien Chapaux, in charge of conducting the first diagnosis for Liège, “during production and cooking of meals, during the packaging and distribution from the central kitchen and during consumption in the schools.”

    First, during production, daily variations in meal orders range from 100–350 meals. To avoid running out of meals during packing and serving in the schools, the cooks had taken to systematically producing more. Every day, the kitchen therefore provided for a safety margin, which inevitably led to waste during production.    

    Second, when the meals are put into the insulated containers to be sent to the schools (hot link distribution), the staff have a very short time to pack the 2,500 meals for the 150 schools. Observations have shown that the staff do not always have the same rigour at the beginning of the packaging line as at the end. This led to differences in the weight of the food in the insulated containers for the first schools served and those on the last round.

    Finally, during the consumption of the meal, it was observed that there was generally too much (or sometimes not enough) food in the insulated containers, but above all that many children did not finish their plates.

    In February 2022, Liège implemented a series of production, packaging and consumption weightings. A student carried out eight weeks of analysis (one week per school). It was measured that the overall waste of meals was 51%. For soup, the figure was 57%. These dramatic outcomes confirmed the first batch of observations with quantitative figures convincing ISoSL and all city canteens’ schemes to take action. A series of measures were taken: application of meal ordering with strict ordering deadlines, weighing at the packaging line, awareness-raising in schools, etc.

    More sustainable and healthy meal at the canteen (photo credit: MAdil)

    More sustainable and healthy meal at the canteen (photo credit: MAdil).

     

    When a bottom-up movement meets city governance

     

    Thinking about the market in a sustainable way is a complex process. It's not enough to change one criterion or another, or to demand more local, high-quality food. The key to making these changes is co-construction and a shared determination to achieve them, the involvement of all the players. “ISoSL and the city of Liège would not have been able to put all this in place without the Ceinture Alimentaire Terre Liégeoise”, states Vérionique Biquet, Project Manager for Healthy and sustainable food for all within the Social Cohesion Plan of Liège. “As public players, we don't have the capacity to mobilise the local ecosystem of producers without the support of local experts and facilitators”. 

    The Liège Food Belt (Ceinture Alimentaire Terre Liégeoise) emerged from more than 400 stakeholders in the region, who joined forces about 14 years ago. There was a need for a platform to support and structure this mobilisation among producers, market gardeners, organic groceries, sustainable canteens and restaurants. The rapid change achieved by ISoSL and Liège has been highly facilitated by the existence of a strong and large network of engaged stakeholders. 

    The tighter collaboration between the Liège Food Belt and the public authorities of Liège generates a booming dynamic within the local healthy and sustainable food ecosystem. In parallel to the transformation of school canteens, a large range of initiatives have popped up in recent years, involving various organisations and institutions.

    Visit to a local sustainable food producer (Photo credit: MAdil).

    Visit to a local sustainable food producer (Photo credit: MAdil).

     

    The MAdil, Maison de l'Alimentation durable et inclusive de Liège (Sustainable and Inclusive Food House) provides the opportunity to discover, test and learn about good food practices, including environmental protection and the fight against food waste. Activities cover culinary workshops, guest tables, walks around edible wild plants, meetings with local producers, introductions to market gardening techniques, and more.

    HORIZON, a logistics centre dedicated to short circuits, has been operational for a year at the Marché Matinal de Liège in Droixhe, with storage space for local coopératives in particular to supply community kitchens. The "Short-Circuit" weekly market welcomes around 20 local producers and over 1,000 visitors every Thursday, from May to October, in the Place Cathédrale.

    The CREaFARM programme, which makes public land available free of charge for local and urban agricultural projects. The agricultural plots are farmed by market gardeners on the principle of Community Supported Agriculture.

    The creation of the CPA, Conseil de Politique Alimentaire (Food Policy Council) as a consultation and coordination body is also notable. It is dedicated to the actors of the food system, on the scale of the 24 municipalities of Liège Métropole and is composed of six Working Groups.

    And last but not least, a month ago, construction began on a vegetable and canning factory, financed by European funds and planned as part of the national plan for recovery and resilience. This new installation will be active in 2025 and enable the supply of local and fresh vegetables to the ISoSL kitchen and beyond.  

     

    Logistics hub for local producers at the historic Droixhe morning bulk market (photo credit: ville de Liège)

    Logistics hub for local producers at the historic Droixhe morning bulk market (photo credit: Ville de Liège).

     

     

    Good practices: from city to city

     

    To reiterate, the BioCanteens Transfer Network played an important role in catalysing this process in Liège. In fact, Liège was engaged in a process of adapting the city of Mouans-Sartoux‘s Good Practice with its means and context: a daily distribution of 100% organic meals made of local products; a drastic reduction of food waste; the organisation of educational activities dedicated to raising children’s awareness of sustainable food, etc.

    In Mouans-Sartoux, the city started to take action towards more healthy and sustainable food and the citizens and the civil society joined the movement. In Liège it is the other way around, the Liège Food Belt kicked off the food transition process and the city administration built on it to set its healthy and sustainable food governance!” summarises Gilles Pérole, Vice-Mayor of Mouans-Sartoux in charge of Children, Education and Food and Coordinator of the BioCanteens URBACT Transfer Network.  

    Does this success mean that Liège is starting its own URBACT Transfer Network at regional level? “In a way yes”, answers Davide Arcadipane. “What we achieved here is possible on every Belgian territory. More initiatives from other cities such as Liège will produce more transition to sustainable practice of food producers, more potential to foster change through strategic public procurement even with the declining purchasing power due to inflation, more involvement and coherence in terms of food-related policies between local, regional, federal and European governance levels”.

     

    Visit to a local sustainable food producer (Photo credit: MAdil)

    New short circuit logistic hub programmed for 2025 (Photo credit is Gaetan Wijnants).

     

    Next steps for Liège

     

    A lot has been achieved in a relatively short time to transform the ISoSL central kitchen. What are the next challenges for the city? The central kitchen started to cook two fresh local vegetables per day. The new  vegetable and canning factory will be able to process 1,400 tonnes of locally produced vegetables per year and cover more than the needs of ISoSL. This vegetable factory will achieve the initial objective of 100% organic, announced in 2021 upon entering the URBACT BioCanteens Transfer Network.

    The strategic use of the city purchase power. In 2023, Liège school canteens represented around €1,000,0000 of which €600,000 are already classified as ‘sustainable food’. This shows, if still needed, that strategic public procurement has an important stimulation effect on the emergence of new sustainable food producers and on the transition of the local farming ecosystem.  

    The 4,000 meals per day provided to the schools and nurseries should now be extended to 12,000 meals per day, including hospitals and elderly homes of the area. There is a strong political interest, including from other Wallonian cities. Moreover, a study is in progress to assess real costs which is to say, costs of delivering sustainable and local meals, but also taking into account hidden costs for public authorities due to unhealthy diets, diffusion of related diseases such as obesity, etc.  

     

    EU City Labs: what’s next on the menu?

     

    The creation of a rich and articulated ecosystem is key to support changes in practices: it is true to ensure the evolution of citizens towards more healthy and sustainable diet. This was analysed in the recent article ‘Feeding change: Cities empowering healthier and more sustainable food choices’ as well as during EU Food City Lab on Changing Habits for a Healthy and Sustainable Food System (Mouans-Sartoux (FR), 21-22 March 2024). Liège example shows, if still needed, that it is also true for stakeholder practices change (farmers, transformers, cooks, canteens staff, etc.).

    From 29-30 May 2024, Liège will host the EU City Lab on Public Procurement for More Local, Seasonal and Sustainable Food. EU City Labs are knowledge-sharing events co-hosted by URBACT and the European Urban Initiative. The Liège edition is the second of three events taking place in different cities, focused on change of eating habits, food procurement and preservation of agricultural land, and other elements for cultivating thriving local food systems in urban areas.

    Interested in meeting with other cities, representatives and organisations working on this issue? Registration for the next EU City Lab is still open. Consult the full programme and register here.

    Want to read more from URBACT experts on food and related topics? Visit the URBACT Food Knowledge Hub.
     

      

     

    ¹ The ISoSL uses the definition of ‘sustainable food’ found in the Wallonia Region Food Strategy Manger Demain (Eating Tomorrow) and that of the FAO.

  • URBACT Networks: the search for a perfect partner

    Copy linkFacebookXLinkedInEmail
    A group of people crossing the zebra crossing.
    31/01/2024

    How to put together a strong partnership for an URBACT Network. 

    News
    A group of people crossing the zebra crossing.
    Network
    From urbact
    On

    Since 2002, URBACT Networks have been bringing European cities together to exchange and learn from each other and develop and test urban solutions.  

    Looking at past and upcoming opportunities, we’re presented with the age-old question: What makes a strong partnership? We’ve scanned through previous and existing URBACT Networks to extract general URBACT partnering tips, with specific reference to eligibility requirements for upcoming calls for URBACT Networks

     

    The URBACT Network experience 

     

    Stated simply, URBACT Networks are open to cities, metropolitan areas, districts, boroughs, and other public equivalent bodies, often lasting 2.5 years and involving partners from a host of different countries.  

    Last year’s round of calls was dedicated to Action Planning Networks; and a new round of applications will be opened before the end of the programme. The call for Innovation Transfer Networks is open until 20 March 2024 and a call for successful Good Practices will run from 15 April to 30 June 2024.  

    The three types of URBACT Networks

    There’s something incredibly rewarding and motivating about connecting with colleagues from other cities across Europe focused on driving change. Looking at a few recent examples, urban sustainable mobility plans are being set up in Latvia, Lithuania, Croatia, Poland, Italy, Spain and Slovenia. Urban communities across Bulgaria, Hungary, Slovenia, Portugal, Spain, Italy, Ireland, Netherlands and Bosnia-Herzegovina are mending relationships between cities and nature. Other Networks have set out to understand why smaller cities are happier, employment access for urban youths, and more.

    Get the latest insights from these Networks in thematic articles produced by the experts leading them! 

     

    Innovation Transfer: a new type of partnership 

     

    Unlike other types of URBACT Networks, the Lead Partners of Innovation Transfer Networks must have been involved in projects funded under the Urban Innovative Actions (UIA) initiative between 2016 and 2023.  

    Over 24 months, the city with an UIA project will transfer experience and know-how to other cities following three stages: Understand, Adapt, Prepare for re-use. A key output for each city involved will be a solid Investment Plan.   

    ITN Network composition

    Additional information on this new call (including eligibility requirements) can be found in the Terms of Reference. We also prepared an article on Innovation Transfer Network project ideas found using the Partner Search Tool, along with a recording from our online info session on finding strong partnerships

     

    The evolution and transformation of URBACT Networks

     

    Many cities have worked together through evolutions of URBACT Networks. It’s worth taking stock of this evolution by looking at examples from earlier Networks. These achievements are a testament to the URBACT Method – its ability to unite people and communities together – and the trust and team spirit developed amongst partners. 

    In the area of tech and the digital transition, Techtown and TechRevolution come to mind, along with a spin-off, the TechRevolution 2.0. Likewise, the original Action Planning Network PROCURE later turned into the Transfer Network Making Spend Matter. Both cases had many cities in common, including the same ones acting as Lead Partners. 

    In other cases, a specific theme was used as a common thread and as an occasion for cities to evolve and seek out new directions. This was the case of AGRI-URBAN a network in which many partners moved towards Horizon 2020 opportunities, while other partners developed an URBACT Transfer Network, the BioCanteens, counting with yet another spin-off, the BioCanteens 2. It is also worth mentioning that the Lead Partner of both BioCanteens Networks, Mouans-Sartoux a small French town, was originally a new-comer Project Partner in AGRI-URBAN. 

    Some towns went on to deliver the Erasmus PART-Y project around gender-sensitive youth services and participation. While a project partner from CREATIVE SPIRITS Implementation Networks has pursued its project with Urban Innovative Actions’ funds, the partners from the Re-growCity Transfer Network founded a brand new project with EuroTowns. More recently, some of the cities from the SibDev Action Planning Network had their bid for an Interreg Europe project approved. 

    Several (or parts of) Networks have gone on in the past to work together in different shapes and sizes both within and beyond URBACT; for instance, more than 30% of the URBACT III cities applied to Horizon 2020 after the end of their Networks. The original Electric Vehicles in Urban Europe Network went on to leverage the results into a multi-million euro demonstration project. 

    Two people networking

    Before initiating your partner search, get a refresher on the following tried-and-tested tips for a strong, enduring partnership… 

     

    1. The more the merrier 

     

    There is no such thing as the “perfect size” of a partnership, but it’s better to choose more than the minimum number of partners. One partner might drop out at the very last minute or join another proposal, does not provide the signed Letter of Commitment on time, etc.  

    URBACT pro-tip: Once an URBACT Network is approved and activities get started, some partners can turn out to be less active than expected. Therefore, developing a partnership with a minimum number of partners is also risky should some of them turn out to be “sleeping partners”.  

     

    2. Trust the pitch 

     

    Trust is a key ingredient in any partnership. Once a potential partner has been identified, it’s important to consider, exactly, what they are looking for in a partnership. Is it money? Professional development? The chance to improve participative and integrated approaches? An opportunity to develop a plan that has more chance of securing EU and national funds?   

    Make sure that partners are applying to the right fund for the right reasons. Try to detect some potential red flags in candidate partners’ interest; for instance, if they: 

    - want to become an URBACT city with my topic, no matter what network; 

    - want to become an URBACT city although not equipped to actually handle the topic and make a difference at local level; 

    - are more interested in the budget than the policy challenge; 

    - are an ambitious politician with no commitment of wider municipality administration (incl. staff allowed to travel etc.); 

    - are an ambitious officer with no support from politicians who understand the importance of the project.  

    Another good indicator is the responsiveness of a potential partner at early stages. If they have to be chased for information and input, then maybe that’s not a good omen. 

    Breakout sessions network

     

    3.    Strike a (geographical) balance


    Across different URBACT Networks, successful partnerships have been formed with cities of different sizes, from different regional contexts, at different stages of development. In fact, the mutual learning does not go in a single direction, from “well-developed” to “less-developed” partners. There are always interesting insights to discover, through peer exchange and site visits, which promote reflection and innovative thinking. What matters is to clearly demonstrate the rationale of working in this formation, that the partners have a shared interest in the common challenge and have established this together before submitting the application.


    Depending on the type of network, the eligibility requirements might change (so, always check the Terms of Reference for each call). 


    4.    Check the (shared) directions

     

    Beyond the number and location, aim for coherence and complementarity when it comes to partner needs, expectations and potential contributions.


    Do not accept new partners on a “first come, first served” basis. Take time to speak with the relevant people in a candidate partner city before deciding on the final partnership list. Try to avoid cities who reach out through consultants – this can be an indication that the city does not have real interest and/or capacity to become committed and active partner. 

    From our experience a vital element of productive partnership is a genuine shared interest and need around a particular challenge, whether that be mobility, digital transition or something else. Each partner also needs to bring a commitment to truly engage with all elements of the URBACT Programme. That means full participation in all meetings, openness and honesty as well as willingness and enthusiasm to complete related tasks and support others.  It means learning about the URBACT Method, building local capacity and integrating URBACT’s cross-cutting themes of digital, green and gender equality into policymaking

     

    5.    Be respectful

     

    A little respect can go a long way when it comes to partnerships – whether it is shown by respecting deadlines or the Network’s proposed roadmap.

    A partnership that is successful doesn’t cut corners. This means really thinking about how much time and effort will be involved over the 2.5-year timeframe. Can city partners commit the right kind of resource? Are they able to find the level of match funding? Can they allocate or hire the right staff to fulfil the local project roles? Do they have the finance team that can do the reporting on time and understand the audit control? Are they ready to set up and drive the local group and encourage local stakeholders to get involved at both local and transnational level? 

     

    6.    Experience isn’t everything

     

    Not all cities in Europe have had the opportunity to take part in an URBACT Network and experience the “URBACT learning journey”. Thus, URBACT’s guiding principle is to ensure participation of a maximum number of cities in URBACT Networks. URBACT is particularly seeking to support cities which are new to the programme, i.e. the city has not been a partner in URBACT II or III. It’s important to consider all these elements when selecting partners without sacrificing the quality and relevance of the project proposal. 
     

     

    7. Last but not least: take advantage of URBACT tools & resources

     

    Unsure of where to find suitable candidates? The easy answer lies in URBACT’s Partner Search Tool. To make the most of this tool, you need to know what you are looking for…and that depends on the call.  

    Although the platform might ignite many exchanges and allow people to have first contact with others, we are aware that many partnerships are done offline. URBACT events – notably, EU City Labs and City Festivals – are a great way to get in touch with other cities and meet new peers. The next URBACT City Festival will take place in 8-10 April 2025 in a Polish city, and it will be the perfect occasion to find partners for the call for Transfer Networks (also opening in April 2025). 

    Another way to get an overview of other proposals and opportunities is to reach out to the National URBACT Points. They are basically the programme’s ambassadors, who represent URBACT and communicate about it on a regular basis using local languages. To further disseminate information about the call, they have been organising National Infodays  both in-person and online, which cities are welcome to attend. 

     


     

    Interested in becoming a project partner in an Innovation Transfer Network? Find some useful links to the main documents (Terms of Reference, Guide for Applicants, Programme Manual) and call infographic here (under the ‘Documents’ section). 

    If you want to know more about the projects and partners of future Innovation Transfer Networks, read this article and watch our online info session on building a strong partnership in the context of the call for Innovation Transfer Networks. We also offer a host of other webinars and different materials.  

    In any case, the Joint Secretariat is here to help at itn@urbact.eu. Although it's not possible to provide an active matchmaking service, there are several resources to help along the application process.