|
@@ -226,14 +226,43 @@
|
|
|
</raise>
|
|
|
</onentry>
|
|
|
|
|
|
- <transition event="mv_response" target="../prompt">
|
|
|
+ <transition event="mv_response" target="../translate_AL">
|
|
|
<parameter name="result"/>
|
|
|
<script>
|
|
|
- self.prev_results = {k: json.dumps(v) if v is not None else '' for k, v in result.items()}
|
|
|
+ self.prev_results = {k: (json.dumps(v) if v is not None else '') for k, v in result.items() if not isinstance(v, dict)}
|
|
|
+ self.al = {k: v for k, v in result.items() if isinstance(v, dict)}
|
|
|
+ self.al_keys = self.al.keys()
|
|
|
+ print("AL KEYS: " + str(self.al_keys))
|
|
|
</script>
|
|
|
</transition>
|
|
|
</state>
|
|
|
|
|
|
+ <state id="translate_AL" initial="check">
|
|
|
+ <state id="check">
|
|
|
+ <transition cond="not self.al" target="../../prompt"/>
|
|
|
+ <transition cond="self.al" target="../process">
|
|
|
+ <script>
|
|
|
+ self.attr_name, self.attr_dict = self.al.popitem()
|
|
|
+ print("Request...")
|
|
|
+ </script>
|
|
|
+ <raise event="mv_request" scope="broad">
|
|
|
+ <parameter expr="'AL_text'"/>
|
|
|
+ <parameter expr="[self.attr_dict['AL']]"/>
|
|
|
+ </raise>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+
|
|
|
+ <state id="process">
|
|
|
+ <transition event="mv_response" target="../check">
|
|
|
+ <parameter name="result"/>
|
|
|
+ <script>
|
|
|
+ print("Got result: " + str(result))
|
|
|
+ self.prev_results[self.attr_name] = result
|
|
|
+ </script>
|
|
|
+ </transition>
|
|
|
+ </state>
|
|
|
+ </state>
|
|
|
+
|
|
|
<state id="prompt">
|
|
|
<onentry>
|
|
|
<raise event="create_instance" scope="cd">
|
|
@@ -280,16 +309,32 @@
|
|
|
</state>
|
|
|
|
|
|
<state id="process_results">
|
|
|
+ <onentry>
|
|
|
+ <script>
|
|
|
+ </script>
|
|
|
+ </onentry>
|
|
|
+
|
|
|
<transition cond="len(self.diff_results) > 0" target=".">
|
|
|
<script>
|
|
|
k, v = self.diff_results.popitem()
|
|
|
+ print("KEY: " + str(k))
|
|
|
+ if k in self.al_keys:
|
|
|
+ print("CODE")
|
|
|
+ op = "attr_assign_code"
|
|
|
+ params = [current_model, self.as_element, k, v]
|
|
|
+ else:
|
|
|
+ print("VALUE")
|
|
|
+ op = "attr_assign"
|
|
|
+ params = [current_model, self.as_element, k, json.loads(v) if v != '' else 'null']
|
|
|
</script>
|
|
|
<raise event="mv_request" scope="broad">
|
|
|
- <parameter expr="'attr_assign'"/>
|
|
|
- <parameter expr="[current_model, self.as_element, k, json.loads(v) if v != '' else 'null']"/>
|
|
|
+ <parameter expr="op"/>
|
|
|
+ <parameter expr="params"/>
|
|
|
</raise>
|
|
|
</transition>
|
|
|
+
|
|
|
<transition cond="self.remaining_responses == 0" target="../mark_dirty"/>
|
|
|
+
|
|
|
<transition event="mv_response" target=".">
|
|
|
<script>
|
|
|
self.remaining_responses -= 1
|