Requests in any state can be deleted by an admin

This commit is contained in:
Ramkrishna Chakrabarty
2009-12-03 16:16:12 -05:00
parent f16d27c2d4
commit d4158412d0
2 changed files with 7 additions and 17 deletions
+1 -1
View File
@@ -542,7 +542,7 @@ class Requests( BaseController ):
action='new',
**kwd) )
request = self.__save_request(trans, None, **kwd)
msg = 'The new request named %s has been created' % request.name
msg = 'The new request named <b>%s</b> has been created' % request.name
if params.get('create_request_button', False) == 'Save':
return trans.response.send_redirect( web.url_for( controller='requests',
action='list',
+6 -16
View File
@@ -149,7 +149,7 @@ class RequestsGrid( grids.Grid ):
confirm="More samples cannot be added to this request once it is submitted. Click OK to submit." ),
grids.GridOperation( "Edit", allow_multiple=False, condition=( lambda item: not item.deleted ) ),
grids.GridOperation( "Reject", allow_multiple=False, condition=( lambda item: not item.deleted and item.submitted() ) ),
grids.GridOperation( "Delete", allow_multiple=True, condition=( lambda item: not item.deleted and item.new() ) ),
grids.GridOperation( "Delete", allow_multiple=True, condition=( lambda item: not item.deleted ) ),
grids.GridOperation( "Undelete", condition=( lambda item: item.deleted ) ),
]
global_actions = [
@@ -387,7 +387,6 @@ class Requests( BaseController ):
return self.__show_request_form(trans)
def __delete_request(self, trans, **kwd):
id_list = util.listify( kwd['id'] )
delete_failed = []
for id in id_list:
try:
request = trans.sa_session.query( trans.app.model.Request ).get( trans.security.decode_id(id) )
@@ -399,20 +398,11 @@ class Requests( BaseController ):
status='error',
message=msg,
**kwd) )
# a request cannot be deleted once its submitted
if not request.new():
delete_failed.append(request.name)
else:
request.deleted = True
trans.sa_session.add( request )
trans.sa_session.flush()
if not len(delete_failed):
msg = '%i request(s) has been deleted.' % len(id_list)
status = 'done'
else:
msg = '%i request(s) has been deleted. %i request %s could not be deleted as they have been submitted.' % (len(id_list)-len(delete_failed),
len(delete_failed), str(delete_failed))
status = 'warning'
request.deleted = True
trans.sa_session.add( request )
trans.sa_session.flush()
msg = '%i request(s) has been deleted.' % len(id_list)
status = 'done'
return trans.response.send_redirect( web.url_for( controller='requests_admin',
action='list',
status=status,