app/soc/views/models/base.py
changeset 710 edb5dbb1dea7
parent 708 89f1a8c2ea59
child 714 3e2ce3d8057a
equal deleted inserted replaced
709:e71b20847eb0 710:edb5dbb1dea7
    69 
    69 
    70     self._params = helper.params.constructParams(params)
    70     self._params = helper.params.constructParams(params)
    71     self._logic = params['logic']
    71     self._logic = params['logic']
    72 
    72 
    73 
    73 
    74   def public(self, request, page_name=None, params=None, **kwargs):
    74   def public(self, request, access_type,
       
    75              page_name=None, params=None, **kwargs):
    75     """Displays the public page for the entity specified by **kwargs.
    76     """Displays the public page for the entity specified by **kwargs.
    76 
    77 
    77     Params usage:
    78     Params usage:
    78       rights: The rights dictionary is used to check if the user has
    79       rights: The rights dictionary is used to check if the user has
    79         the required rights to view the public page for this entity.
    80         the required rights to view the public page for this entity.
    95     """
    96     """
    96 
    97 
    97     params = dicts.merge(params, self._params)
    98     params = dicts.merge(params, self._params)
    98 
    99 
    99     try:
   100     try:
   100       access.checkAccess('public', request, rights=params['rights'])
   101       access.checkAccess(access_type, request, rights=params['rights'])
   101     except out_of_band.Error, error:
   102     except out_of_band.Error, error:
   102       return helper.responses.errorResponse(error, request)
   103       return helper.responses.errorResponse(error, request)
   103 
   104 
   104     # create default template context for use with any templates
   105     # create default template context for use with any templates
   105     context = helper.responses.getUniversalContext(request)
   106     context = helper.responses.getUniversalContext(request)
   124 
   125 
   125     template = params['public_template']
   126     template = params['public_template']
   126 
   127 
   127     return helper.responses.respond(request, template, context)
   128     return helper.responses.respond(request, template, context)
   128 
   129 
   129   def create(self, request, page_name=None, params=None, **kwargs):
   130   def create(self, request, access_type,
       
   131              page_name=None, params=None, **kwargs):
   130     """Displays the create page for this entity type.
   132     """Displays the create page for this entity type.
   131 
   133 
   132     Params usage:
   134     Params usage:
   133       The params dictionary is passed on to edit, see the docstring
   135       The params dictionary is passed on to edit, see the docstring
   134       for edit on how it uses it.
   136       for edit on how it uses it.
   154     empty_kwargs = {}
   156     empty_kwargs = {}
   155     fields = self._logic.getKeyFieldNames()
   157     fields = self._logic.getKeyFieldNames()
   156     for field in fields:
   158     for field in fields:
   157       empty_kwargs[field] = None
   159       empty_kwargs[field] = None
   158 
   160 
   159     return self.edit(request, page_name=page_name,
   161     return self.edit(request, access_type, page_name=page_name,
   160                      params=params, seed=kwargs, **empty_kwargs)
   162                      params=params, seed=kwargs, **empty_kwargs)
   161 
   163 
   162   def edit(self, request, page_name=None, params=None, seed=None, **kwargs):
   164   def edit(self, request, access_type,
       
   165            page_name=None, params=None, seed=None, **kwargs):
   163     """Displays the edit page for the entity specified by **kwargs.
   166     """Displays the edit page for the entity specified by **kwargs.
   164 
   167 
   165     Params usage:
   168     Params usage:
   166       The params dictionary is passed on to either editGet or editPost
   169       The params dictionary is passed on to either editGet or editPost
   167       depending on the method type of the request. See the docstring
   170       depending on the method type of the request. See the docstring
   188     """
   191     """
   189 
   192 
   190     params = dicts.merge(params, self._params)
   193     params = dicts.merge(params, self._params)
   191 
   194 
   192     try:
   195     try:
   193       access.checkAccess('edit', request, rights=params['rights'])
   196       access.checkAccess(access_type, request, rights=params['rights'])
   194     except out_of_band.Error, error:
   197     except out_of_band.Error, error:
   195       return helper.responses.errorResponse(error, request)
   198       return helper.responses.errorResponse(error, request)
   196 
   199 
   197     context = helper.responses.getUniversalContext(request)
   200     context = helper.responses.getUniversalContext(request)
   198     context['page_name'] = page_name
   201     context['page_name'] = page_name
   340       else:
   343       else:
   341         form = params['create_form']()
   344         form = params['create_form']()
   342 
   345 
   343     return self._constructResponse(request, entity, context, form, params)
   346     return self._constructResponse(request, entity, context, form, params)
   344 
   347 
   345   def list(self, request, page_name=None, params=None, filter=None):
   348   def list(self, request, access_type,
       
   349            page_name=None, params=None, filter=None):
   346     """Displays the list page for the entity type.
   350     """Displays the list page for the entity type.
   347     
   351     
   348     Args:
   352     Args:
   349       request: the standard Django HTTP request object
   353       request: the standard Django HTTP request object
   350       page_name: the page name displayed in templates as page and header title
   354       page_name: the page name displayed in templates as page and header title
   364     """
   368     """
   365 
   369 
   366     params = dicts.merge(params, self._params)
   370     params = dicts.merge(params, self._params)
   367 
   371 
   368     try:
   372     try:
   369       access.checkAccess('list', request, rights=params['rights'])
   373       access.checkAccess(access_type, request, rights=params['rights'])
   370     except out_of_band.Error, error:
   374     except out_of_band.Error, error:
   371       return helper.responses.errorResponse(error, request)
   375       return helper.responses.errorResponse(error, request)
   372 
   376 
   373     content = helper.lists.getListContent(request, params, filter)
   377     content = helper.lists.getListContent(request, params, filter)
   374     contents = [content]
   378     contents = [content]
   403 
   407 
   404     template = params['list_template']
   408     template = params['list_template']
   405 
   409 
   406     return helper.responses.respond(request, template, context)
   410     return helper.responses.respond(request, template, context)
   407 
   411 
   408   def delete(self, request, page_name=None, params=None, **kwargs):
   412   def delete(self, request, access_type,
       
   413              page_name=None, params=None, **kwargs):
   409     """Shows the delete page for the entity specified by **kwargs.
   414     """Shows the delete page for the entity specified by **kwargs.
   410 
   415 
   411     Args:
   416     Args:
   412       request: the standard Django HTTP request object
   417       request: the standard Django HTTP request object
   413       page_name: the page name displayed in templates as page and header title
   418       page_name: the page name displayed in templates as page and header title
   428     """
   433     """
   429 
   434 
   430     params = dicts.merge(params, self._params)
   435     params = dicts.merge(params, self._params)
   431 
   436 
   432     try:
   437     try:
   433       access.checkAccess('delete', request, rights=params['rights'])
   438       access.checkAccess(access_type, request, rights=params['rights'])
   434     except out_of_band.Error, error:
   439     except out_of_band.Error, error:
   435       return helper.responses.errorResponse(error, request)
   440       return helper.responses.errorResponse(error, request)
   436 
   441 
   437     # create default template context for use with any templates
   442     # create default template context for use with any templates
   438     context = helper.responses.getUniversalContext(request)
   443     context = helper.responses.getUniversalContext(request)