From b549063ff605588ef1de6322d7140a4a176bc33e Mon Sep 17 00:00:00 2001 From: Ulrich Date: Thu, 20 Aug 2026 13:27:23 +0200 Subject: [PATCH] Dedublizierung gefixt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lange existierender Updatecode wurde in jeder 2. Version angezeigt - UPDATEANALYSE.md ergänzt. --- README.md | 8 +- UPDATEANALYSE.md | 79 + compare.py | 244 +- data/5.0/company.json | 163 +- data/5.0/ir.json | 348 ++ data/5.0/party.json | 290 ++ data/5.0/product.json | 395 ++ data/5.0/production.json | 82 + data/5.0/res.json | 82 + data/5.2/company.json | 163 +- data/5.2/ir.json | 348 ++ data/5.2/party.json | 319 ++ data/5.2/product.json | 395 ++ data/5.2/production.json | 82 + data/5.2/res.json | 82 + data/5.4/company.json | 163 +- data/5.4/country.json | 66 + data/5.4/currency.json | 33 + data/5.4/ir.json | 348 ++ data/5.4/party.json | 368 ++ data/5.4/product.json | 395 ++ data/5.4/production.json | 82 + data/5.4/res.json | 82 + data/5.4/stock_lot.json | 182 + data/5.6/company.json | 90 + data/5.6/country.json | 66 + data/5.6/currency.json | 33 + data/5.6/ir.json | 297 ++ data/5.6/party.json | 307 ++ data/5.6/product.json | 308 ++ data/5.6/production.json | 47 + data/5.6/res.json | 82 + data/5.6/stock_lot.json | 182 + data/5.8/company.json | 90 + data/5.8/country.json | 66 + data/5.8/currency.json | 33 + data/5.8/ir.json | 297 ++ data/5.8/party.json | 307 ++ data/5.8/product.json | 308 ++ data/5.8/production.json | 47 + data/5.8/res.json | 93 + data/5.8/stock_lot.json | 182 + data/6.0/company.json | 123 + data/6.0/country.json | 66 + data/6.0/currency.json | 33 + data/6.0/ir.json | 330 ++ data/6.0/party.json | 307 ++ data/6.0/product.json | 308 ++ data/6.0/production.json | 47 + data/6.0/res.json | 93 + data/6.0/stock_lot.json | 182 + data/6.2/company.json | 123 + data/6.2/country.json | 66 + data/6.2/currency.json | 33 + data/6.2/ir.json | 330 ++ data/6.2/party.json | 307 ++ data/6.2/product.json | 308 ++ data/6.2/production.json | 47 + data/6.2/res.json | 93 + data/6.2/stock_lot.json | 182 + data/6.4/company.json | 123 + data/6.4/country.json | 66 + data/6.4/currency.json | 33 + data/6.4/ir.json | 330 ++ data/6.4/party.json | 307 ++ data/6.4/product.json | 308 ++ data/6.4/production.json | 47 + data/6.4/res.json | 93 + data/6.4/stock_lot.json | 182 + data/6.6/company.json | 123 + data/6.6/country.json | 66 + data/6.6/currency.json | 33 + data/6.6/ir.json | 330 ++ data/6.6/party.json | 307 ++ data/6.6/product.json | 293 ++ data/6.6/production.json | 47 + data/6.6/res.json | 93 + data/6.6/stock_lot.json | 182 + data/6.8/company.json | 123 + data/6.8/country.json | 66 + data/6.8/currency.json | 33 + data/6.8/ir.json | 330 ++ data/6.8/party.json | 307 ++ data/6.8/product.json | 293 ++ data/6.8/production.json | 47 + data/6.8/res.json | 93 + data/6.8/stock_lot.json | 182 + data/7.0/company.json | 33 + data/7.0/country.json | 66 + data/7.0/currency.json | 33 + data/7.0/ir.json | 132 + data/7.0/party.json | 162 + data/7.0/product.json | 48 + data/7.0/production.json | 22 + data/7.0/res.json | 33 + data/7.0/stock_lot.json | 182 + data/7.2/company.json | 33 + data/7.2/country.json | 66 + data/7.2/currency.json | 33 + data/7.2/ir.json | 297 ++ data/7.2/party.json | 162 + data/7.2/product.json | 48 + data/7.2/production.json | 44 + data/7.2/res.json | 33 + data/7.2/stock_lot.json | 182 + data/7.4/company.json | 33 + data/7.4/country.json | 66 + data/7.4/currency.json | 33 + data/7.4/ir.json | 330 ++ data/7.4/party.json | 162 + data/7.4/product.json | 48 + data/7.4/production.json | 44 + data/7.4/res.json | 33 + data/7.4/stock_lot.json | 182 + data/7.6/ir.json | 233 + data/7.6/party.json | 113 + data/7.6/production.json | 22 + data/7.8/ir.json | 233 + data/7.8/party.json | 113 + data/7.8/production.json | 22 + data/8.0/ir.json | 233 + data/8.0/party.json | 139 + data/8.0/production.json | 22 + extract.py | 75 + reports/company.md | 1002 ++++- reports/country.md | 883 +++- reports/currency.md | 349 +- reports/ir.md | 6732 +++++++++++++++++++++++++---- reports/party.md | 3614 +++++++++++++++- reports/product.md | 3165 +++++++++++++- reports/product_measurements.md | 2 +- reports/production.md | 2851 +++++++++++- reports/production_split.md | 2 +- reports/res.md | 3751 +++++++++++++++- reports/stock_lot.md | 3413 ++++++++++++++- reports/stock_lot_sled.md | 2 +- reports/stock_product_location.md | 53 +- reports/stock_split.md | 2 +- 138 files changed, 43143 insertions(+), 1472 deletions(-) create mode 100644 UPDATEANALYSE.md diff --git a/README.md b/README.md index e34e836..6a25462 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ -# tryton-db-migration +# Datenbankmigration von 5.0 auf 8.0 +aktuell zwei Ansätze: + +- Codeanalyse des Updatemechanismus +- Unterschiede im Zustand erkennen nachdem in beiden Versionen die gleichen Testdaten angelegt wurden. + -skripte und Dokumentation zur Datenbankmigration bei tryton \ No newline at end of file diff --git a/UPDATEANALYSE.md b/UPDATEANALYSE.md new file mode 100644 index 0000000..a0f3536 --- /dev/null +++ b/UPDATEANALYSE.md @@ -0,0 +1,79 @@ +# Tryton DB-Migrationsanalyse (AST-Zweig) + +Analysiert per statischem Code-Scan, welche Datenbank-Operationen die +`__register__`-Methoden aller Tryton-Module über mehrere Versionen hinweg +ausführen – ohne die Module tatsächlich zu installieren/upzudaten. + +## Workflow + +```bash +./run.sh +``` + +Checkt der Reihe nach jeden Versions-Branch (`5.0` bis `8.0`) im +Tryton-Repo aus, lässt `extract.py` pro Version über alle konfigurierten +Module laufen (Ergebnis: `data//.json`), und ruft danach +`compare.py` auf, das daraus die aggregierten Reports in `reports/*.md` +erzeugt (ein Report pro Modul, gegliedert nach Tabelle und Version). + +Einzeln aufrufbar: +```bash +python3 extract.py --repo --output data +python3 compare.py +``` + +## Was `extract.py` erkennt + +- Erkannte DB-Operationen (`column_rename`, `add_column`, `update`, + `insert`, `execute`, ... – siehe `INTERESTING_OPS`) inkl. Tabelle(n), + Zeile, Bedingung (`if`-Kontext), Phase (`before_super`/`after_super`). +- Steigt in `for`/`while`/`with`/`try` ab (nicht nur `if`). +- Löst Aufrufe an Helper-Methoden derselben Klasse auf + (`cls._migrate_x(...)`) und markiert die gefundenen Operationen mit + `"via": [{"method": ..., "line": ...}]`. +- Loggt alle sonstigen, nicht erkannten Aufrufe zusätzlich als + `"unresolved": true` – Rohmaterial für die manuelle Sichtung, gefiltert + um bekanntes Rauschen (`Pool()`, `Transaction()`, `cursor`, `.append`, + `pool.get`, `logger.*`, `__table__`/`__table_handler__`). + +## Was `extract.py` NICHT erkennt (bewusste Grenzen) + +- **Cross-Datei-Aufrufe**: Ruft `__register__` eine Funktion aus einem + anderen Modul/Utility-Modul auf (z. B. `migrate_property(...)` aus + `trytond.model.modelstorage`), wird das nicht verfolgt – landet als + `unresolved`, der eigentliche DB-Zugriff bleibt unsichtbar. +- **XML-Datendateien** (`ir.model.data`) – bewusst ausgeklammert, da + Konfigurationsdaten ohnehin manuell geprüft werden müssen. +- **`.sql`-Dateien** in Modulen – werden nicht gescannt. +- **Implizite Schema-Änderungen** durch reine Feldtyp-Änderungen im + Python-Code (ohne expliziten `add_column`/`alter_size`-Aufruf). + +## `compare.py` – Aggregation & Dedup + +Fasst pro Tabelle die Operationen aller Versionen zusammen und zeigt eine +Operation nur dann erneut an, wenn sie sich vom **tatsächlichen, +vollständigen Bestand der unmittelbar vorherigen Version** unterscheidet +(nicht: irgendwann schon mal gesehen). Das behandelt korrekt sowohl den +Normalfall (Migrationscode bleibt über viele Versionen unverändert – wird +nur einmal angezeigt) als auch den Fall, dass ein Block zwischenzeitlich +durch etwas anderes ersetzt und später identisch wieder eingeführt wird +(taucht dann korrekt erneut auf). + +Zeigt keine "wurde entfernt"-Markierung – nur Neues/Verändertes. + +## Konfiguration + +- Modul-/Repo-Defaults: oben in `extract.py` (`DEFAULT_REPO`, + `DEFAULT_MODULES`). +- Versions-Range: `START`/`END` in `run.sh`. +- Rauschfilter für `unresolved`: `IGNORED_UNRESOLVED_*` in `extract.py` – + bei Bedarf erweitern, wenn sich beim Sichten neue, eindeutig irrelevante + Muster zeigen (siehe Git-Historie für die bisherige Herleitung). + +## Nächster Schritt + +Ergänzender, unabhängiger Zweig: Proteus-basierter Vergleich (echte +Testdaten in zwei frisch installierten Versionen anlegen, Fehler/ +Reformatierung erkennen) – siehe `create_dataset.py`, +`compare_snapshots.py`, `rst_to_dataset.py` (Stand: ungetestet gegen +echte Tryton-Instanz). diff --git a/compare.py b/compare.py index c378612..798440e 100644 --- a/compare.py +++ b/compare.py @@ -2,35 +2,137 @@ import json from pathlib import Path +from collections import OrderedDict DATA = Path("data") REPORTS = Path("reports") - -def versions(): - return sorted( - [d for d in DATA.iterdir() if d.is_dir()], - key=lambda p: [int(x) for x in p.name.split(".")] - ) - +VERSION_DIRS = sorted( + [d for d in DATA.iterdir() if d.is_dir()], + key=lambda p: [int(x) for x in p.name.split(".")] + ) +VERSIONS = [v.name for v in VERSION_DIRS] def modules(): - first = versions()[0] + first = VERSION_DIRS[0] return sorted(f.stem for f in first.glob("*.json")) + +class Operation(object): + def __init__(self, data, source): + self.condition = None + self.via = None + self.unresolved = False + self.__dict__.update(data) + self.sources = [source,] + self.tables_unknown = not self.tables + if not self.tables: + self.tables = ('unknown',) + + def toText(self): + marker = "unresolved " if self.unresolved else "" + text = [f"- **{self.phase}** {marker}`{self.operation}`"] + if self.condition: + text.append( f" - condition: `{self.condition}`") + if self.object: + text.append( f" - object: `{self.object}`" ) + if self.via: + chain = " -> ".join(f"{v['method']} (Zeile {v['line']})" for v in self.via) + text.append( f" - via: {chain}" ) + if self.tables_unknown: + text.append(" - Tabelle nicht erkannt!") + text.append( " - files:" ) + for s in self.sources: + text.append( f" - `{s['file']}`" ) + if self.args: + text.append( f" - args: `{', '.join(self.args)}`" ) + if self.kwargs: + text.append(" - kwargs:") + for k, v in self.kwargs.items(): + text.append( f" - {k}: `{v}`" ) + if self.code: + text.append(" - code:") + text.append(f" '{self.code}'") + text.append('') + return '\n'.join(text) + + @property + def key(self): + # kwargs are intentionally ignored for now. + # The key is only used to collapse repeated migration blocks; + # it is not intended to establish semantic equality. + return ( self.phase, self.operation, self.object, + tuple(self.tables), tuple(self.args), self.code, ) + +class Table: + + _allTables = {} + + @classmethod + def get(cls, name): + if name not in cls._allTables: + cls._allTables[name] = cls(name) + return cls._allTables[name] + + @classmethod + def addObject(cls, obj): + new = False + for t in obj.tables: + if cls.get(t).add(obj): + new = True + return new + + def __init__(self, name): + self.versions = {key: {} for key in VERSIONS} # was angezeigt wird + + # _current_presence: der TATSÄCHLICHE, vollständige Operationsbestand + # der Version, die wir gerade verarbeiten (unabhängig davon, ob wir + # sie anzeigen). _prev_presence: derselbe vollständige Bestand der + # UNMITTELBAR VORHERIGEN Version. Nur dieser Vergleich (nicht ein + # kumulatives "jemals gesehen") ist korrekt: taucht ein Block in + # einer Zwischenversion NICHT auf (weil er dort entfernt/ersetzt + # wurde) und kommt später identisch zurück, muss er wieder als neu + # gelten - auch wenn exakt derselbe Code schon vor langer Zeit + # existierte. + self._current_version = None + self._current_presence = {} + self._prev_presence = {} + + def _advance_to(self, version): + if version == self._current_version: + return + if self._current_version is not None: + self._prev_presence = self._current_presence + self._current_version = version + self._current_presence = {} + + def add(self, obj): + self._advance_to(obj.version) + key = obj.key + + already_in_this_version = key in self._current_presence + self._current_presence[key] = obj # immer im tatsächlichen Bestand vermerken + + if already_in_this_version: + return None # exakt dieselbe Operation kam mehrfach in DIESER Version vor + + if key in self._prev_presence: + return None # unverändert gegenüber der unmittelbar vorherigen Version + + self.versions[obj.version][key] = obj + return obj + class Module(object): def __init__(self, module): self.name = module - self.versionen = {} - self.classes = {} + self.tables = {} self.operations = [] def read_data(self): - for version in versions(): + for version in VERSION_DIRS: vers = version.name - self.versionen[vers] = {} infile = version / f"{self.name}.json" if not infile.exists(): @@ -40,39 +142,19 @@ class Module(object): for f in data["files"]: f['version'] = vers - file = f['file'] - classe = f.get('class', 'ohne') - method = f.get('method', 'ohne') - if classe not in self.versionen[vers]: - self.versionen[vers][classe] = [] - self.versionen[vers][classe].append(f) - try: - if vers not in self.classes[classe]: - self.classes[classe][vers] = [] - except KeyError: - self.classes[classe] = {} - self.classes[classe][vers] = [] - self.classes[classe][vers].append(f) + for o in f['operations']: - o['class'] = classe - o['method'] = method - o['file'] = file - o['version'] = vers - self.operations.append(o) - - def operation_key(self, operation): - # kwargs are intentionally ignored for now. - # The key is only used to collapse repeated migration blocks; - # it is not intended to establish semantic equality. - return ( - operation.get("phase"), - operation.get("operation"), - operation.get("object"), - tuple(operation.get("args", [])), - operation.get("condition"), - ) - def block_key(self, operations): - return tuple(self.operation_key(op) for op in operations) + source = {'module': f['module'], + 'file': f['file'], + 'class': f['class'], + 'method': f['method'], + 'line': f['line']} + op = Operation(o, source) + op.version = vers + if Table.addObject(op): + for t in op.tables: + if t not in self.tables: + self.tables[t] = Table.get(t) def write_data(self): @@ -80,78 +162,30 @@ class Module(object): with outfile.open("w", encoding="utf8") as out: - out.write(f"# {self.name}\n\n") + out.write(f"# modul {self.name}\n\n") - # iterate all classes - for c in sorted(self.classes): - classe = self.classes[c] + # iterate all tables + for t in sorted(self.tables): + table = self.tables[t] - out.write(f"## Klasse {c}\n\n") + out.write(f"\n## Tabelle {t}\n") - last_blocks = None - # iterate all Versions - for k in sorted(classe.keys()): - v = classe.get(k, None) - if not v: + for tName, ops in sorted(table.versions.items()): + if not ops: continue - - if last_blocks == None: - last_blocks = len(v) * [None,] - - new_version = k + new_version = tName + # iterate all files / occureces - for i, m in enumerate(v): - - # repeating? - key = self.block_key(m["operations"]) - - old_block = last_blocks[i] - if key == old_block: - continue - elif old_block and key[:len(old_block)] == old_block: - m["operations"] = m['operations'][len(old_block):] - - last_blocks[i] = key - + for op in ops.values(): + if new_version: out.write("\n") out.write(f"### {new_version}\n\n") new_version = None - out.write(f"file: {m['file']} : {m['line']}\n") - - for op in m["operations"]: - - out.write( - f"- **{op['phase']}** " - f"`{op['operation']}`\n" - ) - - if "condition" in op: - out.write( - f" - condition: `{op['condition']}`\n" - ) - - if op["object"]: - out.write( - f" - object: `{op['object']}`\n" - ) - - if op["args"]: - out.write( - f" - args: `{', '.join(op['args'])}`\n" - ) - - if op["kwargs"]: - out.write(" - kwargs:\n") - - for k, v in op["kwargs"].items(): - out.write( - f" - {k}: `{v}`\n" - ) - - out.write("\n") + out.write(op.toText()) + out.write("\n") diff --git a/data/5.0/company.json b/data/5.0/company.json index 197f8fe..3a3854f 100644 --- a/data/5.0/company.json +++ b/data/5.0/company.json @@ -1,5 +1,166 @@ { "version": "5.0", "module": "company", - "files": [] + "files": [ + { + "module": "company", + "file": "party.py", + "class": "PartyConfigurationLang", + "method": "__register__", + "line": 22, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 23, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 24, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 27, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 33, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" + } + ] + }, + { + "module": "company", + "file": "party.py", + "class": "PartyLang", + "method": "__register__", + "line": 46, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 47, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 48, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 51, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 62, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 62, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/data/5.0/ir.json b/data/5.0/ir.json index 43d498d..da0f7ad 100644 --- a/data/5.0/ir.json +++ b/data/5.0/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 499, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 502, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 503, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 694, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 695, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 695, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -170,6 +214,28 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -236,6 +302,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -289,6 +385,28 @@ "method": "__register__", "line": 1100, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1101, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1101, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -329,6 +447,67 @@ "method": "__register__", "line": 102, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 103, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 105, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 108, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 108, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 113, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -421,6 +600,56 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 137, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" + } + ] + }, + { + "module": "ir", + "file": "module.py", + "class": "ModuleDependency", + "method": "__register__", + "line": 362, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 363, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 368, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" } ] }, @@ -431,6 +660,67 @@ "method": "__register__", "line": 401, "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 402, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 403, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 403, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 404, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 411, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -519,6 +809,28 @@ "method": "__register__", "line": 99, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 100, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -574,6 +886,28 @@ "method": "__register__", "line": 74, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -607,6 +941,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 88, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.0/party.json b/data/5.0/party.json index d32f8c3..b3e9c01 100644 --- a/data/5.0/party.json +++ b/data/5.0/party.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 61, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 62, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 62, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 71, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 72, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 73, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 73, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -80,6 +162,66 @@ } ] }, + { + "module": "party", + "file": "configuration.py", + "class": "_ConfigurationValue", + "method": "__register__", + "line": 42, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 43, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 44, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 55, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 49 + } + ] + } + ] + }, { "module": "party", "file": "party.py", @@ -111,6 +253,65 @@ "method": "__register__", "line": 265, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 266, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 268, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 269, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 269, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 270, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "insert", @@ -171,6 +372,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 291, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 285 + } + ] } ] }, @@ -181,6 +408,39 @@ "method": "__register__", "line": 329, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 330, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 332, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 332, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -215,6 +475,36 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 353, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 354, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/5.0/product.json b/data/5.0/product.json index 3b2706c..de85957 100644 --- a/data/5.0/product.json +++ b/data/5.0/product.json @@ -2,6 +2,127 @@ "version": "5.0", "module": "product", "files": [ + { + "module": "product", + "file": "configuration.py", + "class": "ConfigurationDefaultCostPriceMethod", + "method": "__register__", + "line": 43, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 44, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 45, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 57, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 51 + } + ] + } + ] + }, + { + "module": "product", + "file": "product.py", + "class": "ProductListPrice", + "method": "__register__", + "line": 346, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 347, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 348, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 360, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 353 + } + ] + } + ] + }, { "module": "product", "file": "product.py", @@ -9,6 +130,119 @@ "method": "__register__", "line": 374, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 375, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 377, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 380, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 380, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 382, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 383, + "args": [ + "ProductCostPrice._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(ProductCostPrice._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 406, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 389 + } + ] + }, + { + "object": "", + "operation": "TableHandler", + "tables": [], + "line": 391, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler'))(ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -42,6 +276,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 397, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -56,6 +305,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 399, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -66,6 +330,65 @@ "method": "__register__", "line": 429, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 430, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 432, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 435, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 435, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 437, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "add_column", @@ -82,6 +405,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 471, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 445 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -113,6 +462,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 452, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -128,6 +492,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 454, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 457, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.0/production.json b/data/5.0/production.json index 1efb6b5..45fc260 100644 --- a/data/5.0/production.json +++ b/data/5.0/production.json @@ -2,6 +2,66 @@ "version": "5.0", "module": "production", "files": [ + { + "module": "production", + "file": "configuration.py", + "class": "ConfigurationProductionSequence", + "method": "__register__", + "line": 45, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 46, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 47, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 59, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 52 + } + ] + } + ] + }, { "module": "production", "file": "production.py", @@ -25,6 +85,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 235, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 235, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.0/res.json b/data/5.0/res.json index 88c4cc6..e9c1752 100644 --- a/data/5.0/res.json +++ b/data/5.0/res.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 200, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 201, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 201, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 208, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 208, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 209, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 209, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.2/company.json b/data/5.2/company.json index f654006..3c76811 100644 --- a/data/5.2/company.json +++ b/data/5.2/company.json @@ -1,5 +1,166 @@ { "version": "5.2", "module": "company", - "files": [] + "files": [ + { + "module": "company", + "file": "party.py", + "class": "PartyConfigurationLang", + "method": "__register__", + "line": 22, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 23, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 24, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 27, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 33, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" + } + ] + }, + { + "module": "company", + "file": "party.py", + "class": "PartyLang", + "method": "__register__", + "line": 46, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 47, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 48, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 51, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 62, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 62, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/data/5.2/ir.json b/data/5.2/ir.json index 74e1b8e..870c209 100644 --- a/data/5.2/ir.json +++ b/data/5.2/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 529, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 532, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 533, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 729, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 730, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 730, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1135, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1136, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1136, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,67 @@ "method": "__register__", "line": 103, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 106, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 109, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 109, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 114, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -523,6 +702,56 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 138, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" + } + ] + }, + { + "module": "ir", + "file": "module.py", + "class": "ModuleDependency", + "method": "__register__", + "line": 363, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 364, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 369, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" } ] }, @@ -533,6 +762,67 @@ "method": "__register__", "line": 396, "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 397, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 398, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 398, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 399, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 406, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -636,6 +926,28 @@ "method": "__register__", "line": 85, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 87, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -721,6 +1033,28 @@ "method": "__register__", "line": 76, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -754,6 +1088,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 90, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.2/party.json b/data/5.2/party.json index d0ff0a1..5c51171 100644 --- a/data/5.2/party.json +++ b/data/5.2/party.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 66, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 67, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 67, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 77, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 78, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 78, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -80,6 +162,66 @@ } ] }, + { + "module": "party", + "file": "configuration.py", + "class": "_ConfigurationValue", + "method": "__register__", + "line": 42, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 43, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 44, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 55, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 49 + } + ] + } + ] + }, { "module": "party", "file": "party.py", @@ -111,6 +253,65 @@ "method": "__register__", "line": 278, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 279, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 281, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 282, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 282, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 283, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "insert", @@ -171,6 +372,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 304, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 298 + } + ] } ] }, @@ -181,6 +408,39 @@ "method": "__register__", "line": 439, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 440, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 442, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 442, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -215,6 +475,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 460, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 460, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 466, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 467, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/5.2/product.json b/data/5.2/product.json index 40d121b..bbaffb5 100644 --- a/data/5.2/product.json +++ b/data/5.2/product.json @@ -2,6 +2,127 @@ "version": "5.2", "module": "product", "files": [ + { + "module": "product", + "file": "configuration.py", + "class": "ConfigurationDefaultCostPriceMethod", + "method": "__register__", + "line": 43, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 44, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 45, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 57, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 51 + } + ] + } + ] + }, + { + "module": "product", + "file": "product.py", + "class": "ProductListPrice", + "method": "__register__", + "line": 354, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 355, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 356, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 368, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 361 + } + ] + } + ] + }, { "module": "product", "file": "product.py", @@ -9,6 +130,119 @@ "method": "__register__", "line": 382, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 383, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 385, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 390, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 391, + "args": [ + "ProductCostPrice._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(ProductCostPrice._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 414, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 397 + } + ] + }, + { + "object": "", + "operation": "TableHandler", + "tables": [], + "line": 399, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler'))(ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -42,6 +276,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 405, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -56,6 +305,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 407, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -66,6 +330,65 @@ "method": "__register__", "line": 437, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 438, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 440, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 443, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 443, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 445, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "add_column", @@ -82,6 +405,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 479, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 453 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -113,6 +462,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 460, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -128,6 +492,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 462, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 465, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.2/production.json b/data/5.2/production.json index 4d6848b..7bd55ea 100644 --- a/data/5.2/production.json +++ b/data/5.2/production.json @@ -2,6 +2,66 @@ "version": "5.2", "module": "production", "files": [ + { + "module": "production", + "file": "configuration.py", + "class": "ConfigurationProductionSequence", + "method": "__register__", + "line": 45, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 46, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 47, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 59, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 52 + } + ] + } + ] + }, { "module": "production", "file": "production.py", @@ -25,6 +85,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 233, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 233, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.2/res.json b/data/5.2/res.json index 56b478b..499ae85 100644 --- a/data/5.2/res.json +++ b/data/5.2/res.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 194, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 203, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 203, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/company.json b/data/5.4/company.json index e00eca1..a249973 100644 --- a/data/5.4/company.json +++ b/data/5.4/company.json @@ -1,5 +1,166 @@ { "version": "5.4", "module": "company", - "files": [] + "files": [ + { + "module": "company", + "file": "party.py", + "class": "PartyConfigurationLang", + "method": "__register__", + "line": 22, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 23, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 24, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 27, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 33, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" + } + ] + }, + { + "module": "company", + "file": "party.py", + "class": "PartyLang", + "method": "__register__", + "line": 46, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 47, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 48, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 51, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 62, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 62, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 57 + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/data/5.4/country.json b/data/5.4/country.json index 7c6982e..269b4f0 100644 --- a/data/5.4/country.json +++ b/data/5.4/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 32, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 33, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 36, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 36, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 216, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 217, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 220, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 220, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/currency.json b/data/5.4/currency.json index 0decdab..b29522b 100644 --- a/data/5.4/currency.json +++ b/data/5.4/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 53, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 54, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 57, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 57, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/5.4/ir.json b/data/5.4/ir.json index 179ed00..fe28df9 100644 --- a/data/5.4/ir.json +++ b/data/5.4/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 529, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 532, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 533, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 729, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 730, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 730, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1135, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1136, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1136, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,67 @@ "method": "__register__", "line": 103, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 106, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 109, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 109, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 114, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -523,6 +702,56 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 138, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" + } + ] + }, + { + "module": "ir", + "file": "module.py", + "class": "ModuleDependency", + "method": "__register__", + "line": 363, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 364, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 369, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" } ] }, @@ -533,6 +762,67 @@ "method": "__register__", "line": 396, "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 397, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 398, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 398, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 399, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_rename", + "tables": [], + "line": 406, + "args": [ + "old_table", + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_rename(old_table, cls._table)", + "unresolved": true, + "phase": "before_super", + "condition": "TableHandler.table_exist(old_table)" + }, { "object": "cursor", "operation": "execute", @@ -636,6 +926,28 @@ "method": "__register__", "line": 86, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 87, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 88, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -721,6 +1033,28 @@ "method": "__register__", "line": 76, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -754,6 +1088,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 90, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/party.json b/data/5.4/party.json index 7fb384c..e74645b 100644 --- a/data/5.4/party.json +++ b/data/5.4/party.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 73, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 83, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 84, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 85, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 85, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -64,6 +146,39 @@ "method": "__register__", "line": 271, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 278, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 278, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -160,6 +275,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 299, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -213,6 +344,66 @@ } ] }, + { + "module": "party", + "file": "configuration.py", + "class": "_ConfigurationValue", + "method": "__register__", + "line": 42, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 43, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 44, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 55, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 49 + } + ] + } + ] + }, { "module": "party", "file": "party.py", @@ -244,6 +435,65 @@ "method": "__register__", "line": 278, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 279, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 281, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 282, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 282, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 283, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "insert", @@ -304,6 +554,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 304, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 298 + } + ] } ] }, @@ -314,6 +590,39 @@ "method": "__register__", "line": 439, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 440, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 442, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 442, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -348,6 +657,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 460, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 460, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 466, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 467, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/5.4/product.json b/data/5.4/product.json index f9fd9bd..0b5ff95 100644 --- a/data/5.4/product.json +++ b/data/5.4/product.json @@ -2,6 +2,127 @@ "version": "5.4", "module": "product", "files": [ + { + "module": "product", + "file": "configuration.py", + "class": "ConfigurationDefaultCostPriceMethod", + "method": "__register__", + "line": 48, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 49, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 50, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 62, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 56 + } + ] + } + ] + }, + { + "module": "product", + "file": "product.py", + "class": "ProductListPrice", + "method": "__register__", + "line": 411, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 412, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 413, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 425, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 418 + } + ] + } + ] + }, { "module": "product", "file": "product.py", @@ -9,6 +130,119 @@ "method": "__register__", "line": 439, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 440, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 442, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 445, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 445, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 447, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 448, + "args": [ + "ProductCostPrice._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(ProductCostPrice._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 471, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 454 + } + ] + }, + { + "object": "", + "operation": "TableHandler", + "tables": [], + "line": 456, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler'))(ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -42,6 +276,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 462, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -56,6 +305,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 464, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -66,6 +330,65 @@ "method": "__register__", "line": 494, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 495, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 497, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 500, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 500, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 502, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "add_column", @@ -82,6 +405,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 536, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 510 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -113,6 +462,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 517, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -128,6 +492,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 519, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 522, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/production.json b/data/5.4/production.json index 28c0c14..5182cbd 100644 --- a/data/5.4/production.json +++ b/data/5.4/production.json @@ -2,6 +2,66 @@ "version": "5.4", "module": "production", "files": [ + { + "module": "production", + "file": "configuration.py", + "class": "ConfigurationProductionSequence", + "method": "__register__", + "line": 45, + "operations": [ + { + "object": "backend", + "operation": "get", + "tables": [], + "line": 46, + "args": [ + "'TableHandler'" + ], + "kwargs": {}, + "code": "backend.get('(backend.get('TableHandler'))')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "TableHandler", + "operation": "table_exist", + "tables": [], + "line": 47, + "args": [ + "cls._table" + ], + "kwargs": {}, + "code": "(backend.get('TableHandler')).table_exist(cls._table)", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 59, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 52 + } + ] + } + ] + }, { "module": "production", "file": "production.py", @@ -25,6 +85,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 233, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 233, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/res.json b/data/5.4/res.json index 3d5b942..2bc5972 100644 --- a/data/5.4/res.json +++ b/data/5.4/res.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 194, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 203, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 203, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.4/stock_lot.json b/data/5.4/stock_lot.json index ce67656..64fed77 100644 --- a/data/5.4/stock_lot.json +++ b/data/5.4/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 29, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 30, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 31, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 36, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 38, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 39, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 41, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 47, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 48, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 50, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 55, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 61, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 65, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 67, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/5.6/company.json b/data/5.6/company.json index 178c530..9077810 100644 --- a/data/5.6/company.json +++ b/data/5.6/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 24, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 30, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 47, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 58, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 53 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 58, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 53 + } + ] } ] } diff --git a/data/5.6/country.json b/data/5.6/country.json index 90da8bf..06e53d4 100644 --- a/data/5.6/country.json +++ b/data/5.6/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 30, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 31, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 214, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 215, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 218, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 218, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.6/currency.json b/data/5.6/currency.json index b5be96f..4716576 100644 --- a/data/5.6/currency.json +++ b/data/5.6/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 51, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 52, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 55, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 55, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/5.6/ir.json b/data/5.6/ir.json index af229fd..c9e0002 100644 --- a/data/5.6/ir.json +++ b/data/5.6/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 545, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 548, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 549, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 745, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 746, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 746, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 80, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 80, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1157, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1158, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1158, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,39 @@ "method": "__register__", "line": 103, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 108, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 108, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -540,6 +691,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 137, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -576,6 +740,39 @@ "method": "__register__", "line": 393, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 394, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 394, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 395, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -696,6 +893,28 @@ "method": "__register__", "line": 86, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 87, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 88, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -781,6 +1000,28 @@ "method": "__register__", "line": 77, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 78, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 78, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -814,6 +1055,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 93, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -862,6 +1117,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 103, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -910,6 +1177,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 110, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 110, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/5.6/party.json b/data/5.6/party.json index 5b0685b..a76eed9 100644 --- a/data/5.6/party.json +++ b/data/5.6/party.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 67, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 78, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 79, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 79, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -64,6 +146,39 @@ "method": "__register__", "line": 265, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 266, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -160,6 +275,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 293, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -231,6 +362,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 52, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 46 + } + ] } ] }, @@ -265,6 +421,39 @@ "method": "__register__", "line": 268, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 269, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 271, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 271, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -339,6 +528,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 293, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 287 + } + ] } ] }, @@ -349,6 +564,39 @@ "method": "__register__", "line": 428, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 429, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 431, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 431, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -383,6 +631,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 449, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 449, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 455, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 456, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/5.6/product.json b/data/5.6/product.json index 165d627..c99dc42 100644 --- a/data/5.6/product.json +++ b/data/5.6/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 61, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 55 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 360, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 364, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 365, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 367, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 367, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 564, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 557 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 578, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 579, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 583, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 583, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,47 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 611, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 593 + } + ] + }, + { + "object": "backend", + "operation": "TableHandler", + "tables": [], + "line": 595, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "backend.TableHandler(\n ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -154,6 +327,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 602, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +356,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 604, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +381,39 @@ "method": "__register__", "line": 634, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 635, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 639, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 639, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +444,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 675, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 649 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +501,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 656, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +531,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 658, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 661, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.6/production.json b/data/5.6/production.json index 53132dc..811f21a 100644 --- a/data/5.6/production.json +++ b/data/5.6/production.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 56, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 49 + } + ] } ] }, @@ -48,6 +73,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 260, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 260, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.6/res.json b/data/5.6/res.json index c319f25..57e2a13 100644 --- a/data/5.6/res.json +++ b/data/5.6/res.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 195, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 196, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 196, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 203, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 203, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 204, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 204, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.6/stock_lot.json b/data/5.6/stock_lot.json index 4016e48..31a16b3 100644 --- a/data/5.6/stock_lot.json +++ b/data/5.6/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 29, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 30, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 31, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 36, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 38, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 39, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 41, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 47, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 48, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 50, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 55, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 61, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 65, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 67, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/5.8/company.json b/data/5.8/company.json index 508522f..538c6b3 100644 --- a/data/5.8/company.json +++ b/data/5.8/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 24, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 30, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 47, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 58, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 53 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 58, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 53 + } + ] } ] } diff --git a/data/5.8/country.json b/data/5.8/country.json index a767901..8eeaeb6 100644 --- a/data/5.8/country.json +++ b/data/5.8/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 30, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 31, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 214, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 215, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 218, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 218, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.8/currency.json b/data/5.8/currency.json index 883176f..2b7e70b 100644 --- a/data/5.8/currency.json +++ b/data/5.8/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 51, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 52, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 55, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 55, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/5.8/ir.json b/data/5.8/ir.json index 64f32e6..7be581a 100644 --- a/data/5.8/ir.json +++ b/data/5.8/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 525, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 528, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 529, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 705, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 706, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 706, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 80, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 80, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1159, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1160, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1160, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,39 @@ "method": "__register__", "line": 95, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 96, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 100, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 100, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -540,6 +691,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 129, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -576,6 +740,39 @@ "method": "__register__", "line": 385, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 386, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 386, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -696,6 +893,28 @@ "method": "__register__", "line": 80, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -781,6 +1000,28 @@ "method": "__register__", "line": 73, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -814,6 +1055,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 89, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -862,6 +1117,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 99, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -910,6 +1177,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/5.8/party.json b/data/5.8/party.json index ef53b37..7f47189 100644 --- a/data/5.8/party.json +++ b/data/5.8/party.json @@ -9,6 +9,88 @@ "method": "__register__", "line": 67, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 77, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 78, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 79, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 79, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -64,6 +146,39 @@ "method": "__register__", "line": 265, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 266, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -160,6 +275,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 293, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -231,6 +362,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 52, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 46 + } + ] } ] }, @@ -265,6 +421,39 @@ "method": "__register__", "line": 270, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 271, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 273, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 273, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -339,6 +528,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 295, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 289 + } + ] } ] }, @@ -349,6 +564,39 @@ "method": "__register__", "line": 445, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 446, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 448, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 448, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -383,6 +631,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 466, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 466, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 472, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 473, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/5.8/product.json b/data/5.8/product.json index 223b049..9337170 100644 --- a/data/5.8/product.json +++ b/data/5.8/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 66, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 401, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 405, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 406, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 408, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 408, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 608, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 601 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 622, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 623, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 627, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 627, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,47 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 655, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 637 + } + ] + }, + { + "object": "backend", + "operation": "TableHandler", + "tables": [], + "line": 639, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "backend.TableHandler(\n ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -154,6 +327,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 646, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +356,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 648, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +381,39 @@ "method": "__register__", "line": 678, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 679, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 683, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 683, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +444,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 719, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 693 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +501,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 700, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +531,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 702, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 705, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.8/production.json b/data/5.8/production.json index bea5fae..e282e91 100644 --- a/data/5.8/production.json +++ b/data/5.8/production.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 56, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 49 + } + ] } ] }, @@ -48,6 +73,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 265, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 265, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.8/res.json b/data/5.8/res.json index e60139d..d02c0cc 100644 --- a/data/5.8/res.json +++ b/data/5.8/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 191, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 192, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 195, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 202, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 203, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 203, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/5.8/stock_lot.json b/data/5.8/stock_lot.json index 2dda019..1894626 100644 --- a/data/5.8/stock_lot.json +++ b/data/5.8/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 29, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 30, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 31, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 36, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 38, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 39, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 41, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 47, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 48, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 50, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 55, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 61, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 65, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 67, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/6.0/company.json b/data/6.0/company.json index 2f564a2..79381e2 100644 --- a/data/6.0/company.json +++ b/data/6.0/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 25, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 31, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 55, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 66, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 66, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -55,6 +145,39 @@ "method": "__register__", "line": 72, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 73, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.0/country.json b/data/6.0/country.json index e14d4ac..10be64f 100644 --- a/data/6.0/country.json +++ b/data/6.0/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 31, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 32, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 219, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 220, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 223, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 223, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.0/currency.json b/data/6.0/currency.json index 7303aab..5f4e3e3 100644 --- a/data/6.0/currency.json +++ b/data/6.0/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 59, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 63, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 63, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/6.0/ir.json b/data/6.0/ir.json index 4b1e16f..4511688 100644 --- a/data/6.0/ir.json +++ b/data/6.0/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 558, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 561, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 562, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 732, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 733, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 733, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 58, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 75, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 75, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1203, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1204, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1204, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,39 @@ "method": "__register__", "line": 96, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 97, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -540,6 +691,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 130, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -576,6 +740,39 @@ "method": "__register__", "line": 386, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -697,6 +894,39 @@ "method": "__register__", "line": 115, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 116, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 118, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 118, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -795,6 +1025,28 @@ "method": "__register__", "line": 80, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -880,6 +1132,28 @@ "method": "__register__", "line": 73, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -913,6 +1187,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 89, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -961,6 +1249,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 99, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -1009,6 +1309,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/6.0/party.json b/data/6.0/party.json index fa1197e..f848f37 100644 --- a/data/6.0/party.json +++ b/data/6.0/party.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 67, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "column_rename", @@ -24,6 +46,66 @@ "code": "table.column_rename('zip', 'postal_code')", "phase": "before_super" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 81, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 82, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 83, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 83, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -79,6 +161,39 @@ "method": "__register__", "line": 278, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 279, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 285, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 285, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -175,6 +290,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 306, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -246,6 +377,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 109, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 103 + } + ] } ] }, @@ -280,6 +436,39 @@ "method": "__register__", "line": 322, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 323, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 325, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 325, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -354,6 +543,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 347, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 341 + } + ] } ] }, @@ -364,6 +579,39 @@ "method": "__register__", "line": 515, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 516, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 518, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 518, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -398,6 +646,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 537, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 537, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 543, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 544, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/6.0/product.json b/data/6.0/product.json index a5c9ef3..d173c65 100644 --- a/data/6.0/product.json +++ b/data/6.0/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 67, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 416, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 420, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 421, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 423, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 423, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 629, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 622 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 647, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 648, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 652, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 652, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,47 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 680, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 662 + } + ] + }, + { + "object": "backend", + "operation": "TableHandler", + "tables": [], + "line": 664, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "backend.TableHandler(\n ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -154,6 +327,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 671, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +356,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 673, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +381,39 @@ "method": "__register__", "line": 707, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 708, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 712, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 712, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +444,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 748, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 722 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +501,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 729, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +531,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 731, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 734, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.0/production.json b/data/6.0/production.json index 364260d..f121f56 100644 --- a/data/6.0/production.json +++ b/data/6.0/production.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 58, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 51 + } + ] } ] }, @@ -48,6 +73,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 275, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 275, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.0/res.json b/data/6.0/res.json index 22e3514..41263ff 100644 --- a/data/6.0/res.json +++ b/data/6.0/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 197, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 198, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 201, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 201, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 208, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 208, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 209, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 209, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.0/stock_lot.json b/data/6.0/stock_lot.json index 75c97e1..334dd36 100644 --- a/data/6.0/stock_lot.json +++ b/data/6.0/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 65, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 66, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 67, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 72, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 74, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 75, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 77, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 83, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 84, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 91, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 97, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 101, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 103, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/6.2/company.json b/data/6.2/company.json index 5ecbebb..b437151 100644 --- a/data/6.2/company.json +++ b/data/6.2/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 25, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 31, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 55, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 66, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 66, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -55,6 +145,39 @@ "method": "__register__", "line": 72, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 73, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.2/country.json b/data/6.2/country.json index 0094523..4cfa6d9 100644 --- a/data/6.2/country.json +++ b/data/6.2/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 31, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 32, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 219, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 220, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 223, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 223, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.2/currency.json b/data/6.2/currency.json index 78f0768..4e77120 100644 --- a/data/6.2/currency.json +++ b/data/6.2/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 61, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 62, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/6.2/ir.json b/data/6.2/ir.json index 7781088..0257dc4 100644 --- a/data/6.2/ir.json +++ b/data/6.2/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 562, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 565, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 566, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 759, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 760, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 760, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 58, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 75, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 75, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -375,6 +471,28 @@ "method": "__register__", "line": 1199, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1200, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1200, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -431,6 +549,39 @@ "method": "__register__", "line": 96, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 97, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -540,6 +691,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 130, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -576,6 +740,39 @@ "method": "__register__", "line": 386, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -697,6 +894,39 @@ "method": "__register__", "line": 119, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 122, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 122, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -795,6 +1025,28 @@ "method": "__register__", "line": 80, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -880,6 +1132,28 @@ "method": "__register__", "line": 73, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -913,6 +1187,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 89, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -961,6 +1249,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 99, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -1009,6 +1309,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/6.2/party.json b/data/6.2/party.json index dee0160..0288cf2 100644 --- a/data/6.2/party.json +++ b/data/6.2/party.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 67, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 68, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "column_rename", @@ -24,6 +46,66 @@ "code": "table.column_rename('zip', 'postal_code')", "phase": "before_super" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 81, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 82, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 83, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 83, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -79,6 +161,39 @@ "method": "__register__", "line": 271, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 272, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 278, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 278, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -175,6 +290,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 299, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -246,6 +377,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 109, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 103 + } + ] } ] }, @@ -280,6 +436,39 @@ "method": "__register__", "line": 357, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 358, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 360, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 360, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -354,6 +543,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 382, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 376 + } + ] } ] }, @@ -364,6 +579,39 @@ "method": "__register__", "line": 625, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 626, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -398,6 +646,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 647, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 647, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 653, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 654, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/6.2/product.json b/data/6.2/product.json index cb13ac0..42d5b33 100644 --- a/data/6.2/product.json +++ b/data/6.2/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 67, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 432, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 436, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 437, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 439, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 439, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 659, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 652 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 677, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 678, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 682, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 682, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,47 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 710, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 692 + } + ] + }, + { + "object": "backend", + "operation": "TableHandler", + "tables": [], + "line": 694, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "backend.TableHandler(\n ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -154,6 +327,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 701, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +356,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 703, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +381,39 @@ "method": "__register__", "line": 742, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 743, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 747, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 747, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +444,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 783, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 757 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +501,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 764, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +531,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 766, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 769, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.2/production.json b/data/6.2/production.json index e451322..4da4f40 100644 --- a/data/6.2/production.json +++ b/data/6.2/production.json @@ -45,6 +45,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 58, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 51 + } + ] } ] }, @@ -71,6 +96,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 276, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 276, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.2/res.json b/data/6.2/res.json index b907492..78ffd92 100644 --- a/data/6.2/res.json +++ b/data/6.2/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 205, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 209, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 209, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 216, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 216, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 217, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 217, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.2/stock_lot.json b/data/6.2/stock_lot.json index 195c5e5..c8d3ce9 100644 --- a/data/6.2/stock_lot.json +++ b/data/6.2/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 62, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 63, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 69, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 71, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 72, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 74, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 80, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 81, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 83, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 88, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 94, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 98, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 100, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/6.4/company.json b/data/6.4/company.json index 24db6fc..f9f286f 100644 --- a/data/6.4/company.json +++ b/data/6.4/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 25, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 31, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 54, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 65, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 65, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] } ] }, @@ -55,6 +145,39 @@ "method": "__register__", "line": 69, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 70, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 72, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 79, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.4/country.json b/data/6.4/country.json index ee82e52..59208fc 100644 --- a/data/6.4/country.json +++ b/data/6.4/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 31, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 32, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 256, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 257, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 260, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 260, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.4/currency.json b/data/6.4/currency.json index 11db312..624190d 100644 --- a/data/6.4/currency.json +++ b/data/6.4/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 59, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 63, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 63, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/6.4/ir.json b/data/6.4/ir.json index 0bf8e65..0d923e3 100644 --- a/data/6.4/ir.json +++ b/data/6.4/ir.json @@ -33,6 +33,28 @@ "method": "__register__", "line": 565, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 568, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 569, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -87,6 +109,28 @@ "method": "__register__", "line": 765, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 766, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 766, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -218,6 +262,28 @@ "method": "__register__", "line": 59, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -284,6 +350,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -398,6 +494,28 @@ "method": "__register__", "line": 1228, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1229, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1229, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -454,6 +572,39 @@ "method": "__register__", "line": 96, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 97, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -563,6 +714,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 130, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -599,6 +763,39 @@ "method": "__register__", "line": 386, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -720,6 +917,39 @@ "method": "__register__", "line": 117, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 118, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -818,6 +1048,28 @@ "method": "__register__", "line": 79, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 80, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -903,6 +1155,28 @@ "method": "__register__", "line": 73, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 74, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -936,6 +1210,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 89, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -984,6 +1272,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 99, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -1032,6 +1332,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 106, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/6.4/party.json b/data/6.4/party.json index 5b510d5..4a2a311 100644 --- a/data/6.4/party.json +++ b/data/6.4/party.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 76, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 77, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "column_rename", @@ -24,6 +46,66 @@ "code": "table.column_rename('zip', 'postal_code')", "phase": "before_super" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 90, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 91, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 92, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 92, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -79,6 +161,39 @@ "method": "__register__", "line": 295, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 296, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 302, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 302, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -175,6 +290,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 323, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -246,6 +377,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 111, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 105 + } + ] } ] }, @@ -280,6 +436,39 @@ "method": "__register__", "line": 356, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 357, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 359, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 359, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -354,6 +543,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 381, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 375 + } + ] } ] }, @@ -364,6 +579,39 @@ "method": "__register__", "line": 636, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 637, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 639, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 639, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -398,6 +646,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 658, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 658, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 664, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 665, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/6.4/product.json b/data/6.4/product.json index 4bbe32a..2c0a236 100644 --- a/data/6.4/product.json +++ b/data/6.4/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 67, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 424, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 428, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 429, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 431, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 431, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 651, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 644 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 669, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 670, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 674, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 674, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,47 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 702, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 684 + } + ] + }, + { + "object": "backend", + "operation": "TableHandler", + "tables": [], + "line": 686, + "args": [ + "ProductCostPrice", + "module_name" + ], + "kwargs": {}, + "code": "backend.TableHandler(\n ProductCostPrice, module_name)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and cost_price_exist" + }, { "object": "cursor", "operation": "execute", @@ -154,6 +327,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 693, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +356,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 695, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +381,39 @@ "method": "__register__", "line": 734, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 735, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 739, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 739, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +444,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 775, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 749 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +501,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 756, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +531,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 758, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 761, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.4/production.json b/data/6.4/production.json index f62838d..3694412 100644 --- a/data/6.4/production.json +++ b/data/6.4/production.json @@ -45,6 +45,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 57, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 50 + } + ] } ] }, @@ -71,6 +96,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 261, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 261, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.4/res.json b/data/6.4/res.json index 7325ba4..1705d1a 100644 --- a/data/6.4/res.json +++ b/data/6.4/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 202, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 203, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 214, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 214, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.4/stock_lot.json b/data/6.4/stock_lot.json index 196c81f..7794541 100644 --- a/data/6.4/stock_lot.json +++ b/data/6.4/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 62, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 67, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 69, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 78, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 79, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 86, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 92, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 96, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 98, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/6.6/company.json b/data/6.6/company.json index dbec6fd..9b2480b 100644 --- a/data/6.6/company.json +++ b/data/6.6/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 25, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 31, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 54, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 65, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 65, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] } ] }, @@ -55,6 +145,39 @@ "method": "__register__", "line": 69, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 70, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 72, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 79, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.6/country.json b/data/6.6/country.json index 37ed99b..ea68e29 100644 --- a/data/6.6/country.json +++ b/data/6.6/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 178, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 179, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 433, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 434, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 437, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 437, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.6/currency.json b/data/6.6/currency.json index 2b1707b..5c8063f 100644 --- a/data/6.6/currency.json +++ b/data/6.6/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/6.6/ir.json b/data/6.6/ir.json index ebb9534..0da897f 100644 --- a/data/6.6/ir.json +++ b/data/6.6/ir.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 570, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 573, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 574, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -63,6 +85,28 @@ "method": "__register__", "line": 770, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 771, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 771, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -194,6 +238,28 @@ "method": "__register__", "line": 59, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -260,6 +326,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -374,6 +470,28 @@ "method": "__register__", "line": 1208, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1209, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1209, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -430,6 +548,39 @@ "method": "__register__", "line": 96, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 97, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -539,6 +690,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 130, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -575,6 +739,39 @@ "method": "__register__", "line": 386, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 387, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 388, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -671,6 +868,39 @@ "method": "__register__", "line": 117, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 118, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -745,6 +975,28 @@ "method": "__register__", "line": 110, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 111, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 112, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -815,6 +1067,28 @@ "method": "__register__", "line": 74, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 75, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -848,6 +1122,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 90, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -896,6 +1184,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 100, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -944,6 +1244,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 107, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 107, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/6.6/party.json b/data/6.6/party.json index b1e1670..b33a6b4 100644 --- a/data/6.6/party.json +++ b/data/6.6/party.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 85, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "column_rename", @@ -24,6 +46,66 @@ "code": "table.column_rename('zip', 'postal_code')", "phase": "before_super" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 99, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 100, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 101, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 101, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -79,6 +161,39 @@ "method": "__register__", "line": 312, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 313, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 319, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 319, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -175,6 +290,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 340, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -246,6 +377,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 111, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 105 + } + ] } ] }, @@ -280,6 +436,39 @@ "method": "__register__", "line": 345, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 346, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 348, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 348, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -354,6 +543,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 370, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 364 + } + ] } ] }, @@ -364,6 +579,39 @@ "method": "__register__", "line": 625, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 626, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -398,6 +646,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 647, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 647, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 653, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 654, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/6.6/product.json b/data/6.6/product.json index 0eb5fb5..b975269 100644 --- a/data/6.6/product.json +++ b/data/6.6/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 67, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 444, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 448, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 449, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 451, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 451, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 690, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 683 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 708, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 709, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 713, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 713, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,32 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 740, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 723 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -154,6 +312,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 731, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +341,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 733, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +366,39 @@ "method": "__register__", "line": 772, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 773, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 777, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 777, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +429,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 813, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 787 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +486,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 794, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +516,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 796, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 799, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.6/production.json b/data/6.6/production.json index a2a93a7..ddc93cd 100644 --- a/data/6.6/production.json +++ b/data/6.6/production.json @@ -45,6 +45,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 57, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 50 + } + ] } ] }, @@ -71,6 +96,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 277, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 277, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.6/res.json b/data/6.6/res.json index 4801e17..37e17b1 100644 --- a/data/6.6/res.json +++ b/data/6.6/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 202, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 203, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 214, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 214, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.6/stock_lot.json b/data/6.6/stock_lot.json index 74777b9..699cdef 100644 --- a/data/6.6/stock_lot.json +++ b/data/6.6/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 60, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 61, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 62, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 67, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 69, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 78, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 79, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 81, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 86, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 92, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 96, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 98, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/6.8/company.json b/data/6.8/company.json index 7a1ea12..b31a7c2 100644 --- a/data/6.8/company.json +++ b/data/6.8/company.json @@ -22,6 +22,39 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 25, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 31, + "args": [ + "'party.configuration'", + "cls._configuration_value_field", + "cls", + "cls._configuration_value_field" + ], + "kwargs": { + "fields": "['company']" + }, + "code": "migrate_property(\n 'party.configuration', cls._configuration_value_field,\n cls, cls._configuration_value_field, fields=['company'])", + "unresolved": true, + "phase": "after_super", + "condition": "not exist" } ] }, @@ -45,6 +78,63 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "table", + "operation": "column_exist", + "tables": [], + "line": 54, + "args": [ + "'company'" + ], + "kwargs": {}, + "code": "table.column_exist('company')", + "unresolved": true, + "phase": "before_super", + "condition": "exist" + }, + { + "object": "super(PartyLang, cls)", + "operation": "_migrate_property", + "tables": [], + "line": 65, + "args": [ + "field_names", + "value_names", + "fields" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)._migrate_property(\n field_names, value_names, fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] + }, + { + "object": "", + "operation": "super", + "tables": [], + "line": 65, + "args": [ + "PartyLang", + "cls" + ], + "kwargs": {}, + "code": "super(PartyLang, cls)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 60 + } + ] } ] }, @@ -55,6 +145,39 @@ "method": "__register__", "line": 69, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 70, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 72, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 79, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.8/country.json b/data/6.8/country.json index 15df367..33a8fa2 100644 --- a/data/6.8/country.json +++ b/data/6.8/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 178, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 179, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -89,6 +122,39 @@ "method": "__register__", "line": 433, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 434, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 437, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 437, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.8/currency.json b/data/6.8/currency.json index c98cd83..83a30bd 100644 --- a/data/6.8/currency.json +++ b/data/6.8/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 72, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 73, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "not_null_action", diff --git a/data/6.8/ir.json b/data/6.8/ir.json index 94158ee..3188f79 100644 --- a/data/6.8/ir.json +++ b/data/6.8/ir.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 582, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 585, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 586, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "table", "operation": "drop_constraint", @@ -63,6 +85,28 @@ "method": "__register__", "line": 774, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 775, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 775, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_column", @@ -194,6 +238,28 @@ "method": "__register__", "line": 59, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 60, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -260,6 +326,36 @@ "phase": "after_super", "condition": "table.column_exist('digest') and table.column_exist('collision')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "Concat(attachment.digest, '-')", + "attachment.collision" + ], + "kwargs": {}, + "code": "Concat(Concat(attachment.digest, '-'),\n attachment.collision)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 76, + "args": [ + "attachment.digest", + "'-'" + ], + "kwargs": {}, + "code": "Concat(attachment.digest, '-')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('digest') and table.column_exist('collision')" + }, { "object": "table", "operation": "drop_column", @@ -374,6 +470,28 @@ "method": "__register__", "line": 1227, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 1228, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 1228, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -430,6 +548,39 @@ "method": "__register__", "line": 97, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 98, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 102, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 102, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -539,6 +690,19 @@ }, "code": "model_data_sql_table.update(\n [model_data_sql_table.module], ['ir'],\n where=((model_data_sql_table.module == 'res')\n & (model_data_sql_table.fs_id.in_(button_fs_ids))))", "phase": "after_super" + }, + { + "object": "model_data_sql_table.fs_id", + "operation": "in_", + "tables": [], + "line": 131, + "args": [ + "button_fs_ids" + ], + "kwargs": {}, + "code": "model_data_sql_table.fs_id.in_(button_fs_ids)", + "unresolved": true, + "phase": "after_super" } ] }, @@ -575,6 +739,39 @@ "method": "__register__", "line": 370, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 371, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 371, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 372, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_rename", @@ -671,6 +868,39 @@ "method": "__register__", "line": 117, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 118, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 120, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -745,6 +975,28 @@ "method": "__register__", "line": 111, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 112, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 113, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "drop_constraint", @@ -815,6 +1067,28 @@ "method": "__register__", "line": 79, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 80, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 80, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -848,6 +1122,20 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "datetime", + "operation": "timedelta", + "tables": [], + "line": 95, + "args": [], + "kwargs": { + "hours": "delay" + }, + "code": "datetime.timedelta(hours=(datetime.timedelta(hours=delay)))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('minimum_delay')" + }, { "object": "cursor", "operation": "execute", @@ -896,6 +1184,18 @@ "phase": "after_super", "condition": "table.column_exist('minimum_delay')" }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 105, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -944,6 +1244,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 112, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 112, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/6.8/party.json b/data/6.8/party.json index e34aab1..5c8588d 100644 --- a/data/6.8/party.json +++ b/data/6.8/party.json @@ -9,6 +9,28 @@ "method": "__register__", "line": 85, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 86, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "column_rename", @@ -24,6 +46,66 @@ "code": "table.column_rename('zip', 'postal_code')", "phase": "before_super" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 99, + "args": [ + "Coalesce(sql_table.street, '')", + "Concat('\\n', Coalesce(sql_table.streetbis, ''))" + ], + "kwargs": {}, + "code": "Concat(\n Coalesce(sql_table.street, ''),\n Concat('\\n', Coalesce(sql_table.streetbis, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 100, + "args": [ + "sql_table.street", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.street, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 101, + "args": [ + "'\\n'", + "Coalesce(sql_table.streetbis, '')" + ], + "kwargs": {}, + "code": "Concat('\\n', Coalesce(sql_table.streetbis, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 101, + "args": [ + "sql_table.streetbis", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sql_table.streetbis, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('streetbis')" + }, { "object": "cursor", "operation": "execute", @@ -79,6 +161,39 @@ "method": "__register__", "line": 312, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 313, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 319, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 319, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -175,6 +290,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 340, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -246,6 +377,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 111, + "args": [ + "'party.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'party.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 105 + } + ] } ] }, @@ -280,6 +436,39 @@ "method": "__register__", "line": 345, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 346, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 348, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 348, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -354,6 +543,32 @@ "code": "party_h.drop_column('lang')", "phase": "after_super", "condition": "party_h.column_exist('lang')" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 370, + "args": [ + "'party.party'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'party'", + "fields": "fields" + }, + "code": "migrate_property(\n 'party.party', field_names, cls, value_names,\n parent='party', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 364 + } + ] } ] }, @@ -364,6 +579,39 @@ "method": "__register__", "line": 625, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 626, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 628, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -398,6 +646,65 @@ "phase": "after_super", "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" }, + { + "object": "", + "operation": "get_cc_module", + "tables": [], + "line": 647, + "args": [ + "*type.split('_', 1)" + ], + "kwargs": {}, + "code": "get_cc_module(*type.split('_', 1))", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "type", + "operation": "split", + "tables": [], + "line": 647, + "args": [ + "'_'", + "1" + ], + "kwargs": {}, + "code": "type.split('_', 1)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 653, + "args": [], + "kwargs": { + "party": "party_id", + "code": "code", + "type": "type" + }, + "code": "cls(party=party_id, code=code, type=type)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, + { + "object": "cls", + "operation": "save", + "tables": [], + "line": 654, + "args": [ + "identifiers" + ], + "kwargs": {}, + "code": "cls.save(identifiers)", + "unresolved": true, + "phase": "after_super", + "condition": "party_h.column_exist('vat_number') and party_h.column_exist('vat_country')" + }, { "object": "party_h", "operation": "drop_column", diff --git a/data/6.8/product.json b/data/6.8/product.json index 19f7e64..59ff4b5 100644 --- a/data/6.8/product.json +++ b/data/6.8/product.json @@ -22,6 +22,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 67, + "args": [ + "'product.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'product.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 61 + } + ] } ] }, @@ -32,6 +57,54 @@ "method": "__register__", "line": 447, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 451, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 452, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 454, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 454, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", @@ -85,6 +158,32 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 714, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 707 + } + ] } ] }, @@ -95,6 +194,39 @@ "method": "__register__", "line": 732, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 733, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 737, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 737, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -121,6 +253,32 @@ "code": "backend.TableHandler.table_exist(\n ProductCostPrice._table)", "phase": "before_super" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 764, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist and (not cost_price_exist)", + "via": [ + { + "method": "_migrate_property", + "line": 747 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -154,6 +312,21 @@ "phase": "after_super", "condition": "cost_price_table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 755, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" + }, { "object": "cost_price", "operation": "select", @@ -168,6 +341,21 @@ "code": "cost_price.select(\n *[Column(cost_price, c) for c in columns])", "phase": "after_super", "condition": "cost_price_table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 757, + "args": [ + "cost_price", + "c" + ], + "kwargs": {}, + "code": "Column(cost_price, c)", + "unresolved": true, + "phase": "after_super", + "condition": "cost_price_table.column_exist('template')" } ] }, @@ -178,6 +366,39 @@ "method": "__register__", "line": 796, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 797, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 801, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 801, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "backend.TableHandler", "operation": "table_exist", @@ -208,6 +429,32 @@ "phase": "after_super", "condition": "not exist" }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 837, + "args": [ + "'product.template'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "parent": "'template'", + "fields": "fields" + }, + "code": "migrate_property(\n 'product.template', field_names, cls, value_names,\n parent='template', fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 811 + } + ] + }, { "object": "cursor", "operation": "execute", @@ -239,6 +486,21 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 818, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "sql_table.join(product, condition=sql_table.template == product.template)", "operation": "select", @@ -254,6 +516,37 @@ "phase": "after_super", "condition": "table.column_exist('template')" }, + { + "object": "sql_table", + "operation": "join", + "tables": [], + "line": 820, + "args": [ + "product" + ], + "kwargs": { + "condition": "sql_table.template == product.template" + }, + "code": "sql_table.join(product,\n condition=sql_table.template == product.template\n )", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, + { + "object": "", + "operation": "Column", + "tables": [], + "line": 823, + "args": [ + "sql_table", + "c" + ], + "kwargs": {}, + "code": "Column(sql_table, c)", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('template')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.8/production.json b/data/6.8/production.json index 719edd8..e91d3da 100644 --- a/data/6.8/production.json +++ b/data/6.8/production.json @@ -45,6 +45,31 @@ "kwargs": {}, "code": "backend.TableHandler.table_exist(cls._table)", "phase": "before_super" + }, + { + "object": "", + "operation": "migrate_property", + "tables": [], + "line": 57, + "args": [ + "'production.configuration'", + "field_names", + "cls", + "value_names" + ], + "kwargs": { + "fields": "fields" + }, + "code": "migrate_property(\n 'production.configuration', field_names, cls, value_names,\n fields=fields)", + "unresolved": true, + "phase": "after_super", + "condition": "not exist", + "via": [ + { + "method": "_migrate_property", + "line": 50 + } + ] } ] }, @@ -71,6 +96,28 @@ "phase": "before_super", "condition": "table_h.column_exist('code')" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 274, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 274, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.8/res.json b/data/6.8/res.json index 98c923c..5b6a5cc 100644 --- a/data/6.8/res.json +++ b/data/6.8/res.json @@ -9,6 +9,99 @@ "method": "__register__", "line": 202, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 203, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 206, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "'sha1$'", + "Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))" + ], + "kwargs": {}, + "code": "Concat('sha1$', Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, ''))))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 213, + "args": [ + "sqltable.password", + "Concat('$', Coalesce(sqltable.salt, ''))" + ], + "kwargs": {}, + "code": "Concat(sqltable.password,\n Concat('$', Coalesce(sqltable.salt, '')))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 214, + "args": [ + "'$'", + "Coalesce(sqltable.salt, '')" + ], + "kwargs": {}, + "code": "Concat('$', Coalesce(sqltable.salt, ''))", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, + { + "object": "", + "operation": "Coalesce", + "tables": [], + "line": 214, + "args": [ + "sqltable.salt", + "''" + ], + "kwargs": {}, + "code": "Coalesce(sqltable.salt, '')", + "unresolved": true, + "phase": "after_super", + "condition": "table.column_exist('password') and table.column_exist('salt')" + }, { "object": "cursor", "operation": "execute", diff --git a/data/6.8/stock_lot.json b/data/6.8/stock_lot.json index 2b6442e..56712f8 100644 --- a/data/6.8/stock_lot.json +++ b/data/6.8/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 73, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 75, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 81, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 82, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 84, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 89, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 95, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 99, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 101, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/7.0/company.json b/data/7.0/company.json index d77e4cd..92c5be7 100644 --- a/data/7.0/company.json +++ b/data/7.0/company.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 116, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 117, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 119, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 126, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/country.json b/data/7.0/country.json index ee454b2..92497ba 100644 --- a/data/7.0/country.json +++ b/data/7.0/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 178, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 179, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -46,6 +79,39 @@ "method": "__register__", "line": 424, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 425, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/currency.json b/data/7.0/currency.json index 4792132..75171b5 100644 --- a/data/7.0/currency.json +++ b/data/7.0/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 72, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 73, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/ir.json b/data/7.0/ir.json index a8f248c..0d20dfb 100644 --- a/data/7.0/ir.json +++ b/data/7.0/ir.json @@ -95,6 +95,41 @@ "method": "__register__", "line": 56, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 61, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -232,6 +267,39 @@ "method": "__register__", "line": 122, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 123, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -345,6 +413,40 @@ "method": "__register__", "line": 79, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 89, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -393,6 +495,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/7.0/party.json b/data/7.0/party.json index 77096c9..db963d7 100644 --- a/data/7.0/party.json +++ b/data/7.0/party.json @@ -33,6 +33,39 @@ "method": "__register__", "line": 303, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 304, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -129,6 +162,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 331, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -166,6 +215,70 @@ "method": "__register__", "line": 34, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 39, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 41, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 41, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -196,6 +309,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 47, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -206,6 +333,28 @@ "method": "__register__", "line": 780, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 781, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 781, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -237,6 +386,19 @@ "code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))", "phase": "after_super" }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 792, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/product.json b/data/7.0/product.json index bfe5b37..33dded5 100644 --- a/data/7.0/product.json +++ b/data/7.0/product.json @@ -9,6 +9,54 @@ "method": "__register__", "line": 494, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 498, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 499, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 501, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 501, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/production.json b/data/7.0/production.json index 1fb7bb5..e00cdf1 100644 --- a/data/7.0/production.json +++ b/data/7.0/production.json @@ -64,6 +64,28 @@ "phase": "before_super", "condition": "table_h.column_exist('uom') and (not table_h.column_exist('unit'))" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 275, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 275, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/res.json b/data/7.0/res.json index a4fa5fc..7b2c69f 100644 --- a/data/7.0/res.json +++ b/data/7.0/res.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 207, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 208, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 211, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 211, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.0/stock_lot.json b/data/7.0/stock_lot.json index 2f3a12d..76e3e73 100644 --- a/data/7.0/stock_lot.json +++ b/data/7.0/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 73, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 75, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 81, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 82, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 84, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 89, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 95, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 99, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 101, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/7.2/company.json b/data/7.2/company.json index 4e520d8..2b4f170 100644 --- a/data/7.2/company.json +++ b/data/7.2/company.json @@ -34,6 +34,39 @@ "method": "__register__", "line": 116, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 117, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 119, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 126, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/country.json b/data/7.2/country.json index 75d1ae5..deac3c1 100644 --- a/data/7.2/country.json +++ b/data/7.2/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 178, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 179, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -46,6 +79,39 @@ "method": "__register__", "line": 424, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 425, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/currency.json b/data/7.2/currency.json index bab0871..c5093ff 100644 --- a/data/7.2/currency.json +++ b/data/7.2/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 72, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 73, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 76, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/ir.json b/data/7.2/ir.json index 27f6262..b3ac60b 100644 --- a/data/7.2/ir.json +++ b/data/7.2/ir.json @@ -95,6 +95,41 @@ "method": "__register__", "line": 56, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 61, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -135,6 +170,39 @@ "method": "__register__", "line": 297, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 298, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 300, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 301, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -225,6 +293,39 @@ "method": "__register__", "line": 531, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 532, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 534, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 535, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -315,6 +416,39 @@ "method": "__register__", "line": 786, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 787, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 789, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 790, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -421,6 +555,39 @@ "method": "__register__", "line": 985, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 986, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 988, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 989, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -574,6 +741,39 @@ "method": "__register__", "line": 84, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 85, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 87, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 88, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -689,6 +889,39 @@ "method": "__register__", "line": 122, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 123, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -802,6 +1035,40 @@ "method": "__register__", "line": 79, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 89, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -850,6 +1117,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", diff --git a/data/7.2/party.json b/data/7.2/party.json index a33f68b..6b33405 100644 --- a/data/7.2/party.json +++ b/data/7.2/party.json @@ -33,6 +33,39 @@ "method": "__register__", "line": 303, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 304, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -129,6 +162,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 331, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -166,6 +215,70 @@ "method": "__register__", "line": 34, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 39, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 41, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 41, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -196,6 +309,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 47, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -231,6 +358,28 @@ "method": "__register__", "line": 805, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 806, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 806, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -262,6 +411,19 @@ "code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))", "phase": "after_super" }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 817, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/product.json b/data/7.2/product.json index 9217711..c6228c0 100644 --- a/data/7.2/product.json +++ b/data/7.2/product.json @@ -9,6 +9,54 @@ "method": "__register__", "line": 477, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 481, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 482, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 484, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 484, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/production.json b/data/7.2/production.json index 9b75d0c..0815c96 100644 --- a/data/7.2/production.json +++ b/data/7.2/production.json @@ -48,6 +48,28 @@ "method": "__register__", "line": 19, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -104,6 +126,28 @@ "phase": "before_super", "condition": "table_h.column_exist('uom') and (not table_h.column_exist('unit'))" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 276, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 276, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/res.json b/data/7.2/res.json index 2bcf556..026801c 100644 --- a/data/7.2/res.json +++ b/data/7.2/res.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 206, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 207, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 210, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 210, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.2/stock_lot.json b/data/7.2/stock_lot.json index 24f5916..1adfa62 100644 --- a/data/7.2/stock_lot.json +++ b/data/7.2/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 73, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 75, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 81, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 82, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 84, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 89, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 95, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 99, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 101, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/7.4/company.json b/data/7.4/company.json index c67e363..a3e201b 100644 --- a/data/7.4/company.json +++ b/data/7.4/company.json @@ -34,6 +34,39 @@ "method": "__register__", "line": 125, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 126, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 128, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 135, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/country.json b/data/7.4/country.json index 16df353..fd08d70 100644 --- a/data/7.4/country.json +++ b/data/7.4/country.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 178, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 179, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 182, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -46,6 +79,39 @@ "method": "__register__", "line": 424, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 425, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 428, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/currency.json b/data/7.4/currency.json index bae41f7..affa0aa 100644 --- a/data/7.4/currency.json +++ b/data/7.4/currency.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 78, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 79, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/ir.json b/data/7.4/ir.json index bbbeadc..b353a0c 100644 --- a/data/7.4/ir.json +++ b/data/7.4/ir.json @@ -95,6 +95,41 @@ "method": "__register__", "line": 56, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 59, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 61, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -135,6 +170,39 @@ "method": "__register__", "line": 297, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 298, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 300, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 301, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -225,6 +293,39 @@ "method": "__register__", "line": 534, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 535, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 537, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 538, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -315,6 +416,39 @@ "method": "__register__", "line": 789, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 790, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 792, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 793, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -421,6 +555,39 @@ "method": "__register__", "line": 988, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 989, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 991, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 992, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -574,6 +741,39 @@ "method": "__register__", "line": 84, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 85, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 87, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 88, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -689,6 +889,39 @@ "method": "__register__", "line": 122, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 123, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 125, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -802,6 +1035,40 @@ "method": "__register__", "line": 79, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 82, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 89, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "model", "operation": "select", @@ -850,6 +1117,36 @@ "phase": "after_super", "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "action_model", + "Concat('|', sql_table.action_function)" + ], + "kwargs": {}, + "code": "Concat((model.select(\n model.model, where=model.id == sql_table.action_model)), Concat(\n '|', sql_table.action_function))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, + { + "object": "", + "operation": "Concat", + "tables": [], + "line": 96, + "args": [ + "'|'", + "sql_table.action_function" + ], + "kwargs": {}, + "code": "Concat(\n '|', sql_table.action_function)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('action_model') and table_h.column_exist('action_function')" + }, { "object": "table_h", "operation": "drop_column", @@ -913,6 +1210,39 @@ "method": "__register__", "line": 570, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 571, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 576, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 576, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", diff --git a/data/7.4/party.json b/data/7.4/party.json index 0794c9d..0c296b0 100644 --- a/data/7.4/party.json +++ b/data/7.4/party.json @@ -33,6 +33,39 @@ "method": "__register__", "line": 303, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 304, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 310, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table", "operation": "update", @@ -129,6 +162,22 @@ "phase": "after_super", "condition": "table_h.column_exist('language')" }, + { + "object": "", + "operation": "Substring", + "tables": [], + "line": 331, + "args": [ + "language.code", + "0", + "2" + ], + "kwargs": {}, + "code": "Substring(language.code, 0, 2)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.column_exist('language')" + }, { "object": "cursor", "operation": "execute", @@ -166,6 +215,70 @@ "method": "__register__", "line": 34, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 35, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 39, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 41, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 41, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -196,6 +309,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 47, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -231,6 +358,28 @@ "method": "__register__", "line": 823, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 824, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 824, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -262,6 +411,19 @@ "code": "table.update([table.type], ['cn_ric'],\n where=(table.type == 'cn_rit'))", "phase": "after_super" }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 835, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/product.json b/data/7.4/product.json index cc13149..63178ff 100644 --- a/data/7.4/product.json +++ b/data/7.4/product.json @@ -9,6 +9,54 @@ "method": "__register__", "line": 505, "operations": [ + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 509, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 510, + "args": [ + "'suffix_code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('suffix_code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 512, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 512, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/production.json b/data/7.4/production.json index 8159a8e..1584ad4 100644 --- a/data/7.4/production.json +++ b/data/7.4/production.json @@ -48,6 +48,28 @@ "method": "__register__", "line": 19, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -104,6 +126,28 @@ "phase": "before_super", "condition": "table_h.column_exist('uom') and (not table_h.column_exist('unit'))" }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 277, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 277, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/res.json b/data/7.4/res.json index 908dd78..60d5d1e 100644 --- a/data/7.4/res.json +++ b/data/7.4/res.json @@ -9,6 +9,39 @@ "method": "__register__", "line": 206, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 207, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 210, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 210, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.4/stock_lot.json b/data/7.4/stock_lot.json index c6df5fb..b273577 100644 --- a/data/7.4/stock_lot.json +++ b/data/7.4/stock_lot.json @@ -9,6 +9,128 @@ "method": "__register__", "line": 63, "operations": [ + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 64, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 65, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 70, + "args": [ + "'table'", + "'product.template-stock.lot.type'" + ], + "kwargs": { + "default": "'product.template-stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'product.template-stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 72, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'product.template-stock.lot.type' .replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "config", + "operation": "get", + "tables": [], + "line": 73, + "args": [ + "'table'", + "'stock.lot.type'" + ], + "kwargs": { + "default": "'stock.lot.type'.replace('.', '_')" + }, + "code": "config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "'stock.lot.type'", + "operation": "replace", + "tables": [], + "line": 75, + "args": [ + "'.'", + "'_'" + ], + "kwargs": {}, + "code": "'stock.lot.type'.replace('.', '_')", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 81, + "args": [ + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "", + "operation": "Table", + "tables": [], + "line": 82, + "args": [ + "lot_type_table_name" + ], + "kwargs": {}, + "code": "Table((config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "connection", + "operation": "cursor", + "tables": [], + "line": 84, + "args": [], + "kwargs": {}, + "code": "connection.(connection.cursor())()", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, { "object": "cursor_select", "operation": "execute", @@ -65,6 +187,36 @@ "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", + "operation": "join", + "tables": [], + "line": 89, + "args": [ + "lot_type" + ], + "kwargs": { + "condition": "template_lot_type.type == lot_type.id" + }, + "code": "template_lot_type\n .join(lot_type,\n condition=template_lot_type.type == lot_type.id)", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "cls.lot_required", + "operation": "sql_format", + "tables": [], + "line": 95, + "args": [ + "[t for t, in cursor]" + ], + "kwargs": {}, + "code": "cls.lot_required.sql_format([t for t, in (connection.cursor())])", + "unresolved": true, + "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", @@ -97,6 +249,36 @@ "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)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 99, + "args": [ + "'product.template-stock.lot.type'", + "template_lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('product.template-stock.lot.type',\n (config.get(\n 'table', 'product.template-stock.lot.type',\n default='product.template-stock.lot.type' .replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" + }, + { + "object": "table_h", + "operation": "drop_table", + "tables": [], + "line": 101, + "args": [ + "'stock.lot.type'", + "lot_type_table_name" + ], + "kwargs": {}, + "code": "table_h.drop_table('stock.lot.type', (config.get(\n 'table', 'stock.lot.type',\n default='stock.lot.type'.replace('.', '_'))))", + "unresolved": true, + "phase": "after_super", + "condition": "table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)" } ] } diff --git a/data/7.6/ir.json b/data/7.6/ir.json index ae102b4..a2133fe 100644 --- a/data/7.6/ir.json +++ b/data/7.6/ir.json @@ -9,6 +9,41 @@ "method": "__register__", "line": 68, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 73, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -104,6 +139,39 @@ "method": "__register__", "line": 320, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 321, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 323, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 324, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -209,6 +277,39 @@ "method": "__register__", "line": 551, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 552, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 554, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 555, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -299,6 +400,39 @@ "method": "__register__", "line": 789, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 790, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 792, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 793, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -405,6 +539,39 @@ "method": "__register__", "line": 977, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 978, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 980, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 981, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -532,6 +699,39 @@ "method": "__register__", "line": 100, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 103, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -646,6 +846,39 @@ "method": "__register__", "line": 628, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 629, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 634, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 634, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", diff --git a/data/7.6/party.json b/data/7.6/party.json index 066a4f4..8159537 100644 --- a/data/7.6/party.json +++ b/data/7.6/party.json @@ -48,6 +48,70 @@ "method": "__register__", "line": 33, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 38, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 40, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 40, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -78,6 +142,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 46, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -113,6 +191,41 @@ "method": "__register__", "line": 825, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 826, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 826, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 833, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.6/production.json b/data/7.6/production.json index 3880379..79211a2 100644 --- a/data/7.6/production.json +++ b/data/7.6/production.json @@ -48,6 +48,28 @@ "method": "__register__", "line": 19, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.8/ir.json b/data/7.8/ir.json index 346332b..b7569d5 100644 --- a/data/7.8/ir.json +++ b/data/7.8/ir.json @@ -9,6 +9,41 @@ "method": "__register__", "line": 68, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 73, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -104,6 +139,39 @@ "method": "__register__", "line": 330, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 331, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 333, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 334, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -209,6 +277,39 @@ "method": "__register__", "line": 561, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 562, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 564, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 565, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -299,6 +400,39 @@ "method": "__register__", "line": 794, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 795, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 797, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 798, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -405,6 +539,39 @@ "method": "__register__", "line": 971, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 972, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 974, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 975, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -532,6 +699,39 @@ "method": "__register__", "line": 101, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 102, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 105, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -646,6 +846,39 @@ "method": "__register__", "line": 629, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 630, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 635, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 635, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", diff --git a/data/7.8/party.json b/data/7.8/party.json index a21563f..4320df0 100644 --- a/data/7.8/party.json +++ b/data/7.8/party.json @@ -48,6 +48,70 @@ "method": "__register__", "line": 33, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 38, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 40, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 40, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -78,6 +142,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 46, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -113,6 +191,41 @@ "method": "__register__", "line": 844, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 845, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 845, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 852, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/7.8/production.json b/data/7.8/production.json index a05d2ff..c1e5983 100644 --- a/data/7.8/production.json +++ b/data/7.8/production.json @@ -63,6 +63,28 @@ "method": "__register__", "line": 19, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/8.0/ir.json b/data/8.0/ir.json index 65f5a62..1240bf0 100644 --- a/data/8.0/ir.json +++ b/data/8.0/ir.json @@ -9,6 +9,41 @@ "method": "__register__", "line": 68, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 71, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 73, + "args": [ + "'user'" + ], + "kwargs": {}, + "code": "table_h.column_exist('user')", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", @@ -104,6 +139,39 @@ "method": "__register__", "line": 325, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 326, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 328, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 329, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -209,6 +277,39 @@ "method": "__register__", "line": 539, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 540, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 542, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 543, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -299,6 +400,39 @@ "method": "__register__", "line": 772, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 773, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 775, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 776, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -405,6 +539,39 @@ "method": "__register__", "line": 949, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 950, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 952, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 953, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -532,6 +699,39 @@ "method": "__register__", "line": 100, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 101, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 103, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "transaction.connection", + "operation": "cursor", + "tables": [], + "line": 104, + "args": [], + "kwargs": {}, + "code": "transaction.connection.(transaction.connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", @@ -670,6 +870,39 @@ "method": "__register__", "line": 690, "operations": [ + { + "object": "", + "operation": "Pool", + "tables": [], + "line": 691, + "args": [], + "kwargs": {}, + "code": "Pool()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 696, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 696, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "table_h", "operation": "column_rename", diff --git a/data/8.0/party.json b/data/8.0/party.json index e6ab7c8..cd4ba5f 100644 --- a/data/8.0/party.json +++ b/data/8.0/party.json @@ -48,6 +48,70 @@ "method": "__register__", "line": 33, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 34, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "cls", + "tables": [], + "line": 38, + "args": [ + "1" + ], + "kwargs": {}, + "code": "cls(1)", + "unresolved": true, + "phase": "after_super" + }, + { + "object": "", + "operation": "tuple", + "tables": [], + "line": 40, + "args": [ + "map(replace_vat, configuration.identifier_types)" + ], + "kwargs": {}, + "code": "tuple(map(\n replace_vat, configuration.identifier_types))", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, + { + "object": "", + "operation": "map", + "tables": [], + "line": 40, + "args": [ + "replace_vat", + "configuration.identifier_types" + ], + "kwargs": {}, + "code": "map(\n replace_vat, configuration.identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types" + }, { "object": "cursor", "operation": "execute", @@ -78,6 +142,20 @@ "code": "table.update(\n [table.identifier_types],\n [cls.identifier_types.sql_format(identifier_types)]\n )", "phase": "after_super", "condition": "configuration.identifier_types != identifier_types" + }, + { + "object": "cls.identifier_types", + "operation": "sql_format", + "tables": [], + "line": 46, + "args": [ + "identifier_types" + ], + "kwargs": {}, + "code": "cls.identifier_types.sql_format(identifier_types)", + "unresolved": true, + "phase": "after_super", + "condition": "configuration.identifier_types != identifier_types" } ] }, @@ -113,6 +191,67 @@ "method": "__register__", "line": 859, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 860, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 860, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 865, + "args": [ + "'code'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "table_h", + "operation": "column_exist", + "tables": [], + "line": 866, + "args": [ + "'code_compact'" + ], + "kwargs": {}, + "code": "table_h.column_exist('code_compact')", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "replace_vat", + "tables": [], + "line": 872, + "args": [ + "old" + ], + "kwargs": {}, + "code": "replace_vat(old)", + "unresolved": true, + "phase": "after_super" + }, { "object": "cursor", "operation": "execute", diff --git a/data/8.0/production.json b/data/8.0/production.json index 21cf5d7..b5f3c82 100644 --- a/data/8.0/production.json +++ b/data/8.0/production.json @@ -63,6 +63,28 @@ "method": "__register__", "line": 19, "operations": [ + { + "object": "Transaction().connection", + "operation": "cursor", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction().connection.(Transaction().connection.cursor())()", + "unresolved": true, + "phase": "before_super" + }, + { + "object": "", + "operation": "Transaction", + "tables": [], + "line": 21, + "args": [], + "kwargs": {}, + "code": "Transaction()", + "unresolved": true, + "phase": "before_super" + }, { "object": "cursor", "operation": "execute", diff --git a/extract.py b/extract.py index 6fc7c3b..0ac9f68 100644 --- a/extract.py +++ b/extract.py @@ -76,6 +76,15 @@ INTERESTING_OPS = { "select", } +# Aufrufe, die im "unresolved"-Log NICHT auftauchen sollen, weil sie entweder +# an anderer Stelle bereits sinnvoll aufgelöst werden (__table__, +# __table_handler__, pool.get) oder nachweislich nie eine DB-Operation sind +# (Listen-.append, Logging). Erste Fassung nach Sichtung von echten +# Tryton-Modulen (product.json) - bei Bedarf einfach erweitern. +IGNORED_UNRESOLVED_OPERATIONS = {"__table__", "__table_handler__", "append"} +IGNORED_UNRESOLVED_OBJECTS = {"logger"} +IGNORED_UNRESOLVED_CALLS = {("pool", "get")} + # -------------------------------------------------------------------------- # AST-Visitor @@ -433,10 +442,76 @@ class RegisterExtractor(ast.NodeVisitor): self.walk_into_helper( method_name, func_node, node.lineno, operations, phase, condition ) + else: + unresolved = self.extract_unresolved_call(node) + if unresolved: + unresolved["phase"] = phase + if condition: + unresolved["condition"] = condition + if self.call_chain: + unresolved["via"] = [dict(entry) for entry in self.call_chain] + operations.append(unresolved) for child in ast.iter_child_nodes(node): self.walk_expression(child, operations, phase, condition) + def extract_unresolved_call(self, call): + """ + Rohmaterial-Eintrag für Aufrufe in __register__ (bzw. einem + verfolgten Helper), die weder eine erkannte DB-Operation noch ein + auflösbarer cls./self.-Helper sind. Über das Flag "unresolved": true + von echten Operationen unterscheidbar. Bewusst noch ungefiltert + gehalten - bis auf eine kleine, aus echten Modulen (siehe + IGNORED_UNRESOLVED_*) abgeleitete Liste von Aufrufen, die + nachweislich nie eine DB-Operation sind bzw. bereits an anderer + Stelle sinnvoll aufgelöst werden. Gibt None zurück, wenn der Aufruf + gefiltert werden soll. + """ + if isinstance(call.func, ast.Attribute): + operation = call.func.attr + if isinstance(call.func.value, ast.Name): + obj = call.func.value.id + else: + obj = ast.unparse(call.func.value) + elif isinstance(call.func, ast.Name): + operation = call.func.id + obj = "" + else: + operation = ast.unparse(call.func) + obj = "" + + if ( + operation in IGNORED_UNRESOLVED_OPERATIONS + or obj in IGNORED_UNRESOLVED_OBJECTS + or (obj, operation) in IGNORED_UNRESOLVED_CALLS + ): + return None + + args = [] + for arg in call.args: + try: + args.append(ast.unparse(arg)) + except Exception: + args.append("") + + kwargs = {} + for kw in call.keywords: + try: + kwargs[kw.arg] = ast.unparse(kw.value) + except Exception: + kwargs[kw.arg] = "" + + return { + "object": obj, + "operation": operation, + "tables": self.find_tables(call), + "line": call.lineno, + "args": args, + "kwargs": kwargs, + "code": self._render_code(call), + "unresolved": True, + } + def resolve_helper_call(self, node): """ Erkennt Aufrufe der Form `cls.(...)` / `self.(...)` diff --git a/reports/company.md b/reports/company.md index ceabdfb..0d14a66 100644 --- a/reports/company.md +++ b/reports/company.md @@ -1,71 +1,1039 @@ # company -## Klasse ConfigurationLang - - -### 5.6 - -file: /home/uha4/tmp/tryton/modules/company/party.py : 20 -- **before_super** `table_exist` - - object: `backend.TableHandler` - - args: `cls._table` - -## Klasse CronCompany +## Klasse cron_company_rel ### 7.2 -file: /home/uha4/tmp/tryton/modules/company/ir.py : 102 +# 7.2 + - **before_super** `table_rename` - object: `backend.TableHandler` + - files: + - `ir.py` - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' -## Klasse PartyLang +### 7.6 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `ir.py` + - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' + + +### 8.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `ir.py` + - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' + + +## Tabelle ir_cron-company_company + +### 7.2 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `ir.py` + - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' + + +### 7.6 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `ir.py` + - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' + + +### 8.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `ir.py` + - args: `'cron_company_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('cron_company_rel', cls._table)' + + +## Tabelle party_configuration_party_lang ### 5.6 -file: /home/uha4/tmp/tryton/modules/company/party.py : 43 - **before_super** `table_exist` - object: `backend.TableHandler` + - files: + - `party.py` - args: `cls._table` - -## Klasse User + - code: + 'backend.TableHandler.table_exist(cls._table)' ### 6.0 -file: /home/uha4/tmp/tryton/modules/company/res.py : 72 +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle party_party_lang + +### 5.6 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle res_user + +### 6.0 + - **after_super** `execute` - condition: `table_h.column_exist('main_company')` - object: `cursor` + - files: + - `res.py` - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' - **after_super** `insert` - condition: `table_h.column_exist('main_company')` - object: `user_company` + - files: + - `res.py` - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' - **after_super** `select` - condition: `table_h.column_exist('main_company')` - object: `table` + - files: + - `res.py` - args: `table.id, table.main_company` - kwargs: - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' - **after_super** `execute` - condition: `table_h.column_exist('main_company')` - object: `cursor` + - files: + - `res.py` - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' - **after_super** `insert` - condition: `table_h.column_exist('main_company')` - object: `user_company` + - files: + - `res.py` - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' - **after_super** `select` - condition: `table_h.column_exist('main_company')` - object: `table` + - files: + - `res.py` - args: `table.id, table.company` - kwargs: - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' - **after_super** `drop_column` - condition: `table_h.column_exist('main_company')` - object: `table_h` + - files: + - `res.py` - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 6.4 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 6.8 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 7.2 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +## Tabelle res_user-company_company + +### 6.0 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' + + +### 6.4 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' + + +### 6.8 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' + + +### 7.2 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' diff --git a/reports/country.md b/reports/country.md index f2c8c17..5349c3d 100644 --- a/reports/country.md +++ b/reports/country.md @@ -1,104 +1,865 @@ -# country +# modul country -## Klasse Country +## Tabelle country_country ### 5.0 -file: /home/uha4/tmp/tryton/modules/country/country.py : 29 - **after_super** `drop_constraint` - object: `table` + - files: + - `country.py` - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' - **after_super** `drop_constraint` - object: `table` + - files: + - `country.py` - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' - **after_super** `not_null_action` - object: `table` + - files: + - `country.py` - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' ### 5.4 -file: /home/uha4/tmp/tryton/modules/country/country.py : 32 -- **after_super** `execute` - - object: `cursor` - - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` -- **after_super** `delete` - - object: `data` - - kwargs: - - where: `(data.module == 'country') & (data.model == cls.__name__)` - - -### 7.0 - -file: /home/uha4/tmp/tryton/modules/country/country.py : 178 -- **after_super** `execute` - - object: `cursor` - - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` -- **after_super** `delete` - - object: `data` - - kwargs: - - where: `(data.module == 'country') & (data.model == cls.__name__)` - -## Klasse PostalCode - - -### 6.0 - -file: /home/uha4/tmp/tryton/modules/country/country.py : 287 -- **before_super** `table_rename` - - object: `backend.TableHandler` - - args: `'country_zip', cls._table` -- **before_super** `column_rename` - - object: `table_h` - - args: `'zip', 'postal_code'` - -## Klasse Subdivision - - -### 5.4 - -file: /home/uha4/tmp/tryton/modules/country/country.py : 216 -- **after_super** `execute` - - object: `cursor` - - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` -- **after_super** `delete` - - object: `data` - - kwargs: - - where: `(data.module == 'country') & (data.model == cls.__name__)` - - -### 6.4 - -file: /home/uha4/tmp/tryton/modules/country/country.py : 256 +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' - **after_super** `not_null_action` - - object: `table_h` - - args: `'type'` - - kwargs: - - action: `'remove'` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' + + +### 5.8 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' + + +### 6.2 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' ### 6.6 -file: /home/uha4/tmp/tryton/modules/country/country.py : 433 +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' + + +## Tabelle country_postal_code + +### 6.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `country.py` + - args: `'zip', 'postal_code'` + - code: + 'table_h.column_rename('zip', 'postal_code')' + + +### 6.4 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `country.py` + - args: `'zip', 'postal_code'` + - code: + 'table_h.column_rename('zip', 'postal_code')' + + +### 6.8 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `country.py` + - args: `'zip', 'postal_code'` + - code: + 'table_h.column_rename('zip', 'postal_code')' + + +### 7.2 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `country.py` + - args: `'zip', 'postal_code'` + - code: + 'table_h.column_rename('zip', 'postal_code')' + + +## Tabelle country_subdivision + +### 6.4 + - **after_super** `not_null_action` - object: `table_h` + - files: + - `country.py` + - args: `'type'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('type', action='remove')' + + +### 6.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` - args: `'code'` - kwargs: - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` + - args: `'type'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('type', action='remove')' + + +### 7.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` + - args: `'type'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('type', action='remove')' + + +### 7.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' ### 7.6 -file: /home/uha4/tmp/tryton/modules/country/country.py : 401 - **after_super** `not_null_action` - object: `table_h` + - files: + - `country.py` - args: `'type'` - kwargs: - action: `'remove'` + - code: + 'table_h.not_null_action('type', action='remove')' + + +### 7.8 + - **after_super** `not_null_action` - object: `table_h` + - files: + - `country.py` - args: `'code'` - kwargs: - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' + + +### 8.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `country.py` + - args: `'type'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('type', action='remove')' + + +## Tabelle country_zip + +### 6.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' + + +### 6.4 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' + + +### 6.8 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' + + +### 7.2 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `country.py` + - args: `'country_zip', cls._table` + - code: + 'backend.TableHandler.table_rename('country_zip', cls._table)' + + +## Tabelle ir_model_data + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +### 5.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +### 7.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +### 7.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' diff --git a/reports/currency.md b/reports/currency.md index 5698ccc..35c59b6 100644 --- a/reports/currency.md +++ b/reports/currency.md @@ -1,42 +1,357 @@ -# currency +# modul currency -## Klasse Currency + +## Tabelle currency_currency + +### 5.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `col, 'remove'` + - code: + 'table_h.not_null_action(col, 'remove')' ### 5.4 -file: /home/uha4/tmp/tryton/modules/currency/currency.py : 53 -- **after_super** `execute` - - object: `cursor` - - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` -- **after_super** `delete` - - object: `data` - - kwargs: - - where: `(data.module == 'currency') & (data.model == cls.__name__)` +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `col, 'remove'` + - code: + 'table_h.not_null_action(col, 'remove')' + + +### 5.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `col, 'remove'` + - code: + 'table_h.not_null_action(col, 'remove')' + + +### 6.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `col, 'remove'` + - code: + 'table_h.not_null_action(col, 'remove')' + + +### 6.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `col, 'remove'` + - code: + 'table_h.not_null_action(col, 'remove')' ### 6.8 -file: /home/uha4/tmp/tryton/modules/currency/currency.py : 72 - **after_super** `not_null_action` - object: `table_h` + - files: + - `currency.py` - args: `'symbol', 'remove'` + - code: + 'table_h.not_null_action('symbol', 'remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `'symbol', 'remove'` + - code: + 'table_h.not_null_action('symbol', 'remove')' ### 7.6 -file: /home/uha4/tmp/tryton/modules/currency/currency.py : 77 - **after_super** `not_null_action` - object: `table_h` + - files: + - `currency.py` - args: `'symbol', 'remove'` + - code: + 'table_h.not_null_action('symbol', 'remove')' -## Klasse CurrencyRate + +### 8.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `currency.py` + - args: `'symbol', 'remove'` + - code: + 'table_h.not_null_action('symbol', 'remove')' + + +## Tabelle currency_currency_rate + +### 7.4 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `currency.py` + - args: `'check_currency_rate'` + - code: + 'table_h.drop_constraint('check_currency_rate')' + + +### 7.8 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `currency.py` + - args: `'check_currency_rate'` + - code: + 'table_h.drop_constraint('check_currency_rate')' + + +## Tabelle ir_model_data + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 5.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 7.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' ### 7.4 -file: /home/uha4/tmp/tryton/modules/currency/currency.py : 304 -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'check_currency_rate'` +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' diff --git a/reports/ir.md b/reports/ir.md index 8e4d970..5bad0ed 100644 --- a/reports/ir.md +++ b/reports/ir.md @@ -1,900 +1,5970 @@ -# ir +# modul ir -## Klasse ActionActWindow +## Tabelle ir_action_act_window ### 5.0 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/action.py : 694 - **after_super** `drop_column` - object: `table` + - files: + - `action.py` - args: `'auto_refresh'` + - code: + 'table.drop_column('auto_refresh')' - **after_super** `drop_column` - object: `table` + - files: + - `action.py` - args: `'window_name'` + - code: + 'table.drop_column('window_name')' - **after_super** `not_null_action` - object: `table` + - files: + - `action.py` - args: `'limit', 'remove'` + - code: + 'table.not_null_action('limit', 'remove')' - **after_super** `execute` - object: `cursor` + - files: + - `action.py` - args: `*act_window.update([act_window.limit], [Null], where=act_window.limit == 0)` + - code: + '(Transaction().connection.cursor()).execute(*act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0))' - **after_super** `update` - object: `act_window` + - files: + - `action.py` - args: `[act_window.limit], [Null]` - kwargs: - where: `act_window.limit == 0` - -## Klasse ActionActWindowDomain + - code: + 'act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0)' -### 5.2 +### 5.4 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/action.py : 948 -- **after_super** `not_null_action` - - object: `table` - - args: `'sequence', 'remove'` - -## Klasse ActionActWindowView - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/action.py : 909 -- **after_super** `not_null_action` - - object: `table` - - args: `'sequence', 'remove'` - -## Klasse ActionKeyword - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/action.py : 119 -- **after_super** `index_action` - - object: `table` - - args: `['keyword', 'model'], 'add'` - -## Klasse ActionReport - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/action.py : 499 -- **after_super** `drop_constraint` - - object: `table` - - args: `'report_name_module_uniq'` -- **after_super** `execute` - - object: `cursor` - - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` -- **after_super** `update` - - object: `action_report` - - args: `[action_report.extension], ['txt']` - - kwargs: - - where: `action_report.extension == 'plain'` - -## Klasse Attachment - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/attachment.py : 60 -- **after_super** `execute` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - - object: `cursor` - - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` -- **after_super** `update` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - - object: `attachment` - - args: `[attachment.file_id], [attachment.digest]` - - kwargs: - - where: `(attachment.collision == 0) | (attachment.collision == Null)` -- **after_super** `execute` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - - object: `cursor` - - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` -- **after_super** `update` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - - object: `attachment` - - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` - - kwargs: - - where: `(attachment.collision != 0) & (attachment.collision != Null)` - **after_super** `drop_column` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - object: `table` - - args: `'digest'` + - files: + - `action.py` + - args: `'auto_refresh'` + - code: + 'table.drop_column('auto_refresh')' - **after_super** `drop_column` - - condition: `table.column_exist('digest') and table.column_exist('collision')` - object: `table` - - args: `'collision'` -- **after_super** `drop_constraint` - - object: `table` - - args: `'resource_name'` - -## Klasse Cron - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/cron.py : 66 -- **after_super** `not_null_action` - - object: `table_h` - - args: `'next_call', 'remove'` - -## Klasse Export - - -### 7.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/export.py : 56 -- **after_super** `execute` - - condition: `not user_exists` - - object: `cursor` - - args: `*table.update([table.user], [table.create_uid])` -- **after_super** `update` - - condition: `not user_exists` - - object: `table` - - args: `[table.user], [table.create_uid]` - -## Klasse Icon - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/icon.py : 33 + - files: + - `action.py` + - args: `'window_name'` + - code: + 'table.drop_column('window_name')' - **after_super** `not_null_action` - object: `table` - - args: `'sequence', 'remove'` - -## Klasse Model - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 83 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model')` - - object: `table_h` - - args: `'name', 'string'` -- **before_super** `column_rename` - - condition: `table_h.column_exist('model')` - - object: `table_h` - - args: `'model', 'name'` -- **before_super** `drop_constraint` - - object: `table_h` - - args: `'model_uniq'` - -## Klasse ModelAccess - - -### 7.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 531 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.model]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 551 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.name]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` - -## Klasse ModelButton - - -### 6.4 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 889 -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'name_model_uniq'` - - -### 7.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 985 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.model]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'name_model_uniq'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 977 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.name]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'name_model_uniq'` - -## Klasse ModelData - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 1100 + - files: + - `action.py` + - args: `'limit', 'remove'` + - code: + 'table.not_null_action('limit', 'remove')' - **after_super** `execute` - object: `cursor` - - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - files: + - `action.py` + - args: `*act_window.update([act_window.limit], [Null], where=act_window.limit == 0)` + - code: + '(Transaction().connection.cursor()).execute(*act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0))' - **after_super** `update` - - object: `model_data` - - args: `[model_data.module], ['ir']` + - object: `act_window` + - files: + - `action.py` + - args: `[act_window.limit], [Null]` - kwargs: - - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 1135 -- **after_super** `not_null_action` - - object: `table_h` - - args: `'db_id'` - - kwargs: - - action: `'remove'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 1219 -- **after_super** `not_null_action` - - object: `table_h` - - args: `'db_id'` - - kwargs: - - action: `'remove'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 1334 -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'fs_id_module_model_uniq'` - -## Klasse ModelField - - -### 7.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 297 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.model]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 320 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.name]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` -- **before_super** `column_rename` - - object: `table_h` - - args: `'field_description', 'string'` - -## Klasse ModelFieldAccess - - -### 7.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/model.py : 786 -- **before_super** `column_rename` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `table_h` - - args: `'field', '_temp_field'` -- **before_super** `add_column` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `add_column` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `table_h` - - args: `'field', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model, table.field], [field.model, field.name], from_=[field], where=table._temp_field == field.id)` -- **before_super** `update` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `table` - - args: `[table.model, table.field], [field.model, field.name]` - - kwargs: - - from_: `[field]` - - where: `table._temp_field == field.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` - - object: `table_h` - - args: `'_temp_field'` - -## Klasse Module - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 102 -- **after_super** `execute` - - object: `cursor` - - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` -- **after_super** `update` - - object: `sql_table` - - args: `[sql_table.state], ['activated']` - - kwargs: - - where: `sql_table.state == 'installed'` -- **after_super** `execute` - - object: `cursor` - - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` -- **after_super** `update` - - object: `sql_table` - - args: `[sql_table.state], ['not activated']` - - kwargs: - - where: `sql_table.state == 'uninstalled'` -- **after_super** `execute` - - object: `cursor` - - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` -- **after_super** `update` - - object: `model_data_sql_table` - - args: `[model_data_sql_table.module], ['ir']` - - kwargs: - - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` - - -### 5.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 103 -- **before_super** `table_rename` - - condition: `backend.TableHandler.table_exist(old_table)` - - object: `backend.TableHandler` - - args: `old_table, cls._table` -- **after_super** `execute` - - object: `cursor` - - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` -- **after_super** `update` - - object: `sql_table` - - args: `[sql_table.state], ['activated']` - - kwargs: - - where: `sql_table.state == 'installed'` -- **after_super** `execute` - - object: `cursor` - - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` -- **after_super** `update` - - object: `sql_table` - - args: `[sql_table.state], ['not activated']` - - kwargs: - - where: `sql_table.state == 'uninstalled'` -- **after_super** `execute` - - object: `cursor` - - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` -- **after_super** `update` - - object: `model_data_sql_table` - - args: `[model_data_sql_table.module], ['ir']` - - kwargs: - - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` - -## Klasse ModuleConfigWizardItem - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 401 -- **before_super** `execute` - - object: `cursor` - - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` -- **before_super** `update` - - object: `model_data` - - kwargs: - - columns: `[model_data.model]` - - values: `[cls.__name__]` - - where: `model_data.model == 'ir.module.module.config_wizard.item'` - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 396 -- **after_super** `not_null_action` - - object: `table` - - args: `'sequence', 'remove'` - - -### 5.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 393 -- **before_super** `table_rename` - - condition: `backend.TableHandler.table_exist(old_table)` - - object: `backend.TableHandler` - - args: `old_table, cls._table` -- **before_super** `execute` - - object: `cursor` - - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` -- **before_super** `update` - - object: `model_data` - - kwargs: - - columns: `[model_data.model]` - - values: `[cls.__name__]` - - where: `model_data.model == 'ir.module.module.config_wizard.item'` -- **after_super** `not_null_action` - - object: `table` - - args: `'sequence', 'remove'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 323 -- **after_super** `not_null_action` - - object: `table` - - args: `'sequence', 'remove'` - -## Klasse ModuleDependency - - -### 5.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/module.py : 362 -- **before_super** `table_rename` - - condition: `backend.TableHandler.table_exist(old_table)` - - object: `backend.TableHandler` - - args: `old_table, cls._table` - -## Klasse Queue - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/queue.py : 35 -- **after_super** `index_action` - - object: `table_h` - - args: `[queue.scheduled_at.nulls_first, queue.expected_at.nulls_first, queue.dequeued_at, queue.name]` - - kwargs: - - action: `'add'` - -## Klasse RuleGroup - - -### 7.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/rule.py : 84 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.model]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/rule.py : 100 -- **before_super** `column_rename` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', '_temp_model'` -- **before_super** `add_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'model', 'VARCHAR'` -- **before_super** `execute` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `cursor` - - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` -- **before_super** `update` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table` - - args: `[table.model], [model.name]` - - kwargs: - - from_: `[model]` - - where: `table._temp_model == model.id` -- **before_super** `drop_column` - - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` - - object: `table_h` - - args: `'_temp_model'` - -## Klasse Sequence - - -### 6.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/sequence.py : 115 -- **after_super** `execute` - - condition: `table_h.column_exist('code')` - - object: `cursor` - - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` -- **after_super** `update` - - condition: `table_h.column_exist('code')` - - object: `table` - - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` -- **after_super** `select` - - condition: `table_h.column_exist('code')` - - object: `sequence_type` - - args: `sequence_type.id` - - kwargs: - - where: `sequence_type.code == table.code` -- **after_super** `drop_column` - - condition: `table_h.column_exist('code')` - - object: `table_h` - - args: `'code'` - -## Klasse SequenceType - - -### 6.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/sequence.py : 39 -- **after_super** `not_null_action` - - object: `table_h` - - args: `'code'` - - kwargs: - - action: `'remove'` - -## Klasse Session - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/session.py : 36 -- **after_super** `index_action` - - object: `table` - - args: `'create_uid', 'add'` - -## Klasse Translation - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/translation.py : 99 -- **after_super** `execute` - - object: `cursor` - - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` -- **after_super** `update` - - object: `ir_translation` - - args: `[ir_translation.type], ['report']` - - kwargs: - - where: `ir_translation.type == 'odt'` -- **after_super** `index_action` - - object: `table` - - args: `['lang', 'type', 'name'], 'add'` - - -### 5.2 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/translation.py : 85 -- **before_super** `drop_constraint` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'translation_md5_uniq'` -- **before_super** `drop_column` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'src_md5'` -- **after_super** `execute` - - object: `cursor` - - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` -- **after_super** `update` - - object: `ir_translation` - - args: `[ir_translation.type], ['report']` - - kwargs: - - where: `ir_translation.type == 'odt'` -- **after_super** `index_action` - - object: `table` - - args: `['lang', 'type', 'name'], 'add'` - - -### 6.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/translation.py : 110 -- **before_super** `drop_constraint` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'translation_md5_uniq'` -- **before_super** `drop_column` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'src_md5'` -- **after_super** `execute` - - object: `cursor` - - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` -- **after_super** `update` - - object: `ir_translation` - - args: `[ir_translation.type], ['report']` - - kwargs: - - where: `ir_translation.type == 'odt'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/translation.py : 115 -- **before_super** `drop_constraint` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'translation_md5_uniq'` -- **before_super** `drop_column` - - condition: `table.column_exist('src_md5')` - - object: `table` - - args: `'src_md5'` - -## Klasse Trigger - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/trigger.py : 74 -- **after_super** `execute` - - condition: `table.column_exist('minimum_delay')` - - object: `cursor` - - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` -- **after_super** `select` - - condition: `table.column_exist('minimum_delay')` - - object: `sql_table` - - args: `sql_table.id, sql_table.minimum_delay` - - kwargs: - - where: `sql_table.minimum_delay != Null` -- **after_super** `drop_column` - - condition: `table.column_exist('minimum_delay')` - - object: `table` - - args: `'minimum_delay'` - - -### 5.6 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/trigger.py : 77 -- **after_super** `select` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `model` - - args: `model.model` - - kwargs: - - where: `model.id == sql_table.action_model` -- **after_super** `execute` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `cursor` - - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` -- **after_super** `update` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `sql_table` - - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` -- **after_super** `drop_column` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `table_h` - - args: `'action_model'` -- **after_super** `drop_column` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `table_h` - - args: `'action_function'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/trigger.py : 79 -- **after_super** `select` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `model` - - args: `model.model` - - kwargs: - - where: `model.id == sql_table.action_model` -- **after_super** `execute` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `cursor` - - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` -- **after_super** `update` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `sql_table` - - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` -- **after_super** `drop_column` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `table_h` - - args: `'action_model'` -- **after_super** `drop_column` - - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` - - object: `table_h` - - args: `'action_function'` - -## Klasse TriggerLog - - -### 5.0 - -file: /home/uha4/tmp/tryton/trytond/trytond/ir/trigger.py : 300 -- **after_super** `index_action` - - object: `table` - - args: `['trigger', 'record_id'], 'add'` - -## Klasse ViewSearch + - where: `act_window.limit == 0` + - code: + 'act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0)' ### 5.8 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/view.py : 396 +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'auto_refresh'` + - code: + 'table.drop_column('auto_refresh')' +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'window_name'` + - code: + 'table.drop_column('window_name')' - **after_super** `not_null_action` - - object: `table_h` - - args: `'user', 'remove'` + - object: `table` + - files: + - `action.py` + - args: `'limit', 'remove'` + - code: + 'table.not_null_action('limit', 'remove')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*act_window.update([act_window.limit], [Null], where=act_window.limit == 0)` + - code: + '(Transaction().connection.cursor()).execute(*act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0))' +- **after_super** `update` + - object: `act_window` + - files: + - `action.py` + - args: `[act_window.limit], [Null]` + - kwargs: + - where: `act_window.limit == 0` + - code: + 'act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0)' -## Klasse ViewTreeOptional + +### 6.2 + +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'auto_refresh'` + - code: + 'table.drop_column('auto_refresh')' +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'window_name'` + - code: + 'table.drop_column('window_name')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'limit', 'remove'` + - code: + 'table.not_null_action('limit', 'remove')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*act_window.update([act_window.limit], [Null], where=act_window.limit == 0)` + - code: + '(Transaction().connection.cursor()).execute(*act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0))' +- **after_super** `update` + - object: `act_window` + - files: + - `action.py` + - args: `[act_window.limit], [Null]` + - kwargs: + - where: `act_window.limit == 0` + - code: + 'act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0)' + + +### 6.6 + +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'auto_refresh'` + - code: + 'table.drop_column('auto_refresh')' +- **after_super** `drop_column` + - object: `table` + - files: + - `action.py` + - args: `'window_name'` + - code: + 'table.drop_column('window_name')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'limit', 'remove'` + - code: + 'table.not_null_action('limit', 'remove')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*act_window.update([act_window.limit], [Null], where=act_window.limit == 0)` + - code: + '(Transaction().connection.cursor()).execute(*act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0))' +- **after_super** `update` + - object: `act_window` + - files: + - `action.py` + - args: `[act_window.limit], [Null]` + - kwargs: + - where: `act_window.limit == 0` + - code: + 'act_window.update( + [act_window.limit], [Null], + where=act_window.limit == 0)' + + +## Tabelle ir_action_act_window_domain + +### 5.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 5.6 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.0 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' ### 6.4 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/view.py : 445 +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +## Tabelle ir_action_act_window_view + +### 5.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 5.6 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.0 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.4 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `action.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +## Tabelle ir_action_keyword + +### 5.0 + - **after_super** `index_action` + - object: `table` + - files: + - `action.py` + - args: `['keyword', 'model'], 'add'` + - code: + 'table.index_action(['keyword', 'model'], 'add')' + + +### 5.4 + +- **after_super** `index_action` + - object: `table` + - files: + - `action.py` + - args: `['keyword', 'model'], 'add'` + - code: + 'table.index_action(['keyword', 'model'], 'add')' + + +### 5.8 + +- **after_super** `index_action` + - object: `table` + - files: + - `action.py` + - args: `['keyword', 'model'], 'add'` + - code: + 'table.index_action(['keyword', 'model'], 'add')' + + +### 6.2 + +- **after_super** `index_action` + - object: `table` + - files: + - `action.py` + - args: `['keyword', 'model'], 'add'` + - code: + 'table.index_action(['keyword', 'model'], 'add')' + + +## Tabelle ir_action_report + +### 5.0 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `action.py` + - args: `'report_name_module_uniq'` + - code: + 'table.drop_constraint('report_name_module_uniq')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` + - code: + '(transaction.connection.cursor()).execute(*action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain'))' +- **after_super** `update` + - object: `action_report` + - files: + - `action.py` + - args: `[action_report.extension], ['txt']` + - kwargs: + - where: `action_report.extension == 'plain'` + - code: + 'action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain')' + + +### 5.4 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `action.py` + - args: `'report_name_module_uniq'` + - code: + 'table.drop_constraint('report_name_module_uniq')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` + - code: + '(transaction.connection.cursor()).execute(*action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain'))' +- **after_super** `update` + - object: `action_report` + - files: + - `action.py` + - args: `[action_report.extension], ['txt']` + - kwargs: + - where: `action_report.extension == 'plain'` + - code: + 'action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain')' + + +### 5.8 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `action.py` + - args: `'report_name_module_uniq'` + - code: + 'table.drop_constraint('report_name_module_uniq')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` + - code: + '(transaction.connection.cursor()).execute(*action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain'))' +- **after_super** `update` + - object: `action_report` + - files: + - `action.py` + - args: `[action_report.extension], ['txt']` + - kwargs: + - where: `action_report.extension == 'plain'` + - code: + 'action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain')' + + +### 6.2 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `action.py` + - args: `'report_name_module_uniq'` + - code: + 'table.drop_constraint('report_name_module_uniq')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` + - code: + '(transaction.connection.cursor()).execute(*action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain'))' +- **after_super** `update` + - object: `action_report` + - files: + - `action.py` + - args: `[action_report.extension], ['txt']` + - kwargs: + - where: `action_report.extension == 'plain'` + - code: + 'action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain')' + + +### 6.6 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `action.py` + - args: `'report_name_module_uniq'` + - code: + 'table.drop_constraint('report_name_module_uniq')' +- **after_super** `execute` + - object: `cursor` + - files: + - `action.py` + - args: `*action_report.update([action_report.extension], ['txt'], where=action_report.extension == 'plain')` + - code: + '(transaction.connection.cursor()).execute(*action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain'))' +- **after_super** `update` + - object: `action_report` + - files: + - `action.py` + - args: `[action_report.extension], ['txt']` + - kwargs: + - where: `action_report.extension == 'plain'` + - code: + 'action_report.update( + [action_report.extension], + ['txt'], + where=action_report.extension == 'plain')' + + +## Tabelle ir_attachment + +### 5.0 + +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [attachment.digest]` + - kwargs: + - where: `(attachment.collision == 0) | (attachment.collision == Null)` + - code: + 'attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null))' +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` + - kwargs: + - where: `(attachment.collision != 0) & (attachment.collision != Null)` + - code: + 'attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'digest'` + - code: + 'table.drop_column('digest')' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'collision'` + - code: + 'table.drop_column('collision')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `attachment.py` + - args: `'resource_name'` + - code: + 'table.drop_constraint('resource_name')' + + +### 5.4 + +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [attachment.digest]` + - kwargs: + - where: `(attachment.collision == 0) | (attachment.collision == Null)` + - code: + 'attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null))' +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` + - kwargs: + - where: `(attachment.collision != 0) & (attachment.collision != Null)` + - code: + 'attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'digest'` + - code: + 'table.drop_column('digest')' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'collision'` + - code: + 'table.drop_column('collision')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `attachment.py` + - args: `'resource_name'` + - code: + 'table.drop_constraint('resource_name')' + + +### 5.8 + +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [attachment.digest]` + - kwargs: + - where: `(attachment.collision == 0) | (attachment.collision == Null)` + - code: + 'attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null))' +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` + - kwargs: + - where: `(attachment.collision != 0) & (attachment.collision != Null)` + - code: + 'attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'digest'` + - code: + 'table.drop_column('digest')' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'collision'` + - code: + 'table.drop_column('collision')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `attachment.py` + - args: `'resource_name'` + - code: + 'table.drop_constraint('resource_name')' + + +### 6.2 + +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [attachment.digest]` + - kwargs: + - where: `(attachment.collision == 0) | (attachment.collision == Null)` + - code: + 'attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null))' +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` + - kwargs: + - where: `(attachment.collision != 0) & (attachment.collision != Null)` + - code: + 'attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'digest'` + - code: + 'table.drop_column('digest')' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'collision'` + - code: + 'table.drop_column('collision')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `attachment.py` + - args: `'resource_name'` + - code: + 'table.drop_constraint('resource_name')' + + +### 6.6 + +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [attachment.digest], where=(attachment.collision == 0) | (attachment.collision == Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [attachment.digest]` + - kwargs: + - where: `(attachment.collision == 0) | (attachment.collision == Null)` + - code: + 'attachment.update( + [attachment.file_id], + [attachment.digest], + where=(attachment.collision == 0) + | (attachment.collision == Null))' +- **after_super** `execute` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `cursor` + - files: + - `attachment.py` + - args: `*attachment.update([attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)], where=(attachment.collision != 0) & (attachment.collision != Null))` + - code: + '(Transaction().connection.cursor()).execute(*attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null)))' +- **after_super** `update` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `attachment` + - files: + - `attachment.py` + - args: `[attachment.file_id], [Concat(Concat(attachment.digest, '-'), attachment.collision)]` + - kwargs: + - where: `(attachment.collision != 0) & (attachment.collision != Null)` + - code: + 'attachment.update( + [attachment.file_id], + [Concat(Concat(attachment.digest, '-'), + attachment.collision)], + where=(attachment.collision != 0) + & (attachment.collision != Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'digest'` + - code: + 'table.drop_column('digest')' +- **after_super** `drop_column` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - object: `table` + - files: + - `attachment.py` + - args: `'collision'` + - code: + 'table.drop_column('collision')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `attachment.py` + - args: `'resource_name'` + - code: + 'table.drop_constraint('resource_name')' + + +## Tabelle ir_cron + +### 5.2 + +- **after_super** `drop_column` - object: `table_h` - - args: `['view_id', 'user'], 'add'` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 5.6 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 6.0 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 6.4 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 6.8 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 7.2 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +## Tabelle ir_export + +### 7.0 + +- **after_super** `execute` + - condition: `not user_exists` + - object: `cursor` + - files: + - `export.py` + - args: `*table.update([table.user], [table.create_uid])` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.user], [table.create_uid]))' +- **after_super** `update` + - condition: `not user_exists` + - object: `table` + - files: + - `export.py` + - args: `[table.user], [table.create_uid]` + - code: + 'table.update([table.user], [table.create_uid])' ### 7.4 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/view.py : 570 -- **before_super** `column_rename` - - object: `table_h` - - args: `'view_id', 'view'` - **after_super** `execute` + - condition: `not user_exists` - object: `cursor` - - args: `*table.update([table.model], [view.select(view.model, where=view.id == table.view)], where=table.model == Null)` + - files: + - `export.py` + - args: `*table.update([table.user], [table.create_uid])` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.user], [table.create_uid]))' - **after_super** `update` + - condition: `not user_exists` - object: `table` - - args: `[table.model], [view.select(view.model, where=view.id == table.view)]` - - kwargs: - - where: `table.model == Null` + - files: + - `export.py` + - args: `[table.user], [table.create_uid]` + - code: + 'table.update([table.user], [table.create_uid])' + + +### 7.8 + +- **after_super** `execute` + - condition: `not user_exists` + - object: `cursor` + - files: + - `export.py` + - args: `*table.update([table.user], [table.create_uid])` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.user], [table.create_uid]))' +- **after_super** `update` + - condition: `not user_exists` + - object: `table` + - files: + - `export.py` + - args: `[table.user], [table.create_uid]` + - code: + 'table.update([table.user], [table.create_uid])' + + +## Tabelle ir_model + +### 5.6 + - **after_super** `select` - - object: `view` - - args: `view.model` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `model` + - files: + - `trigger.py` + - args: `model.model` - kwargs: - - where: `view.id == table.view` - -## Klasse ViewTreeState + - where: `model.id == sql_table.action_model` + - code: + 'model.select( + model.model, where=model.id == sql_table.(model.select( + model.model, where=model.id == sql_table.action_model)))' -### 5.0 +### 6.0 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/view.py : 313 -- **after_super** `index_action` - - object: `table` - - args: `['model', 'domain', 'user', 'child_name'], 'add'` +- **after_super** `select` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `model` + - files: + - `trigger.py` + - args: `model.model` + - kwargs: + - where: `model.id == sql_table.action_model` + - code: + 'model.select( + model.model, where=model.id == sql_table.(model.select( + model.model, where=model.id == sql_table.action_model)))' -## Klasse ViewTreeWidth + +### 6.4 + +- **after_super** `select` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `model` + - files: + - `trigger.py` + - args: `model.model` + - kwargs: + - where: `model.id == sql_table.action_model` + - code: + 'model.select( + model.model, where=model.id == sql_table.(model.select( + model.model, where=model.id == sql_table.action_model)))' + + +### 6.8 + +- **after_super** `select` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `model` + - files: + - `trigger.py` + - args: `model.model` + - kwargs: + - where: `model.id == sql_table.action_model` + - code: + 'model.select( + model.model, where=model.id == sql_table.(model.select( + model.model, where=model.id == sql_table.action_model)))' + + +### 7.2 + +- **after_super** `select` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `model` + - files: + - `trigger.py` + - args: `model.model` + - kwargs: + - where: `model.id == sql_table.action_model` + - code: + 'model.select( + model.model, where=model.id == sql_table.(model.select( + model.model, where=model.id == sql_table.action_model)))' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model')` + - object: `table_h` + - files: + - `model.py` + - args: `'name', 'string'` + - code: + 'table_h.column_rename('name', 'string')' +- **before_super** `column_rename` + - condition: `table_h.column_exist('model')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'name'` + - code: + 'table_h.column_rename('model', 'name')' +- **before_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'model_uniq'` + - code: + 'table_h.drop_constraint('model_uniq')' ### 8.0 -file: /home/uha4/tmp/tryton/trytond/trytond/ir/ui/view.py : 511 +- **before_super** `column_rename` + - condition: `table_h.column_exist('model')` + - object: `table_h` + - files: + - `model.py` + - args: `'name', 'string'` + - code: + 'table_h.column_rename('name', 'string')' +- **before_super** `column_rename` + - condition: `table_h.column_exist('model')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'name'` + - code: + 'table_h.column_rename('model', 'name')' +- **before_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'model_uniq'` + - code: + 'table_h.drop_constraint('model_uniq')' + + +## Tabelle ir_model_access + +### 7.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.model]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +### 8.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +## Tabelle ir_model_button + +### 6.4 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'name_model_uniq'` + - code: + 'table_h.drop_constraint('name_model_uniq')' + + +### 6.8 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'name_model_uniq'` + - code: + 'table_h.drop_constraint('name_model_uniq')' + + +### 7.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.model]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'name_model_uniq'` + - code: + 'table_h.drop_constraint('name_model_uniq')' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'name_model_uniq'` + - code: + 'table_h.drop_constraint('name_model_uniq')' + + +### 8.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'name_model_uniq'` + - code: + 'table_h.drop_constraint('name_model_uniq')' + + +## Tabelle ir_model_data + +### 5.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item'))' + + +### 5.2 + - **after_super** `not_null_action` - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' + + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item'))' + + +### 5.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 5.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' + + +### 6.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' + + +### 6.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 7.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' + + +### 7.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' + + +### 7.6 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'fs_id_module_model_uniq'` + - code: + 'table_h.drop_constraint('fs_id_module_model_uniq')' + + +### 8.0 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'fs_id_module_model_uniq'` + - code: + 'table_h.drop_constraint('fs_id_module_model_uniq')' + + +## Tabelle ir_model_field + +### 7.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.model]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `model.py` + - args: `'field_description', 'string'` + - code: + 'table_h.column_rename('field_description', 'string')' + + +### 8.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' +- **before_super** `column_rename` + - object: `table_h` + - files: + - `model.py` + - args: `'field_description', 'string'` + - code: + 'table_h.column_rename('field_description', 'string')' + + +## Tabelle ir_model_field_access + +### 7.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', '_temp_field'` + - code: + 'table_h.column_rename('field', '_temp_field')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', 'VARCHAR'` + - code: + 'table_h.add_column('field', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model, table.field], [field.model, field.name], from_=[field], where=table._temp_field == field.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id))' +- **before_super** `update` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model, table.field], [field.model, field.name]` + - kwargs: + - from_: `[field]` + - where: `table._temp_field == field.id` + - code: + 'table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_field'` + - code: + 'table_h.drop_column('_temp_field')' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', '_temp_field'` + - code: + 'table_h.column_rename('field', '_temp_field')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', 'VARCHAR'` + - code: + 'table_h.add_column('field', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model, table.field], [field.model, field.name], from_=[field], where=table._temp_field == field.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id))' +- **before_super** `update` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model, table.field], [field.model, field.name]` + - kwargs: + - from_: `[field]` + - where: `table._temp_field == field.id` + - code: + 'table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_field'` + - code: + 'table_h.drop_column('_temp_field')' + + +### 8.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', '_temp_field'` + - code: + 'table_h.column_rename('field', '_temp_field')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `add_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'field', 'VARCHAR'` + - code: + 'table_h.add_column('field', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `cursor` + - files: + - `model.py` + - args: `*table.update([table.model, table.field], [field.model, field.name], from_=[field], where=table._temp_field == field.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id))' +- **before_super** `update` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table` + - files: + - `model.py` + - args: `[table.model, table.field], [field.model, field.name]` + - kwargs: + - from_: `[field]` + - where: `table._temp_field == field.id` + - code: + 'table.update( + [table.model, table.field], + [field.model, field.name], + from_=[field], + where=table._temp_field == field.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('field') and table_h.column_is_type('field', 'INTEGER')` + - object: `table_h` + - files: + - `model.py` + - args: `'_temp_field'` + - code: + 'table_h.drop_column('_temp_field')' + + +## Tabelle ir_module + +### 5.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['activated']` + - kwargs: + - where: `sql_table.state == 'installed'` + - code: + 'sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed')' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['not activated']` + - kwargs: + - where: `sql_table.state == 'uninstalled'` + - code: + 'sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled')' + + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['activated']` + - kwargs: + - where: `sql_table.state == 'installed'` + - code: + 'sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed')' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['not activated']` + - kwargs: + - where: `sql_table.state == 'uninstalled'` + - code: + 'sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled')' + + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 5.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['activated']` + - kwargs: + - where: `sql_table.state == 'installed'` + - code: + 'sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed')' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['not activated']` + - kwargs: + - where: `sql_table.state == 'uninstalled'` + - code: + 'sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled')' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['activated']` + - kwargs: + - where: `sql_table.state == 'installed'` + - code: + 'sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed')' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['not activated']` + - kwargs: + - where: `sql_table.state == 'uninstalled'` + - code: + 'sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled')' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['activated'], where=sql_table.state == 'installed')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['activated']` + - kwargs: + - where: `sql_table.state == 'installed'` + - code: + 'sql_table.update( + [sql_table.state], ['activated'], + where=sql_table.state == 'installed')' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*sql_table.update([sql_table.state], ['not activated'], where=sql_table.state == 'uninstalled')` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled'))' +- **after_super** `update` + - object: `sql_table` + - files: + - `module.py` + - args: `[sql_table.state], ['not activated']` + - kwargs: + - where: `sql_table.state == 'uninstalled'` + - code: + 'sql_table.update( + [sql_table.state], ['not activated'], + where=sql_table.state == 'uninstalled')' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +## Tabelle ir_module_config_wizard_item + +### 5.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `module.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +## Tabelle ir_module_dependency + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +## Tabelle ir_module_module + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +## Tabelle ir_module_module_config_wizard_item + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +## Tabelle ir_module_module_dependency + +### 5.6 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.0 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.4 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +### 6.8 + +- **before_super** `table_rename` + - condition: `backend.TableHandler.table_exist(old_table)` + - object: `backend.TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + 'backend.TableHandler.table_rename(old_table, cls._table)' + + +## Tabelle ir_queue + +### 5.0 + +- **after_super** `index_action` + - object: `table_h` + - files: + - `queue.py` + - args: `[queue.scheduled_at.nulls_first, queue.expected_at.nulls_first, queue.dequeued_at, queue.name]` + - kwargs: + - action: `'add'` + - code: + 'table_h.index_action([ + queue.scheduled_at.nulls_first, + queue.expected_at.nulls_first, + queue.dequeued_at, + queue.name, + ], action='add')' + + +### 5.4 + +- **after_super** `index_action` + - object: `table_h` + - files: + - `queue.py` + - args: `[queue.scheduled_at.nulls_first, queue.expected_at.nulls_first, queue.dequeued_at, queue.name]` + - kwargs: + - action: `'add'` + - code: + 'table_h.index_action([ + queue.scheduled_at.nulls_first, + queue.expected_at.nulls_first, + queue.dequeued_at, + queue.name, + ], action='add')' + + +### 5.8 + +- **after_super** `index_action` + - object: `table_h` + - files: + - `queue.py` + - args: `[queue.scheduled_at.nulls_first, queue.expected_at.nulls_first, queue.dequeued_at, queue.name]` + - kwargs: + - action: `'add'` + - code: + 'table_h.index_action([ + queue.scheduled_at.nulls_first, + queue.expected_at.nulls_first, + queue.dequeued_at, + queue.name, + ], action='add')' + + +### 6.2 + +- **after_super** `index_action` + - object: `table_h` + - files: + - `queue.py` + - args: `[queue.scheduled_at.nulls_first, queue.expected_at.nulls_first, queue.dequeued_at, queue.name]` + - kwargs: + - action: `'add'` + - code: + 'table_h.index_action([ + queue.scheduled_at.nulls_first, + queue.expected_at.nulls_first, + queue.dequeued_at, + queue.name, + ], action='add')' + + +## Tabelle ir_rule_group + +### 7.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `rule.py` + - args: `*table.update([table.model], [model.model], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `rule.py` + - args: `[table.model], [model.model]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.model], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +### 7.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `rule.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `rule.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +### 8.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', '_temp_model'` + - code: + 'table_h.column_rename('model', '_temp_model')' +- **before_super** `add_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'model', 'VARCHAR'` + - code: + 'table_h.add_column('model', 'VARCHAR')' +- **before_super** `execute` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `cursor` + - files: + - `rule.py` + - args: `*table.update([table.model], [model.name], from_=[model], where=table._temp_model == model.id)` + - code: + '(transaction.connection.cursor()).execute(*table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id))' +- **before_super** `update` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table` + - files: + - `rule.py` + - args: `[table.model], [model.name]` + - kwargs: + - from_: `[model]` + - where: `table._temp_model == model.id` + - code: + 'table.update( + [table.model], [model.name], + from_=[model], + where=table._temp_model == model.id)' +- **before_super** `drop_column` + - condition: `table_h.column_exist('model') and table_h.column_is_type('model', 'INTEGER')` + - object: `table_h` + - files: + - `rule.py` + - args: `'_temp_model'` + - code: + 'table_h.drop_column('_temp_model')' + + +## Tabelle ir_sequence + +### 6.0 + +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - code: + 'table_h.drop_column('code')' + + +### 6.4 + +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - code: + 'table_h.drop_column('code')' + + +### 6.8 + +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - code: + 'table_h.drop_column('code')' + + +### 7.2 + +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - code: + 'table_h.drop_column('code')' + + +## Tabelle ir_sequence_type + +### 6.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `select` + - condition: `table_h.column_exist('code')` + - object: `sequence_type` + - files: + - `sequence.py` + - args: `sequence_type.id` + - kwargs: + - where: `sequence_type.code == table.code` + - code: + 'sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)' + + +### 6.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `select` + - condition: `table_h.column_exist('code')` + - object: `sequence_type` + - files: + - `sequence.py` + - args: `sequence_type.id` + - kwargs: + - where: `sequence_type.code == table.code` + - code: + 'sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `select` + - condition: `table_h.column_exist('code')` + - object: `sequence_type` + - files: + - `sequence.py` + - args: `sequence_type.id` + - kwargs: + - where: `sequence_type.code == table.code` + - code: + 'sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `sequence.py` + - args: `'code'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('code', action='remove')' +- **after_super** `execute` + - condition: `table_h.column_exist('code')` + - object: `cursor` + - files: + - `sequence.py` + - args: `*table.update([table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)))' +- **after_super** `update` + - condition: `table_h.column_exist('code')` + - object: `table` + - files: + - `sequence.py` + - args: `[table.sequence_type], sequence_type.select(sequence_type.id, where=sequence_type.code == table.code)` + - code: + 'table.update( + [table.sequence_type], + sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code))' +- **after_super** `select` + - condition: `table_h.column_exist('code')` + - object: `sequence_type` + - files: + - `sequence.py` + - args: `sequence_type.id` + - kwargs: + - where: `sequence_type.code == table.code` + - code: + 'sequence_type.select( + sequence_type.id, + where=sequence_type.code == table.code)' + + +## Tabelle ir_session + +### 5.0 + +- **after_super** `index_action` + - object: `table` + - files: + - `session.py` + - args: `'create_uid', 'add'` + - code: + 'table.index_action('create_uid', 'add')' + + +### 5.4 + +- **after_super** `index_action` + - object: `table` + - files: + - `session.py` + - args: `'create_uid', 'add'` + - code: + 'table.index_action('create_uid', 'add')' + + +### 5.8 + +- **after_super** `index_action` + - object: `table` + - files: + - `session.py` + - args: `'create_uid', 'add'` + - code: + 'table.index_action('create_uid', 'add')' + + +### 6.2 + +- **after_super** `index_action` + - object: `table` + - files: + - `session.py` + - args: `'create_uid', 'add'` + - code: + 'table.index_action('create_uid', 'add')' + + +## Tabelle ir_translation + +### 5.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `translation.py` + - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` + - code: + '(transaction.connection.cursor()).execute(*ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt'))' +- **after_super** `update` + - object: `ir_translation` + - files: + - `translation.py` + - args: `[ir_translation.type], ['report']` + - kwargs: + - where: `ir_translation.type == 'odt'` + - code: + 'ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt')' +- **after_super** `index_action` + - object: `table` + - files: + - `translation.py` + - args: `['lang', 'type', 'name'], 'add'` + - code: + 'table.index_action(['lang', 'type', 'name'], 'add')' + + +### 5.2 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `translation.py` + - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` + - code: + '(transaction.connection.cursor()).execute(*ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt'))' +- **after_super** `update` + - object: `ir_translation` + - files: + - `translation.py` + - args: `[ir_translation.type], ['report']` + - kwargs: + - where: `ir_translation.type == 'odt'` + - code: + 'ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt')' +- **after_super** `index_action` + - object: `table` + - files: + - `translation.py` + - args: `['lang', 'type', 'name'], 'add'` + - code: + 'table.index_action(['lang', 'type', 'name'], 'add')' + + +### 5.6 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +### 5.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `translation.py` + - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` + - code: + '(transaction.connection.cursor()).execute(*ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt'))' +- **after_super** `update` + - object: `ir_translation` + - files: + - `translation.py` + - args: `[ir_translation.type], ['report']` + - kwargs: + - where: `ir_translation.type == 'odt'` + - code: + 'ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt')' +- **after_super** `index_action` + - object: `table` + - files: + - `translation.py` + - args: `['lang', 'type', 'name'], 'add'` + - code: + 'table.index_action(['lang', 'type', 'name'], 'add')' + + +### 6.0 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `translation.py` + - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` + - code: + '(transaction.connection.cursor()).execute(*ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt'))' +- **after_super** `update` + - object: `ir_translation` + - files: + - `translation.py` + - args: `[ir_translation.type], ['report']` + - kwargs: + - where: `ir_translation.type == 'odt'` + - code: + 'ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt')' +- **after_super** `index_action` + - object: `table` + - files: + - `translation.py` + - args: `['lang', 'type', 'name'], 'add'` + - code: + 'table.index_action(['lang', 'type', 'name'], 'add')' + + +### 6.4 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `translation.py` + - args: `*ir_translation.update([ir_translation.type], ['report'], where=ir_translation.type == 'odt')` + - code: + '(transaction.connection.cursor()).execute(*ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt'))' +- **after_super** `update` + - object: `ir_translation` + - files: + - `translation.py` + - args: `[ir_translation.type], ['report']` + - kwargs: + - where: `ir_translation.type == 'odt'` + - code: + 'ir_translation.update( + [ir_translation.type], + ['report'], + where=ir_translation.type == 'odt')' + + +### 6.8 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +### 7.2 + +- **before_super** `drop_constraint` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'translation_md5_uniq'` + - code: + 'table.drop_constraint('translation_md5_uniq')' +- **before_super** `drop_column` + - condition: `table.column_exist('src_md5')` + - object: `table` + - files: + - `translation.py` + - args: `'src_md5'` + - code: + 'table.drop_column('src_md5')' + + +## Tabelle ir_trigger + +### 5.0 + +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null))' +- **after_super** `select` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `sql_table.id, sql_table.minimum_delay` + - kwargs: + - where: `sql_table.minimum_delay != Null` + - code: + 'sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null)' +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_))' +- **after_super** `update` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.minimum_time_delay], [delay]` + - kwargs: + - where: `sql_table.id == id_` + - code: + 'sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_)' +- **after_super** `drop_column` + - condition: `table.column_exist('minimum_delay')` + - object: `table` + - files: + - `trigger.py` + - args: `'minimum_delay'` + - code: + 'table.drop_column('minimum_delay')' + + +### 5.4 + +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null))' +- **after_super** `select` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `sql_table.id, sql_table.minimum_delay` + - kwargs: + - where: `sql_table.minimum_delay != Null` + - code: + 'sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null)' +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_))' +- **after_super** `update` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.minimum_time_delay], [delay]` + - kwargs: + - where: `sql_table.id == id_` + - code: + 'sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_)' +- **after_super** `drop_column` + - condition: `table.column_exist('minimum_delay')` + - object: `table` + - files: + - `trigger.py` + - args: `'minimum_delay'` + - code: + 'table.drop_column('minimum_delay')' + + +### 5.6 + +- **after_super** `execute` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))]))' +- **after_super** `update` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` + - code: + 'sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))])' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_model'` + - code: + 'table_h.drop_column('(model.select( + model.model, where=model.id == sql_table.action_model))')' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_function'` + - code: + 'table_h.drop_column('action_function')' + + +### 5.8 + +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null))' +- **after_super** `select` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `sql_table.id, sql_table.minimum_delay` + - kwargs: + - where: `sql_table.minimum_delay != Null` + - code: + 'sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null)' +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_))' +- **after_super** `update` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.minimum_time_delay], [delay]` + - kwargs: + - where: `sql_table.id == id_` + - code: + 'sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_)' +- **after_super** `drop_column` + - condition: `table.column_exist('minimum_delay')` + - object: `table` + - files: + - `trigger.py` + - args: `'minimum_delay'` + - code: + 'table.drop_column('minimum_delay')' + + +### 6.0 + +- **after_super** `execute` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))]))' +- **after_super** `update` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` + - code: + 'sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))])' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_model'` + - code: + 'table_h.drop_column('(model.select( + model.model, where=model.id == sql_table.action_model))')' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_function'` + - code: + 'table_h.drop_column('action_function')' + + +### 6.2 + +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null))' +- **after_super** `select` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `sql_table.id, sql_table.minimum_delay` + - kwargs: + - where: `sql_table.minimum_delay != Null` + - code: + 'sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null)' +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_))' +- **after_super** `update` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.minimum_time_delay], [delay]` + - kwargs: + - where: `sql_table.id == id_` + - code: + 'sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_)' +- **after_super** `drop_column` + - condition: `table.column_exist('minimum_delay')` + - object: `table` + - files: + - `trigger.py` + - args: `'minimum_delay'` + - code: + 'table.drop_column('minimum_delay')' + + +### 6.4 + +- **after_super** `execute` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))]))' +- **after_super** `update` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` + - code: + 'sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))])' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_model'` + - code: + 'table_h.drop_column('(model.select( + model.model, where=model.id == sql_table.action_model))')' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_function'` + - code: + 'table_h.drop_column('action_function')' + + +### 6.6 + +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.select(sql_table.id, sql_table.minimum_delay, where=sql_table.minimum_delay != Null)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null))' +- **after_super** `select` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `sql_table.id, sql_table.minimum_delay` + - kwargs: + - where: `sql_table.minimum_delay != Null` + - code: + 'sql_table.select( + sql_table.id, sql_table.minimum_delay, + where=sql_table.minimum_delay != Null)' +- **after_super** `execute` + - condition: `table.column_exist('minimum_delay')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.minimum_time_delay], [delay], where=sql_table.id == id_)` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_))' +- **after_super** `update` + - condition: `table.column_exist('minimum_delay')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.minimum_time_delay], [delay]` + - kwargs: + - where: `sql_table.id == id_` + - code: + 'sql_table.update( + [sql_table.minimum_time_delay], + [(datetime.timedelta(hours=delay))], + where=sql_table.id == id_)' +- **after_super** `drop_column` + - condition: `table.column_exist('minimum_delay')` + - object: `table` + - files: + - `trigger.py` + - args: `'minimum_delay'` + - code: + 'table.drop_column('minimum_delay')' + + +### 6.8 + +- **after_super** `execute` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))]))' +- **after_super** `update` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` + - code: + 'sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))])' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_model'` + - code: + 'table_h.drop_column('(model.select( + model.model, where=model.id == sql_table.action_model))')' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_function'` + - code: + 'table_h.drop_column('action_function')' + + +### 7.2 + +- **after_super** `execute` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `cursor` + - files: + - `trigger.py` + - args: `*sql_table.update([sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))]))' +- **after_super** `update` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `sql_table` + - files: + - `trigger.py` + - args: `[sql_table.action], [Concat(action_model, Concat('|', sql_table.action_function))]` + - code: + 'sql_table.update( + [sql_table.action], + [Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))])' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_model'` + - code: + 'table_h.drop_column('(model.select( + model.model, where=model.id == sql_table.action_model))')' +- **after_super** `drop_column` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - object: `table_h` + - files: + - `trigger.py` + - args: `'action_function'` + - code: + 'table_h.drop_column('action_function')' + + +### 7.6 + +- **before_super** `column_rename` + - object: `table_h` + - files: + - `trigger.py` + - args: `name, name + '_'` + - code: + 'table_h.column_rename(name, name + '_')' + + +### 8.0 + +- **before_super** `column_rename` + - object: `table_h` + - files: + - `trigger.py` + - args: `name, name + '_'` + - code: + 'table_h.column_rename(name, name + '_')' + + +## Tabelle ir_trigger_log + +### 5.0 + +- **after_super** `index_action` + - object: `table` + - files: + - `trigger.py` + - args: `['trigger', 'record_id'], 'add'` + - code: + 'table.index_action(['trigger', 'record_id'], 'add')' + + +### 5.4 + +- **after_super** `index_action` + - object: `table` + - files: + - `trigger.py` + - args: `['trigger', 'record_id'], 'add'` + - code: + 'table.index_action(['trigger', 'record_id'], 'add')' + + +### 5.8 + +- **after_super** `index_action` + - object: `table` + - files: + - `trigger.py` + - args: `['trigger', 'record_id'], 'add'` + - code: + 'table.index_action(['trigger', 'record_id'], 'add')' + + +### 6.2 + +- **after_super** `index_action` + - object: `table` + - files: + - `trigger.py` + - args: `['trigger', 'record_id'], 'add'` + - code: + 'table.index_action(['trigger', 'record_id'], 'add')' + + +## Tabelle ir_ui_icon + +### 5.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 5.6 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.0 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.4 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `ui/icon.py` + - args: `'sequence', 'remove'` + - code: + 'table.not_null_action('sequence', 'remove')' + + +## Tabelle ir_ui_view + +### 7.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `ui/view.py` + - args: `*table.update([table.model], [view.select(view.model, where=view.id == table.view)], where=table.model == Null)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null))' +- **after_super** `update` + - object: `table` + - files: + - `ui/view.py` + - args: `[table.model], [view.select(view.model, where=view.id == table.view)]` + - kwargs: + - where: `table.model == Null` + - code: + 'table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null)' +- **after_super** `select` + - object: `view` + - files: + - `ui/view.py` + - args: `view.model` + - kwargs: + - where: `view.id == table.view` + - code: + 'view.select(view.model, where=view.id == table.view)' + + +### 7.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `ui/view.py` + - args: `*table.update([table.model], [view.select(view.model, where=view.id == table.view)], where=table.model == Null)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null))' +- **after_super** `update` + - object: `table` + - files: + - `ui/view.py` + - args: `[table.model], [view.select(view.model, where=view.id == table.view)]` + - kwargs: + - where: `table.model == Null` + - code: + 'table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null)' +- **after_super** `select` + - object: `view` + - files: + - `ui/view.py` + - args: `view.model` + - kwargs: + - where: `view.id == table.view` + - code: + 'view.select(view.model, where=view.id == table.view)' + + +## Tabelle ir_ui_view_search + +### 5.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'user', 'remove'` + - code: + 'table_h.not_null_action('user', 'remove')' + + +### 6.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'user', 'remove'` + - code: + 'table_h.not_null_action('user', 'remove')' + + +### 6.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'user', 'remove'` + - code: + 'table_h.not_null_action('user', 'remove')' + + +### 7.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'user', 'remove'` + - code: + 'table_h.not_null_action('user', 'remove')' + + +### 7.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'user', 'remove'` + - code: + 'table_h.not_null_action('user', 'remove')' + + +## Tabelle ir_ui_view_tree_optional + +### 6.4 + +- **after_super** `index_action` + - object: `table_h` + - files: + - `ui/view.py` + - args: `['view_id', 'user'], 'add'` + - code: + 'table_h.index_action(['view_id', 'user'], 'add')' + + +### 7.4 + +- **before_super** `column_rename` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'view_id', 'view'` + - code: + 'table_h.column_rename('view_id', 'view')' +- **after_super** `execute` + - object: `cursor` + - files: + - `ui/view.py` + - args: `*table.update([table.model], [view.select(view.model, where=view.id == table.view)], where=table.model == Null)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null))' +- **after_super** `update` + - object: `table` + - files: + - `ui/view.py` + - args: `[table.model], [view.select(view.model, where=view.id == table.view)]` + - kwargs: + - where: `table.model == Null` + - code: + 'table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null)' + + +### 7.8 + +- **before_super** `column_rename` + - object: `table_h` + - files: + - `ui/view.py` + - args: `'view_id', 'view'` + - code: + 'table_h.column_rename('view_id', 'view')' +- **after_super** `execute` + - object: `cursor` + - files: + - `ui/view.py` + - args: `*table.update([table.model], [view.select(view.model, where=view.id == table.view)], where=table.model == Null)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null))' +- **after_super** `update` + - object: `table` + - files: + - `ui/view.py` + - args: `[table.model], [view.select(view.model, where=view.id == table.view)]` + - kwargs: + - where: `table.model == Null` + - code: + 'table.update( + [table.model], + [view.select(view.model, where=view.id == table.view)], + where=table.model == Null)' + + +## Tabelle ir_ui_view_tree_state + +### 5.0 + +- **after_super** `index_action` + - object: `table` + - files: + - `ui/view.py` + - args: `['model', 'domain', 'user', 'child_name'], 'add'` + - code: + 'table.index_action(['model', 'domain', 'user', 'child_name'], 'add')' + + +### 5.4 + +- **after_super** `index_action` + - object: `table` + - files: + - `ui/view.py` + - args: `['model', 'domain', 'user', 'child_name'], 'add'` + - code: + 'table.index_action(['model', 'domain', 'user', 'child_name'], 'add')' + + +### 5.8 + +- **after_super** `index_action` + - object: `table` + - files: + - `ui/view.py` + - args: `['model', 'domain', 'user', 'child_name'], 'add'` + - code: + 'table.index_action(['model', 'domain', 'user', 'child_name'], 'add')' + + +### 6.2 + +- **after_super** `index_action` + - object: `table` + - files: + - `ui/view.py` + - args: `['model', 'domain', 'user', 'child_name'], 'add'` + - code: + 'table.index_action(['model', 'domain', 'user', 'child_name'], 'add')' + + +## Tabelle ir_ui_view_tree_width + +### 8.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `ui/view.py` - args: `'width', 'remove'` + - code: + 'table_h.not_null_action('width', 'remove')' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' + + +### 5.6 + +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' diff --git a/reports/party.md b/reports/party.md index ca5cf76..70d2562 100644 --- a/reports/party.md +++ b/reports/party.md @@ -1,336 +1,3540 @@ -# party +# modul party -## Klasse Address +## Tabelle country_country ### 5.0 -file: /home/uha4/tmp/tryton/modules/party/address.py : 61 -- **after_super** `execute` - - condition: `table.column_exist('streetbis')` - - object: `cursor` - - args: `*sql_table.update([sql_table.street], [value])` -- **after_super** `update` - - condition: `table.column_exist('streetbis')` - - object: `sql_table` - - args: `[sql_table.street], [value]` -- **after_super** `drop_column` - - condition: `table.column_exist('streetbis')` +- **after_super** `drop_constraint` - object: `table` - - args: `'streetbis'` - - -### 6.0 - -file: /home/uha4/tmp/tryton/modules/party/address.py : 67 -- **before_super** `column_rename` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` - object: `table` - - args: `'zip', 'postal_code'` -- **after_super** `execute` - - condition: `table.column_exist('streetbis')` - - object: `cursor` - - args: `*sql_table.update([sql_table.street], [value])` -- **after_super** `update` - - condition: `table.column_exist('streetbis')` - - object: `sql_table` - - args: `[sql_table.street], [value]` -- **after_super** `drop_column` - - condition: `table.column_exist('streetbis')` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` - object: `table` - - args: `'streetbis'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/modules/party/address.py : 84 -- **before_super** `column_rename` - - object: `table` - - args: `'zip', 'postal_code'` - - -### 7.6 - -file: /home/uha4/tmp/tryton/modules/party/address.py : 160 -- **before_super** `column_rename` - - object: `table` - - args: `'street', 'street_unstructured'` -- **before_super** `column_rename` - - object: `table` - - args: `'name', 'building_name'` - -## Klasse AddressFormat + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' ### 5.4 -file: /home/uha4/tmp/tryton/modules/party/address.py : 271 +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' - **after_super** `update` - condition: `table_h.column_exist('country')` - object: `table` + - files: + - `address.py` - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' - **after_super** `select` - condition: `table_h.column_exist('country')` - object: `country` + - files: + - `address.py` - args: `country.code` - kwargs: - where: `country.id == table.country` -- **after_super** `execute` - - condition: `table_h.column_exist('country')` - - object: `cursor` - - args: `*query` -- **after_super** `drop_column` - - condition: `table_h.column_exist('country')` - - object: `table_h` - - args: `'country'` -- **after_super** `update` - - condition: `table_h.column_exist('language')` - - object: `table` - - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` -- **after_super** `select` - - condition: `table_h.column_exist('language')` - - object: `language` - - args: `Substring(language.code, 0, 2)` - - kwargs: - - where: `language.id == table.language` -- **after_super** `execute` - - condition: `table_h.column_exist('language')` - - object: `cursor` - - args: `*query` -- **after_super** `drop_column` - - condition: `table_h.column_exist('language')` - - object: `table_h` - - args: `'language'` - -## Klasse Category + - code: + 'country.select( + country.code, + where=country.id == table.country)' -### 5.0 +### 5.8 -file: /home/uha4/tmp/tryton/modules/party/category.py : 43 - **after_super** `drop_constraint` - - object: `table_h` - - args: `'name_parent_uniq'` - -## Klasse Configuration - - -### 7.0 - -file: /home/uha4/tmp/tryton/modules/party/configuration.py : 34 -- **after_super** `execute` - - condition: `configuration.identifier_types != identifier_types` - - object: `cursor` - - args: `*table.update([table.identifier_types], [cls.identifier_types.sql_format(identifier_types)])` -- **after_super** `update` - - condition: `configuration.identifier_types != identifier_types` - object: `table` - - args: `[table.identifier_types], [cls.identifier_types.sql_format(identifier_types)]` - -## Klasse Identifier - - -### 5.6 - -file: /home/uha4/tmp/tryton/modules/party/party.py : 428 -- **after_super** `execute` - - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - - object: `cursor` - - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' - **after_super** `select` - - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - - object: `party` - - args: `party.id, party.vat_number, party.vat_country` + - condition: `table_h.column_exist('country')` + - object: `country` + - files: + - `address.py` + - args: `country.code` - kwargs: - - where: `(party.vat_number != Null) | (party.vat_country != Null)` -- **after_super** `drop_column` - - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - - object: `party_h` - - args: `'vat_number'` -- **after_super** `drop_column` - - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - - object: `party_h` - - args: `'vat_country'` + - where: `country.id == table.country` + - code: + 'country.select( + country.code, + where=country.id == table.country)' -### 6.0 +### 6.2 -file: /home/uha4/tmp/tryton/modules/party/party.py : 515 -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` -- **after_super** `update` +- **after_super** `drop_constraint` - object: `table` - - args: `[table.type], ['cn_ric']` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `select` + - condition: `table_h.column_exist('country')` + - object: `country` + - files: + - `address.py` + - args: `country.code` - kwargs: - - where: `table.type == 'cn_rit'` + - where: `country.id == table.country` + - code: + 'country.select( + country.code, + where=country.id == table.country)' + + +### 6.6 + +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'name_uniq'` + - code: + 'table.drop_constraint('name_uniq')' +- **after_super** `drop_constraint` + - object: `table` + - files: + - `country.py` + - args: `'code_uniq'` + - code: + 'table.drop_constraint('code_uniq')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `country.py` + - args: `'code', 'remove'` + - code: + 'table.not_null_action('code', 'remove')' +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `select` + - condition: `table_h.column_exist('country')` + - object: `country` + - files: + - `address.py` + - args: `country.code` + - kwargs: + - where: `country.id == table.country` + - code: + 'country.select( + country.code, + where=country.id == table.country)' ### 7.0 -file: /home/uha4/tmp/tryton/modules/party/party.py : 780 -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` - **after_super** `update` + - condition: `table_h.column_exist('country')` - object: `table` - - args: `[table.type], ['cn_ric']` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `select` + - condition: `table_h.column_exist('country')` + - object: `country` + - files: + - `address.py` + - args: `country.code` - kwargs: - - where: `table.type == 'cn_rit'` + - where: `country.id == table.country` + - code: + 'country.select( + country.code, + where=country.id == table.country)' ### 7.4 -file: /home/uha4/tmp/tryton/modules/party/party.py : 823 -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['uy_rut'], where=table.type == 'uy_ruc')` - **after_super** `update` + - condition: `table_h.column_exist('country')` - object: `table` - - args: `[table.type], ['uy_rut']` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `select` + - condition: `table_h.column_exist('country')` + - object: `country` + - files: + - `address.py` + - args: `country.code` - kwargs: - - where: `table.type == 'uy_ruc'` + - where: `country.id == table.country` + - code: + 'country.select( + country.code, + where=country.id == table.country)' -### 7.6 +## Tabelle ir_lang + +### 5.4 -file: /home/uha4/tmp/tryton/modules/party/party.py : 825 -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['uy_rut'], where=table.type == 'uy_ruc')` - **after_super** `update` + - condition: `table_h.column_exist('language')` - object: `table` - - args: `[table.type], ['uy_rut']` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` - kwargs: - - where: `table.type == 'uy_ruc'` -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['co_nit'], where=table.type == 'co_rut')` + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' + + +### 5.8 + - **after_super** `update` + - condition: `table_h.column_exist('language')` - object: `table` - - args: `[table.type], ['co_nit']` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` - kwargs: - - where: `table.type == 'co_rut'` + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' -### 8.0 +### 6.2 -file: /home/uha4/tmp/tryton/modules/party/party.py : 859 -- **after_super** `execute` - - condition: `fill_code_compact` - - object: `cursor` - - args: `*table.update([table.code_compact], [table.code])` - **after_super** `update` - - condition: `fill_code_compact` + - condition: `table_h.column_exist('language')` - object: `table` - - args: `[table.code_compact], [table.code]` -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.type], ['si_maticna'], where=table.type == 'si_businessid')` -- **after_super** `update` - - object: `table` - - args: `[table.type], ['si_maticna']` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` - kwargs: - - where: `table.type == 'si_businessid'` + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' -## Klasse Party +### 6.6 + +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` + - kwargs: + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' + + +### 7.0 + +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` + - kwargs: + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' + + +### 7.4 + +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `select` + - condition: `table_h.column_exist('language')` + - object: `language` + - files: + - `address.py` + - args: `Substring(language.code, 0, 2)` + - kwargs: + - where: `language.id == table.language` + - code: + 'language.select( + Substring(language.code, 0, 2), + where=language.id == table.language)' + + +## Tabelle party_address ### 5.0 -file: /home/uha4/tmp/tryton/modules/party/party.py : 89 -- **after_super** `not_null_action` - - object: `table_h` - - args: `'name', 'remove'` +- **after_super** `execute` + - condition: `table.column_exist('streetbis')` + - object: `cursor` + - files: + - `address.py` + - args: `*sql_table.update([sql_table.street], [value])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.street], + [value]))' +- **after_super** `update` + - condition: `table.column_exist('streetbis')` + - object: `sql_table` + - files: + - `address.py` + - args: `[sql_table.street], [value]` + - code: + 'sql_table.update( + [sql_table.street], + [value])' +- **after_super** `drop_column` + - condition: `table.column_exist('streetbis')` + - object: `table` + - files: + - `address.py` + - args: `'streetbis'` + - code: + 'table.drop_column('streetbis')' -## Klasse PartyCategory + +### 5.4 + +- **after_super** `execute` + - condition: `table.column_exist('streetbis')` + - object: `cursor` + - files: + - `address.py` + - args: `*sql_table.update([sql_table.street], [value])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.street], + [value]))' +- **after_super** `update` + - condition: `table.column_exist('streetbis')` + - object: `sql_table` + - files: + - `address.py` + - args: `[sql_table.street], [value]` + - code: + 'sql_table.update( + [sql_table.street], + [value])' +- **after_super** `drop_column` + - condition: `table.column_exist('streetbis')` + - object: `table` + - files: + - `address.py` + - args: `'streetbis'` + - code: + 'table.drop_column('streetbis')' + + +### 5.8 + +- **after_super** `execute` + - condition: `table.column_exist('streetbis')` + - object: `cursor` + - files: + - `address.py` + - args: `*sql_table.update([sql_table.street], [value])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.street], + [value]))' +- **after_super** `update` + - condition: `table.column_exist('streetbis')` + - object: `sql_table` + - files: + - `address.py` + - args: `[sql_table.street], [value]` + - code: + 'sql_table.update( + [sql_table.street], + [value])' +- **after_super** `drop_column` + - condition: `table.column_exist('streetbis')` + - object: `table` + - files: + - `address.py` + - args: `'streetbis'` + - code: + 'table.drop_column('streetbis')' + + +### 6.0 + +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'zip', 'postal_code'` + - code: + 'table.column_rename('zip', 'postal_code')' + + +### 6.2 + +- **after_super** `execute` + - condition: `table.column_exist('streetbis')` + - object: `cursor` + - files: + - `address.py` + - args: `*sql_table.update([sql_table.street], [value])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.street], + [value]))' +- **after_super** `update` + - condition: `table.column_exist('streetbis')` + - object: `sql_table` + - files: + - `address.py` + - args: `[sql_table.street], [value]` + - code: + 'sql_table.update( + [sql_table.street], + [value])' +- **after_super** `drop_column` + - condition: `table.column_exist('streetbis')` + - object: `table` + - files: + - `address.py` + - args: `'streetbis'` + - code: + 'table.drop_column('streetbis')' + + +### 6.4 + +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'zip', 'postal_code'` + - code: + 'table.column_rename('zip', 'postal_code')' + + +### 6.6 + +- **after_super** `execute` + - condition: `table.column_exist('streetbis')` + - object: `cursor` + - files: + - `address.py` + - args: `*sql_table.update([sql_table.street], [value])` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.update( + [sql_table.street], + [value]))' +- **after_super** `update` + - condition: `table.column_exist('streetbis')` + - object: `sql_table` + - files: + - `address.py` + - args: `[sql_table.street], [value]` + - code: + 'sql_table.update( + [sql_table.street], + [value])' +- **after_super** `drop_column` + - condition: `table.column_exist('streetbis')` + - object: `table` + - files: + - `address.py` + - args: `'streetbis'` + - code: + 'table.drop_column('streetbis')' + + +### 6.8 + +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'zip', 'postal_code'` + - code: + 'table.column_rename('zip', 'postal_code')' ### 7.2 -file: /home/uha4/tmp/tryton/modules/party/party.py : 448 -- **before_super** `table_rename` - - object: `backend.TableHandler` - - args: `'party_category_rel', cls._table` +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'zip', 'postal_code'` + - code: + 'table.column_rename('zip', 'postal_code')' -## Klasse PartyIdentifier +### 7.6 + +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'street', 'street_unstructured'` + - code: + 'table.column_rename('street', 'street_unstructured')' +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'name', 'building_name'` + - code: + 'table.column_rename('name', 'building_name')' + + +### 8.0 + +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'street', 'street_unstructured'` + - code: + 'table.column_rename('street', 'street_unstructured')' +- **before_super** `column_rename` + - object: `table` + - files: + - `address.py` + - args: `'name', 'building_name'` + - code: + 'table.column_rename('name', 'building_name')' + + +## Tabelle party_address_format + +### 5.4 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +### 5.8 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +### 6.2 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +### 6.6 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +### 7.0 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +### 7.4 + +- **after_super** `update` + - condition: `table_h.column_exist('country')` + - object: `table` + - files: + - `address.py` + - args: `[table.country_code], country.select(country.code, where=country.id == table.country)` + - code: + 'table.update( + [table.country_code], + country.select( + country.code, + where=country.id == table.country))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('country')` + - object: `table_h` + - files: + - `address.py` + - args: `'country'` + - code: + 'table_h.drop_column('country')' +- **after_super** `update` + - condition: `table_h.column_exist('language')` + - object: `table` + - files: + - `address.py` + - args: `[table.language_code], language.select(Substring(language.code, 0, 2), where=language.id == table.language)` + - code: + 'table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('language')` + - object: `table_h` + - files: + - `address.py` + - args: `'language'` + - code: + 'table_h.drop_column('language')' + + +## Tabelle party_category ### 5.0 -file: /home/uha4/tmp/tryton/modules/party/party.py : 329 +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `category.py` + - args: `'name_parent_uniq'` + - code: + 'table_h.drop_constraint('name_parent_uniq')' + + +### 5.4 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `category.py` + - args: `'name_parent_uniq'` + - code: + 'table_h.drop_constraint('name_parent_uniq')' + + +### 5.8 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `category.py` + - args: `'name_parent_uniq'` + - code: + 'table_h.drop_constraint('name_parent_uniq')' + + +### 6.2 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `category.py` + - args: `'name_parent_uniq'` + - code: + 'table_h.drop_constraint('name_parent_uniq')' + + +### 6.6 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `category.py` + - args: `'name_parent_uniq'` + - code: + 'table_h.drop_constraint('name_parent_uniq')' + + +## Tabelle party_category_rel + +### 7.2 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +### 7.6 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +### 8.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +## Tabelle party_configuration + +### 7.0 + +- **after_super** `execute` + - condition: `configuration.identifier_types != identifier_types` + - object: `cursor` + - files: + - `configuration.py` + - args: `*table.update([table.identifier_types], [cls.identifier_types.sql_format(identifier_types)])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + ))' +- **after_super** `update` + - condition: `configuration.identifier_types != identifier_types` + - object: `table` + - files: + - `configuration.py` + - args: `[table.identifier_types], [cls.identifier_types.sql_format(identifier_types)]` + - code: + 'table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + )' + + +### 7.4 + +- **after_super** `execute` + - condition: `configuration.identifier_types != identifier_types` + - object: `cursor` + - files: + - `configuration.py` + - args: `*table.update([table.identifier_types], [cls.identifier_types.sql_format(identifier_types)])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + ))' +- **after_super** `update` + - condition: `configuration.identifier_types != identifier_types` + - object: `table` + - files: + - `configuration.py` + - args: `[table.identifier_types], [cls.identifier_types.sql_format(identifier_types)]` + - code: + 'table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + )' + + +### 7.8 + +- **after_super** `execute` + - condition: `configuration.identifier_types != identifier_types` + - object: `cursor` + - files: + - `configuration.py` + - args: `*table.update([table.identifier_types], [cls.identifier_types.sql_format(identifier_types)])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + ))' +- **after_super** `update` + - condition: `configuration.identifier_types != identifier_types` + - object: `table` + - files: + - `configuration.py` + - args: `[table.identifier_types], [cls.identifier_types.sql_format(identifier_types)]` + - code: + 'table.update( + [table.identifier_types], + [cls.identifier_types.sql_format(identifier_types)] + )' + + +## Tabelle party_identifier + +### 6.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['cn_ric']` + - kwargs: + - where: `table.type == 'cn_rit'` + - code: + 'table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit'))' + + +### 6.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['cn_ric']` + - kwargs: + - where: `table.type == 'cn_rit'` + - code: + 'table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit'))' + + +### 6.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['cn_ric']` + - kwargs: + - where: `table.type == 'cn_rit'` + - code: + 'table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit'))' + + +### 7.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], [new], where=table.type == old)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.type], [new], + where=table.type == old))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], [new]` + - kwargs: + - where: `table.type == old` + - code: + 'table.update( + [table.type], [new], + where=table.type == old)' + + +### 7.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['cn_ric'], where=table.type == 'cn_rit')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['cn_ric']` + - kwargs: + - where: `table.type == 'cn_rit'` + - code: + 'table.update([table.type], ['cn_ric'], + where=(table.type == 'cn_rit'))' + + +### 7.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], [new], where=table.type == old)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.type], [new], + where=table.type == old))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], [new]` + - kwargs: + - where: `table.type == old` + - code: + 'table.update( + [table.type], [new], + where=table.type == old)' +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['uy_rut'], where=table.type == 'uy_ruc')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['uy_rut'], + where=(table.type == 'uy_ruc')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['uy_rut']` + - kwargs: + - where: `table.type == 'uy_ruc'` + - code: + 'table.update([table.type], ['uy_rut'], + where=(table.type == 'uy_ruc'))' + + +### 7.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['co_nit'], where=table.type == 'co_rut')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['co_nit'], + where=(table.type == 'co_rut')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['co_nit']` + - kwargs: + - where: `table.type == 'co_rut'` + - code: + 'table.update([table.type], ['co_nit'], + where=(table.type == 'co_rut'))' + + +### 7.8 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], [new], where=table.type == old)` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.type], [new], + where=table.type == old))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], [new]` + - kwargs: + - where: `table.type == old` + - code: + 'table.update( + [table.type], [new], + where=table.type == old)' +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['uy_rut'], where=table.type == 'uy_ruc')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['uy_rut'], + where=(table.type == 'uy_ruc')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['uy_rut']` + - kwargs: + - where: `table.type == 'uy_ruc'` + - code: + 'table.update([table.type], ['uy_rut'], + where=(table.type == 'uy_ruc'))' + + +### 8.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['co_nit'], where=table.type == 'co_rut')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['co_nit'], + where=(table.type == 'co_rut')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['co_nit']` + - kwargs: + - where: `table.type == 'co_rut'` + - code: + 'table.update([table.type], ['co_nit'], + where=(table.type == 'co_rut'))' +- **after_super** `execute` + - condition: `fill_code_compact` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.code_compact], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.code_compact], [table.code]))' +- **after_super** `update` + - condition: `fill_code_compact` + - object: `table` + - files: + - `party.py` + - args: `[table.code_compact], [table.code]` + - code: + 'table.update([table.code_compact], [table.code])' +- **after_super** `execute` + - object: `cursor` + - files: + - `party.py` + - args: `*table.update([table.type], ['si_maticna'], where=table.type == 'si_businessid')` + - code: + '(Transaction().connection.cursor()).execute(*table.update([table.type], ['si_maticna'], + where=(table.type == 'si_businessid')))' +- **after_super** `update` + - object: `table` + - files: + - `party.py` + - args: `[table.type], ['si_maticna']` + - kwargs: + - where: `table.type == 'si_businessid'` + - code: + 'table.update([table.type], ['si_maticna'], + where=(table.type == 'si_businessid'))' + + +## Tabelle party_party + +### 5.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `party.py` + - args: `'name', 'remove'` + - code: + 'table_h.not_null_action('name', 'remove')' +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' +- **after_super** `select` + - condition: `party_h.column_exist('lang')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.lang` + - code: + 'party.select(party.id, party.lang)' +- **after_super** `drop_column` + - condition: `party_h.column_exist('lang')` + - object: `party_h` + - files: + - `party.py` + - args: `'lang'` + - code: + 'party_h.drop_column('lang')' - **after_super** `execute` - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - object: `cursor` + - files: + - `party.py` - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - code: + '(Transaction().connection.cursor()).execute(*party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null)))' - **after_super** `select` - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - object: `party` + - files: + - `party.py` - args: `party.id, party.vat_number, party.vat_country` - kwargs: - where: `(party.vat_number != Null) | (party.vat_country != Null)` + - code: + 'party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null))' - **after_super** `drop_column` - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - object: `party_h` + - files: + - `party.py` - args: `'vat_number'` + - code: + 'party_h.drop_column('vat_number')' - **after_super** `drop_column` - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` - object: `party_h` + - files: + - `party.py` - args: `'vat_country'` + - code: + 'party_h.drop_column('vat_country')' -## Klasse PartyLang +### 5.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `party.py` + - args: `'name', 'remove'` + - code: + 'table_h.not_null_action('name', 'remove')' +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' +- **after_super** `select` + - condition: `party_h.column_exist('lang')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.lang` + - code: + 'party.select(party.id, party.lang)' +- **after_super** `drop_column` + - condition: `party_h.column_exist('lang')` + - object: `party_h` + - files: + - `party.py` + - args: `'lang'` + - code: + 'party_h.drop_column('lang')' +- **after_super** `execute` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cursor` + - files: + - `party.py` + - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - code: + '(Transaction().connection.cursor()).execute(*party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null)))' +- **after_super** `select` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.vat_number, party.vat_country` + - kwargs: + - where: `(party.vat_number != Null) | (party.vat_country != Null)` + - code: + 'party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null))' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_number'` + - code: + 'party_h.drop_column('vat_number')' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_country'` + - code: + 'party_h.drop_column('vat_country')' + + +### 5.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `party.py` + - args: `'name', 'remove'` + - code: + 'table_h.not_null_action('name', 'remove')' +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' +- **after_super** `select` + - condition: `party_h.column_exist('lang')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.lang` + - code: + 'party.select(party.id, party.lang)' +- **after_super** `drop_column` + - condition: `party_h.column_exist('lang')` + - object: `party_h` + - files: + - `party.py` + - args: `'lang'` + - code: + 'party_h.drop_column('lang')' +- **after_super** `execute` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cursor` + - files: + - `party.py` + - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - code: + '(Transaction().connection.cursor()).execute(*party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null)))' +- **after_super** `select` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.vat_number, party.vat_country` + - kwargs: + - where: `(party.vat_number != Null) | (party.vat_country != Null)` + - code: + 'party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null))' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_number'` + - code: + 'party_h.drop_column('vat_number')' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_country'` + - code: + 'party_h.drop_column('vat_country')' + + +### 6.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `party.py` + - args: `'name', 'remove'` + - code: + 'table_h.not_null_action('name', 'remove')' +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' +- **after_super** `select` + - condition: `party_h.column_exist('lang')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.lang` + - code: + 'party.select(party.id, party.lang)' +- **after_super** `drop_column` + - condition: `party_h.column_exist('lang')` + - object: `party_h` + - files: + - `party.py` + - args: `'lang'` + - code: + 'party_h.drop_column('lang')' +- **after_super** `execute` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cursor` + - files: + - `party.py` + - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - code: + '(Transaction().connection.cursor()).execute(*party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null)))' +- **after_super** `select` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.vat_number, party.vat_country` + - kwargs: + - where: `(party.vat_number != Null) | (party.vat_country != Null)` + - code: + 'party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null))' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_number'` + - code: + 'party_h.drop_column('vat_number')' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_country'` + - code: + 'party_h.drop_column('vat_country')' + + +### 6.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `party.py` + - args: `'name', 'remove'` + - code: + 'table_h.not_null_action('name', 'remove')' +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' +- **after_super** `select` + - condition: `party_h.column_exist('lang')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.lang` + - code: + 'party.select(party.id, party.lang)' +- **after_super** `drop_column` + - condition: `party_h.column_exist('lang')` + - object: `party_h` + - files: + - `party.py` + - args: `'lang'` + - code: + 'party_h.drop_column('lang')' +- **after_super** `execute` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cursor` + - files: + - `party.py` + - args: `*party.select(party.id, party.vat_number, party.vat_country, where=(party.vat_number != Null) | (party.vat_country != Null))` + - code: + '(Transaction().connection.cursor()).execute(*party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null)))' +- **after_super** `select` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party` + - files: + - `party.py` + - args: `party.id, party.vat_number, party.vat_country` + - kwargs: + - where: `(party.vat_number != Null) | (party.vat_country != Null)` + - code: + 'party.select( + party.id, party.vat_number, party.vat_country, + where=(party.vat_number != Null) + | (party.vat_country != Null))' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_number'` + - code: + 'party_h.drop_column('vat_number')' +- **after_super** `drop_column` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `party_h` + - files: + - `party.py` + - args: `'vat_country'` + - code: + 'party_h.drop_column('vat_country')' + + +## Tabelle party_party-party_category + +### 7.2 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +### 7.6 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +### 8.0 + +- **before_super** `table_rename` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `'party_category_rel', cls._table` + - code: + 'backend.TableHandler.table_rename('party_category_rel', cls._table)' + + +## Tabelle party_party_lang ### 5.0 -file: /home/uha4/tmp/tryton/modules/party/party.py : 265 - **after_super** `insert` - condition: `party_h.column_exist('lang')` - object: `table` + - files: + - `party.py` - args: `[table.party, table.lang], party.select(party.id, party.lang)` -- **after_super** `select` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' + + +### 5.4 + +- **after_super** `insert` - condition: `party_h.column_exist('lang')` - - object: `party` - - args: `party.id, party.lang` -- **after_super** `execute` - - condition: `party_h.column_exist('lang')` - - object: `cursor` - - args: `*query` -- **after_super** `drop_column` - - condition: `party_h.column_exist('lang')` - - object: `party_h` - - args: `'lang'` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' ### 5.6 -file: /home/uha4/tmp/tryton/modules/party/party.py : 268 - **before_super** `table_exist` - object: `backend.TableHandler` + - files: + - `party.py` - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 5.8 + - **after_super** `insert` - condition: `party_h.column_exist('lang')` - object: `table` + - files: + - `party.py` - args: `[table.party, table.lang], party.select(party.id, party.lang)` -- **after_super** `select` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.2 + +- **after_super** `insert` - condition: `party_h.column_exist('lang')` - - object: `party` - - args: `party.id, party.lang` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.6 + +- **after_super** `insert` + - condition: `party_h.column_exist('lang')` + - object: `table` + - files: + - `party.py` + - args: `[table.party, table.lang], party.select(party.id, party.lang)` + - code: + 'table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' - **after_super** `execute` - condition: `party_h.column_exist('lang')` - object: `cursor` + - files: + - `party.py` - args: `*query` -- **after_super** `drop_column` - - condition: `party_h.column_exist('lang')` - - object: `party_h` - - args: `'lang'` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' -## Klasse _ConfigurationValue + +### 5.2 + +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' ### 5.6 -file: /home/uha4/tmp/tryton/modules/party/configuration.py : 40 +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' - **before_super** `table_exist` - object: `backend.TableHandler` + - files: + - `configuration.py` - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code_compact'` + - code: + 'table_h.column_exist('code_compact')' diff --git a/reports/product.md b/reports/product.md index c997d13..1235940 100644 --- a/reports/product.md +++ b/reports/product.md @@ -1,164 +1,3099 @@ -# product +# modul product -## Klasse ConfigurationDefaultCostPriceMethod +## Tabelle product_configuration_default_cost_price_method ### 5.6 -file: /home/uha4/tmp/tryton/modules/product/configuration.py : 48 - **before_super** `table_exist` - object: `backend.TableHandler` + - files: + - `configuration.py` - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' -## Klasse Product + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle product_cost_price + +### 5.0 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' +- **after_super** `select` + - condition: `cost_price_table.column_exist('template')` + - object: `cost_price` + - files: + - `product.py` + - args: `*[Column(cost_price, c) for c in columns]` + - code: + 'cost_price.select( + *[Column(cost_price, c) for c in columns])' +- **after_super** `add_column` + - condition: `not exist` + - object: `table` + - files: + - `product.py` + - args: `'template', 'INTEGER'` + - code: + 'table.add_column('template', 'INTEGER')' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))))' +- **after_super** `insert` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` + - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `delete` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('template')` + - object: `table` + - files: + - `product.py` + - args: `'template'` + - code: + 'table.drop_column('template')' + + +### 5.4 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' +- **after_super** `select` + - condition: `cost_price_table.column_exist('template')` + - object: `cost_price` + - files: + - `product.py` + - args: `*[Column(cost_price, c) for c in columns]` + - code: + 'cost_price.select( + *[Column(cost_price, c) for c in columns])' +- **after_super** `add_column` + - condition: `not exist` + - object: `table` + - files: + - `product.py` + - args: `'template', 'INTEGER'` + - code: + 'table.add_column('template', 'INTEGER')' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))))' +- **after_super** `insert` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` + - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `delete` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('template')` + - object: `table` + - files: + - `product.py` + - args: `'template'` + - code: + 'table.drop_column('template')' ### 5.6 -file: /home/uha4/tmp/tryton/modules/product/product.py : 360 +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 5.8 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' +- **after_super** `select` + - condition: `cost_price_table.column_exist('template')` + - object: `cost_price` + - files: + - `product.py` + - args: `*[Column(cost_price, c) for c in columns]` + - code: + 'cost_price.select( + *[Column(cost_price, c) for c in columns])' +- **after_super** `add_column` + - condition: `not exist` + - object: `table` + - files: + - `product.py` + - args: `'template', 'INTEGER'` + - code: + 'table.add_column('template', 'INTEGER')' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))))' +- **after_super** `insert` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` + - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `delete` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('template')` + - object: `table` + - files: + - `product.py` + - args: `'template'` + - code: + 'table.drop_column('template')' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.2 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' +- **after_super** `select` + - condition: `cost_price_table.column_exist('template')` + - object: `cost_price` + - files: + - `product.py` + - args: `*[Column(cost_price, c) for c in columns]` + - code: + 'cost_price.select( + *[Column(cost_price, c) for c in columns])' +- **after_super** `add_column` + - condition: `not exist` + - object: `table` + - files: + - `product.py` + - args: `'template', 'INTEGER'` + - code: + 'table.add_column('template', 'INTEGER')' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))))' +- **after_super** `insert` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` + - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `delete` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('template')` + - object: `table` + - files: + - `product.py` + - args: `'template'` + - code: + 'table.drop_column('template')' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.6 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' +- **after_super** `select` + - condition: `cost_price_table.column_exist('template')` + - object: `cost_price` + - files: + - `product.py` + - args: `*[Column(cost_price, c) for c in columns]` + - code: + 'cost_price.select( + *[Column(cost_price, c) for c in columns])' +- **after_super** `add_column` + - condition: `not exist` + - object: `table` + - files: + - `product.py` + - args: `'template', 'INTEGER'` + - code: + 'table.add_column('template', 'INTEGER')' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))))' +- **after_super** `insert` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` + - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns] + + [sql_table.product], + values=sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `execute` + - condition: `table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null)))' +- **after_super** `delete` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.delete( + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `drop_column` + - condition: `table.column_exist('template')` + - object: `table` + - files: + - `product.py` + - args: `'template'` + - code: + 'table.drop_column('template')' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle product_cost_price_method + +### 5.0 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' + + +### 5.4 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' + + +### 5.6 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 5.8 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.2 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.6 + +- **after_super** `execute` + - condition: `cost_price_table.column_exist('template')` + - object: `cursor` + - files: + - `product.py` + - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` + - code: + '(Transaction().connection.cursor()).execute(*sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns])))' +- **after_super** `insert` + - condition: `cost_price_table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - kwargs: + - columns: `[Column(sql_table, c) for c in columns]` + - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - code: + 'sql_table.insert( + columns=[Column(sql_table, c) for c in columns], + values=cost_price.select( + *[Column(cost_price, c) for c in columns]))' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle product_list_price + +### 5.6 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle product_product + +### 5.6 + - **after_super** `execute` - condition: `fill_suffix_code` - object: `cursor` + - files: + - `product.py` - args: `*table.update([table.suffix_code], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.suffix_code], + [table.code]))' - **after_super** `update` - condition: `fill_suffix_code` - object: `table` + - files: + - `product.py` - args: `[table.suffix_code], [table.code]` + - code: + 'table.update( + [table.suffix_code], + [table.code])' -## Klasse ProductCostPrice +### 6.0 + +- **after_super** `execute` + - condition: `fill_suffix_code` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.suffix_code], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.suffix_code], + [table.code]))' +- **after_super** `update` + - condition: `fill_suffix_code` + - object: `table` + - files: + - `product.py` + - args: `[table.suffix_code], [table.code]` + - code: + 'table.update( + [table.suffix_code], + [table.code])' + + +### 6.4 + +- **after_super** `execute` + - condition: `fill_suffix_code` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.suffix_code], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.suffix_code], + [table.code]))' +- **after_super** `update` + - condition: `fill_suffix_code` + - object: `table` + - files: + - `product.py` + - args: `[table.suffix_code], [table.code]` + - code: + 'table.update( + [table.suffix_code], + [table.code])' + + +### 6.8 + +- **after_super** `execute` + - condition: `fill_suffix_code` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.suffix_code], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.suffix_code], + [table.code]))' +- **after_super** `update` + - condition: `fill_suffix_code` + - object: `table` + - files: + - `product.py` + - args: `[table.suffix_code], [table.code]` + - code: + 'table.update( + [table.suffix_code], + [table.code])' + + +### 7.2 + +- **after_super** `execute` + - condition: `fill_suffix_code` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.suffix_code], [table.code])` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.suffix_code], + [table.code]))' +- **after_super** `update` + - condition: `fill_suffix_code` + - object: `table` + - files: + - `product.py` + - args: `[table.suffix_code], [table.code]` + - code: + 'table.update( + [table.suffix_code], + [table.code])' + + +## Tabelle unknown ### 5.0 -file: /home/uha4/tmp/tryton/modules/product/product.py : 429 -- **after_super** `add_column` - - condition: `not exist` - - object: `table` - - args: `'template', 'INTEGER'` -- **after_super** `execute` - - condition: `table.column_exist('template')` - - object: `cursor` - - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` -- **after_super** `insert` - - condition: `table.column_exist('template')` - - object: `sql_table` - - kwargs: - - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` - - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` -- **after_super** `select` - - condition: `table.column_exist('template')` - - object: `sql_table.join(product, condition=sql_table.template == product.template)` - - args: `*[Column(sql_table, c) for c in columns] + [product.id]` - - kwargs: - - where: `(sql_table.template != Null) & (sql_table.product == Null)` -- **after_super** `execute` - - condition: `table.column_exist('template')` - - object: `cursor` - - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` -- **after_super** `delete` - - condition: `table.column_exist('template')` - - object: `sql_table` - - kwargs: - - where: `(sql_table.template != Null) & (sql_table.product == Null)` -- **after_super** `drop_column` - - condition: `table.column_exist('template')` - - object: `table` - - args: `'template'` - - -### 5.6 - -file: /home/uha4/tmp/tryton/modules/product/product.py : 634 +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' - **before_super** `table_exist` - - object: `backend.TableHandler` + - object: `TableHandler` + - files: + - `party.py` - args: `cls._table` -- **after_super** `add_column` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` - condition: `not exist` - - object: `table` - - args: `'template', 'INTEGER'` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' - **after_super** `execute` - - condition: `table.column_exist('template')` + - condition: `party_h.column_exist('lang')` - object: `cursor` - - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns] + [sql_table.product], values=sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null)))` -- **after_super** `insert` - - condition: `table.column_exist('template')` - - object: `sql_table` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` - kwargs: - - columns: `[Column(sql_table, c) for c in columns] + [sql_table.product]` - - values: `sql_table.join(product, condition=sql_table.template == product.template).select(*[Column(sql_table, c) for c in columns] + [product.id], where=(sql_table.template != Null) & (sql_table.product == Null))` -- **after_super** `select` - - condition: `table.column_exist('template')` - - object: `sql_table.join(product, condition=sql_table.template == product.template)` - - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` - kwargs: - - where: `(sql_table.template != Null) & (sql_table.product == Null)` -- **after_super** `execute` - - condition: `table.column_exist('template')` - - object: `cursor` - - args: `*sql_table.delete(where=(sql_table.template != Null) & (sql_table.product == Null))` -- **after_super** `delete` - - condition: `table.column_exist('template')` - - object: `sql_table` + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` - kwargs: - - where: `(sql_table.template != Null) & (sql_table.product == Null)` -- **after_super** `drop_column` - - condition: `table.column_exist('template')` - - object: `table` - - args: `'template'` - -## Klasse ProductCostPriceMethod - - -### 5.0 - -file: /home/uha4/tmp/tryton/modules/product/product.py : 374 -- **after_super** `execute` - - condition: `cost_price_table.column_exist('template')` - - object: `cursor` - - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` -- **after_super** `insert` - - condition: `cost_price_table.column_exist('template')` - - object: `sql_table` + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` - kwargs: - - columns: `[Column(sql_table, c) for c in columns]` - - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` -- **after_super** `select` - - condition: `cost_price_table.column_exist('template')` - - object: `cost_price` - - args: `*[Column(cost_price, c) for c in columns]` - - -### 5.6 - -file: /home/uha4/tmp/tryton/modules/product/product.py : 578 + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' - **before_super** `table_exist` - - object: `backend.TableHandler` - - args: `cls._table` -- **before_super** `table_exist` - - object: `backend.TableHandler` + - object: `TableHandler` + - files: + - `product.py` - args: `ProductCostPrice._table` -- **after_super** `execute` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` - condition: `cost_price_table.column_exist('template')` - - object: `cursor` - - args: `*sql_table.insert(columns=[Column(sql_table, c) for c in columns], values=cost_price.select(*[Column(cost_price, c) for c in columns]))` -- **after_super** `insert` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` - condition: `cost_price_table.column_exist('template')` - - object: `sql_table` - - kwargs: - - columns: `[Column(sql_table, c) for c in columns]` - - values: `cost_price.select(*[Column(cost_price, c) for c in columns])` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' - **after_super** `select` - - condition: `cost_price_table.column_exist('template')` - - object: `cost_price` - - args: `*[Column(cost_price, c) for c in columns]` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' -## Klasse ProductListPrice + +### 5.2 + +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' ### 5.6 -file: /home/uha4/tmp/tryton/modules/product/product.py : 551 +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' - **before_super** `table_exist` - object: `backend.TableHandler` + - files: + - `configuration.py` - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code_compact'` + - code: + 'table_h.column_exist('code_compact')' diff --git a/reports/product_measurements.md b/reports/product_measurements.md index 27d1c07..e1716a8 100644 --- a/reports/product_measurements.md +++ b/reports/product_measurements.md @@ -1,2 +1,2 @@ -# product_measurements +# modul product_measurements diff --git a/reports/production.md b/reports/production.md index 982efec..d51ca96 100644 --- a/reports/production.md +++ b/reports/production.md @@ -1,115 +1,2800 @@ -# production - -## Klasse BOMInput +# modul production -### 6.2 +## Tabelle ir_cron -file: /home/uha4/tmp/tryton/modules/production/bom.py : 70 -- **after_super** `drop_constraint` +### 5.2 + +- **after_super** `drop_column` - object: `table_h` - - args: `'product_bom_uniq'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/modules/production/bom.py : 72 -- **before_super** `column_rename` - - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` - - object: `table_h` - - args: `'uom', 'unit'` -- **after_super** `drop_constraint` - - object: `table_h` - - args: `'product_bom_uniq'` - - -### 7.8 - -file: /home/uha4/tmp/tryton/modules/production/bom.py : 208 + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' - **after_super** `not_null_action` - object: `table_h` - - args: `'product', 'remove'` - -## Klasse ConfigurationProductionSequence + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' ### 5.6 -file: /home/uha4/tmp/tryton/modules/production/configuration.py : 43 -- **before_super** `table_exist` - - object: `backend.TableHandler` - - args: `cls._table` +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' -## Klasse Cron + +### 6.0 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 6.4 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' + + +### 6.8 + +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' ### 7.2 -file: /home/uha4/tmp/tryton/modules/production/ir.py : 19 +- **after_super** `drop_column` + - object: `table_h` + - files: + - `cron.py` + - args: `column` + - code: + 'table_h.drop_column(column)' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `cron.py` + - args: `'next_call', 'remove'` + - code: + 'table_h.not_null_action('next_call', 'remove')' - **after_super** `execute` - object: `cursor` + - files: + - `ir.py` - args: `*table.update([table.method], ['ir.cron|stock_shipment_assign_try'], where=table.method == 'production|assign_cron')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron'))' - **after_super** `update` - object: `table` + - files: + - `ir.py` - args: `[table.method], ['ir.cron|stock_shipment_assign_try']` - kwargs: - where: `table.method == 'production|assign_cron'` - -## Klasse Production - - -### 5.0 - -file: /home/uha4/tmp/tryton/modules/production/production.py : 224 -- **before_super** `column_rename` - - condition: `table_h.column_exist('code')` - - object: `table_h` - - args: `'code', 'number'` -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` -- **after_super** `update` - - object: `table` - - args: `[table.planned_start_date], [table.planned_date]` - - kwargs: - - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` - - -### 5.8 - -file: /home/uha4/tmp/tryton/modules/production/production.py : 254 -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` -- **after_super** `update` - - object: `table` - - args: `[table.state], ['cancelled']` - - kwargs: - - where: `table.state == 'cancel'` - - -### 7.0 - -file: /home/uha4/tmp/tryton/modules/production/production.py : 264 -- **before_super** `column_rename` - - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` - - object: `table_h` - - args: `'uom', 'unit'` -- **after_super** `execute` - - object: `cursor` - - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` -- **after_super** `update` - - object: `table` - - args: `[table.state], ['cancelled']` - - kwargs: - - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron')' ### 7.6 -file: /home/uha4/tmp/tryton/modules/production/production.py : 267 +- **after_super** `execute` + - object: `cursor` + - files: + - `ir.py` + - args: `*table.update([table.method], ['ir.cron|stock_shipment_assign_try'], where=table.method == 'production|assign_cron')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron'))' +- **after_super** `update` + - object: `table` + - files: + - `ir.py` + - args: `[table.method], ['ir.cron|stock_shipment_assign_try']` + - kwargs: + - where: `table.method == 'production|assign_cron'` + - code: + 'table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron')' + + +### 8.0 + +- **after_super** `execute` + - object: `cursor` + - files: + - `ir.py` + - args: `*table.update([table.method], ['ir.cron|stock_shipment_assign_try'], where=table.method == 'production|assign_cron')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron'))' +- **after_super** `update` + - object: `table` + - files: + - `ir.py` + - args: `[table.method], ['ir.cron|stock_shipment_assign_try']` + - kwargs: + - where: `table.method == 'production|assign_cron'` + - code: + 'table.update( + [table.method], ['ir.cron|stock_shipment_assign_try'], + where=table.method == 'production|assign_cron')' + + +## Tabelle production + +### 5.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `production.py` + - args: `'code', 'number'` + - code: + 'table_h.column_rename('code', 'number')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null)))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.planned_start_date], [table.planned_date]` + - kwargs: + - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` + - code: + 'table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null))' + + +### 5.4 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `production.py` + - args: `'code', 'number'` + - code: + 'table_h.column_rename('code', 'number')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null)))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.planned_start_date], [table.planned_date]` + - kwargs: + - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` + - code: + 'table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null))' + + +### 5.8 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `production.py` + - args: `'code', 'number'` + - code: + 'table_h.column_rename('code', 'number')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null)))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.planned_start_date], [table.planned_date]` + - kwargs: + - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` + - code: + 'table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null))' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel'))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.state], ['cancelled']` + - kwargs: + - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel')' + + +### 6.2 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `production.py` + - args: `'code', 'number'` + - code: + 'table_h.column_rename('code', 'number')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null)))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.planned_start_date], [table.planned_date]` + - kwargs: + - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` + - code: + 'table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null))' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel'))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.state], ['cancelled']` + - kwargs: + - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel')' + + +### 6.6 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('code')` + - object: `table_h` + - files: + - `production.py` + - args: `'code', 'number'` + - code: + 'table_h.column_rename('code', 'number')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.planned_start_date], [table.planned_date], where=(table.planned_start_date == Null) & (table.planned_date != Null))` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null)))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.planned_start_date], [table.planned_date]` + - kwargs: + - where: `(table.planned_start_date == Null) & (table.planned_date != Null)` + - code: + 'table.update( + [table.planned_start_date], + [table.planned_date], + where=(table.planned_start_date == Null) + & (table.planned_date != Null))' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel'))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.state], ['cancelled']` + - kwargs: + - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel')' + + +### 7.0 + - **before_super** `column_rename` - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` - object: `table_h` + - files: + - `production.py` - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel'))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.state], ['cancelled']` + - kwargs: + - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel')' + + +### 7.4 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` + - object: `table_h` + - files: + - `production.py` + - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' +- **after_super** `execute` + - object: `cursor` + - files: + - `production.py` + - args: `*table.update([table.state], ['cancelled'], where=table.state == 'cancel')` + - code: + '(Transaction().connection.cursor()).execute(*table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel'))' +- **after_super** `update` + - object: `table` + - files: + - `production.py` + - args: `[table.state], ['cancelled']` + - kwargs: + - where: `table.state == 'cancel'` + - code: + 'table.update( + [table.state], ['cancelled'], + where=table.state == 'cancel')' + + +### 7.8 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` + - object: `table_h` + - files: + - `production.py` + - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' + + +## Tabelle production_bom_input + +### 6.2 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `bom.py` + - args: `'product_bom_uniq'` + - code: + 'table_h.drop_constraint('product_bom_uniq')' + + +### 6.6 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `bom.py` + - args: `'product_bom_uniq'` + - code: + 'table_h.drop_constraint('product_bom_uniq')' + + +### 7.0 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` + - object: `table_h` + - files: + - `bom.py` + - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `bom.py` + - args: `'product_bom_uniq'` + - code: + 'table_h.drop_constraint('product_bom_uniq')' + + +### 7.4 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` + - object: `table_h` + - files: + - `bom.py` + - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `bom.py` + - args: `'product_bom_uniq'` + - code: + 'table_h.drop_constraint('product_bom_uniq')' + + +### 7.8 + +- **before_super** `column_rename` + - condition: `table_h.column_exist('uom') and (not table_h.column_exist('unit'))` + - object: `table_h` + - files: + - `bom.py` + - args: `'uom', 'unit'` + - code: + 'table_h.column_rename('uom', 'unit')' +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `bom.py` + - args: `'product_bom_uniq'` + - code: + 'table_h.drop_constraint('product_bom_uniq')' +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `bom.py` + - args: `'product', 'remove'` + - code: + 'table_h.not_null_action('product', 'remove')' + + +## Tabelle production_configuration_production_sequence + +### 5.6 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.0 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.4 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +### 6.8 + +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' + + +### 5.2 + +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' + + +### 5.6 + +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code_compact'` + - code: + 'table_h.column_exist('code_compact')' diff --git a/reports/production_split.md b/reports/production_split.md index f96dad5..57d73ac 100644 --- a/reports/production_split.md +++ b/reports/production_split.md @@ -1,2 +1,2 @@ -# production_split +# modul production_split diff --git a/reports/res.md b/reports/res.md index f96d9c6..c69a1dd 100644 --- a/reports/res.md +++ b/reports/res.md @@ -1,66 +1,3771 @@ -# res +# modul res -## Klasse User +## Tabelle ir_model_data ### 5.0 -file: /home/uha4/tmp/tryton/trytond/trytond/res/user.py : 200 - **after_super** `execute` - - condition: `table.column_exist('password') and table.column_exist('salt')` - object: `cursor` - - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' - **after_super** `update` - - condition: `table.column_exist('password') and table.column_exist('salt')` - - object: `sqltable` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` - kwargs: - - columns: `[sqltable.password_hash]` - - values: `[password_hash_new]` -- **after_super** `drop_column` - - condition: `table.column_exist('password') and table.column_exist('salt')` - - object: `table` - - args: `'password'` -- **after_super** `drop_column` - - condition: `table.column_exist('password') and table.column_exist('salt')` - - object: `table` - - args: `'salt'` + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item'))' + + +### 5.2 + - **after_super** `not_null_action` - - object: `table` - - args: `'name'` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` - kwargs: - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' + + +### 5.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model == + 'ir.module.module.config_wizard.item'))' + + +### 5.6 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' ### 5.8 -file: /home/uha4/tmp/tryton/trytond/trytond/res/user.py : 191 - **after_super** `execute` - object: `cursor` - - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' - **after_super** `update` - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **after_super** `execute` + - object: `cursor` + - files: + - `user.py` + - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin')))' +- **after_super** `update` + - object: `model_data` + - files: + - `user.py` - args: `[model_data.noupdate], [True]` - kwargs: - where: `(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin')` + - code: + 'model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin'))' + + +### 6.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 6.2 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **after_super** `execute` + - object: `cursor` + - files: + - `user.py` + - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin')))' +- **after_super** `update` + - object: `model_data` + - files: + - `user.py` + - args: `[model_data.noupdate], [True]` + - kwargs: + - where: `(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin')` + - code: + 'model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin'))' + + +### 6.4 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' + + +### 6.6 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `model.py` + - args: `*model_data.update([model_data.module], ['ir'], where=(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button'))))' +- **after_super** `update` + - object: `model_data` + - files: + - `model.py` + - args: `[model_data.module], ['ir']` + - kwargs: + - where: `(model_data.module == 'res') & (model_data.fs_id == 'model_data_sync_button')` + - code: + 'model_data.update( + [model_data.module], ['ir'], + where=((model_data.module == 'res') + & (model_data.fs_id == 'model_data_sync_button')))' +- **after_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data_sql_table.update([model_data_sql_table.module], ['ir'], where=(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids))` + - code: + '(Transaction().connection.cursor()).execute(*model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids)))))' +- **after_super** `update` + - object: `model_data_sql_table` + - files: + - `module.py` + - args: `[model_data_sql_table.module], ['ir']` + - kwargs: + - where: `(model_data_sql_table.module == 'res') & model_data_sql_table.fs_id.in_(button_fs_ids)` + - code: + 'model_data_sql_table.update( + [model_data_sql_table.module], ['ir'], + where=((model_data_sql_table.module == 'res') + & (model_data_sql_table.fs_id.in_(button_fs_ids))))' +- **after_super** `execute` + - object: `cursor` + - files: + - `user.py` + - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin')))' +- **after_super** `update` + - object: `model_data` + - files: + - `user.py` + - args: `[model_data.noupdate], [True]` + - kwargs: + - where: `(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin')` + - code: + 'model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin'))' + + +### 6.8 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' +- **before_super** `execute` + - object: `cursor` + - files: + - `module.py` + - args: `*model_data.update(columns=[model_data.model], values=[cls.__name__], where=model_data.model == 'ir.module.module.config_wizard.item')` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item')))' +- **before_super** `update` + - object: `model_data` + - files: + - `module.py` + - kwargs: + - columns: `[model_data.model]` + - values: `[cls.__name__]` + - where: `model_data.model == 'ir.module.module.config_wizard.item'` + - code: + 'model_data.update( + columns=[model_data.model], + values=[cls.__name__], + where=(model_data.model + == 'ir.module.module.config_wizard.item'))' ### 7.0 -file: /home/uha4/tmp/tryton/trytond/trytond/res/user.py : 207 - **after_super** `execute` - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `user.py` - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin')))' - **after_super** `update` - object: `model_data` + - files: + - `user.py` - args: `[model_data.noupdate], [True]` - kwargs: - where: `(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin')` + - code: + 'model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin'))' + + +### 7.2 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `model.py` + - args: `'db_id'` + - kwargs: + - action: `'remove'` + - code: + 'table_h.not_null_action('db_id', action='remove')' + + +### 7.4 + +- **after_super** `execute` + - object: `cursor` + - files: + - `country.py` + - args: `*data.delete(where=(data.module == 'country') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'country') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `country.py` + - kwargs: + - where: `(data.module == 'country') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'country') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `currency.py` + - args: `*data.delete(where=(data.module == 'currency') & (data.model == cls.__name__))` + - code: + '(Transaction().connection.cursor()).execute(*data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__)))' +- **after_super** `delete` + - object: `data` + - files: + - `currency.py` + - kwargs: + - where: `(data.module == 'currency') & (data.model == cls.__name__)` + - code: + 'data.delete(where=(data.module == 'currency') + & (data.model == cls.__name__))' +- **after_super** `execute` + - object: `cursor` + - files: + - `user.py` + - args: `*model_data.update([model_data.noupdate], [True], where=(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin'))` + - code: + '(Transaction().connection.cursor()).execute(*model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin')))' +- **after_super** `update` + - object: `model_data` + - files: + - `user.py` + - args: `[model_data.noupdate], [True]` + - kwargs: + - where: `(model_data.model == cls.__name__) & (model_data.module == 'res') & (model_data.fs_id == 'user_admin')` + - code: + 'model_data.update( + [model_data.noupdate], [True], + where=(model_data.model == cls.__name__) + & (model_data.module == 'res') + & (model_data.fs_id == 'user_admin'))' + + +### 7.6 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'fs_id_module_model_uniq'` + - code: + 'table_h.drop_constraint('fs_id_module_model_uniq')' + + +### 8.0 + +- **after_super** `drop_constraint` + - object: `table_h` + - files: + - `model.py` + - args: `'fs_id_module_model_uniq'` + - code: + 'table_h.drop_constraint('fs_id_module_model_uniq')' + + +## Tabelle res_user + +### 5.0 + +- **after_super** `execute` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `cursor` + - files: + - `user.py` + - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - code: + '(Transaction().connection.cursor()).execute(*sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new]))' +- **after_super** `update` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `sqltable` + - files: + - `user.py` + - kwargs: + - columns: `[sqltable.password_hash]` + - values: `[password_hash_new]` + - code: + 'sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new])' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'password'` + - code: + 'table.drop_column('password')' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'salt'` + - code: + 'table.drop_column('salt')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `user.py` + - args: `'name'` + - kwargs: + - action: `'remove'` + - code: + 'table.not_null_action('name', action='remove')' + + +### 5.4 + +- **after_super** `execute` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `cursor` + - files: + - `user.py` + - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - code: + '(Transaction().connection.cursor()).execute(*sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new]))' +- **after_super** `update` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `sqltable` + - files: + - `user.py` + - kwargs: + - columns: `[sqltable.password_hash]` + - values: `[password_hash_new]` + - code: + 'sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new])' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'password'` + - code: + 'table.drop_column('password')' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'salt'` + - code: + 'table.drop_column('salt')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `user.py` + - args: `'name'` + - kwargs: + - action: `'remove'` + - code: + 'table.not_null_action('name', action='remove')' + + +### 5.8 + +- **after_super** `execute` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `cursor` + - files: + - `user.py` + - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - code: + '(Transaction().connection.cursor()).execute(*sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new]))' +- **after_super** `update` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `sqltable` + - files: + - `user.py` + - kwargs: + - columns: `[sqltable.password_hash]` + - values: `[password_hash_new]` + - code: + 'sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new])' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'password'` + - code: + 'table.drop_column('password')' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'salt'` + - code: + 'table.drop_column('salt')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `user.py` + - args: `'name'` + - kwargs: + - action: `'remove'` + - code: + 'table.not_null_action('name', action='remove')' + + +### 6.0 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 6.2 + +- **after_super** `execute` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `cursor` + - files: + - `user.py` + - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - code: + '(Transaction().connection.cursor()).execute(*sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new]))' +- **after_super** `update` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `sqltable` + - files: + - `user.py` + - kwargs: + - columns: `[sqltable.password_hash]` + - values: `[password_hash_new]` + - code: + 'sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new])' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'password'` + - code: + 'table.drop_column('password')' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'salt'` + - code: + 'table.drop_column('salt')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `user.py` + - args: `'name'` + - kwargs: + - action: `'remove'` + - code: + 'table.not_null_action('name', action='remove')' + + +### 6.4 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 6.6 + +- **after_super** `execute` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `cursor` + - files: + - `user.py` + - args: `*sqltable.update(columns=[sqltable.password_hash], values=[password_hash_new])` + - code: + '(Transaction().connection.cursor()).execute(*sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new]))' +- **after_super** `update` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `sqltable` + - files: + - `user.py` + - kwargs: + - columns: `[sqltable.password_hash]` + - values: `[password_hash_new]` + - code: + 'sqltable.update( + columns=[sqltable.password_hash], + values=[password_hash_new])' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'password'` + - code: + 'table.drop_column('password')' +- **after_super** `drop_column` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - object: `table` + - files: + - `user.py` + - args: `'salt'` + - code: + 'table.drop_column('salt')' +- **after_super** `not_null_action` + - object: `table` + - files: + - `user.py` + - args: `'name'` + - kwargs: + - action: `'remove'` + - code: + 'table.not_null_action('name', action='remove')' + + +### 6.8 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' + + +### 7.2 + +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null)))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.main_company, where=table.main_company != Null)` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.main_company, + where=table.main_company != Null))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.main_company` + - kwargs: + - where: `table.main_company != Null` + - code: + 'table.select( + table.id, table.main_company, + where=table.main_company != Null)' +- **after_super** `execute` + - condition: `table_h.column_exist('main_company')` + - object: `cursor` + - files: + - `res.py` + - args: `*user_company.insert([user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company)))` + - code: + '(transaction.connection.cursor()).execute(*user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))))' +- **after_super** `insert` + - condition: `table_h.column_exist('main_company')` + - object: `user_company` + - files: + - `res.py` + - args: `[user_company.user, user_company.company], table.select(table.id, table.company, where=(table.company != Null) & (table.company != table.main_company))` + - code: + 'user_company.insert( + [user_company.user, user_company.company], + table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company)))' +- **after_super** `select` + - condition: `table_h.column_exist('main_company')` + - object: `table` + - files: + - `res.py` + - args: `table.id, table.company` + - kwargs: + - where: `(table.company != Null) & (table.company != table.main_company)` + - code: + 'table.select( + table.id, table.company, + where=(table.company != Null) + & (table.company != table.main_company))' +- **after_super** `drop_column` + - condition: `table_h.column_exist('main_company')` + - object: `table_h` + - files: + - `res.py` + - args: `'main_company'` + - code: + 'table_h.drop_column('main_company')' ### 7.6 -file: /home/uha4/tmp/tryton/trytond/trytond/res/user.py : 195 - **after_super** `not_null_action` - object: `table_h` + - files: + - `user.py` - args: `'menu', 'remove'` + - code: + 'table_h.not_null_action('menu', 'remove')' + + +### 8.0 + +- **after_super** `not_null_action` + - object: `table_h` + - files: + - `user.py` + - args: `'menu', 'remove'` + - code: + 'table_h.not_null_action('menu', 'remove')' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 5.2 + +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' + + +### 5.4 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 5.6 + +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code_compact'` + - code: + 'table_h.column_exist('code_compact')' diff --git a/reports/stock_lot.md b/reports/stock_lot.md index 817d7de..c14ffe0 100644 --- a/reports/stock_lot.md +++ b/reports/stock_lot.md @@ -1,19 +1,3426 @@ -# stock_lot +# modul stock_lot -## Klasse Template + +## Tabelle product_template + +### 5.4 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +### 5.8 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +### 6.2 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +### 6.6 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +### 7.0 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +### 7.4 + +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - args: `*table.update([table.lot_required], [value], where=table.id == template_id)` + - code: + '(connection.cursor()).execute(*table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id))' +- **after_super** `update` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table` + - files: + - `product.py` + - args: `[table.lot_required], [value]` + - kwargs: + - where: `table.id == template_id` + - code: + 'table.update( + [table.lot_required], [(cls.lot_required.sql_format([t for t, in cursor]))], + where=table.id == template_id)' + + +## Tabelle unknown + +### 5.0 + +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `action.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `Pool` + - files: + - `module.py` + - code: + 'Pool()' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' + + +### 5.2 + +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' ### 5.4 -file: /home/uha4/tmp/tryton/modules/stock_lot/product.py : 29 +- **before_super** `get` + - object: `backend` + - files: + - `party.py` + - args: `'TableHandler'` + - code: + 'backend.get('(backend.get('TableHandler'))')' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `party.py` + - args: `cls._table` + - code: + '(backend.get('TableHandler')).table_exist(cls._table)' +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **before_super** `table_rename` + - condition: `TableHandler.table_exist(old_table)` + - object: `TableHandler` + - files: + - `module.py` + - args: `old_table, cls._table` + - code: + '(backend.get('TableHandler')).table_rename(old_table, cls._table)' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **before_super** `table_exist` + - object: `TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + '(backend.get('TableHandler')).table_exist(ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + '(backend.get('TableHandler'))(ProductCostPrice, module_name)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `production.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' - **after_super** `execute` - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` - object: `cursor_select` + - files: + - `product.py` - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' - **after_super** `select` - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` - object: `template_lot_type` + - files: + - `product.py` - args: `template_lot_type.template` - kwargs: - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 5.6 + +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 5.8 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `Pool` + - files: + - `country.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `Transaction` + - files: + - `country.py` + - code: + 'Transaction()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `action.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor_select` + - files: + - `product.py` + - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' +- **after_super** `select` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `template_lot_type.template` + - kwargs: + - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 6.0 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.2 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor_select` + - files: + - `product.py` + - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' +- **after_super** `select` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `template_lot_type.template` + - kwargs: + - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 6.4 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' +- **after_super** `TableHandler` + - condition: `not exist and cost_price_exist` + - object: `backend` + - files: + - `product.py` + - args: `ProductCostPrice, module_name` + - code: + 'backend.TableHandler( + ProductCostPrice, module_name)' + + +### 6.6 + +- **before_super** `column_exist` + - condition: `exist` + - object: `table` + - files: + - `party.py` + - args: `'company'` + - code: + 'table.column_exist('company')' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.configuration', cls._configuration_value_field, cls, cls._configuration_value_field` + - kwargs: + - fields: `['company']` + - code: + 'migrate_property( + 'party.configuration', cls._configuration_value_field, + cls, cls._configuration_value_field, fields=['company'])' +- **after_super** `_migrate_property` + - condition: `not exist` + - object: `super(PartyLang, cls)` + - files: + - `party.py` + - args: `field_names, value_names, fields` + - code: + 'super(PartyLang, cls)._migrate_property( + field_names, value_names, fields)' +- **after_super** `super` + - condition: `not exist` + - files: + - `party.py` + - args: `PartyLang, cls` + - code: + 'super(PartyLang, cls)' +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `action.py` + - code: + 'Transaction()' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `Concat(attachment.digest, '-'), attachment.collision` + - code: + 'Concat(Concat(attachment.digest, '-'), + attachment.collision)' +- **after_super** `Concat` + - condition: `table.column_exist('digest') and table.column_exist('collision')` + - files: + - `attachment.py` + - args: `attachment.digest, '-'` + - code: + 'Concat(attachment.digest, '-')' +- **after_super** `in_` + - object: `model_data_sql_table.fs_id` + - files: + - `module.py` + - args: `button_fs_ids` + - code: + 'model_data_sql_table.fs_id.in_(button_fs_ids)' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `translation.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `timedelta` + - condition: `table.column_exist('minimum_delay')` + - object: `datetime` + - files: + - `trigger.py` + - kwargs: + - hours: `delay` + - code: + 'datetime.timedelta(hours=(datetime.timedelta(hours=delay)))' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `Coalesce(sql_table.street, ''), Concat('\n', Coalesce(sql_table.streetbis, ''))` + - code: + 'Concat( + Coalesce(sql_table.street, ''), + Concat('\n', Coalesce(sql_table.streetbis, '')))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.street, ''` + - code: + 'Coalesce(sql_table.street, '')' +- **after_super** `Concat` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `'\n', Coalesce(sql_table.streetbis, '')` + - code: + 'Concat('\n', Coalesce(sql_table.streetbis, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('streetbis')` + - files: + - `address.py` + - args: `sql_table.streetbis, ''` + - code: + 'Coalesce(sql_table.streetbis, '')' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'party.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'party.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `execute` + - condition: `party_h.column_exist('lang')` + - object: `cursor` + - files: + - `party.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.insert( + [table.party, table.lang], + party.select(party.id, party.lang))))' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `party.py` + - args: `'party.party', field_names, cls, value_names` + - kwargs: + - parent: `'party'` + - fields: `fields` + - code: + 'migrate_property( + 'party.party', field_names, cls, value_names, + parent='party', fields=fields)' +- **after_super** `cls` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - kwargs: + - party: `party_id` + - code: `code` + - type: `type` + - code: + 'cls(party=party_id, code=code, type=type)' +- **after_super** `save` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `cls` + - files: + - `party.py` + - args: `identifiers` + - code: + 'cls.save(identifiers)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'product.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'product.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `product.py` + - args: `'product.template', field_names, cls, value_names` + - kwargs: + - parent: `'template'` + - fields: `fields` + - code: + 'migrate_property( + 'product.template', field_names, cls, value_names, + parent='template', fields=fields)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `sql_table, c` + - code: + 'Column(sql_table, c)' +- **after_super** `Column` + - condition: `cost_price_table.column_exist('template')` + - files: + - `product.py` + - args: `cost_price, c` + - code: + 'Column(cost_price, c)' +- **after_super** `select` + - condition: `table.column_exist('template')` + - object: `sql_table.join(product, condition=sql_table.template == product.template)` + - files: + - `product.py` + - args: `*[Column(sql_table, c) for c in columns] + [product.id]` + - kwargs: + - where: `(sql_table.template != Null) & (sql_table.product == Null)` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + ).select( + *[Column(sql_table, c) for c in columns] + + [product.id], + where=(sql_table.template != Null) + & (sql_table.product == Null))' +- **after_super** `join` + - condition: `table.column_exist('template')` + - object: `sql_table` + - files: + - `product.py` + - args: `product` + - kwargs: + - condition: `sql_table.template == product.template` + - code: + 'sql_table.join(product, + condition=sql_table.template == product.template + )' +- **after_super** `migrate_property` + - condition: `not exist` + - files: + - `configuration.py` + - args: `'production.configuration', field_names, cls, value_names` + - kwargs: + - fields: `fields` + - code: + 'migrate_property( + 'production.configuration', field_names, cls, value_names, + fields=fields)' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'sha1$', Concat(sqltable.password, Concat('$', Coalesce(sqltable.salt, '')))` + - code: + 'Concat('sha1$', Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, ''))))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.password, Concat('$', Coalesce(sqltable.salt, ''))` + - code: + 'Concat(sqltable.password, + Concat('$', Coalesce(sqltable.salt, '')))' +- **after_super** `Concat` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `'$', Coalesce(sqltable.salt, '')` + - code: + 'Concat('$', Coalesce(sqltable.salt, ''))' +- **after_super** `Coalesce` + - condition: `table.column_exist('password') and table.column_exist('salt')` + - files: + - `user.py` + - args: `sqltable.salt, ''` + - code: + 'Coalesce(sqltable.salt, '')' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor_select` + - files: + - `product.py` + - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' +- **after_super** `select` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `template_lot_type.template` + - kwargs: + - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 6.8 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `configuration.py` + - args: `cls._table` + - code: + 'backend.TableHandler.table_exist(cls._table)' +- **after_super** `get_cc_module` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - files: + - `party.py` + - args: `*type.split('_', 1)` + - code: + 'get_cc_module(*type.split('_', 1))' +- **after_super** `split` + - condition: `party_h.column_exist('vat_number') and party_h.column_exist('vat_country')` + - object: `type` + - files: + - `party.py` + - args: `'_', 1` + - code: + 'type.split('_', 1)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `product.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `table_exist` + - object: `backend.TableHandler` + - files: + - `product.py` + - args: `ProductCostPrice._table` + - code: + 'backend.TableHandler.table_exist( + ProductCostPrice._table)' + + +### 7.0 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor_select` + - files: + - `product.py` + - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' +- **after_super** `select` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `template_lot_type.template` + - kwargs: + - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 7.2 + +- **before_super** `Pool` + - files: + - `res.py` + - code: + 'Pool()' +- **before_super** `Transaction` + - files: + - `res.py` + - code: + 'Transaction()' +- **after_super** `cursor` + - object: `transaction.connection` + - files: + - `res.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **after_super** `Pool` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - code: + 'Pool()' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `action_model, Concat('|', sql_table.action_function)` + - code: + 'Concat((model.select( + model.model, where=model.id == sql_table.action_model)), Concat( + '|', sql_table.action_function))' +- **after_super** `Concat` + - condition: `table_h.column_exist('action_model') and table_h.column_exist('action_function')` + - files: + - `trigger.py` + - args: `'|', sql_table.action_function` + - code: + 'Concat( + '|', sql_table.action_function)' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `product.py` + - args: `'suffix_code'` + - code: + 'table_h.column_exist('suffix_code')' + + +### 7.4 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `country.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cursor` + - object: `Transaction().connection` + - files: + - `trigger.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **after_super** `Transaction` + - files: + - `trigger.py` + - code: + 'Transaction()' +- **after_super** `execute` + - condition: `table_h.column_exist('country')` + - object: `cursor` + - files: + - `address.py` + - args: `*query` + - code: + '(Transaction().connection.cursor()).execute(*(table.update( + [table.language_code], + language.select( + Substring(language.code, 0, 2), + where=language.id == table.language))))' +- **after_super** `Substring` + - condition: `table_h.column_exist('language')` + - files: + - `address.py` + - args: `language.code, 0, 2` + - code: + 'Substring(language.code, 0, 2)' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' +- **before_super** `cursor` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'product.template-stock.lot.type'` + - kwargs: + - default: `'product.template-stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))' +- **after_super** `replace` + - object: `'product.template-stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''product.template-stock.lot.type' .replace('.', '_')' +- **after_super** `get` + - object: `config` + - files: + - `product.py` + - args: `'table', 'stock.lot.type'` + - kwargs: + - default: `'stock.lot.type'.replace('.', '_')` + - code: + 'config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))' +- **after_super** `replace` + - object: `'stock.lot.type'` + - files: + - `product.py` + - args: `'.', '_'` + - code: + ''stock.lot.type'.replace('.', '_')' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `template_lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `Table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - files: + - `product.py` + - args: `lot_type_table_name` + - code: + 'Table((config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' +- **after_super** `cursor` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `connection` + - files: + - `product.py` + - code: + 'connection.(connection.cursor())()' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor_select` + - files: + - `product.py` + - args: `*template_lot_type.select(template_lot_type.template, distinct_on=template_lot_type.template)` + - code: + '(connection.cursor()).execute(*template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template))' +- **after_super** `select` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `template_lot_type.template` + - kwargs: + - distinct_on: `template_lot_type.template` + - code: + 'template_lot_type.select( + template_lot_type.template, + distinct_on=template_lot_type.template)' +- **after_super** `execute` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cursor` + - files: + - `product.py` + - 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)` + - code: + '(connection.cursor()).execute(*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))' +- **after_super** `select` + - 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)` + - files: + - `product.py` + - args: `lot_type.code` + - kwargs: + - where: `template_lot_type.template == template_id` + - code: + '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)' +- **after_super** `join` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `template_lot_type` + - files: + - `product.py` + - args: `lot_type` + - kwargs: + - condition: `template_lot_type.type == lot_type.id` + - code: + 'template_lot_type + .join(lot_type, + condition=template_lot_type.type == lot_type.id)' +- **after_super** `sql_format` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `cls.lot_required` + - files: + - `product.py` + - args: `[t for t, in cursor]` + - code: + 'cls.lot_required.sql_format([t for t, in (connection.cursor())])' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'product.template-stock.lot.type', template_lot_type_table_name` + - code: + 'table_h.drop_table('product.template-stock.lot.type', + (config.get( + 'table', 'product.template-stock.lot.type', + default='product.template-stock.lot.type' .replace('.', '_'))))' +- **after_super** `drop_table` + - condition: `table_h.table_exist(template_lot_type_table_name) and table_h.table_exist(lot_type_table_name)` + - object: `table_h` + - files: + - `product.py` + - args: `'stock.lot.type', lot_type_table_name` + - code: + 'table_h.drop_table('stock.lot.type', (config.get( + 'table', 'stock.lot.type', + default='stock.lot.type'.replace('.', '_'))))' + + +### 7.6 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' + + +### 7.8 + +- **before_super** `cursor` + - object: `Transaction().connection` + - files: + - `export.py` + - code: + 'Transaction().connection.(Transaction().connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `export.py` + - args: `'user'` + - code: + 'table_h.column_exist('user')' +- **after_super** `cls` + - files: + - `configuration.py` + - args: `1` + - code: + 'cls(1)' +- **after_super** `tuple` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `map(replace_vat, configuration.identifier_types)` + - code: + 'tuple(map( + replace_vat, configuration.identifier_types))' +- **after_super** `map` + - condition: `configuration.identifier_types` + - files: + - `configuration.py` + - args: `replace_vat, configuration.identifier_types` + - code: + 'map( + replace_vat, configuration.identifier_types)' +- **after_super** `sql_format` + - condition: `configuration.identifier_types != identifier_types` + - object: `cls.identifier_types` + - files: + - `configuration.py` + - args: `identifier_types` + - code: + 'cls.identifier_types.sql_format(identifier_types)' +- **after_super** `replace_vat` + - files: + - `party.py` + - args: `old` + - code: + 'replace_vat(old)' + + +### 8.0 + +- **before_super** `Transaction` + - files: + - `export.py` + - code: + 'Transaction()' +- **before_super** `Pool` + - files: + - `model.py` + - code: + 'Pool()' +- **before_super** `cursor` + - object: `transaction.connection` + - files: + - `model.py` + - code: + 'transaction.connection.(transaction.connection.cursor())()' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code'` + - code: + 'table_h.column_exist('code')' +- **before_super** `column_exist` + - object: `table_h` + - files: + - `party.py` + - args: `'code_compact'` + - code: + 'table_h.column_exist('code_compact')' diff --git a/reports/stock_lot_sled.md b/reports/stock_lot_sled.md index 725ca0d..fba53c6 100644 --- a/reports/stock_lot_sled.md +++ b/reports/stock_lot_sled.md @@ -1,2 +1,2 @@ -# stock_lot_sled +# modul stock_lot_sled diff --git a/reports/stock_product_location.md b/reports/stock_product_location.md index 5a1413a..8c201ce 100644 --- a/reports/stock_product_location.md +++ b/reports/stock_product_location.md @@ -1,12 +1,59 @@ -# stock_product_location +# modul stock_product_location -## Klasse ProductLocation +## Tabelle stock_product_location ### 5.8 -file: /home/uha4/tmp/tryton/modules/stock_product_location/location.py : 43 - **after_super** `not_null_action` - object: `table` + - files: + - `location.py` - args: `'product', 'remove'` + - code: + 'table.not_null_action('product', 'remove')' + + +### 6.2 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `location.py` + - args: `'product', 'remove'` + - code: + 'table.not_null_action('product', 'remove')' + + +### 6.6 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `location.py` + - args: `'product', 'remove'` + - code: + 'table.not_null_action('product', 'remove')' + + +### 7.0 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `location.py` + - args: `'product', 'remove'` + - code: + 'table.not_null_action('product', 'remove')' + + +### 7.4 + +- **after_super** `not_null_action` + - object: `table` + - files: + - `location.py` + - args: `'product', 'remove'` + - code: + 'table.not_null_action('product', 'remove')' diff --git a/reports/stock_split.md b/reports/stock_split.md index 17ffecb..eb78c48 100644 --- a/reports/stock_split.md +++ b/reports/stock_split.md @@ -1,2 +1,2 @@ -# stock_split +# modul stock_split