Ausertung von schleifen und Helperfunktionen ergänzt in extract.py
This commit is contained in:
+26
-1
@@ -1,5 +1,30 @@
|
|||||||
{
|
{
|
||||||
"version": "5.0",
|
"version": "5.0",
|
||||||
"module": "currency",
|
"module": "currency",
|
||||||
"files": []
|
"files": [
|
||||||
|
{
|
||||||
|
"module": "currency",
|
||||||
|
"file": "currency.py",
|
||||||
|
"class": "Currency",
|
||||||
|
"method": "__register__",
|
||||||
|
"line": 55,
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 64,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -607,6 +607,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
+26
-1
@@ -1,5 +1,30 @@
|
|||||||
{
|
{
|
||||||
"version": "5.2",
|
"version": "5.2",
|
||||||
"module": "currency",
|
"module": "currency",
|
||||||
"files": []
|
"files": [
|
||||||
|
{
|
||||||
|
"module": "currency",
|
||||||
|
"file": "currency.py",
|
||||||
|
"class": "Currency",
|
||||||
|
"method": "__register__",
|
||||||
|
"line": 53,
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 66,
|
"line": 66,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 74,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -740,6 +754,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 53,
|
"line": 53,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 67,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 69,
|
"line": 69,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 77,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -740,6 +754,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 51,
|
"line": 51,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 65,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 69,
|
"line": 69,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 77,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -800,6 +814,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 94,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 94,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 51,
|
"line": 51,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 65,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 71,
|
"line": 71,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 79,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -800,6 +814,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 55,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 62,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 59,
|
"line": 59,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 73,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 84,
|
"line": 84,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 92,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -899,6 +913,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 98,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 98,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 61,
|
"line": 61,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 75,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 86,
|
"line": 86,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 94,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -899,6 +913,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 88,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 88,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 95,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 95,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 59,
|
"line": 59,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 73,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -337,6 +337,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 87,
|
"line": 87,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 95,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -922,6 +936,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 90,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 86,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 86,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 93,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 93,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 60,
|
"line": 60,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 74,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -313,6 +313,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 92,
|
"line": 92,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 100,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -834,6 +848,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 91,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 86,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 86,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 93,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 93,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,21 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 72,
|
"line": 72,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "not_null_action",
|
||||||
|
"tables": [
|
||||||
|
"currency_currency"
|
||||||
|
],
|
||||||
|
"line": 86,
|
||||||
|
"args": [
|
||||||
|
"col",
|
||||||
|
"'remove'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.not_null_action(col, 'remove')",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -313,6 +313,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 92,
|
"line": 92,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 100,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
@@ -834,6 +848,39 @@
|
|||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table.column_exist('minimum_delay')"
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "sql_table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"[sql_table.minimum_time_delay]",
|
||||||
|
"[delay]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "sql_table.id == id_"
|
||||||
|
},
|
||||||
|
"code": "sql_table.update(\n [sql_table.minimum_time_delay],\n [(datetime.timedelta(hours=delay))],\n where=sql_table.id == id_)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table.column_exist('minimum_delay')"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table",
|
"object": "table",
|
||||||
"operation": "drop_column",
|
"operation": "drop_column",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 92,
|
"line": 92,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 100,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
|
|||||||
@@ -236,6 +236,37 @@
|
|||||||
},
|
},
|
||||||
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
||||||
"phase": "after_super"
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 793,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 793,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 92,
|
"line": 92,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 100,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
|
|||||||
@@ -261,6 +261,37 @@
|
|||||||
},
|
},
|
||||||
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
||||||
"phase": "after_super"
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 818,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 818,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,20 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 119,
|
"line": 119,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "drop_column",
|
||||||
|
"tables": [
|
||||||
|
"ir_cron"
|
||||||
|
],
|
||||||
|
"line": 127,
|
||||||
|
"args": [
|
||||||
|
"column"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.drop_column(column)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "table_h",
|
"object": "table_h",
|
||||||
"operation": "not_null_action",
|
"operation": "not_null_action",
|
||||||
|
|||||||
@@ -262,6 +262,37 @@
|
|||||||
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
"code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))",
|
||||||
"phase": "after_super"
|
"phase": "after_super"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 836,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 836,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -36,6 +36,67 @@
|
|||||||
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
"code": "template_lot_type.select(\n template_lot_type.template,\n distinct_on=template_lot_type.template)",
|
||||||
"phase": "after_super",
|
"phase": "after_super",
|
||||||
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"*template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id).select(lot_type.code, where=template_lot_type.template == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "template_lot_type.join(lot_type, condition=template_lot_type.type == lot_type.id)",
|
||||||
|
"operation": "select",
|
||||||
|
"tables": [],
|
||||||
|
"line": 89,
|
||||||
|
"args": [
|
||||||
|
"lot_type.code"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "template_lot_type.template == template_id"
|
||||||
|
},
|
||||||
|
"code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)\n .select(\n lot_type.code,\n where=template_lot_type.template == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.lot_required], [value], where=table.id == template_id)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(connection.cursor()).execute(*table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id))",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"product_template"
|
||||||
|
],
|
||||||
|
"line": 96,
|
||||||
|
"args": [
|
||||||
|
"[table.lot_required]",
|
||||||
|
"[value]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.id == template_id"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))],\n where=table.id == template_id)",
|
||||||
|
"phase": "after_super",
|
||||||
|
"condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -615,6 +615,30 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"module": "ir",
|
||||||
|
"file": "trigger.py",
|
||||||
|
"class": "Trigger",
|
||||||
|
"method": "__register__",
|
||||||
|
"line": 93,
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "column_rename",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 98,
|
||||||
|
"args": [
|
||||||
|
"name",
|
||||||
|
"name + '_'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.column_rename(name, name + '_')",
|
||||||
|
"phase": "before_super"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"module": "ir",
|
"module": "ir",
|
||||||
"file": "ui/view.py",
|
"file": "ui/view.py",
|
||||||
|
|||||||
@@ -113,6 +113,37 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 825,
|
"line": 825,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 834,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 834,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -615,6 +615,30 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"module": "ir",
|
||||||
|
"file": "trigger.py",
|
||||||
|
"class": "Trigger",
|
||||||
|
"method": "__register__",
|
||||||
|
"line": 93,
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "column_rename",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 98,
|
||||||
|
"args": [
|
||||||
|
"name",
|
||||||
|
"name + '_'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.column_rename(name, name + '_')",
|
||||||
|
"phase": "before_super"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"module": "ir",
|
"module": "ir",
|
||||||
"file": "ui/view.py",
|
"file": "ui/view.py",
|
||||||
|
|||||||
@@ -113,6 +113,37 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 844,
|
"line": 844,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 853,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 853,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
@@ -615,6 +615,30 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"module": "ir",
|
||||||
|
"file": "trigger.py",
|
||||||
|
"class": "Trigger",
|
||||||
|
"method": "__register__",
|
||||||
|
"line": 92,
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "table_h",
|
||||||
|
"operation": "column_rename",
|
||||||
|
"tables": [
|
||||||
|
"ir_trigger"
|
||||||
|
],
|
||||||
|
"line": 97,
|
||||||
|
"args": [
|
||||||
|
"name",
|
||||||
|
"name + '_'"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "table_h.column_rename(name, name + '_')",
|
||||||
|
"phase": "before_super"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"module": "ir",
|
"module": "ir",
|
||||||
"file": "ui/view.py",
|
"file": "ui/view.py",
|
||||||
|
|||||||
@@ -113,6 +113,37 @@
|
|||||||
"method": "__register__",
|
"method": "__register__",
|
||||||
"line": 859,
|
"line": 859,
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"object": "cursor",
|
||||||
|
"operation": "execute",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 873,
|
||||||
|
"args": [
|
||||||
|
"*table.update([table.type], [new], where=table.type == old)"
|
||||||
|
],
|
||||||
|
"kwargs": {},
|
||||||
|
"code": "(Transaction().connection.cursor()).execute(*table.update(\n [table.type], [new],\n where=table.type == old))",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"object": "table",
|
||||||
|
"operation": "update",
|
||||||
|
"tables": [
|
||||||
|
"party_identifier"
|
||||||
|
],
|
||||||
|
"line": 873,
|
||||||
|
"args": [
|
||||||
|
"[table.type]",
|
||||||
|
"[new]"
|
||||||
|
],
|
||||||
|
"kwargs": {
|
||||||
|
"where": "table.type == old"
|
||||||
|
},
|
||||||
|
"code": "table.update(\n [table.type], [new],\n where=table.type == old)",
|
||||||
|
"phase": "after_super"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"object": "cursor",
|
"object": "cursor",
|
||||||
"operation": "execute",
|
"operation": "execute",
|
||||||
|
|||||||
+114
-3
@@ -109,6 +109,15 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
# Klasse, in der wir uns gerade befinden (für cls._table etc.)
|
# Klasse, in der wir uns gerade befinden (für cls._table etc.)
|
||||||
self.current_class = None
|
self.current_class = None
|
||||||
|
|
||||||
|
# Name -> FunctionDef aller Methoden der aktuellen Klasse, um
|
||||||
|
# Helper-Aufrufe aus __register__ heraus aufzulösen.
|
||||||
|
self.class_methods = {}
|
||||||
|
|
||||||
|
# Aufruf-Kette der Helper-Methoden, in die wir gerade rekursiv
|
||||||
|
# abgestiegen sind (für Zyklenschutz und die "via"-Provenienz
|
||||||
|
# der gefundenen Operationen).
|
||||||
|
self.call_chain = []
|
||||||
|
|
||||||
# -- Modul-/Klassenebene ------------------------------------------------
|
# -- Modul-/Klassenebene ------------------------------------------------
|
||||||
|
|
||||||
def visit_Module(self, node):
|
def visit_Module(self, node):
|
||||||
@@ -124,9 +133,18 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
self.generic_visit(node)
|
self.generic_visit(node)
|
||||||
|
|
||||||
def visit_ClassDef(self, node):
|
def visit_ClassDef(self, node):
|
||||||
|
# Alle Methoden der Klasse vormerken, damit __register__-Aufrufe an
|
||||||
|
# eigene Helper-Methoden (z. B. `cls._migrate_x(module_name)`)
|
||||||
|
# aufgelöst werden können.
|
||||||
|
methods = {
|
||||||
|
item.name: item
|
||||||
|
for item in node.body
|
||||||
|
if isinstance(item, (ast.FunctionDef, ast.AsyncFunctionDef))
|
||||||
|
}
|
||||||
|
|
||||||
for item in node.body:
|
for item in node.body:
|
||||||
if isinstance(item, ast.FunctionDef) and item.name == "__register__":
|
if isinstance(item, ast.FunctionDef) and item.name == "__register__":
|
||||||
self.extract_register(node.name, item)
|
self.extract_register(node.name, item, methods)
|
||||||
|
|
||||||
self.generic_visit(node)
|
self.generic_visit(node)
|
||||||
|
|
||||||
@@ -147,13 +165,18 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
|
|
||||||
# -- __register__ selbst -------------------------------------------------
|
# -- __register__ selbst -------------------------------------------------
|
||||||
|
|
||||||
def extract_register(self, cls, func):
|
def extract_register(self, cls, func, methods):
|
||||||
"""Analysiert eine einzelne __register__-Methode."""
|
"""Analysiert eine einzelne __register__-Methode."""
|
||||||
operations = []
|
operations = []
|
||||||
self.table_vars = {}
|
self.table_vars = {}
|
||||||
self.alias_vars = {}
|
self.alias_vars = {}
|
||||||
self.current_class = cls
|
self.current_class = cls
|
||||||
|
|
||||||
|
# Für die Auflösung von Helper-Aufrufen (cls._migrate_x(...)) und
|
||||||
|
# als Zyklenschutz während der Rekursion in solche Helper.
|
||||||
|
self.class_methods = methods
|
||||||
|
self.call_chain = []
|
||||||
|
|
||||||
model_name = self.model_names.get(cls)
|
model_name = self.model_names.get(cls)
|
||||||
if model_name:
|
if model_name:
|
||||||
self.table_vars["cls"] = model_name
|
self.table_vars["cls"] = model_name
|
||||||
@@ -338,6 +361,13 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
`phase` wechselt von "before_super" auf "after_super", sobald der
|
`phase` wechselt von "before_super" auf "after_super", sobald der
|
||||||
super().__register__(...)-Aufruf gefunden wird. `condition` trägt
|
super().__register__(...)-Aufruf gefunden wird. `condition` trägt
|
||||||
den Text einer umschließenden if-Bedingung mit, falls vorhanden.
|
den Text einer umschließenden if-Bedingung mit, falls vorhanden.
|
||||||
|
|
||||||
|
Steigt dabei in ALLE geschachtelten Blöcke ab (if/for/while/with/
|
||||||
|
try/except/finally), nicht nur in if. Aufrufe innerhalb einer
|
||||||
|
for-Schleife, eines with-Blocks oder eines try/except wurden vorher
|
||||||
|
stillschweigend übersprungen, weil nur ast.If speziell behandelt
|
||||||
|
wurde und alle anderen Compound-Statements kein `.value`-Attribut
|
||||||
|
besitzen.
|
||||||
"""
|
"""
|
||||||
for stmt in statements:
|
for stmt in statements:
|
||||||
|
|
||||||
@@ -351,10 +381,38 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
self.walk_statements(stmt.orelse, operations, phase, condition)
|
self.walk_statements(stmt.orelse, operations, phase, condition)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
for body in self._nested_bodies(stmt):
|
||||||
|
self.walk_statements(body, operations, phase, condition)
|
||||||
|
|
||||||
value = getattr(stmt, "value", None)
|
value = getattr(stmt, "value", None)
|
||||||
if value is not None:
|
if value is not None:
|
||||||
self.walk_expression(value, operations, phase, condition)
|
self.walk_expression(value, operations, phase, condition)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _nested_bodies(stmt):
|
||||||
|
"""
|
||||||
|
Liefert alle Statement-Listen, die direkt in `stmt` geschachtelt
|
||||||
|
sind (außer bei ast.If, das walk_statements separat behandelt,
|
||||||
|
weil dort zusätzlich die Bedingung mitgeführt wird).
|
||||||
|
"""
|
||||||
|
bodies = []
|
||||||
|
|
||||||
|
if isinstance(stmt, (ast.For, ast.AsyncFor, ast.While)):
|
||||||
|
bodies.append(stmt.body)
|
||||||
|
bodies.append(stmt.orelse)
|
||||||
|
elif isinstance(stmt, (ast.With, ast.AsyncWith)):
|
||||||
|
bodies.append(stmt.body)
|
||||||
|
elif isinstance(stmt, ast.Try) or (
|
||||||
|
hasattr(ast, "TryStar") and isinstance(stmt, ast.TryStar)
|
||||||
|
):
|
||||||
|
bodies.append(stmt.body)
|
||||||
|
for handler in stmt.handlers:
|
||||||
|
bodies.append(handler.body)
|
||||||
|
bodies.append(stmt.orelse)
|
||||||
|
bodies.append(stmt.finalbody)
|
||||||
|
|
||||||
|
return bodies
|
||||||
|
|
||||||
def walk_expression(self, node, operations, phase, condition):
|
def walk_expression(self, node, operations, phase, condition):
|
||||||
if node is None:
|
if node is None:
|
||||||
return
|
return
|
||||||
@@ -365,11 +423,64 @@ class RegisterExtractor(ast.NodeVisitor):
|
|||||||
op["phase"] = phase
|
op["phase"] = phase
|
||||||
if condition:
|
if condition:
|
||||||
op["condition"] = condition
|
op["condition"] = condition
|
||||||
|
if self.call_chain:
|
||||||
|
op["via"] = [dict(entry) for entry in self.call_chain]
|
||||||
operations.append(op)
|
operations.append(op)
|
||||||
|
else:
|
||||||
|
helper = self.resolve_helper_call(node)
|
||||||
|
if helper:
|
||||||
|
method_name, func_node = helper
|
||||||
|
self.walk_into_helper(
|
||||||
|
method_name, func_node, node.lineno, operations, phase, condition
|
||||||
|
)
|
||||||
|
|
||||||
for child in ast.iter_child_nodes(node):
|
for child in ast.iter_child_nodes(node):
|
||||||
self.walk_expression(child, operations, phase, condition)
|
self.walk_expression(child, operations, phase, condition)
|
||||||
|
|
||||||
|
def resolve_helper_call(self, node):
|
||||||
|
"""
|
||||||
|
Erkennt Aufrufe der Form `cls.<method>(...)` / `self.<method>(...)`
|
||||||
|
an eine Methode, die in derselben Klasse definiert ist (z. B. eine
|
||||||
|
ausgelagerte Migrationsmethode). Cross-Klassen-/Cross-Datei-Aufrufe
|
||||||
|
werden bewusst nicht aufgelöst.
|
||||||
|
"""
|
||||||
|
if not isinstance(node.func, ast.Attribute):
|
||||||
|
return None
|
||||||
|
|
||||||
|
receiver = node.func.value
|
||||||
|
if not (isinstance(receiver, ast.Name) and receiver.id in ("cls", "self")):
|
||||||
|
return None
|
||||||
|
|
||||||
|
method_name = node.func.attr
|
||||||
|
if method_name == "__register__":
|
||||||
|
return None
|
||||||
|
|
||||||
|
func_node = self.class_methods.get(method_name)
|
||||||
|
if func_node is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return method_name, func_node
|
||||||
|
|
||||||
|
def walk_into_helper(self, method_name, func_node, call_line, operations, phase, condition):
|
||||||
|
"""
|
||||||
|
Steigt in eine Helper-Methode ab, als wäre ihr Körper an der
|
||||||
|
Aufrufstelle inline eingefügt. Mit Zyklenschutz gegen (indirekt)
|
||||||
|
rekursive Helper-Aufrufe.
|
||||||
|
"""
|
||||||
|
if any(entry["method"] == method_name for entry in self.call_chain):
|
||||||
|
return
|
||||||
|
|
||||||
|
self.call_chain.append({"method": method_name, "line": call_line})
|
||||||
|
|
||||||
|
# Tabellen-Variablen, die lokal in der Helper-Methode definiert
|
||||||
|
# werden (z. B. `table = cls.__table__()`), vorab einsammeln.
|
||||||
|
for stmt in func_node.body:
|
||||||
|
self.collect_table_assignment(stmt)
|
||||||
|
|
||||||
|
self.walk_statements(func_node.body, operations, phase, condition)
|
||||||
|
|
||||||
|
self.call_chain.pop()
|
||||||
|
|
||||||
def is_super_register(self, stmt):
|
def is_super_register(self, stmt):
|
||||||
"""True für `super(...).__register__(...)` als eigenständiges Statement."""
|
"""True für `super(...).__register__(...)` als eigenständiges Statement."""
|
||||||
if not isinstance(stmt, ast.Expr):
|
if not isinstance(stmt, ast.Expr):
|
||||||
@@ -619,4 +730,4 @@ def main():
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user