app/soc/views/models/base.py
changeset 492 4abdeedfc08e
parent 490 7cfa2ad62944
child 493 6976c4d8d0ac
equal deleted inserted replaced
491:e13da520d063 492:4abdeedfc08e
    80     """
    80     """
    81 
    81 
    82     new_rights = {}
    82     new_rights = {}
    83     new_rights['any_access'] = [access.checkIsUser]
    83     new_rights['any_access'] = [access.checkIsUser]
    84 
    84 
       
    85     new_params = {}
       
    86     new_params['create_redirect'] = '/%s' % params['name_short'].lower()
       
    87     new_params['missing_redirect'] = '/%s/create' % params['name_short'].lower()
       
    88 
    85     self._rights = dicts.merge(rights, new_rights)
    89     self._rights = dicts.merge(rights, new_rights)
    86     self._params = params
    90     self._params = dicts.merge(params, new_params)
    87 
    91 
    88   def public(self, request, page_name=None, params=None, **kwargs):
    92   def public(self, request, page_name=None, params=None, **kwargs):
    89     """Displays the public page for the entity specified by **kwargs
    93     """Displays the public page for the entity specified by **kwargs
    90 
    94 
    91     Args:
    95     Args:
   137         that combines a Django view with sidebar menu info
   141         that combines a Django view with sidebar menu info
   138       params: a dict with params for this View
   142       params: a dict with params for this View
   139       kwargs: not used for create()
   143       kwargs: not used for create()
   140     """
   144     """
   141 
   145 
       
   146     params = dicts.merge(params, self._params)
       
   147 
   142     # Create page is an edit page with no key fields
   148     # Create page is an edit page with no key fields
   143     empty_kwargs = {}
   149     empty_kwargs = {}
   144     fields = self._logic.getKeyFieldNames()
   150     fields = self._logic.getKeyFieldNames()
   145     for field in fields:
   151     for field in fields:
   146       empty_kwargs[field] = None
   152       empty_kwargs[field] = None
   147 
   153 
   148     request.path = helper.requests.replaceSuffix(request.path,
   154     request.path = params['create_redirect']
   149                                                  old_suffix='create')
       
   150     request.path = helper.requests.replaceSuffix(request.path,
   155     request.path = helper.requests.replaceSuffix(request.path,
   151                                                  old_suffix='edit',
   156                                                  old_suffix='edit',
   152                                                  new_suffix='edit')
   157                                                  new_suffix='edit')
   153 
   158 
   154     if not kwargs:
   159     if not kwargs:
   186       if not seed:
   191       if not seed:
   187         template = params['public_template']
   192         template = params['public_template']
   188         error.message = error.message + self.DEF_CREATE_NEW_ENTITY_MSG % {
   193         error.message = error.message + self.DEF_CREATE_NEW_ENTITY_MSG % {
   189             'entity_type_lower' : params['name'].lower(),
   194             'entity_type_lower' : params['name'].lower(),
   190             'entity_type' : params['name'],
   195             'entity_type' : params['name'],
   191             'create' : params['create_redirect']
   196             'create' : params['missing_redirect']
   192             }
   197             }
   193         return simple.errorResponse(request, page_name, error, template, context)
   198         return simple.errorResponse(request, page_name, error, template, context)
   194 
   199 
   195     if request.method == 'POST':
   200     if request.method == 'POST':
   196       return self.editPost(request, entity, context, params)
   201       return self.editPost(request, entity, context, params)
   338     except soc.logic.out_of_band.ErrorResponse, error:
   343     except soc.logic.out_of_band.ErrorResponse, error:
   339       template = params['edit_template']
   344       template = params['edit_template']
   340       error.message = error.message + self.DEF_CREATE_NEW_ENTITY_MSG % {
   345       error.message = error.message + self.DEF_CREATE_NEW_ENTITY_MSG % {
   341           'entity_type_lower' : params['name'].lower(),
   346           'entity_type_lower' : params['name'].lower(),
   342           'entity_type' : params['name'],
   347           'entity_type' : params['name'],
   343           'create' : params['create_redirect']
   348           'create' : params['missing_redirect']
   344           }
   349           }
   345       return simple.errorResponse(request, page_name, error, template, context)
   350       return simple.errorResponse(request, page_name, error, template, context)
   346 
   351 
   347     if not entity:
   352     if not entity:
   348       #TODO: Create a proper error page for this
   353       #TODO: Create a proper error page for this