Compare commits

...

10 Commits

Author SHA1 Message Date
543c056237 sinc local and remote 2023-06-20 20:54:15 +03:00
9141056a9b Merge branch 'danamir' of https://git.danamir.ru/danamir/danrazdipl into danamir 2023-06-20 20:54:08 +03:00
006dee506e local 2023-06-20 20:51:44 +03:00
danamir
b4895b787e worked db 2023-06-18 14:08:35 +03:00
danamir
cd3a1b1f15 Rename table 2023-06-18 13:54:30 +03:00
danamir
3bfca19387 add motherboard to model 2023-06-18 13:21:13 +03:00
danamir
05e42ca382 worked model with adding default admin 2023-06-18 13:09:55 +03:00
danamir
aff62e048e worked model with adding default admin 2023-06-18 13:06:51 +03:00
90c8e46d7b Merge branch 'danamir' of https://git.danamir.ru/danamir/danrazdipl into danamir 2023-06-17 21:32:15 +03:00
fa2759bf1c mfp 2023-06-17 21:30:45 +03:00
6 changed files with 962 additions and 19 deletions

5
.gitignore vendored
View File

@@ -161,4 +161,7 @@ cython_debug/
#.idea/
*.db
.vscode
*.vscode
*.json
.vscode/settings.json
modelbackup.py

View File

@@ -1,6 +1,6 @@
{
"[python]": {
"editor.defaultFormatter": "ms-python.autopep8"
"editor.defaultFormatter": "ms-python.python"
},
"python.formatting.provider": "none"
}

692
backup/main.py Normal file
View File

@@ -0,0 +1,692 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import registry
from sqlalchemy import create_engine
from sqlalchemy.sql.expression import and_
from datetime import date
from models import *
from tkinter import *
from functools import partial
from tkinter import messagebox, ttk
mapper_registry = registry()
engine = create_engine('sqlite:///dipl.db', echo=True)
Base = mapper_registry.generate_base()
Session = sessionmaker(bind=engine)
def main():
window = Tk()
window.geometry("400x400")
window.title("Вход в аккаунт")
window.config(bg="#5D6D7E")
lbl1=Label(window,text="Добро пожаловать",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
lbl2=Label(window,text="Логин:",font=("",20),fg="#fdfcdc",bg="#5D6D7E")
lbl2.place(x=10,y=90)
ent1=Entry(window)
ent1.place(x=200,y=100)
lbl3=Label(window,text="Пароль:",font=("",20),fg="#fdfcdc",bg="#5D6D7E")
lbl3.place(x=10,y=170)
ent3=Entry(window)
ent3.place(x=200,y=180)
btn1=Button(window,text="Принять", command=lambda: validateLogin(ent1.get(), ent3.get()))
btn1.place(x=250,y=300)
btn2=Button(window,text="Настройки",command=options)
btn2.place(x=70,y=300)
window.mainloop()
def options():
window = Tk()
window.geometry("400x400")
window.title("Настройки")
window.config(bg="#5D6D7E")
lbl1=Label(window,text="Измените настройки программы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
bo1=Button(window,text="1. Добавить должность",command=addDolgnostGui)
bo1.place(x=50,y=100)
bo2=Button(window,text="2. Добавить пользователя",command=addUserGui)
bo2.place(x=200,y=100)
bo3=Button(window,text="3. Добавить принтер",command=addPrinterGui)
bo3.place(x=50,y=200)
bo4=Button(window,text="4. Добавить пластик",command=addPlasticGui)
bo4.place(x=200,y=200)
window.mainloop()
def validateLogin(username, password):
sess = Session()
users = sess.query(Users).filter(Users.login==username, Users.passwd==password)
results = users.first()
if hasattr(results,"login"):
messagebox.showinfo(title="Успех", message="Вы успешно авторизировались в ситеме.")
else:
messagebox.showinfo(title="Успех", message="Вы НЕ авторизировались в ситеме.")
return
def addUserGui():
window = Tk()
window.geometry("300x500")
window.config(bg="#5D6D7E")
l1 = Label(window, text="ФИО")
l1.place(x=50,y=100)
fio = Entry(window)
fio.place(x=150,y=100)
l2 = Label(window, text="Должность")
l2.place(x=50,y=150)
dlg = getDolgnost()
dlg_var = StringVar(value=dlg[0])
dolgnost = ttk.Combobox(window,textvariable=dlg_var, values=dlg)
dolgnost.place(x=150,y=150)
l3 = Label(window, text="Логин")
l3.place(x=50,y=250)
login = Entry(window)
login.place(x=150,y=250)
l4 = Label(window, text="Пароль")
l4.place(x=50,y=300)
passwd = Entry(window)
passwd.place(x=150,y=300)
print(dolgnost.get())
button_add = Button(window, text="Добавить", command=lambda: addUser(fio.get(),
dolgnost.get(),
login.get(),
passwd.get()))
button_add.place(x=100,y=350)
def addUser(fio, dolgnost, login, passwd):
sess = Session()
dlg = sess.query(Dolgnost).filter(Dolgnost.dolgnst==dolgnost).first()
newuser = Users(fio=fio, id_dolgnost=dlg.id, login=login, passwd=passwd)
sess.add(newuser)
sess.commit()
sess.close()
window.mainloop()
def addPrinterGui():
window = Tk()
window.geometry("300x300")
window.config(bg="#5D6D7E")
lp1 = Label(window, text="Название")
lp1.place(x=15,y=20)
nazvaniee = Entry(window)
nazvaniee.place(x=160,y=20)
lp2 = Label(window, text="Макс Скорость Печати")
lp2.place(x=15,y=70)
maxSpedPrint = Entry(window)
maxSpedPrint.place(x=160,y=70)
lp3 = Label(window, text="Мин Скорость Печати")
lp3.place(x=15,y=120)
minSpedPrint = Entry(window)
minSpedPrint.place(x=160,y=120)
bapg=Button(window,text="Добавить",command=lambda:addPrinter(nazvaniee.get(),
maxSpedPrint.get(),
minSpedPrint.get()))
bapg.place(x=220,y=170)
def addPrinter(nazvanie, maxsped,minspeed):
sess = Session()
new = Printer(nazvanie=nazvanie, maxSpedPrint=maxsped, minSpedPrint=minspeed)
sess.add(new)
sess.commit()
sess.close()
minSpedPrint.delete(0, END)
maxSpedPrint.delete(0, END)
nazvaniee.delete(0, END)
window.mainloop()
def addPlasticGui():
window = Tk()
window.geometry("380x350")
window.config(bg="#5D6D7E")
lpl1 = Label(window, text="Название")
lpl1.place(x=15,y=20)
nazvanie = Entry(window)
nazvanie.place(x=170,y=20)
lpl2 = Label(window, text="Диаметр")
lpl2.place(x=15,y=70)
diametr = Entry(window)
diametr.place(x=170,y=70)
lpl3 = Label(window, text="Мин Температура Печати")
lpl3.place(x=15,y=120)
mintempprint = Entry(window)
mintempprint.place(x=170,y=120)
lpl4 = Label(window, text="Макс Температура Печати")
lpl4.place(x=15,y=170)
maxtemprint = Entry(window)
maxtemprint.place(x=170,y=170)
lpl5 = Label(window, text="Дата Производства")
lpl5.place(x=15,y=230)
days = list(range(1, 32))
months = list(range(1, 13))
years = list(range(1940, 2026))
# Create ComboBox for days
day_combobox = ttk.Combobox(window,values=days,width=2)
day_combobox.place(x=140,y=230)
# Create ComboBox for months
month_combobox = ttk.Combobox(window,values=months,width=2)
month_combobox.place(x=185,y=230)
# Create ComboBox for years
year_combobox = ttk.Combobox(window,values=years,width=4)
year_combobox.place(x=225,y=230)
def convert_to_date():
# Retrieve selected values from the ComboBoxes
selected_day = int(day_combobox.get())
selected_month = int(month_combobox.get())
selected_year = int(year_combobox.get())
# Convert the selected values to a date object
date_obj = date(selected_year, selected_month, selected_day)
return date_obj
bapg=Button(window,text="Добавить",command=lambda:addPlastic(nazvanie.get(),
diametr.get(),
mintempprint.get(),
maxtemprint.get(),
convert_to_date()))
bapg.place(x=230,y=280)
def addPlastic(nazvanie, diametr, mintempprint, maxtempprint, dateproizv):
sess = Session()
new = Plastic(nazvanie=nazvanie,
diametr=diametr,
minTempPrint=mintempprint,
maxTempPrint=maxtempprint, dateproizv=dateproizv)
sess.add(new)
sess.commit()
sess.close()
window.mainloop
def addDolgnostGui():
window = Tk()
window.geometry("300x120")
window.config(bg="#5D6D7E")
l1 = Label(window,bg="#5D6D7E",text="Должность")
l1.grid(row=1, column=0)
dolg = Entry(window)
dolg.grid(row=1, column=1)
button_add = Button(window, text="Добавить", command=lambda: addDolgnost(dolg.get()))
button_add.grid(row=5, column=2)
def addDolgnost(dolgnost):
sess = Session()
new = Dolgnost(dolgnst = dolgnost)
sess.add(new)
sess.commit()
sess.close()
dolg.delete(0, END)
window.mainloop()
def addPrintSettingsGui():
window = Tk()
window.geometry("800x600")
prntc = getPinters()
prnt_var = StringVar(value = prntc[0])
plstc = getPlastics()
plst_var = StringVar(value=plstc[0])
l1 = Label(window,bg="#5D6D7E",text="Выберите принтер")
l1.place(x=10, y=30)
prnt = ttk.Combobox(window,textvariable=prnt_var, values=prntc)
prnt.place(x=210,y=20)
l2 = Label(window,bg="#5D6D7E",text="Выберите пластик")
l2.place(x=10, y=80)
plst = ttk.Combobox(window,textvariable=plst_var, values=plstc)
plst.place(x=210,y=80)
l3 = Label(window,bg="#5D6D7E",text="Введите температуру сопла")
l3.place(x=10, y=120)
tempsopla = Entry(window)
tempsopla.place(x=210, y=120)
l4 = Label(window,bg="#5D6D7E",text="Введите температуру стола")
l4.place(x=10, y=200)
tempstola = Entry(window)
tempstola.place(x=210, y=200)
l5 = Label(window,bg="#5D6D7E",text="Введите процент заполнения")
l5.place(x=10, y=250)
procentZapoln= Entry(window)
procentZapoln.place(x=210, y=250)
l6 = Label(window,bg="#5D6D7E",text="Введите скорость печати")
l6.place(x=10, y=250)
printSpeed= Entry(window)
printSpeed.place(x=210, y=300)
goodset = IntVar()
chk = Checkbutton(window, text='Оптимальные настройки', variable=goodset)
chk.place(x=10, y=350)
l6 = Label(window,bg="#5D6D7E",text="Примечание")
l6.place(x=10, y=400)
primech= Entry(window)
primech.place(x=210, y=400)
button_add = Button(window, text="Добавить", command=lambda: addPrintSettings(prnt.get(),
plst.get(),
tempsopla.get(),
tempstola.get(),
procentZapoln.get(),
goodset.get(),
printSpeed.get(),
primech.get()))
button_add.place(x=100, y=400)
def addPrintSettings(prnt,
plst,
tempstola,
tempsopla,
procentzapoln,
goodset,
printspeed,
primech):
sess = Session()
printer = sess.query(Printer).filter(Printer.nazvanie==prnt).first()
plast = sess.query(Plastic).filter(Plastic.nazvanie==plst).first()
gs=False
if goodset == 0:
gs=False
else:
gs=True
import time
addtime=time.localtime()
new = PrintSettings(tempStol=tempstola,
tempSopl=tempsopla,
procentZapoln=procentzapoln,
PrintSpeed=printspeed,
good_set=gs,
#time_add=addtime,
primechanie=primech,
id_printer=printer.id,
id_plastic=plast.id,
)
sess.add(new)
sess.commit()
sess.close()
#minSpedPrint.delete(0, END)
"""
dataFrame = Frame(window)
dataFrame.pack()
table_pre_data = {'tempstol':'Темп. стола', 'tempsopl':'Темп. сопла'}
table_columns = []
table_headers = []
for key, value in table_pre_data.items():
table_columns.append(key)
table_headers.append(value)
prDataFrame = ttk.Treeview(dataFrame)
prDataFrame['columns'] = table_columns
for col in table_columns:
prDataFrame.column(col, width=100)
for col in table_headers:
prDataFrame.heading(col,text=value)
#
"""
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
window.mainloop()
def getPrintSettings():
sess = Session()
print()
print("query")
print()
"""
psettings = (sess.query(PrintSettings, Printer, Plastic)
.join(Printer, PrintSettings.id_printer==Printer.id)
.filter(Printer.id==1)
.join(Plastic, PrintSettings.id_plastic==Plastic.id)
.filter(Plastic.nazvanie=="fdplast")
.all()
)
"""
psettings= ( sess.query(PrintSettings).join(Printer).join(Plastic)
.filter((Printer.nazvanie=="ender3" and Plastic.nazvanie=="fdplast"
)
).all()
)
print(psettings)
for qwe in psettings:
print(qwe.id_plastic)
plst_naz = sess.query(Plastic).filter(Plastic.id==psettings[0].id_plastic).first()
print()
print(plst_naz.nazvanie)
print()
#print(psettings[0][1].nazvanie)
print()
sess.close()
def getUsers():
sess= Session()
users = sess.query(Users).join(Dolgnost).all()
usr=[]
for user in users:
a = []
dolg = sess.query(Dolgnost).filter(Dolgnost.id==user.id_dolgnost).first()
a.append(user.fio)
a.append(dolg.dolgnst)
a.append(user.isadmin)
usr.append(a)
return usr
def getDolgnost():
sess = Session()
dlggs = sess.query(Dolgnost).all()
print(dlggs)
dlg_list = []
for dlg in dlggs:
dlg_list.append(dlg.dolgnst)
sess.close()
return dlg_list
def getPinters():
sess = Session()
printers = sess.query(Printer).all()
prnt = []
for printer in printers:
prnt.append(printer.nazvanie)
sess.close()
return prnt
def getPlastics():
sess = Session()
plastics = sess.query(Plastic).all()
plst = []
for plastic in plastics:
plst.append(plastic.nazvanie)
sess.close()
return plst
def showAllUsersGui():
window = Tk()
window.geometry("800x600")
window.iconbitmap(default="3d-printer.ico")
window.title("Все пользователи системы")
lbl1=Label(window,text="Все пользователи системы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
users = getUsers()
tree = ttk.Treeview(window, column=("fio", "Dolgnost", "isadmin"), show='headings', height=5)
tree.column("# 1", anchor=CENTER)
tree.heading("# 1", text="ФИО")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="Должность")
tree.column("# 3", anchor=CENTER)
tree.heading("# 3", text="Администратор")
for user in users:
if user[2]==False:
tree.insert('', 'end', text="1", values=(user[0], user[1], "Нет"))
else:
tree.insert('', 'end', text="1", values=(user[0], user[1], "Да"))
#
tree.pack()
mainloop()
def editUsers():
root = Tk()
columns = ("Items", "Values")
Treeview = ttk.Treeview(root, height=18, show="headings", columns=columns) #
Treeview.column("Items", width=200, anchor='center')
Treeview.column("Values", width=200, anchor='center')
Treeview.heading("Items", text="Items")
Treeview.heading("Values", text="Values")
Treeview.pack(side=LEFT, fill=BOTH)
name = ['Item1', 'Item2', 'Item3']
ipcode = ['10', '25', '163']
for i in range(min(len(name), len(ipcode))):
Treeview.insert('', i, values=(name[i], ipcode[i]))
def treeview_sort_column(tv, col, reverse):
l = [(tv.set(k, col), k) for k in tv.get_children('')]
l.sort(reverse=reverse)
for index, (val, k) in enumerate(l):
tv.move(k, '', index)
tv.heading(col, command=lambda: treeview_sort_column(tv, col, not reverse))
def set_cell_value(event):
for item in Treeview.selection():
item_text = Treeview.item(item, "values")
column = Treeview.identify_column(event.x)
row = Treeview.identify_row(event.y)
cn = int(str(column).replace('#', ''))
rn = int(str(row).replace('I', ''))
entryedit = Text(root, width=10 + (cn - 1) * 16, height=1)
entryedit.place(x=16 + (cn - 1) * 130, y=6 + rn * 20)
def saveedit():
Treeview.set(item, column=column, value=entryedit.get(0.0, "end"))
entryedit.destroy()
okb.destroy()
okb = ttk.Button(root, text='OK', width=4, command=saveedit)
okb.place(x=90 + (cn - 1) * 242, y=2 + rn * 20)
def newrow():
name.append('to be named')
ipcode.append('value')
Treeview.insert('', len(name) - 1, values=(name[len(name) - 1], ipcode[len(name) - 1]))
Treeview.update()
newb.place(x=120, y=(len(name) - 1) * 20 + 45)
newb.update()
Treeview.bind('<Double-1>', set_cell_value)
newb = ttk.Button(root, text='new item', width=20, command=newrow)
newb.place(x=120, y=(len(name) - 1) * 20 + 45)
for col in columns:
Treeview.heading(col, text=col, command=lambda _col=col: treeview_sort_column(Treeview, _col, False))
root.mainloop()
def ShowOptimalSettingsGui():
root = Tk()
root.title(" ")
root.geometry("700x500")
root.config(bg="#5D6D7E")
l2 = Label(root,bg="#5D6D7E",text="Выберите принтер")
l2.place(x=10, y=20)
prnt = ttk.Combobox(root,textvariable="123", values=['Ender3', 'Kossel Delta'])
prnt.place(x=150, y=20)
l2 = Label(root,bg="#5D6D7E",text="Выберите произв")
l2.place(x=10, y=60)
prnt2 = ttk.Combobox(root,textvariable="1123", values=['Fdplast', 'Filamentarno'])
prnt2.place(x=150, y=60)
l3 = Label(root,bg="#5D6D7E",text="Выберите Тип пластика")
l3.place(x=10, y=100)
prnt3 = ttk.Combobox(root,textvariable="11234", values=['pla', 'petg', 'abs'])
prnt3.place(x=150, y=100)
l2 = Label(root,bg="#5D6D7E",text="Выберите цвет")
l2.place(x=10, y=140)
prnt4 = ttk.Combobox(root,textvariable="1", values=['Голубой', 'Зелёгый'])
prnt4.place(x=150, y=140)
chc=ttk.Checkbutton(root,text="Выбрать оптимальные?")
chc.place(x=100, y=170)
# определяем данные для отображения
people = [(209, 58, "57мм/cек", " "), (223, 75, "45мм/cек", "Проба прочности"), (211, 55, "57мм/cек", "Хорошая поверхность")]
people2 = [(211, 59, "62мм/cек")]
# определяем столбцы
columns = ("tempSopl", "tempStol", "Speed", "addit")
tree = ttk.Treeview(columns=columns, show="headings")
tree.place( x=10, y=220)
button_add = Button(root, text="Показать")
button_add.place(x=10, y=170)
# определяем заголовки с выпавниваем по левому краю
tree.heading("tempSopl", text="Температура сопла", anchor=W)
tree.heading("tempStol", text="Температура стола", anchor=W)
tree.heading("Speed", text="Скорость печати", anchor=W)
tree.heading("addit", text="Примечание", anchor=W)
# настраиваем столбцы
tree.column("#1", stretch=NO, width=200)
tree.column("#2", stretch=NO, width=200)
tree.column("#3", stretch=NO, width=200)
tree.column("#4", stretch=NO, width=200)
# добавляем данные
for person in people:
tree.insert("", END, values=person)
root.mainloop()
if __name__ == '__main__':
ShowOptimalSettingsGui()

121
backup/models.py Normal file
View File

@@ -0,0 +1,121 @@
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, aliased, Query, relationship
from sqlalchemy.sql import func
from sqlalchemy.orm import registry
from sqlalchemy import create_engine
mapper_registry = registry()
engine = create_engine('sqlite:///dipl.db', echo=True)
Base = mapper_registry.generate_base()
Session = sessionmaker(bind=engine)
class Proshivka(Base):
__tablename__ = "Proshivka"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
printers = relationship('Motherboard', backref='Proshivka')
class Mottherboard(Base):
__tablename__ = "Motherboard"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
kolvoDraivers = Column(String)
drivers = relationship('Driver', backref='Motherboard')
proshivkas = Column(Integer, ForeignKey(Proshivka.id))
printers = relationship('Printer', backref='Motherboard')
class Printer(Base):
__tablename__ = "Printer"
id = Column(Integer, primary_key=True)
kinematics = Column(String)
nazvanie = Column(String)
proshivka = Column(String)
maxSpedPrint = Column(Integer)
minSpedPrint = Column(Integer)
print_settings = relationship("PrintSettings", backref="Printer")
mtboards = Column(Integer, ForeignKey(Mottherboard.id))
class Driver():
__tablename__ = "Driver"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
rabTok = Column(Integer)
motherId = Column(Integer, ForeignKey(Mottherboard.id))
class Plastic(Base):
__tablename__ = "Plastic"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
diametr = Column(Integer)
color = Column(String)
typePlast = Column(String)
proizv = Column(String)
minTempPrint = Column(Integer)
maxTempPrint = Column(Integer)
dateproizv = Column(DateTime)
print_settings = relationship("PrintSettings", backref="Plastic")
class PrintSettings(Base):
__tablename__ = "PrintSettings"
id = Column(Integer, primary_key=True)
tempStol = Column(Integer)
tempSopl = Column(Integer)
PrintSpeed = Column(Integer)
procentZapoln = Column(Integer)
good_set = Column(Boolean, unique=False, default=False)
time_add = Column(DateTime)
primechanie = Column(String)
id_printer = Column(Integer, ForeignKey(Printer.id))
id_plastic = Column(Integer, ForeignKey(Plastic.id))
class Dolgnost(Base):
__tablename__ = "Dolgnost"
id = Column(Integer, primary_key=True)
dolgnst = Column(String)
isadmin = Column(Boolean, default=False)
users = relationship("Users")
class Users(Base):
__tablename__ = "Users"
id = Column(Integer, primary_key=True)
fio = Column(String)
login = Column(String)
passwd = Column(String)
id_dolgnost = Column(Integer, ForeignKey(Dolgnost.id))
def create_db():
Base.metadata.create_all(engine)
"""
sess = Session()
newuser = Users(fio="admin", dolgnost="admin",
login="admin", passwd="123456")
sess.add(newuser)
sess.commit()
sess.close()
"""
if __name__ == '__main__':
create_db()

81
main.py
View File

@@ -54,7 +54,7 @@ def options():
window.title("Настройки")
window.config(bg="#5D6D7E")
lbl1=Label(window,text="Выбирите таблицу",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1=Label(window,text="Измените настройки программы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
bo1=Button(window,text="1. Добавить должность",command=addDolgnostGui)
@@ -78,6 +78,7 @@ def validateLogin(username, password):
if hasattr(results,"login"):
messagebox.showinfo(title="Успех", message="Вы успешно авторизировались в ситеме.")
ShowOptimalSettingsGui()
else:
messagebox.showinfo(title="Успех", message="Вы НЕ авторизировались в ситеме.")
return
@@ -277,7 +278,7 @@ def addDolgnostGui():
window.mainloop()
def addPrintSettingsGui():
def addPrintSettingsGui() -> None:
window = Tk()
window.geometry("800x600")
@@ -405,15 +406,15 @@ def addPrintSettingsGui():
prDataFrame['columns'] = table_columns
for col in table_columns:
prDataFrame.column(col, width=100)
prDataFrfrom sqlalchemy import create_engineame.column(col, width=100)
for col in table_headers:
prDataFrame.heading(col,text=value)
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
#
"""
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
window.mainloop()
@@ -619,6 +620,74 @@ def editUsers():
root.mainloop()
def ShowOptimalSettingsGui():
root = Tk()
root.title(" ")
root.geometry("700x500")
root.config(bg="#5D6D7E")
l2 = Label(root,bg="#5D6D7E",text="Выберите принтер")
l2.place(x=10, y=20)
prnt = ttk.Combobox(root,textvariable="123", values=['Ender3', 'Kossel Delta'])
prnt.place(x=150, y=20)
l2 = Label(root,bg="#5D6D7E",text="Выберите произв")
l2.place(x=10, y=60)
prnt2 = ttk.Combobox(root,textvariable="1123", values=['Fdplast', 'Filamentarno'])
prnt2.place(x=150, y=60)
l3 = Label(root,bg="#5D6D7E",text="Выберите Тип пластика")
l3.place(x=10, y=100)
prnt3 = ttk.Combobox(root,textvariable="11234", values=['pla', 'petg', 'abs'])
prnt3.place(x=150, y=100)
l2 = Label(root,bg="#5D6D7E",text="Выберите цвет")
l2.place(x=10, y=140)
prnt4 = ttk.Combobox(root,textvariable="1", values=['Голубой', 'Зелёгый'])
prnt4.place(x=150, y=140)
chc=ttk.Checkbutton(root,text="Выбрать оптимальные?")
chc.place(x=100, y=170)
# определяем данные для отображения
people = [(209, 58, "57мм/cек", " "), (223, 75, "45мм/cек", "Проба прочности"), (211, 55, "57мм/cек", "Хорошая поверхность")]
people2 = [(211, 59, "62мм/cек")]
# определяем столбцы
columns = ("tempSopl", "tempStol", "Speed", "addit")
tree = ttk.Treeview(columns=columns, show="headings")
tree.place( x=10, y=220)
button_add = Button(root, text="Показать")
button_add.place(x=10, y=170)
# определяем заголовки с выпавниваем по левому краю
tree.heading("tempSopl", text="Температура сопла", anchor=W)
tree.heading("tempStol", text="Температура стола", anchor=W)
tree.heading("Speed", text="Скорость печати", anchor=W)
tree.heading("addit", text="Примечание", anchor=W)
# настраиваем столбцы
tree.column("#1", stretch=NO, width=200)
tree.column("#2", stretch=NO, width=200)
tree.column("#3", stretch=NO, width=200)
tree.column("#4", stretch=NO, width=200)
# добавляем данные
for person in people:
tree.insert("", END, values=person)
root.mainloop()
if __name__ == '__main__':
editUsers()
main()

View File

@@ -1,9 +1,14 @@
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean
"""
module docstring
"""
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean,Float, Float
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, aliased, Query, relationship
from sqlalchemy.sql import func
from sqlalchemy.orm import registry
from sqlalchemy import create_engine
mapper_registry = registry()
@@ -11,15 +16,60 @@ engine = create_engine('sqlite:///dipl.db', echo=True)
Base = mapper_registry.generate_base()
Session = sessionmaker(bind=engine)
class Proshivka(Base):
__tablename__ = "Proshivka"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
mboards = relationship("Motherboard")
class Motherboard(Base):
__tablename__ = "Motherboard"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
kolvoDraivers = Column(String)
prshvID = Column(Integer, ForeignKey(Proshivka.id))
printers = relationship("Printer")
drv = relationship("MotorDruvers")
class MotorDruvers(Base):
__tablename__ ="MotorDruvers"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
workTok = Column(Float)
mboardID = Column(Integer, ForeignKey(Motherboard.id))
class Printer(Base):
__tablename__ = "Printer"
id = Column(Integer, primary_key=True)
kinematics = Column(String)
nazvanie = Column(String)
proshivka = Column(String)
maxSpedPrint = Column(Integer)
minSpedPrint = Column(Integer)
print_settings = relationship("PrintSettings", backref="Printer")
print_settings = relationship("PrintSettings")
mboard_id = Column(Integer, ForeignKey(Motherboard.id))
class Plastic(Base):
@@ -27,11 +77,14 @@ class Plastic(Base):
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
diametr = Column(Integer)
color = Column(String)
typePlast = Column(String)
proizv = Column(String)
minTempPrint = Column(Integer)
maxTempPrint = Column(Integer)
dateproizv = Column(DateTime)
print_settings = relationship("PrintSettings", backref="Plastic")
print_settings = relationship("PrintSettings")
class PrintSettings(Base):
@@ -49,11 +102,12 @@ class PrintSettings(Base):
id_plastic = Column(Integer, ForeignKey(Plastic.id))
class Dolgnost(Base):
__tablename__ = "Dolgnost"
id = Column(Integer, primary_key=True)
dolgnst = Column(String)
isadmin = Column(Boolean, default=False)
users = relationship("Users")
@@ -64,7 +118,6 @@ class Users(Base):
login = Column(String)
passwd = Column(String)
isadmin = Column(Boolean, default=False)
id_dolgnost = Column(Integer, ForeignKey(Dolgnost.id))
@@ -72,10 +125,15 @@ class Users(Base):
def create_db():
Base.metadata.create_all(engine)
def create_admin():
sess = Session()
newuser = Users(fio="admin", dolgnost="admin",
newdolg=Dolgnost(dolgnst='admin', isadmin=True)
sess.add(newdolg)
sess.commit()
dlg = sess.query(Dolgnost).filter(Dolgnost.dolgnst=='admin').first()
newuser = Users(fio="admin",
id_dolgnost=dlg.id,
login="admin", passwd="123456")
sess.add(newuser)
sess.commit()