Statistik in den tree eingebaut. Ein paar Fixes in der Logik. Erweiterungen des
This commit is contained in:
+109
-20
@@ -398,8 +398,6 @@ class CadItem(DataModel):
|
||||
else:
|
||||
translated_data["tosgruppe_neu"] = default
|
||||
|
||||
|
||||
|
||||
# Spezial Freigabevermerk
|
||||
if "freigabevermerk_sivas" in translated_data:
|
||||
text = translated_data["freigabevermerk_sivas"]
|
||||
@@ -409,8 +407,8 @@ class CadItem(DataModel):
|
||||
# Spezial Hersteller: aus "80312 - Rehau AG & Co." wird "Rehau AG & Co."
|
||||
if "hersteller_sivas" in translated_data:
|
||||
text = translated_data["hersteller_sivas"]
|
||||
if re.search(r"^.*-\s+", text):
|
||||
translated_data["hersteller_neu"] = re.sub(r"^.*-\s+", "", text, flags=re.I)
|
||||
if re.search(r"^\d+\s+-\s+", text):
|
||||
translated_data["hersteller_sivas"] = re.sub(r"^\d+\s+-\s+", "", text, flags=re.I)
|
||||
|
||||
# Spezial Änderungsindex
|
||||
if "aenderungsindex_sivas" not in translated_data:
|
||||
@@ -573,7 +571,8 @@ class CadItem(DataModel):
|
||||
|
||||
def check_pflichtfelder(self):
|
||||
"""Allgemeine Prüfungen:
|
||||
Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen
|
||||
Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox
|
||||
erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen
|
||||
"""
|
||||
|
||||
missing = list()
|
||||
@@ -607,9 +606,10 @@ class CadItem(DataModel):
|
||||
if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
self.check_key_both_columns("fertigungsart_sivas", "fertigungsart_neu", missing)
|
||||
|
||||
|
||||
# Allgemeintoleranz
|
||||
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
||||
if pdm_kategorie_neu == "Einzelteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
self.check_key_both_columns("allgemeintoleranz_sivas", "allgemeintoleranz_neu", missing)
|
||||
|
||||
# FOS-Gruppe
|
||||
self.check_key_both_columns("fosGruppe_sivas", "fosGruppe_neu", missing)
|
||||
# Kalkulationsart
|
||||
@@ -629,7 +629,7 @@ class CadItem(DataModel):
|
||||
|
||||
# Werkstofftyp
|
||||
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||
if aus_halbzeug is False:
|
||||
if pdm_kategorie_neu == "Einzelteil" and aus_halbzeug is False:
|
||||
self.check_key_existence("werkstofftyp_neu", missing)
|
||||
|
||||
# Änderungstext
|
||||
@@ -647,6 +647,8 @@ class CadItem(DataModel):
|
||||
""" überprüft ob inder Oberfläche nicht erlaubte Zeichen eingetragen wurden"""
|
||||
wrongchars = dict()
|
||||
for key in self.key2label:
|
||||
if key == "model3d_neu": # 3D Teil Pfad ausnehmen
|
||||
continue
|
||||
content = self.get_gui_data(key)
|
||||
for c in invalid_chars:
|
||||
if c in content:
|
||||
@@ -763,7 +765,7 @@ class CadItem(DataModel):
|
||||
return False
|
||||
|
||||
# TOS-Gruppe
|
||||
tosgruppe = self.get_content('tosgruppe_sivas', 'tosgruppe_sivas')
|
||||
tosgruppe = self.get_content('tosgruppe_sivas', 'tosgruppe_neu')
|
||||
(num2refId, num2child) = self._controller.get_config().TOSGruppen.get_Id2TosGroup()
|
||||
# TODO wirklich als refernce-id oder als Gruppe?
|
||||
if tosgruppe not in num2child.keys():
|
||||
@@ -912,6 +914,12 @@ class CadItem(DataModel):
|
||||
"Subject": "-",
|
||||
"Category": "-",
|
||||
"Keywords": "-",
|
||||
"Aus Halbzeug": "",
|
||||
"HalbzeugIntern":"",
|
||||
"Kopiertes_Teil_1_y_Skalierung": "",
|
||||
"Oberflaechenbehandlung":"",
|
||||
"Farbe": "",
|
||||
|
||||
}
|
||||
all_data = self.get_all_gui_data()
|
||||
# data_keys = [ "Author", "Teilenummer", "StartRevision",
|
||||
@@ -926,16 +934,80 @@ class CadItem(DataModel):
|
||||
# "Tolerierungsnorm","Änderungsbeschreibung",
|
||||
# "Freigabevermerk", "ZusaetzlicheInformationen"]
|
||||
# Path
|
||||
|
||||
|
||||
# "halbzeugoberflaeche_neu",
|
||||
# "halbzeugfarbe_neu",
|
||||
# "lebenszyklus_status_neu",
|
||||
# "model3d_neu",
|
||||
# "bezeichnung1_sivas", "bezeichnung1_neu",
|
||||
# "bezeichnung2_sivas",
|
||||
# "halbzeugOhneSaege_sivas", "halbzeugOhneSaege_neu",
|
||||
# "ruestcode_sivas", "ruestcode_neu",
|
||||
# "fertigungsart_sivas", "fertigungsart_neu",
|
||||
# "allgemeintoleranz_sivas", "allgemeintoleranz_neu",
|
||||
# "fosGruppe_sivas", "fosGruppe_neu",
|
||||
# "kalkulationsart_sivas", "kalkulationsart_neu",
|
||||
# "beschaffungsart_sivas", "beschaffungsart_neu",
|
||||
# "mengeneinheit_sivas", "mengeneinheit_neu",
|
||||
# "halbzeug_sivas", "halbzeug_neu",
|
||||
# "tosgruppe_sivas", "tosgruppe_neu",
|
||||
# "dispogruppe_sivas", "dispogruppe_neu",
|
||||
# "dispolaufgruppe_sivas","dispolaufgruppe_neu",
|
||||
# "hersteller_sivas", "hersteller_neu",
|
||||
# "ersatzfuer_sivas", "ersatzfuer_neu",
|
||||
# "ersetztdurch_sivas", "ersetztdurch_neu",
|
||||
# "herstteilenr_sivas", "herstteilenr_neu",
|
||||
# "werkstoffdiskr_neu",
|
||||
# "werkstofftyp_neu",
|
||||
# "material_sivas", "material_neu",
|
||||
# "oberflaeche_neu",
|
||||
# "farbe_neu",
|
||||
# "version_sivas",
|
||||
# "aenderungsindex_sivas", "aenderungsindex_neu",
|
||||
# "aenderungstext_sivas", "aenderungstext_neu",
|
||||
# "freigabevermerk_sivas", "freigabevermerk_neu",
|
||||
# "zusatzinfos_auto_text",
|
||||
# "zusatzinfos_bendef_text",
|
||||
|
||||
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
|
||||
data["KategorieNE"] = title
|
||||
# Bezeichnung um "- BG" ergänzen
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
title = bezeichnung1 + " - BG"
|
||||
data["Title"] = title
|
||||
|
||||
# aus Halbzeug
|
||||
aus_halbzeug = self.get_gui_data("aus_halbzeug_neu")
|
||||
if aus_halbzeug:
|
||||
data["Aus Halbzeug"] = "Ja"
|
||||
|
||||
|
||||
# Halbzeugnummer
|
||||
halbzeugnummer = self.get_gui_data("halbzeugnummer_neu")
|
||||
if halbzeugnummer:
|
||||
data["HalbzeugIntern"] = halbzeugnummer
|
||||
|
||||
# Halbzeuglänge
|
||||
halbzeuglaenge = self.get_gui_data("halbzeuglaenge_neu")
|
||||
if halbzeuglaenge:
|
||||
data["Kopiertes_Teil_1_y_Skalierung"] = halbzeuglaenge
|
||||
|
||||
# Halbzeugoberfläche
|
||||
halbzeugoberflaeche = self.get_gui_data("halbzeugoberflaeche_neu")
|
||||
if halbzeuglaenge:
|
||||
data["Oberflaechenbehandlung"] = halbzeugoberflaeche
|
||||
|
||||
# Halbzeugfarbe
|
||||
farbe = self.get_gui_data("halbzeugoberflaeche_neu")
|
||||
if halbzeuglaenge:
|
||||
data["Farbe"] = farbe
|
||||
|
||||
|
||||
# Bezeichnung 4
|
||||
bezeichnung4 = ""
|
||||
@@ -950,13 +1022,7 @@ class CadItem(DataModel):
|
||||
# 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')
|
||||
@@ -976,7 +1042,10 @@ class CadItem(DataModel):
|
||||
"ST - stanzen":"stanzen",
|
||||
"SW - schweißen":"schweißen",
|
||||
}
|
||||
data["Fertigungsart"] = trans[fertigungsart]
|
||||
if fertigungsart is not None:
|
||||
data["Fertigungsart"] = trans[fertigungsart]
|
||||
else:
|
||||
data["Fertigungsart"] = ""
|
||||
|
||||
# FOS Gruppe
|
||||
fos_gruppe = self.get_content('fosGruppe_sivas', 'fosGruppe_neu')
|
||||
@@ -1038,6 +1107,16 @@ class CadItem(DataModel):
|
||||
data["Dispogruppe"] = trans[dispogruppe]
|
||||
|
||||
|
||||
|
||||
# # Hersteller
|
||||
# hersteller = self.get_content('hersteller_sivas', 'hersteller_neu')
|
||||
# data['Hersteller'] = hersteller
|
||||
|
||||
# # HerstellerTeilenummer
|
||||
# herstellertnr = self.get_content('herstteilenr_sivas', 'herstteilenr_neu')
|
||||
# data['HerstellerTeilenummer'] = herstellertnr
|
||||
|
||||
|
||||
# Dispolaufgruppe
|
||||
dispolaufgruppe = self.get_content('dispolaufgruppe_sivas', 'dispolaufgruppe_neu')
|
||||
trans = {
|
||||
@@ -1552,11 +1631,14 @@ class GuiLogic():
|
||||
ret = dict()
|
||||
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
|
||||
|
||||
|
||||
# status setzen
|
||||
if pdm_kategorie_neu == "Kaufteil" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
self.set_state('cb_fertigungsart_neu', 'disabled')
|
||||
else:
|
||||
self.set_state('cb_fertigungsart_neu', 'readonly')
|
||||
|
||||
# Werte der Combobox setzen
|
||||
if pdm_kategorie_neu == "Baugruppe":
|
||||
cblist = self._config.Fertigung.get_list_in_section("FertigungsartenBaugruppe")
|
||||
ret['cb_fertigungsart_neu'] = cblist
|
||||
@@ -1567,8 +1649,15 @@ class GuiLogic():
|
||||
else:
|
||||
ret['cb_fertigungsart_neu'] = ''
|
||||
|
||||
# default setzen
|
||||
if selected is None:
|
||||
ret['fertigungsart_neu'] = ''
|
||||
fertigung_sivas = self._model.get_gui_data("fertigungsart_sivas")
|
||||
if pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
if fertigung_sivas == "":
|
||||
ret['fertigungsart_neu'] = 'SW - schweißen'
|
||||
elif fertigung_sivas != "schweißen":
|
||||
ret['fertigungsart_neu'] = 'SW - schweißen'
|
||||
else:
|
||||
ret['fertigungsart_neu'] = selected
|
||||
return ret
|
||||
@@ -1682,10 +1771,10 @@ class GuiLogic():
|
||||
fos_gruppe = self._model.get_gui_data("fosGruppe_sivas")
|
||||
|
||||
ret['fosGruppe_neu'] = ''
|
||||
self.set_state('cb_fosGruppe_neu', 'readonly')
|
||||
self.set_state('cb_fosGruppe_neu', 'disabled')
|
||||
if pdm_kategorie_neu == "Kaufteil":
|
||||
cblist = self._config.Allgemein.get_options("FOS_Gruppe")
|
||||
self.set_state('cb_fosGruppe_neu', 'disabled')
|
||||
self.set_state('cb_fosGruppe_neu', 'readonly')
|
||||
elif pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
cblist = ['1 - Baugruppe']
|
||||
elif pdm_kategorie_neu == "Einzelteil":
|
||||
|
||||
+23
-1
@@ -57,7 +57,7 @@ class TreeView():
|
||||
# hier Anzahl der sichtbaren Zeilen des Baums angeben:
|
||||
self.tree = ttk.Treeview(frame, height=65)
|
||||
# TODO hier anstatt root die Statistik rein schreiben.
|
||||
self.tree.heading('#0', text='root', anchor=tk.W)
|
||||
#self.tree.heading('#0', text='root', anchor=tk.W)
|
||||
self.tree.grid(row=nrow, column=0, sticky=tk.NSEW)
|
||||
|
||||
# add a scrollbar
|
||||
@@ -69,12 +69,33 @@ class TreeView():
|
||||
self.tree.bind('<Double-Button-1>', self.item_selected) # Doppelklick:
|
||||
|
||||
self.trid2sivasId = dict()
|
||||
|
||||
def set_heading_text(self, parent_children_mapping, red_ids):
|
||||
done_items = set()
|
||||
undone_items = set()
|
||||
for parent,children in parent_children_mapping.items():
|
||||
if parent in red_ids:
|
||||
undone_items.add(parent)
|
||||
else:
|
||||
done_items.add(parent)
|
||||
for c in children:
|
||||
if c in red_ids:
|
||||
undone_items.add(c)
|
||||
else:
|
||||
done_items.add(c)
|
||||
num_done = len(done_items)
|
||||
num_undone = len(undone_items)
|
||||
percentage = round(num_done / (num_done + num_undone) * 100, 1)
|
||||
heading = "{percent}% ({done} ✔, {undone} ☐)".format(percent=percentage, done=num_done, undone=num_undone)
|
||||
self.tree.heading('#0', text=heading, anchor=tk.W)
|
||||
|
||||
|
||||
def set_controller(self, controller):
|
||||
self._controller = controller
|
||||
|
||||
def refresh(self, parent_children_mapping, red_ids, orange_ids):
|
||||
self.clear()
|
||||
self.set_heading_text(parent_children_mapping, red_ids)
|
||||
self.create(parent_children_mapping, red_ids, orange_ids)
|
||||
|
||||
def clear(self):
|
||||
@@ -90,6 +111,7 @@ class TreeView():
|
||||
|
||||
def create(self, parent_children_mapping, red_ids, orange_ids):
|
||||
pool = dict()
|
||||
self.set_heading_text(parent_children_mapping, red_ids)
|
||||
for parent, children in parent_children_mapping.items():
|
||||
# parent erzeugen, falls es diese nicht schon gibt (check der pool ids)
|
||||
if parent not in pool:
|
||||
|
||||
Reference in New Issue
Block a user