Generierung der Export Daten. TOS Gruppenfolge aus der TOS Nummer impl.
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
[Zielpfade]
|
[Zielpfade]
|
||||||
\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool
|
Produktiv=\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool
|
||||||
\\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
Schulung=\\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
||||||
|
|
||||||
[3D-Modelle]
|
[3D-Modelle]
|
||||||
BaugruppeSchweissbaugruppe=\\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
BaugruppeSchweissbaugruppe=\\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
|
||||||
|
|||||||
+216
-9
@@ -553,9 +553,9 @@ class CadItem(DataModel):
|
|||||||
|
|
||||||
def message_info(self, title, key, questions='ok'):
|
def message_info(self, title, key, questions='ok'):
|
||||||
return self._controller.message_info(title, key, questions)
|
return self._controller.message_info(title, key, questions)
|
||||||
def message_error(self, title, key, values=None):
|
def message_error(self, title, key, values={}):
|
||||||
return self._controller.message_error(title, key, values)
|
return self._controller.message_error(title, key, values)
|
||||||
def message_question(self, title, key, values=None):
|
def message_question(self, title, key, values={}):
|
||||||
return self._controller.message_question(title, key, values)
|
return self._controller.message_question(title, key, values)
|
||||||
|
|
||||||
def check_key_existence(self, key, missing):
|
def check_key_existence(self, key, missing):
|
||||||
@@ -667,6 +667,8 @@ class CadItem(DataModel):
|
|||||||
|
|
||||||
|
|
||||||
def check_content(self):
|
def check_content(self):
|
||||||
|
"""Überprüfe die Inhalte nach Längen, Zeichenketten und korrekten Kombinationen der Eingaben"""
|
||||||
|
|
||||||
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
content = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||||
if len(content) > 50:
|
if len(content) > 50:
|
||||||
self.message_error('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
|
self.message_error('Bezeichnung1 zu gross', 'bezeichnung_zu_gross')
|
||||||
@@ -686,6 +688,10 @@ class CadItem(DataModel):
|
|||||||
self.message_error('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
|
self.message_error('Teilenummer ohne Rüstcode', 'teilenummer_ohne_ruestcode')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
if pdm_kategorie_neu == "<undefiniert>":
|
||||||
|
self.message_error('Kategorie nicht definiert', 'pdm_kategorie_definiert')
|
||||||
|
return False
|
||||||
|
|
||||||
# Fertigungsart
|
# Fertigungsart
|
||||||
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
||||||
arten = ["3D - 3D-drucken", "EX - extrudieren", "GI - gießen", "PR - verpressen", "SN - strangpressen", "SP - spritzgießen", "SW - schweißen"]
|
arten = ["3D - 3D-drucken", "EX - extrudieren", "GI - gießen", "PR - verpressen", "SN - strangpressen", "SP - spritzgießen", "SW - schweißen"]
|
||||||
@@ -809,24 +815,225 @@ class CadItem(DataModel):
|
|||||||
# return
|
# return
|
||||||
|
|
||||||
# Farbe
|
# Farbe
|
||||||
farbe = self._model.get_gui_data("farbe_neu")
|
farbe = self.get_gui_data("farbe_neu")
|
||||||
if werkstofftyp == '':
|
oberflaeche = self.get_gui_data("oberflaeche_neu")
|
||||||
self.message_error('Werkstofftyp nicht eingetragen', 'werkstofftyp_not_exist')
|
if farbe == '' and (oberflaeche == "Masterbatch (Grundfarbe)" or \
|
||||||
|
oberflaeche == "eloxieren" or\
|
||||||
|
oberflaeche == "pulverbeschichten" or\
|
||||||
|
oberflaeche == "lackieren"):
|
||||||
|
self.message_error('Farbe nicht festgelegt', 'color_not_defined')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
# Überprüfung ob eine Ergänzung der Angaben zu Material in der Config Datei nötig wäre
|
# Überprüfung ob eine Ergänzung der Angaben zu Material in der Config Datei nötig wäre
|
||||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||||
if pdm_kategorie_neu == "Einzelteil" and aus_halbzeug == False:
|
if pdm_kategorie_neu == "Einzelteil" and aus_halbzeug == False:
|
||||||
mlist = self._controller.get_config().Materialien.get_all_materials()
|
mlist = self._controller.get_config().Materialien.get_all_materials()
|
||||||
material_sivas = self._model.get_gui_data("material_sivas")
|
material_sivas = self.get_gui_data("material_sivas")
|
||||||
if material_sivas not in mlist:
|
if material_sivas not in mlist:
|
||||||
self._model.message_info('Materialinformation', 'material_infos')
|
self.message_info('Materialinformation', 'material_infos')
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def create_migration_file(self, data):
|
||||||
|
"""erzeugt Verzeichnis und Datei"""
|
||||||
|
model3d_neu = self.get_gui_data("model3d_neu")
|
||||||
|
datenbank = self.get_gui_data("datenbank")
|
||||||
|
path = os.path.dirname(model3d_neu)
|
||||||
|
filename = os.path.basename(model3d_neu)
|
||||||
|
|
||||||
|
# IF Datenbank == "Produktiv":
|
||||||
|
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\
|
||||||
|
# ELSE:
|
||||||
|
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
|
||||||
|
zielpfad = self._config.Pfade.get('Zielpfade', datenbank )
|
||||||
|
username = os.environ.get("USERNAME")
|
||||||
|
userpfad = os.path.join(zielpfad, username)
|
||||||
|
# Wenn User, der migriert, noch keinen Ordner im Ziel besitzt,
|
||||||
|
# soll dieser automatisch beim Klick auf "Migrieren" angelegt werden.
|
||||||
|
if not os.path.exists(userpfad):
|
||||||
|
os.mkdir(userpfad)
|
||||||
|
|
||||||
|
def tos_to_dict(self, tosgruppe, num2refId, num2child):
|
||||||
|
tosstr = str(tosgruppe)
|
||||||
|
ret = dict()
|
||||||
|
keybefore = ''
|
||||||
|
for n in range(1, len(tosstr)+1):
|
||||||
|
if n == 1:
|
||||||
|
spaltenName = "TOS-Gruppe"
|
||||||
|
else:
|
||||||
|
spaltenName = keybefore
|
||||||
|
key = tosstr[0:n]
|
||||||
|
if key in num2refId:
|
||||||
|
parentKey = num2refId[key]
|
||||||
|
content = num2child[key]
|
||||||
|
ret[spaltenName] = content
|
||||||
|
else:
|
||||||
|
spaltenName = keybefore
|
||||||
|
ret[spaltenName] = num2child[key]
|
||||||
|
keybefore = parentKey
|
||||||
|
return ret
|
||||||
|
|
||||||
def create_migration_data(self):
|
def create_migration_data(self):
|
||||||
pass
|
data = {
|
||||||
|
"Delete": "" ,
|
||||||
|
"Document Number": "-",
|
||||||
|
"Revision": "-",
|
||||||
|
"Project Name": "-",
|
||||||
|
"Teamcenter Item Type": "-",
|
||||||
|
"Part Type": "-",
|
||||||
|
"TC_ImportTime": "-",
|
||||||
|
"Last Saved Version": "-",
|
||||||
|
"Subject": "-",
|
||||||
|
"Category": "-",
|
||||||
|
"Keywords": "-",
|
||||||
|
}
|
||||||
|
all_data = self.get_all_gui_data()
|
||||||
|
# data_keys = [ "Author", "Teilenummer", "StartRevision",
|
||||||
|
# "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
|
||||||
|
# "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
|
||||||
|
# "Dispolaufgruppe", "WerkstofftypNE", "WerkstoffNE",
|
||||||
|
# "Oberflaechenbehandlung", "Farbe", "KalkulationsartNE",
|
||||||
|
# "RuestcodeAusw", "Fertigungsart", "Allgemeintoleranz",
|
||||||
|
# "HalbzeugInternAngabe", "Halbzeug", "HalbzeugOhneSaegeliste",
|
||||||
|
# "EinheitNE", "FOS-GruppeNE", "Hersteller", "HerstellerTeilenummer",
|
||||||
|
# "Serien-Status", "Kantennorm", "Oberflaechennorm", "Massnorm",
|
||||||
|
# "Tolerierungsnorm","Änderungsbeschreibung",
|
||||||
|
# "Freigabevermerk", "ZusaetzlicheInformationen"]
|
||||||
|
# Path
|
||||||
|
teilenummer = self.get_gui_data("teilenummer")
|
||||||
|
data["Teilenummer"] = teilenummer
|
||||||
|
|
||||||
|
# Bezeichnung um "- BG" ergänzen
|
||||||
|
pdm_kategorie_neu = self.get_gui_data("pdm_kategorie_neu")
|
||||||
|
bezeichnung1 = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||||
|
title = bezeichnung1
|
||||||
|
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||||
|
title = bezeichnung1 + " - BG"
|
||||||
|
data["Title"] = title
|
||||||
|
|
||||||
|
# Bezeichnung 4
|
||||||
|
bezeichnung4 = ""
|
||||||
|
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||||
|
bezeichnung4 = " - BG"
|
||||||
|
data["Bezeichnung4"] = bezeichnung4
|
||||||
|
|
||||||
|
# Author
|
||||||
|
username = os.environ.get("USERNAME")
|
||||||
|
data["Author"] = username
|
||||||
|
|
||||||
|
# Startrevision
|
||||||
|
startrevision = self.get_content('aenderungsindex_sivas', 'aenderungsindex_neu')
|
||||||
|
data["StartRevision"] = startrevision
|
||||||
|
|
||||||
|
# aus Halbzeug
|
||||||
|
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||||
|
if aus_halbzeug:
|
||||||
|
data["Aus Halbzeug"] = "Ja"
|
||||||
|
else:
|
||||||
|
data["Aus Halbzeug"] = ""
|
||||||
|
|
||||||
|
# Fertigungsart
|
||||||
|
fertigungsart = self.get_content('fertigungsart_sivas', 'fertigungsart_neu')
|
||||||
|
trans = {
|
||||||
|
"3D - 3D-drucken":"3D-drucken",
|
||||||
|
"3D - 3D drucken":"3D-drucken",
|
||||||
|
"BI - biegen":"biegen",
|
||||||
|
"DR - drehen":"drehen",
|
||||||
|
"EX - extrudieren":"extrudieren",
|
||||||
|
"FR - fräsen":"fräsen",
|
||||||
|
"GI - gießen":"gießen",
|
||||||
|
"LW - laser- und wasserstrahlschneiden":"laser-/wasserstrahlschneiden",
|
||||||
|
"PR - verpressen":"verpressen",
|
||||||
|
"SA - sägen":"sägen",
|
||||||
|
"SN - strangpressen":"strangpressen",
|
||||||
|
"SP - spritzgießen":"spritzgießen",
|
||||||
|
"ST - stanzen":"stanzen",
|
||||||
|
"SW - schweißen":"schweißen",
|
||||||
|
}
|
||||||
|
data["Fertigungsart"] = trans[fertigungsart]
|
||||||
|
|
||||||
|
# FOS Gruppe
|
||||||
|
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
|
||||||
|
trans = {
|
||||||
|
"0 - Einzelteil":"Einzelteil",
|
||||||
|
"1 - Baugruppe":"Baugruppe",
|
||||||
|
}
|
||||||
|
data["Fertigungsart"] = trans[fos_gruppe]
|
||||||
|
|
||||||
|
|
||||||
|
# Mengeneinheit
|
||||||
|
mengeneinheit = self.get_content('mengeneinheit_sivas', 'mengeneinheit_neu')
|
||||||
|
trans = {
|
||||||
|
"L - Liter":"L",
|
||||||
|
"mm - Millimeter":"mm",
|
||||||
|
"Stck - Stück":"Stck",
|
||||||
|
"M - Meter":"m",
|
||||||
|
"m2 - Quadratmeter":"m²",
|
||||||
|
"dm³ - Kubikdezimeter":"dm³",
|
||||||
|
"m³ - Kubikmeter":"m³",
|
||||||
|
}
|
||||||
|
data["Mengeneinheit"] = trans[mengeneinheit]
|
||||||
|
|
||||||
|
|
||||||
|
# Halbzeug
|
||||||
|
halbzeug = self.get_content('halbzeug_sivas', 'halbzeug_neu')
|
||||||
|
trans = {
|
||||||
|
"WAHR":"Ja",
|
||||||
|
"FALSCH":"",
|
||||||
|
}
|
||||||
|
data["Halbzeug"] = trans[halbzeug]
|
||||||
|
|
||||||
|
# TOS-Gruppe
|
||||||
|
# Nr. Spaltenname in Impfdatei Wert in Impfdatei
|
||||||
|
# 3 TOS-Gruppe Schönenberger Produkt
|
||||||
|
# 33 TOS_Schoenenberger_Produkt ILS IntraLogistikSystem
|
||||||
|
# 330 TOS_ILS ILS 2.0
|
||||||
|
# 3303 TOS_ILS_2 Laufprofil 2.0
|
||||||
|
(num2refId, num2child) = self._controller.get_config().TOSGruppen.get_Id2TosGroup()
|
||||||
|
tosgruppe = self.get_content('tosgruppe_sivas', 'tosgruppe_neu')
|
||||||
|
newcolumns = self.tos_to_dict(tosgruppe, num2refId, num2child)
|
||||||
|
data.update(newcolumns)
|
||||||
|
|
||||||
|
|
||||||
|
# Dispogruppe
|
||||||
|
dispogruppe = self.get_content('dispogruppe_sivas', 'dispogruppe_neu')
|
||||||
|
trans = {
|
||||||
|
"10 - Fahrstrecke":"Fahrstrecke",
|
||||||
|
"20 - Förderer":"Förderer",
|
||||||
|
"30 - Gerüst":"Gerüst",
|
||||||
|
"40 - Betriebsmittel":"Betriebsmittel",
|
||||||
|
"50 - Automation":"Automation",
|
||||||
|
"60 - Kleinteile":"Kleinteil",
|
||||||
|
"70 - Rohmaterial":"Rohmaterial",
|
||||||
|
"80 - Sonstiges Intern":"Sonstiges Intern",
|
||||||
|
"90 - Baustelleneinrichtung":"Baustelleneinrichtung",
|
||||||
|
"100 - Sonderkonstruktionen":"Sonderkonstruktionen",
|
||||||
|
}
|
||||||
|
data["Dispogruppe"] = trans[dispogruppe]
|
||||||
|
|
||||||
|
|
||||||
|
# Dispolaufgruppe
|
||||||
|
dispolaufgruppe = self.get_content('dispolaufgruppe_sivas', 'dispolaufgruppe_neu')
|
||||||
|
trans = {
|
||||||
|
"10 - Omniflo":"Omniflo",
|
||||||
|
"20 - Intra Logistic System + Alt-HFS":"Intra Logistic System + alt-HFS",
|
||||||
|
"30 - Fremd-Transportsysteme + SSG-Anbauten":"Fremd-Transportsysteme + SSG-Anbauten",
|
||||||
|
"40 - Spinnereikomponenten":"Spinnereikomponente",
|
||||||
|
"45 - Automotiv":"Automotiv",
|
||||||
|
"50 - Nicht eindeutig, Sonder":"Nicht eindeutig, Sonder",
|
||||||
|
}
|
||||||
|
data["Dispolaufgruppe"] = trans[dispolaufgruppe]
|
||||||
|
|
||||||
|
# ZusaetzlicheInformationen
|
||||||
|
# Die Werte aus den Feldern Automatische Zusatzinformationen und
|
||||||
|
# Benutzerdefinierte Zusatzinformationen müssen vor dem Eintragen in
|
||||||
|
# die Impfdatei zusammengesetzt werden
|
||||||
|
zusatzinfos_auto_text = self.get_gui_data("zusatzinfos_auto_text")
|
||||||
|
zusatzinfos_bendef_text = self.get_gui_data("zusatzinfos_bendef_text")
|
||||||
|
data["ZusaetzlicheInformationen"] = zusatzinfos_auto_text + zusatzinfos_bendef_text
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CadItemRepository:
|
class CadItemRepository:
|
||||||
"""
|
"""
|
||||||
|
|||||||
+12
-10
@@ -9,6 +9,7 @@ Contains the logic for the MVC of CreoMigrate Gui
|
|||||||
"""
|
"""
|
||||||
# Infos und Fehlermeldungen die ausgelöst werden können
|
# Infos und Fehlermeldungen die ausgelöst werden können
|
||||||
messages = {
|
messages = {
|
||||||
|
"pdm_kategorie_definiert": "PDM-Kategorie nicht definiert",
|
||||||
"rüstcode_infos": 'Bitte Rüstcode auswählen!',
|
"rüstcode_infos": 'Bitte Rüstcode auswählen!',
|
||||||
"beschaffungsart_infos": ' Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen!',
|
"beschaffungsart_infos": ' Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen!',
|
||||||
"mengeneinheit_infos":'Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist!',
|
"mengeneinheit_infos":'Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist!',
|
||||||
@@ -29,7 +30,7 @@ messages = {
|
|||||||
"teilenummer_not_exist_infos":"Ersetzte Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
"teilenummer_not_exist_infos":"Ersetzte Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
||||||
"ersatzteilenummer_not_exist_infos":"Ersatz-Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
"ersatzteilenummer_not_exist_infos":"Ersatz-Teilenummer '{teilenummer}' exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?",
|
||||||
"hersteller": "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen!",
|
"hersteller": "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen!",
|
||||||
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp existieert nicht. Bitte korrigeren!',
|
"werkstofftyp_not_exist":'Eingetragener Werkstofftyp existiert nicht. Bitte korrigeren!',
|
||||||
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
"werkstoff_not_exist":'Werkstoff falsch. Bitte korrigieren!',
|
||||||
"color_not_defined":'Teilenummer kann nicht ohne festgelegte Farbe migriert werden!',
|
"color_not_defined":'Teilenummer kann nicht ohne festgelegte Farbe migriert werden!',
|
||||||
"aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
|
"aenderungstext_too_long":'Änderungstext_weist zu viele Zeichen auf. Bitte auf 400 Zeichen verkürzen!',
|
||||||
@@ -214,7 +215,7 @@ class Controller(Observer):
|
|||||||
|
|
||||||
def message_info(self, title, key, questions='ok'):
|
def message_info(self, title, key, questions='ok'):
|
||||||
return messagebox.showinfo(title, messages[key])
|
return messagebox.showinfo(title, messages[key])
|
||||||
def message_question(self, title, key, values):
|
def message_question(self, title, key, values={}):
|
||||||
text = messages[key]
|
text = messages[key]
|
||||||
if 'teilenummer' in values:
|
if 'teilenummer' in values:
|
||||||
text = text.format(teilenummer=values['teilenummer'])
|
text = text.format(teilenummer=values['teilenummer'])
|
||||||
@@ -222,7 +223,7 @@ class Controller(Observer):
|
|||||||
if 'default' in values and values['default'] == 'yes':
|
if 'default' in values and values['default'] == 'yes':
|
||||||
default = messagebox.YES
|
default = messagebox.YES
|
||||||
return messagebox.askquestion(title, text, type=messagebox.YESNO, default=default)
|
return messagebox.askquestion(title, text, type=messagebox.YESNO, default=default)
|
||||||
def message_error(self, title, key, values):
|
def message_error(self, title, key, values={}):
|
||||||
text = messages[key]
|
text = messages[key]
|
||||||
if 'Labels' in values:
|
if 'Labels' in values:
|
||||||
text = text.format(Labels=values['Labels'])
|
text = text.format(Labels=values['Labels'])
|
||||||
@@ -273,16 +274,17 @@ class Controller(Observer):
|
|||||||
# labels = ', '.join(missing)
|
# labels = ', '.join(missing)
|
||||||
# self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
|
# self.message_error('Fehlende Angaben', 'missing_data', {'Labels':labels})
|
||||||
# return
|
# return
|
||||||
# invalid_chars = self._config.InvalidChars.get()
|
invalid_chars = self._config.InvalidChars.get()
|
||||||
# (ok, wrongchars) = self._model.check_improper_chars(invalid_chars)
|
(ok, wrongchars) = self._model.check_improper_chars(invalid_chars)
|
||||||
# if ok == False:
|
if ok == False:
|
||||||
# for label,achars in wrongchars.items():
|
for label,achars in wrongchars.items():
|
||||||
# chars = ''.join(achars)
|
chars = ''.join(achars)
|
||||||
# self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
|
self.message_error('Unzulässige Zeichen', 'unzulaessige_zeichen', {'Zeichentyp': chars, 'Feldname':label})
|
||||||
# return
|
return
|
||||||
ok = self._model.check_content()
|
ok = self._model.check_content()
|
||||||
if ok == True:
|
if ok == True:
|
||||||
data = self._model.create_migration_data()
|
data = self._model.create_migration_data()
|
||||||
|
#self._model.create_migration_file(data)
|
||||||
|
|
||||||
def zuruecksetzen(self):
|
def zuruecksetzen(self):
|
||||||
cid = self.get_current_item_id()
|
cid = self.get_current_item_id()
|
||||||
|
|||||||
Reference in New Issue
Block a user