2626from ckan .logic import ValidationError , NotAuthorized
2727from ckan .model .group import Group
2828from ckan .authz import has_user_permission_for_group_or_org
29+ from ckan .common import session
2930
3031from ckan .views .dataset import _get_package_type
3132
@@ -97,6 +98,7 @@ def upload(id: str) -> Response:
9798 owner_org = org ['name' ])
9899 except BadExcelData as e :
99100 h .flash_error (_ (e .message ))
101+ session ['RECOMBINANT_ERRORS' ] = _ (e .message )
100102 return h .redirect_to ('recombinant.preview_table' ,
101103 resource_name = resource_name ,
102104 owner_org = org ['name' ])
@@ -121,15 +123,12 @@ def delete_records(id: str, resource_id: str) -> Union[str, Response]:
121123 dataset_type = pkg ['type' ], owner_org = org ['name' ])
122124
123125 def delete_error (err : str ) -> str :
124- # FIXME: should redirect to the preview_table page with passed extra vars...
125- return render ('recombinant/resource_edit.html' ,
126- extra_vars = {'delete_errors' : [err ],
127- 'dataset' : dataset ,
128- 'dataset_type' : dataset ['dataset_type' ],
129- 'resource' : res ,
130- 'organization' : org ,
131- 'filters' : filters ,
132- 'action' : 'edit' })
126+ session ['RECOMBINANT_DELETE_ERRORS' ] = err
127+ session ['RECOMBINANT_FILTERS' ] = filters
128+ return h .redirect_to (
129+ 'recombinant.preview_table' ,
130+ resource_name = res ['name' ],
131+ owner_org = org ['name' ])
133132
134133 form_text = request .form .get ('bulk-delete' , '' )
135134 if not form_text :
@@ -543,8 +542,7 @@ def resource_redirect(package_type: str, id: str, resource_id: str) -> Response:
543542
544543@recombinant .route ('/recombinant/<resource_name>/<owner_org>' , methods = ['GET' , 'POST' ])
545544def preview_table (resource_name : str ,
546- owner_org : str ,
547- errors : Optional [Dict [str , Any ]] = None ) -> Union [str , Response ]:
545+ owner_org : str ) -> Union [str , Response ]:
548546 if not g .user :
549547 return h .redirect_to ('user.login' )
550548
@@ -613,6 +611,10 @@ def preview_table(resource_name: str,
613611 else :
614612 r = None
615613
614+ errors = session .pop ('RECOMBINANT_ERRORS' , None )
615+ delete_errors = session .pop ('RECOMBINANT_DELETE_ERRORS' , None )
616+ filters = session .pop ('RECOMBINANT_FILTERS' , None )
617+
616618 return render ('recombinant/resource_edit.html' , extra_vars = {
617619 'dataset' : dataset ,
618620 'dataset_type' : chromo ['dataset_type' ],
@@ -621,6 +623,8 @@ def preview_table(resource_name: str,
621623 'resource' : r ,
622624 'organization' : org ,
623625 'errors' : errors ,
626+ 'delete_errors' : [delete_errors ] if delete_errors else None ,
627+ 'filters' : filters
624628 })
625629
626630
0 commit comments