8
8
from aiida .engine import ProcessBuilderNamespace , submit
9
9
from aiida .orm .utils .serialize import serialize
10
10
from aiidalab_qe .app .parameters import DEFAULT_PARAMETERS
11
- from aiidalab_qe .common .mixins import HasInputStructure , HasModels
11
+ from aiidalab_qe .common .mixins import HasInputStructure , HasModels , HasProcess
12
12
from aiidalab_qe .common .panel import PluginResourceSettingsModel , ResourceSettingsModel
13
13
from aiidalab_qe .common .wizard import QeConfirmableWizardStepModel
14
14
from aiidalab_qe .utils import shallow_copy_nested_dict
@@ -21,12 +21,12 @@ class SubmissionStepModel(
21
21
QeConfirmableWizardStepModel ,
22
22
HasModels [ResourceSettingsModel ],
23
23
HasInputStructure ,
24
+ HasProcess ,
24
25
):
25
26
identifier = "submission"
26
27
27
28
input_parameters = tl .Dict ()
28
29
29
- process_node = tl .Instance (orm .WorkChainNode , allow_none = True )
30
30
process_label = tl .Unicode ("" )
31
31
process_description = tl .Unicode ("" )
32
32
@@ -60,7 +60,7 @@ def __init__(self, *args, **kwargs):
60
60
61
61
def confirm (self ):
62
62
super ().confirm ()
63
- if not self .process_node :
63
+ if not self .has_process :
64
64
self ._submit ()
65
65
66
66
def update (self ):
@@ -163,15 +163,19 @@ def set_model_state(self, state: dict):
163
163
model .set_model_state (codes [identifier ])
164
164
model .locked = True
165
165
166
- if self .process_node :
167
- self .process_label = self .process_node .label
168
- self .process_description = self .process_node .description
169
- self .locked = True
166
+ self ._update_process_metadata ()
167
+
168
+ def _update_process_metadata (self ):
169
+ if not self .has_process :
170
+ return
171
+ self .process_label = self .process .label
172
+ self .process_description = self .process .description
173
+ self .locked = True
170
174
171
175
def reset (self ):
172
176
with self .hold_trait_notifications ():
173
177
self .input_parameters = {}
174
- self .process_node = None
178
+ self .process_uuid = None
175
179
for identifier , model in self .get_models ():
176
180
if identifier not in self ._default_models :
177
181
model .include = False
@@ -194,13 +198,10 @@ def _submit(self):
194
198
"structure" ,
195
199
self .input_structure .get_formula (),
196
200
)
197
- self .process_node = process_node
198
-
199
- self ._update_url ()
201
+ self .process_uuid = process_node .uuid
200
202
201
- def _update_url (self ):
202
- pk = self .process_node .pk
203
- display (Javascript (f"window.history.pushState(null, '', '?pk={ pk } ');" ))
203
+ pk = process_node .pk
204
+ display (Javascript (f"window.history.pushState(null, '', '?pk={ pk } ');" ))
204
205
205
206
def _link_model (self , model : ResourceSettingsModel ):
206
207
for dependency in model .dependencies :
0 commit comments