def getLog(self, source, page, rows, orderby, sort): offset = int(rows) * (int(page) - 1) sql = { "error": "select logid, date, message from log where level = 'ERROR' and source = '" + source + "'" }[self.logType] countSql = { "error": "select count(logid) from log where level = 'ERROR' and source = '" + source + "'" }[self.logType] if("" != orderby): sql = sql + " order by " + orderby + " " + sort sql = sql + " limit " + rows + " offset " + str(offset) dbpath = os.path.join(logPath.getLogPath(), self.date, "pcd.log.v4.db3") if(False == os.path.isfile(dbpath)): return records() else: r = records() conn = SQLiteUtil.Connect(dbpath) countrs = SQLiteUtil.executeSql(conn, countSql) r.total = countrs[0][0] rs = SQLiteUtil.executeSql(conn, sql) r.rows = list(map(maps.maprecord2errorlog, rs)) return r
def getTableTestData(): retV1 = tableTestData(1) retV2 = tableTestData(2) retV3 = tableTestData(3) r = records() r.page = 1 r.total = 3 r.rows = [retV1, retV2, retV3] return json.dumps(r, default=generic_JsonEncode, ensure_ascii=False)
def getRelativeLog(self, filename): sql = "select logid, date, message from log where message like '%" + filename + ".xml%'" countSql = "select count(logid) from log where message like '%" + filename + ".xml%'" cdate = filename[0:8] cdate = cdate[:4] + "-" + cdate[4:] cdate = cdate[:7] + "-" + cdate[7:] dbpath = os.path.join(logPath.getLogPath(), cdate, "pcd.log.v4.db3") if(False == os.path.isfile(dbpath)): return records() else: print(sql) r = records() conn = SQLiteUtil.Connect(dbpath) countrs = SQLiteUtil.executeSql(conn, countSql) r.total = countrs[0][0] rs = SQLiteUtil.executeSql(conn, sql) r.rows = list(map(maps.maprecord2errorlog, rs)) return r
def fun2(db, args): with records(db) as ro: for record in ro.get(args.datum): print("{}, {}".format(record.datetime, record.measurement))
def fun1(db, args): with records(db) as ro: ro.update(args.datum, server, vendor_id, args.device_id, appbundle)
class clients(Frame): #<clients> class created for <clients> page when <clients> button is pressed at the main menu def __init__(self,master = None): Frame.__init__(self, master) #Enter function to be called here self.master.title("Clients") #insert code here to create buttons, entries and any feature towards specified page # def run_records_gui_class(root): #function that will move towards class records_gui_class records_gui_class(root); Records = records(); # places value of records class file into Records class records_gui_class(Frame): #<records> class created for <records> page when <records> button is pressed at the main menu Records = records(); def __init__(self, master = None): Frame.__init__(self, master); self.master.title("Records"); self.menu(); def sequence(self, funct): for child in root.winfo_children(): #This is the loop that will go through the Frames widgets and delete the children child.destroy() return funct(); def menu(self, master = None): #main menu for the buttons related to each of the different categories: sales, employees, payroll
def __init__(self, varib=1, login=''): self.MAIN_WINDOW = tk.Tk() self.MAIN_WINDOW.title("Scrollbar Test") self.MAIN_WINDOW.resizable(False, True) self.login = login self.color = 0 if varib: global invert invert = 0 print('#' + str(hex(abs(self.color - int('7CD5CB', 16))))[2:]) self.variable = [] self.test_buttons = [] self.questions = tuple() self.answers = [] self.types = tuple() self.id = tuple() self.number = 0 self.correct = 0 self.text = tk.StringVar() self.menu_varible = tk.IntVar() menu = tk.Menu() settings = tk.Menu(tearoff=0) self.menu_varible.set(varib) settings.add_radiobutton(label='Темная тема', value=0, variable=self.menu_varible, command=self.invett_colors) settings.add_radiobutton(label='Светлая тема', value=1, variable=self.menu_varible, command=self.invett_colors) menu.add_cascade(label='Настройки темы', menu=settings) menu.add_cascade(label='Рекорды', command=lambda: records.records()) menu.add_cascade(label='Справка', command=lambda: Info.Info(self.MAIN_WINDOW)) self.MAIN_WINDOW.config(menu=menu) self.topic = -1 width = 1200 height = 900 self.MAIN_WINDOW.geometry('{}x{}+{}+{}'.format( width, height, (self.MAIN_WINDOW.winfo_screenwidth() - width) // 2, (self.MAIN_WINDOW.winfo_screenheight() - height) // 2)) self.MAIN_WINDOW.minsize(width=900, height=600) self.MAIN_WINDOW.protocol('WM_DELETE_WINDOW', self.window_deleted) self.MAIN_WINDOW.iconbitmap('icon.ico') self.buttons = [] self.conn = connect('project_trpo') # подлкючение к БД self.conn.row_factory = self.dict_factory cursor = self.conn.cursor() cursor.execute("SELECT topic FROM Topics") all_data = cursor.fetchall() self.frame = VerticalScrolledFrame(self.MAIN_WINDOW, width=168, borderwidth=2, relief=tk.SUNKEN, bg=invert_color("#F0F0F0")) self.next = tk.Button(self.MAIN_WINDOW, text='Следующий', width=10, height=2, bg=invert_color('#7CD5CB'), fg='#111111', bd=0, activebackground='#333333', disabledforeground='#FFFFFF', highlightcolor="black", relief=tk.SUNKEN, font=font.Font( family="@Microsoft YaHei UI Light", size=10), command=self.next_press) self.prev = tk.Button(self.MAIN_WINDOW, text='Предыдущий', width=10, height=2, bg=invert_color('#7CD5CB'), fg='#111111', bd=0, activebackground='#333333', disabledforeground='#FFFFFF', highlightcolor="black", relief=tk.SUNKEN, font=font.Font( family="@Microsoft YaHei UI Light", size=10), command=self.prev_press) self.end = tk.Button(self.MAIN_WINDOW, text='Завершить', width=10, height=2, bg=invert_color('#7CD5CB'), fg='#111111', bd=0, activebackground='#333333', disabledforeground='#FFFFFF', highlightcolor="black", relief=tk.SUNKEN, font=font.Font(family="@Microsoft YaHei UI Light", size=10), command=self.end_press) self.frame.pack(fill=tk.BOTH, expand=True) # fill window cursor = self.conn.cursor() cursor.execute("SELECT topic, Theory FROM Topics") data = cursor.fetchall() self.frame.update_texts(usual_text=data[0]['Theory'], main_text=data[0]['topic']) # self.frame.pack_propagate(0) self.MAIN_WINDOW.update() # self.frame.edit.place(x=225, y=20) self.MAIN_WINDOW['bg'] = invert_color('#F0F0F0') self.MAIN_WINDOW.update() self.frame.create_text() texts_for_buttons = ('Теория', 'Визуализация', 'Тест') kol = 0 # all_data = ['Сортировка "пузырьком".', 'Сортировка "Вставками"', '"Быстрая" сортировка.', # '"Быстрая" сортировка с асинхронностью.', 'Сортировка подсчётом.'] for i, text in enumerate(all_data): self.buttons.append( tk.Button(self.frame, text=text['topic'], width=24, height=3, bg=invert_color('#7CD5CB'), fg='#111111', bd=0, activebackground=invert_color('#333333'), disabledforeground='#111111', highlightcolor="black", relief=tk.SUNKEN, wraplength=100, state='disabled', command=lambda key=i + kol: self.press(key))) self.buttons[i + kol].bind( "<Enter>", lambda event, number=i + kol: self.but(number)) self.buttons[i + kol].bind( "<Leave>", lambda event, number=i + kol: self.butleave(number)) self.buttons[i + kol].grid(column=2, row=i + kol) for j, t in enumerate(texts_for_buttons): kol += 1 self.buttons.append( tk.Button(self.frame, text=(t + ' по "' + text['topic'] + '"')[:21] + "\n" + (t + ' по "' + text['topic'] + '"')[21:], width=24, height=3, bg=invert_color('#222222'), fg=invert_color('#EEEEEE'), bd=0, activebackground=invert_color('#333333'), activeforeground=invert_color('#EEEEEE'), highlightcolor="black", relief=tk.SUNKEN, justify=tk.LEFT, wraplength=170, command=lambda key=i + kol: self.press(key))) self.buttons[i + kol].bind( "<Enter>", lambda event, number=i + kol: self.but(number)) self.buttons[i + kol].bind( "<Leave>", lambda event, number=i + kol: self.butleave(number)) self.buttons[i + kol].grid(column=2, row=i + kol) mas = ['ghgf', 'gfdg', 'fdswedfsd', '32e3df', '1wewer34frdsf'] # self.activate_RadioButton(mas) # self.vizual() self.MAIN_WINDOW.mainloop()