def add(): user = User(("", "", "", "", "", "", "", "0.0")) name = e_name.get() if len(name) < 6: mb.showerror("Ошибка", "Имя пользователя должно быть длиннее 5 символов!") return for c in name: if not (("a" <= c <= "z") or ("A" <= c <= "Z") or ("а" <= c <= "я") or ("А" <= c <= "Я") or c == " "): mb.showerror( "Ошибка", "Имя пользователя должно содержать только буквы!") return user.name = name login = e_login.get() u = db.get_user_by_login(login) if u and u.login != user.login: mb.showerror("Ошибка", "Данный логин уже существует!") return if len(login) < 4: mb.showerror("Ошибка", "Логин должен быть длиннее 4 символов!") return for c in login: if not (("a" <= c <= "z") or ("A" <= c <= "Z") or ("0" <= c <= "9")): mb.showerror( "Ошибка", "Логин должен содержать только латинские буквы и цифры!") return user.login = login select_comp = list(lb_comp.curselection()) if len(select_comp): if type_var.get(): user.competence = t_competence_list[select_comp[0]] user.type = "преподаватель" else: user.competence = s_competence_list[select_comp[0]] user.type = "студент" else: mb.showerror("Ошибка", "Выберите компетенцию у пользователя!") return password = e_password.get() if len(password) < 4: mb.showerror("Ошибка", "Пароль должен быть длиннее 3 символов!") return user.password = password db.insert_users([user]) go_back()
def get_user_by_id(self, id): conn = psycopg2.connect(dbname=self.name, user=self.user, password=self.password, host=self.host) with conn.cursor() as cursor: conn.autocommit = True cursor.execute('SELECT * FROM users WHERE user_id = %s', (id, )) records = cursor.fetchall() conn.close() if len(records) > 0: user = User(records[0]) return user else: return None
def get_сonsultants_order_by_points(self): conn = psycopg2.connect( dbname=self.name, user=self.user, password=self.password, host=self.host) records = [] with conn.cursor() as cursor: cursor.execute('SELECT * FROM users WHERE competence = %s ORDER BY points', ('консультант', )) records = cursor.fetchall() conn.close() users = [] if len(records) > 0: for rec in records: user = User(rec) users.append(user) return users else: return None
def get_all_students(self): conn = psycopg2.connect(dbname=self.name, user=self.user, password=self.password, host=self.host) records = [] with conn.cursor() as cursor: cursor.execute('SELECT * FROM users WHERE type = %s ORDER BY name', ('студент', )) records = cursor.fetchall() conn.close() users = [] if len(records) > 0: for rec in records: user = User(rec) users.append(user) return users else: return None
def get_teachers_by_competence(self, competence): conn = psycopg2.connect(dbname=self.name, user=self.user, password=self.password, host=self.host) records = [] with conn.cursor() as cursor: cursor.execute( 'SELECT * FROM users WHERE competence = %s ORDER BY name', (competence, )) records = cursor.fetchall() conn.close() users = [] if len(records) > 0: for rec in records: user = User(rec) users.append(user) return users else: return None
def get_all_users(self): """ Возвращает список всех объектов User из таблицы users """ conn = psycopg2.connect(dbname=self.name, user=self.user, password=self.password, host=self.host) records = [] with conn.cursor() as cursor: cursor.execute('SELECT * FROM users') records = cursor.fetchall() conn.close() users = [] if len(records) > 0: for rec in records: user = User(rec) users.append(user) return users else: return None
def add_users(): file_name = fd.askopenfilename(filetypes=(("Json FILES", "*.json"), ("All files", "*.*"))) if not file_name: mb.showerror("Ошибка", "Вы не выбрали файл!") return f = open(file_name) new_data = json.load(f) f.close() logs_str = "" for data in new_data["users"]: user = User((data["id"], data["name"], data["type"], data["competence"], data["login"], data["password"], data["personal_data"], data["points"])) error = db.insert_users([user]) if error and error != None and error != "None" and error != "null" and error != "none": logs_str += "\n" + "User " + user.name + \ " not added: " + str(error) else: logs_str += "\n" + "User " + user.name + " successful added in database" f_logs = open("D:/homeworks/university_databases/logs.txt", "w") f_logs.write(logs_str) f_logs.close()
import windows_init from jcUserClass import User if __name__ == "__main__": main_user = User(("id", "name", "type", "comp", "", "password", "pd", "0.0")) windows_init.show_login(main_user)
"login": "******", "password": "******", "personal_data": "", "points": "0.0" }, { "id": "id", "name": "Романов Борис Павлович", "type": "студент", "competence": "диспетчер", "login": "******", "password": "******", "personal_data": "", "points": "0.0" }] } user = User(("id", "Иванов Денис Юрьевич", "админ", "юридическая клиника", "admin", "1111", "", "0.0")) db = DataBase() db.insert_users([user]) """ file_name = fd.askopenfilename(filetypes=(("Json FILES", "*.json"), ("All files", "*.*") )) if not file_name: mb.showerror("Ошибка", "Вы не выбрали файл!") file_path_list = file_name.split("/") print(file_path_list[-1]) # doc = Document((file_name,)) file_name = fd.askopenfilename()