Compare commits

...

11 Commits

Author SHA1 Message Date
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
danamir
bb9e715139 change gitignore 2023-06-04 11:22:01 +03:00
334d3c733f add editable table 2023-06-03 21:41:47 +03:00
1fa8bf57da deleterd print 2023-06-03 21:30:30 +03:00
e0c85ac979 add show all users func 2023-06-03 21:29:29 +03:00
4 changed files with 236 additions and 34 deletions

4
.gitignore vendored
View File

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

View File

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

178
main.py
View File

@@ -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,7 +480,6 @@ 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():
@@ -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()

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
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()