generalize newsportlet

@maethu could you please take a look? It changes the portlet, so we can use the same codebase for other portlets as well, which may not search for the same type or datefield.