363 try: |
363 try: |
364 self.checkAccess('list', request) |
364 self.checkAccess('list', request) |
365 except out_of_band.Error, error: |
365 except out_of_band.Error, error: |
366 return error.response(request) |
366 return error.response(request) |
367 |
367 |
|
368 content = helper.lists.getListContent(request, params, self._logic, filter) |
|
369 contents = [content] |
|
370 |
|
371 return self._list(request, params, contents, page_name) |
|
372 |
|
373 def _list(self, request, params, contents, page_name): |
|
374 """Returns the list page for the specified contents |
|
375 |
|
376 Args: |
|
377 request: the standard Django HTTP request object |
|
378 params: a dict with params for this View |
|
379 contents: a list of content dicts |
|
380 page_name: the page name displayed in templates as page and header title |
|
381 """ |
|
382 |
|
383 offset, limit = helper.lists.cleanListParameters( |
|
384 offset=request.GET.get('offset'), limit=request.GET.get('limit')) |
|
385 |
368 context = helper.responses.getUniversalContext(request) |
386 context = helper.responses.getUniversalContext(request) |
369 context['page_name'] = page_name |
387 context['page_name'] = page_name |
370 |
|
371 offset, limit = helper.lists.cleanListParameters( |
|
372 offset=request.GET.get('offset'), limit=request.GET.get('limit')) |
|
373 |
|
374 # Fetch one more to see if there should be a 'next' link |
|
375 if not filter: |
|
376 entities = self._logic.getForLimitAndOffset(limit+1, offset=offset) |
|
377 else: |
|
378 entities = self._logic.getForFields(filter, limit=limit+1, offset=offset) |
|
379 |
|
380 context['pagination_form'] = helper.lists.makePaginationForm(request, limit) |
388 context['pagination_form'] = helper.lists.makePaginationForm(request, limit) |
381 |
389 context['list'] = soc.logic.lists.Lists(contents) |
382 updates = dicts.rename(params, params['list_params']) |
|
383 updates['logic'] = self._logic |
|
384 |
|
385 content = helper.lists.getList(request, entities, offset, limit) |
|
386 content.update(updates) |
|
387 |
|
388 context['list'] = soc.logic.lists.Lists([content]) |
|
389 |
390 |
390 context['entity_type'] = params['name'] |
391 context['entity_type'] = params['name'] |
391 context['entity_type_plural'] = params['name_plural'] |
392 context['entity_type_plural'] = params['name_plural'] |
392 |
393 |
393 template = params['list_template'] |
394 template = params['list_template'] |