app/soc/views/models/base.py
changeset 516 ec1dcd70b97e
parent 514 55bd39dab49c
child 518 d9d31d316a74
equal deleted inserted replaced
515:fa235f6759f3 516:ec1dcd70b97e
    17 """Helpers functions for displaying views.
    17 """Helpers functions for displaying views.
    18 """
    18 """
    19 
    19 
    20 __authors__ = [
    20 __authors__ = [
    21   '"Sverre Rabbelier" <sverre@rabbelier.nl>',
    21   '"Sverre Rabbelier" <sverre@rabbelier.nl>',
       
    22   '"Lennard de Rijk" <ljvderijk@gmail.com>',
    22   '"Pawel Solyga" <pawel.solyga@gmail.com>',
    23   '"Pawel Solyga" <pawel.solyga@gmail.com>',
    23   ]
    24   ]
    24 
    25 
    25 
    26 
    26 from django import http
    27 from django import http
   312       else:
   313       else:
   313         form = params['create_form']()
   314         form = params['create_form']()
   314 
   315 
   315     return self._constructResponse(request, entity, context, form, params)
   316     return self._constructResponse(request, entity, context, form, params)
   316 
   317 
   317   def list(self, request, page_name=None, params=None):
   318   def list(self, request, page_name=None, params=None, filter=None):
   318     """Displays the list page for the entity type.
   319     """Displays the list page for the entity type.
   319     
   320     
   320     Args:
   321     Args:
   321       request: the standard Django HTTP request object
   322       request: the standard Django HTTP request object
   322       page_name: the page name displayed in templates as page and header title
   323       page_name: the page name displayed in templates as page and header title
   323       params: a dict with params for this View
   324       params: a dict with params for this View
       
   325       filter: a dict for the properties that the entities should have
   324     """
   326     """
   325 
   327 
   326     params = dicts.merge(params, self._params)
   328     params = dicts.merge(params, self._params)
   327 
   329 
   328     try:
   330     try:
   335 
   337 
   336     offset, limit = helper.lists.cleanListParameters(
   338     offset, limit = helper.lists.cleanListParameters(
   337       offset=request.GET.get('offset'), limit=request.GET.get('limit'))
   339       offset=request.GET.get('offset'), limit=request.GET.get('limit'))
   338 
   340 
   339     # Fetch one more to see if there should be a 'next' link
   341     # Fetch one more to see if there should be a 'next' link
   340     entities = self._logic.getForLimitAndOffset(limit + 1, offset=offset)
   342     if not filter:
   341 
   343       entities = self._logic.getForLimitAndOffset(limit + 1, offset=offset)
       
   344     else:
       
   345       entities = self._logic.getForFields(filter, limit=limit + 1, offset=offset)
       
   346     
   342     context['pagination_form'] = helper.lists.makePaginationForm(request, limit)
   347     context['pagination_form'] = helper.lists.makePaginationForm(request, limit)
   343 
   348 
   344     templates = params['lists_template']
   349     templates = params['lists_template']
   345 
   350 
   346     context = helper.lists.setList(request, context, entities, 
   351     context = helper.lists.setList(request, context, entities,