Compare commits
11 Commits
main
...
b4895b787e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4895b787e | ||
|
|
cd3a1b1f15 | ||
|
|
3bfca19387 | ||
|
|
05e42ca382 | ||
|
|
aff62e048e | ||
| 90c8e46d7b | |||
| fa2759bf1c | |||
|
|
bb9e715139 | ||
| 334d3c733f | |||
| 1fa8bf57da | |||
| e0c85ac979 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -161,3 +161,7 @@ cython_debug/
|
|||||||
#.idea/
|
#.idea/
|
||||||
|
|
||||||
*.db
|
*.db
|
||||||
|
*.vscode
|
||||||
|
*.json
|
||||||
|
.vscode/settings.json
|
||||||
|
modelbackup.py
|
||||||
|
|||||||
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"[python]": {
|
"[python]": {
|
||||||
"editor.defaultFormatter": "ms-python.autopep8"
|
"editor.defaultFormatter": "ms-python.python"
|
||||||
},
|
},
|
||||||
"python.formatting.provider": "none"
|
"python.formatting.provider": "none"
|
||||||
}
|
}
|
||||||
180
main.py
180
main.py
@@ -54,7 +54,7 @@ def options():
|
|||||||
window.title("Настройки")
|
window.title("Настройки")
|
||||||
window.config(bg="#5D6D7E")
|
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")
|
lbl1.pack(anchor="center")
|
||||||
|
|
||||||
bo1=Button(window,text="1. Добавить должность",command=addDolgnostGui)
|
bo1=Button(window,text="1. Добавить должность",command=addDolgnostGui)
|
||||||
@@ -277,7 +277,7 @@ def addDolgnostGui():
|
|||||||
|
|
||||||
window.mainloop()
|
window.mainloop()
|
||||||
|
|
||||||
def addPrintSettingsGui():
|
def addPrintSettingsGui() -> None:
|
||||||
window = Tk()
|
window = Tk()
|
||||||
window.geometry("800x600")
|
window.geometry("800x600")
|
||||||
|
|
||||||
@@ -405,15 +405,15 @@ def addPrintSettingsGui():
|
|||||||
prDataFrame['columns'] = table_columns
|
prDataFrame['columns'] = table_columns
|
||||||
|
|
||||||
for col in 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:
|
for col in table_headers:
|
||||||
prDataFrame.heading(col,text=value)
|
prDataFrame.heading(col,text=value)
|
||||||
|
|
||||||
|
|
||||||
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
|
#
|
||||||
"""
|
"""
|
||||||
|
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
|
||||||
|
|
||||||
|
|
||||||
window.mainloop()
|
window.mainloop()
|
||||||
@@ -480,8 +480,7 @@ def getUsers():
|
|||||||
a.append(user.isadmin)
|
a.append(user.isadmin)
|
||||||
|
|
||||||
usr.append(a)
|
usr.append(a)
|
||||||
print(usr)
|
return usr
|
||||||
return usr
|
|
||||||
|
|
||||||
def getDolgnost():
|
def getDolgnost():
|
||||||
sess = Session()
|
sess = Session()
|
||||||
@@ -527,19 +526,24 @@ def showAllUsersGui():
|
|||||||
lbl1=Label(window,text="Все пользователи системы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
|
lbl1=Label(window,text="Все пользователи системы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
|
||||||
lbl1.pack(anchor="center")
|
lbl1.pack(anchor="center")
|
||||||
|
|
||||||
tree = ttk.Treeview(window, column=("FName", "LName", "Roll No"), show='headings', height=5)
|
users = getUsers()
|
||||||
tree.column("# 1", anchor=CENTER)
|
|
||||||
tree.heading("# 1", text="FName")
|
|
||||||
tree.column("# 2", anchor=CENTER)
|
|
||||||
tree.heading("# 2", text="LName")
|
|
||||||
tree.column("# 3", anchor=CENTER)
|
|
||||||
tree.heading("# 3", text="Roll No")
|
|
||||||
|
|
||||||
# Insert the data in Treeview widget
|
tree = ttk.Treeview(window, column=("fio", "Dolgnost", "isadmin"), show='headings', height=5)
|
||||||
tree.insert('', 'end', text="1", values=('Amit', 'Kumar', '17701'))
|
tree.column("# 1", anchor=CENTER)
|
||||||
tree.insert('', 'end', text="1", values=('Ankush', 'Mathur', '17702'))
|
tree.heading("# 1", text="ФИО")
|
||||||
tree.insert('', 'end', text="1", values=('Manisha', 'Joshi', '17703'))
|
tree.column("# 2", anchor=CENTER)
|
||||||
tree.insert('', 'end', text="1", values=('Shivam', 'Mehrotra', '17704'))
|
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()
|
tree.pack()
|
||||||
|
|
||||||
@@ -548,5 +552,141 @@ def showAllUsersGui():
|
|||||||
|
|
||||||
mainloop()
|
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__':
|
if __name__ == '__main__':
|
||||||
getUsers()
|
main()
|
||||||
|
|
||||||
|
|
||||||
76
models.py
76
models.py
@@ -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
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy.orm import sessionmaker, aliased, Query, relationship
|
from sqlalchemy.orm import sessionmaker, aliased, Query, relationship
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
from sqlalchemy.orm import registry
|
from sqlalchemy.orm import registry
|
||||||
from sqlalchemy import create_engine
|
|
||||||
|
|
||||||
|
|
||||||
mapper_registry = registry()
|
mapper_registry = registry()
|
||||||
@@ -11,15 +16,60 @@ engine = create_engine('sqlite:///dipl.db', echo=True)
|
|||||||
Base = mapper_registry.generate_base()
|
Base = mapper_registry.generate_base()
|
||||||
Session = sessionmaker(bind=engine)
|
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):
|
class Printer(Base):
|
||||||
__tablename__ = "Printer"
|
__tablename__ = "Printer"
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
|
kinematics = Column(String)
|
||||||
nazvanie = Column(String)
|
nazvanie = Column(String)
|
||||||
|
proshivka = Column(String)
|
||||||
maxSpedPrint = Column(Integer)
|
maxSpedPrint = Column(Integer)
|
||||||
minSpedPrint = 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):
|
class Plastic(Base):
|
||||||
@@ -27,11 +77,14 @@ class Plastic(Base):
|
|||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
nazvanie = Column(String)
|
nazvanie = Column(String)
|
||||||
diametr = Column(Integer)
|
diametr = Column(Integer)
|
||||||
|
color = Column(String)
|
||||||
|
typePlast = Column(String)
|
||||||
|
proizv = Column(String)
|
||||||
minTempPrint = Column(Integer)
|
minTempPrint = Column(Integer)
|
||||||
maxTempPrint = Column(Integer)
|
maxTempPrint = Column(Integer)
|
||||||
dateproizv = Column(DateTime)
|
dateproizv = Column(DateTime)
|
||||||
|
|
||||||
print_settings = relationship("PrintSettings", backref="Plastic")
|
print_settings = relationship("PrintSettings")
|
||||||
|
|
||||||
|
|
||||||
class PrintSettings(Base):
|
class PrintSettings(Base):
|
||||||
@@ -49,11 +102,12 @@ class PrintSettings(Base):
|
|||||||
id_plastic = Column(Integer, ForeignKey(Plastic.id))
|
id_plastic = Column(Integer, ForeignKey(Plastic.id))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Dolgnost(Base):
|
class Dolgnost(Base):
|
||||||
__tablename__ = "Dolgnost"
|
__tablename__ = "Dolgnost"
|
||||||
id = Column(Integer, primary_key=True)
|
id = Column(Integer, primary_key=True)
|
||||||
dolgnst = Column(String)
|
dolgnst = Column(String)
|
||||||
|
isadmin = Column(Boolean, default=False)
|
||||||
users = relationship("Users")
|
users = relationship("Users")
|
||||||
|
|
||||||
|
|
||||||
@@ -64,7 +118,6 @@ class Users(Base):
|
|||||||
|
|
||||||
login = Column(String)
|
login = Column(String)
|
||||||
passwd = Column(String)
|
passwd = Column(String)
|
||||||
isadmin = Column(Boolean, default=False)
|
|
||||||
|
|
||||||
id_dolgnost = Column(Integer, ForeignKey(Dolgnost.id))
|
id_dolgnost = Column(Integer, ForeignKey(Dolgnost.id))
|
||||||
|
|
||||||
@@ -72,10 +125,15 @@ class Users(Base):
|
|||||||
def create_db():
|
def create_db():
|
||||||
Base.metadata.create_all(engine)
|
Base.metadata.create_all(engine)
|
||||||
|
|
||||||
|
|
||||||
def create_admin():
|
|
||||||
sess = Session()
|
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")
|
login="admin", passwd="123456")
|
||||||
sess.add(newuser)
|
sess.add(newuser)
|
||||||
sess.commit()
|
sess.commit()
|
||||||
|
|||||||
Reference in New Issue
Block a user