# HG changeset patch # User Sverre Rabbelier # Date 1236025979 0 # Node ID b80bf089d5f76c56a330ab6ea1362021ac9ca744 # Parent 58e7c56206cd47744bd7220d64b0d942a87eebbf Display a notice if the entity cannot be deleted Patch by: Sverre Rabbelier diff -r 58e7c56206cd -r b80bf089d5f7 app/soc/logic/models/document.py --- a/app/soc/logic/models/document.py Mon Mar 02 19:48:20 2009 +0000 +++ b/app/soc/logic/models/document.py Mon Mar 02 20:32:59 2009 +0000 @@ -61,6 +61,12 @@ return ['prefix', 'scope_path', 'link_id'] + def isDeletable(self, entity): + """See base.Logic.isDeletable. + """ + + return not entity.home + def _updateField(self, entity, entity_properties, name): """Special logic for role. If state changes to active we flush the sidebar. """ diff -r 58e7c56206cd -r b80bf089d5f7 app/soc/views/helper/params.py --- a/app/soc/views/helper/params.py Mon Mar 02 19:48:20 2009 +0000 +++ b/app/soc/views/helper/params.py Mon Mar 02 20:32:59 2009 +0000 @@ -45,6 +45,7 @@ DEF_SUBMIT_MSG_PARAM_NAME = 's' DEF_SUBMIT_MSG_PROFILE_SAVED = 0 +DEF_SUBMIT_MSG_CANNOT_DELETE_ENTITY = 1 # list with all js scripts used for documentary purposes @@ -253,12 +254,17 @@ new_params['list_description'] = DEF_LIST_DESCRIPTION_FMT % params new_params['no_lists_msg'] = "" - new_params['save_message'] = [ugettext('%(name)s saved.' % params)] + new_params['save_message'] = [ugettext('%(name)s saved.' % params), + ugettext('Cannot delete %(name)s.' % params)] new_params['submit_msg_param_name'] = DEF_SUBMIT_MSG_PARAM_NAME new_params['edit_params'] = { DEF_SUBMIT_MSG_PARAM_NAME: DEF_SUBMIT_MSG_PROFILE_SAVED, } + new_params['cannot_delete_params'] = { + DEF_SUBMIT_MSG_PARAM_NAME: DEF_SUBMIT_MSG_CANNOT_DELETE_ENTITY, + } + new_params['dynabase'] = helper.forms.BaseForm create_dynaproperties = { diff -r 58e7c56206cd -r b80bf089d5f7 app/soc/views/models/base.py --- a/app/soc/views/models/base.py Mon Mar 02 19:48:20 2009 +0000 +++ b/app/soc/views/models/base.py Mon Mar 02 20:32:59 2009 +0000 @@ -555,9 +555,14 @@ error, request, template=params['error_edit']) if not self._logic.isDeletable(entity): - # TODO: Update the notice area telling the user that they - # can't delete the entity - pass + page_params = params['cannot_delete_params'] + params['suffix'] = entity.key().name() + request.path = params['edit_redirect'] % params + + # redirect to the edit page + # display notice that entity could not be deleted + return helper.responses.redirectToChangedSuffix( + request, None, params=page_params) self._logic.delete(entity) redirect = params['delete_redirect'] diff -r 58e7c56206cd -r b80bf089d5f7 app/soc/views/models/request.py --- a/app/soc/views/models/request.py Mon Mar 02 19:48:20 2009 +0000 +++ b/app/soc/views/models/request.py Mon Mar 02 20:32:59 2009 +0000 @@ -83,7 +83,6 @@ new_params['sidebar_defaults'] = [('/%s/list', 'List %(name_plural)s', 'list')] new_params['create_template'] = ['soc/request/create.html'] - new_params['save_message'] = [ugettext('Request saved.')] new_params['extra_dynaexclude'] = ['status', 'role_verbose']