See the code snippets in this answer: Use case for a listing component - #4 by tiberiuichim
Plone Foundation Code of Conduct