rest of files, not sorted

This commit is contained in:
WorldTeacher
2024-05-17 08:35:37 +02:00
parent 7a0f7ed1f1
commit d7853ab67d
82 changed files with 10724 additions and 2309 deletions

View File

@@ -1,8 +1,11 @@
import os
from omegaconf import OmegaConf
from pathlib import Path
from omegaconf import OmegaConf
config = OmegaConf.load("config.yaml")
def delete_temp_contents():
"""
delete_temp_contents deletes the contents of the temp directory.
@@ -16,7 +19,7 @@ def delete_temp_contents():
os.remove(os.path.join(root, file))
for dir in dirs:
os.rmdir(os.path.join(root, dir))
if __name__ == "__main__":
delete_temp_contents()
delete_temp_contents()

View File

@@ -0,0 +1,16 @@
import time
import pyautogui
def main():
key_count = input("How many keys do you have? ")
key = pyautogui.RIGHT
for _i in range(int(key_count)):
pyautogui.keyDown(key)
pyautogui.keyUp(key)
time.sleep(0.1)
if __name__ == "__main__":
main()

753
src/backend/olddatabase.py Normal file
View File

@@ -0,0 +1,753 @@
import datetime
import os
# from src.data import pickles
import pickle
import re
import shutil
import sqlite3 as sql3
import tempfile
from typing import Any
from omegaconf import OmegaConf
from src.logic.constants import SEMAP_MEDIA_ACCOUNTS
from src.logic.dataclass import ApparatData, BookData
from src.logic.log import MyLogger
# from icecream import ic
config = OmegaConf.load("config.yaml")
logger = MyLogger("Database")
class Database:
logger.log_info("Database imported")
def __init__(self) -> None:
# TODO: change path later on to a variable based on the settings
self.database_path = f"{config.database.path}{config.database.name}"
# ic(self.database_path)
self.database_path = "sap.db"
logger.log_info("Connecting to database")
self.database = sql3.connect(self.database_path)
self.cur = self.database.cursor()
pass
def create_database(self):
# create database from template
subjects = config.subjects
for subject in subjects:
self.cur.execute(f"INSERT INTO subjects (name) VALUES ('{subject}')")
self.database.commit()
def create_blob(self, file):
with open(file, "rb") as f:
blob = f.read()
return blob
def recreate_file(self, filename, app_id: int):
blob = self.get_blob(filename, app_id)
# write the blob to the file and save it to a preset destination
# with open(filename, "wb") as f:
# f.write(blob)
# use tempfile to create a temporary file
if not os.path.exists(config.database.tempdir):
os.mkdir(config.database.tempdir)
tempfile.NamedTemporaryFile(
filename=filename, delete=False, dir=config.database.tempdir, mode="wb"
).write(blob)
# user = os.getlogin()
# home = os.path.expanduser("~")
# # check if the folder exists, if not, create it
# if not os.path.exists(f"{home}/Desktop/SemApp/{user}"):
# os.mkdir(f"{home}/Desktop/SemApp/{user}")
# shutil.move(filename, f"{home}/Desktop/SemApp/{user}")
def get_blob(self, filename: str, app_id: int):
query = f"SELECT fileblob FROM files WHERE filename='{filename}' AND app_id={app_id}"
logger.log_info(f"Retrieving blob for {filename}, Appid {app_id} from database")
result = self.cur.execute(query).fetchone()
return result[0]
def get_kto_no(self, app_id: int):
query = f"SELECT konto FROM semesterapparat WHERE id={app_id}"
result = self.cur.execute(query).fetchone()
return result[0]
def insert_file(self, file: list[dict], app_id: int, prof_id):
for f in file:
filename = f["name"]
path = f["path"]
filetyp = f["type"]
print(f"filename: {filename}, path: {path}, filetyp: {filetyp}")
if path == "Database":
continue
blob = self.create_blob(path)
query = "INSERT OR IGNORE INTO files (filename, fileblob, app_id, filetyp,prof_id) VALUES (?, ?, ?, ?,?)"
params = (filename, blob, app_id, filetyp, prof_id)
self.cur.execute(query, params)
logger.log_info(
f"Inserted {len(file)} file(s) of Apparat {app_id} into database"
)
self.database.commit()
def get_files(self, app_id: int, prof_id: int):
query = f"SELECT filename, filetyp FROM files WHERE app_id={app_id} AND prof_id={prof_id}"
result: list[tuple] = self.cur.execute(query).fetchall()
return result
def get_prof_name_by_id(self, id, add_title: bool = False):
if add_title is True:
query = f"SELECT titel, fname, lname FROM prof WHERE id={id}"
result = self.cur.execute(query).fetchone()
name = " ".join(result[0:3])
return name
else:
query = f"SELECT fullname FROM prof WHERE id={id}"
print(query)
result = self.cur.execute(query).fetchone()
name = result[0]
return name
def get_prof_id(self, profname: str):
query = f"SELECT id FROM prof WHERE fullname='{profname.replace(',', '')}'"
result = self.cur.execute(query).fetchone()
if result is None:
return None
return self.cur.execute(query).fetchone()[0]
def get_app_id(self, appname: str):
query = f"SELECT id FROM semesterapparat WHERE name='{appname}'"
result = self.cur.execute(query).fetchone()
if result is None:
return None
return self.cur.execute(query).fetchone()[0]
def get_profs(self):
query = "select * from prof"
return self.cur.execute(query).fetchall()
def app_exists(self, appnr: str) -> bool:
query = f"SELECT appnr FROM semesterapparat WHERE appnr='{appnr}'"
result = self.cur.execute(query).fetchone()
if result is None:
return False
return True
def get_prof_data(self, profname: str = None, id: int = None) -> dict[str, str]:
if profname is not None:
profname = profname.replace(",", "")
profname = re.sub(r"\s+", " ", profname).strip()
if id:
query = "Select prof_id FROM semesterapparat WHERE appnr=?"
params = (id,)
result = self.cur.execute(query, params).fetchone()
id = result[0]
query = (
f"SELECT * FROM prof WHERE fullname='{profname}'"
if id is None
else f"SELECT * FROM prof WHERE id={id}"
)
result = self.cur.execute(query).fetchone()
return_data = {
"prof_title": result[1],
"profname": f"{result[3], result[2]}",
"prof_mail": result[5],
"prof_tel": result[6],
"id": result[0],
}
print(return_data)
# select the entry that contains the first name
return return_data
def set_new_sem_date(self, appnr, new_sem_date, dauerapp=False):
# Todo: use extend_semester in new release
date = datetime.datetime.now().strftime("%Y-%m-%d")
query = f"UPDATE semesterapparat SET verlängert_am='{date}', verlängerung_bis='{new_sem_date}' WHERE appnr='{appnr}'"
if dauerapp is not False:
query = f"UPDATE semesterapparat SET verlängert_am='{date}', verlängerung_bis='{new_sem_date}', dauerapp='{dauerapp} WHERE appnr='{appnr}'"
self.cur.execute(query)
self.database.commit()
def create_apparat(self, ApparatData: ApparatData):
prof_id = self.get_prof_id(ApparatData.profname)
app_id = self.get_app_id(ApparatData.appname)
if app_id is None:
if prof_id is None:
self.create_prof(ApparatData.get_prof_details())
prof_id = self.get_prof_id(ApparatData.profname)
query = f"INSERT OR IGNORE INTO semesterapparat (appnr, name, erstellsemester, dauer, prof_id, fach,deletion_status,konto) VALUES ('{ApparatData.appnr}', '{ApparatData.appname}', '{ApparatData.semester}', '{ApparatData.dauerapp}', {prof_id}, '{ApparatData.app_fach}', '{ApparatData.deleted}', '{SEMAP_MEDIA_ACCOUNTS[ApparatData.appnr]}')"
print(query)
self.cur.execute(query)
self.database.commit()
logger.log_info(f"Created new apparat {ApparatData.appname}")
app_id = self.get_app_id(ApparatData.appname)
# if ApparatData.media_list is not None: #! Deprecated
# for media in ApparatData.media_list:
# self.insert_file(media, app_id)
# self.database.commit()
return app_id
def create_prof(self, prof_details: dict):
prof_title = prof_details["prof_title"]
prof_fname = prof_details["profname"].split(",")[1]
prof_fname = prof_fname.strip()
prof_lname = prof_details["profname"].split(",")[0]
prof_lname = prof_lname.strip()
prof_fullname = prof_details["profname"].replace(",", "")
prof_mail = prof_details["prof_mail"]
prof_tel = prof_details["prof_tel"]
query = f'INSERT OR IGNORE INTO prof (titel, fname, lname, fullname, mail, telnr) VALUES ("{prof_title}", "{prof_fname}", "{prof_lname}", "{prof_fullname}", "{prof_mail}", "{prof_tel}")'
self.cur.execute(query)
self.database.commit()
pass
def get_apparat_nrs(self) -> list:
try:
self.cur.execute(
"SELECT appnr FROM semesterapparat Where deletion_status=0"
)
except sql3.OperationalError:
return []
return [i[0] for i in self.cur.fetchall()]
def get_all_apparts(self, deleted=0):
self.cur.execute(
f"SELECT * FROM semesterapparat WHERE deletion_status={deleted}"
)
return self.cur.fetchall()
#
def get_app_data(self, appnr, appname) -> ApparatData:
result = self.cur.execute(
f"SELECT * FROM semesterapparat WHERE appnr='{appnr}' AND name='{appname}'"
).fetchone()
print(f"result: {result}")
# app_id=result[0]
data = ApparatData()
data.appnr = appnr
data.app_fach = result[3]
data.appname = result[1]
profname = self.get_prof_name_by_id(result[2])
# set profname to lastname, firstname
profname = f"{profname.split(' ')[0]}, {profname.split(' ')[1]}"
data.profname = profname
prof_data = self.get_prof_data(data.profname)
data.prof_mail = prof_data["prof_mail"]
data.prof_tel = prof_data["prof_tel"]
data.prof_title = prof_data["prof_title"]
data.erstellsemester = result[5]
data.semester = result[8]
data.deleted = result[9]
data.apparat_adis_id = result[12]
data.prof_adis_id = None
print(data)
# data.media_list=self.get_media(app_id)
return data
def add_medium(self, bookdata: BookData, app_id: str, prof_id: str, *args):
# insert the bookdata into the media table
# try to retrieve the bookdata from the media table, check if the to be inserted bookdata is already in the table for the corresponding apparat
# if yes, do not insert the bookdata
# if no, insert the bookdata
t_query = (
f"SELECT bookdata FROM media WHERE app_id={app_id} AND prof_id={prof_id}"
)
# print(t_query)
result = self.cur.execute(t_query).fetchall()
result = [pickle.loads(i[0]) for i in result]
if bookdata in result:
print("Bookdata already in database")
# check if the book was deleted in the apparat
query = (
"SELECT deleted FROM media WHERE app_id=? AND prof_id=? AND bookdata=?"
)
params = (app_id, prof_id, pickle.dumps(bookdata))
result = self.cur.execute(query, params).fetchone()
if result[0] == 1:
print("Book was deleted, updating bookdata")
query = "UPDATE media SET deleted=0 WHERE app_id=? AND prof_id=? AND bookdata=?"
params = (app_id, prof_id, pickle.dumps(bookdata))
self.cur.execute(query, params)
self.database.commit()
return
query = (
"INSERT INTO media (bookdata, app_id, prof_id,deleted) VALUES (?, ?, ?,?)"
)
converted = pickle.dumps(bookdata)
params = (converted, app_id, prof_id, 0)
self.cur.execute(query, params)
self.database.commit()
def request_medium(self, app_id, prof_id, signature) -> int:
query = "SELECT bookdata, id FROM media WHERE app_id=? AND prof_id=?"
params = (app_id, prof_id)
result = self.cur.execute(query, params).fetchall()
books = [(i[1], pickle.loads(i[0])) for i in result]
print(books)
book = [i[0] for i in books if i[1].signature == signature]
return book[0]
def add_message(self, message: dict, user, appnr):
def __get_user_id(user):
query = "SELECT id FROM user WHERE username=?"
params = (user,)
result = self.cur.execute(query, params).fetchone()
return result[0]
user_id = __get_user_id(user)
query = "INSERT INTO messages (message, user_id, remind_at) VALUES (?, ?, ?)"
params = (message["message"], user_id, message["remind_at"])
self.cur.execute(query, params)
self.database.commit()
def get_messages(self, date: str):
def __get_user_name(id):
query = "SELECT username FROM user WHERE id=?"
params = (id,)
result = self.cur.execute(query, params).fetchone()
return result[0]
query = f"SELECT * FROM messages WHERE remind_at='{date}'"
result = self.cur.execute(query).fetchall()
ret = [
{
"message": i[2],
"user": __get_user_name(i[4]),
"apparatnr": i[5],
"id": i[0],
}
for i in result
]
return ret
def get_apparat_id(self, appname):
query = f"SELECT appnr FROM semesterapparat WHERE name='{appname}'"
result = self.cur.execute(query).fetchone()
return result[0]
def get_apparats_by_semester(self, semester: str):
query = f"SELECT * FROM semesterapparat WHERE erstellsemester='{semester}'"
result = self.cur.execute(query).fetchall()
return result
def get_semester(self) -> list[str]:
query = "SELECT DISTINCT erstellsemester FROM semesterapparat"
result = self.cur.execute(query).fetchall()
return [i for i in result]
def is_eternal(self, id):
query = f"SELECT dauer FROM semesterapparat WHERE id={id}"
result = self.cur.execute(query).fetchone()
return result[0]
def statistic_request(self, **kwargs: Any):
def __query(query):
result = self.cur.execute(query).fetchall()
for result_a in result:
orig_value = result_a
prof_name = self.get_prof_name_by_id(result_a[2])
# replace the prof_id with the prof_name
result_a = list(result_a)
result_a[2] = prof_name
result_a = tuple(result_a)
result[result.index(orig_value)] = result_a
return result
if "deletable" in kwargs.keys():
query = f"SELECT * FROM semesterapparat WHERE deletion_status=0 AND dauer=0 AND (erstellsemester!='{kwargs['deletesemester']}' OR verlängerung_bis!='{kwargs['deletesemester']}')"
return __query(query)
if "dauer" in kwargs.keys():
kwargs["dauer"] = kwargs["dauer"].replace("Ja", "1").replace("Nein", "0")
query = "SELECT * FROM semesterapparat WHERE "
for key, value in kwargs.items() if kwargs.items() is not None else {}:
print(key, value)
query += f"{key}='{value}' AND "
print(query)
# remove deletesemester part from normal query, as this will be added to the database upon deleting the apparat
if "deletesemester" in kwargs.keys():
query = query.replace(
f"deletesemester='{kwargs['deletesemester']}' AND ", ""
)
if "endsemester" in kwargs.keys():
if "erstellsemester" in kwargs.keys():
query = query.replace(f"endsemester='{kwargs['endsemester']}' AND ", "")
query = query.replace(
f"erstellsemester='{kwargs['erstellsemester']} AND ", "xyz"
)
else:
query = query.replace(
f"endsemester='{kwargs['endsemester']}' AND ", "xyz"
)
print("replaced")
query = query.replace(
"xyz",
f"(erstellsemester='{kwargs['endsemester']}' OR verlängerung_bis='{kwargs['endsemester']}') AND ",
)
# remove all x="" parts from the query where x is a key in kwargs
query = query[:-5]
print(query)
return __query(query)
def get_app_count_by_semester(self) -> tuple[list[str], list[int]]:
"""get the apparats created and deleted in the distinct semesters"""
# get unique semesters
query = "SELECT DISTINCT erstellsemester FROM semesterapparat"
result = self.cur.execute(query).fetchall()
semesters = [i[0] for i in result]
created = []
deleted = []
for semester in semesters:
query = f"SELECT COUNT(*) FROM semesterapparat WHERE erstellsemester='{semester}'"
result = self.cur.execute(query).fetchone()
created.append(result[0])
query = f"SELECT COUNT(*) FROM semesterapparat WHERE deletion_status=1 AND deleted_date='{semester}'"
result = self.cur.execute(query).fetchone()
deleted.append(result[0])
# store data in a tuple
ret = []
e_tuple = ()
for sem in semesters:
e_tuple = (
sem,
created[semesters.index(sem)],
deleted[semesters.index(sem)],
)
ret.append(e_tuple)
return ret
# get the count of apparats created in the semesters
def apparats_by_semester(self, semester: str):
"""Get a list of all created and deleted apparats in the given semester"""
# get a list of apparats created and in the given semester
query = f"SELECT name,prof_id FROM semesterapparat WHERE erstellsemester='{semester}'"
result = self.cur.execute(query).fetchall()
c_tmp = []
for i in result:
c_tmp.append((i[0], self.get_prof_name_by_id(i[1])))
query = (
f"SELECT name,prof_id FROM semesterapparat WHERE deleted_date='{semester}'"
)
result = self.cur.execute(query).fetchall()
d_tmp = []
for i in result:
d_tmp.append((i[0], self.get_prof_name_by_id(i[1])))
# group the apparats by prof
c_ret = {}
for i in c_tmp:
if i[1] not in c_ret.keys():
c_ret[i[1]] = [i[0]]
else:
c_ret[i[1]].append(i[0])
d_ret = {}
for i in d_tmp:
if i[1] not in d_ret.keys():
d_ret[i[1]] = [i[0]]
else:
d_ret[i[1]].append(i[0])
return {"created": c_ret, "deleted": d_ret}
def delete_message(self, message_id):
query = "DELETE FROM messages WHERE id=?"
params = (message_id,)
self.cur.execute(query, params)
self.database.commit()
def delete_medium(self, title_id):
# delete the bookdata from the media table
query = "UPDATE media SET deleted=1 WHERE id=?"
params = (title_id,)
self.cur.execute(query, params)
self.database.commit()
pass
def update_bookdata(self, bookdata: BookData, title_id):
query = "UPDATE media SET bookdata=? WHERE id=?"
converted = pickle.dumps(bookdata)
params = (converted, title_id)
self.cur.execute(query, params)
self.database.commit()
def get_specific_book(self, book_id):
query = "SELECT bookdata FROM media WHERE id=?"
params = (book_id,)
result = self.cur.execute(query, params).fetchone()
return pickle.loads(result[0])
def get_media(self, app_id, prof_id, del_state=0) -> list[dict[int, BookData, int]]:
"""request media from database and return result as list.
Args:
----
- app_id (int): ID of the apparat
- prof_id (int): ID of the prof
- del_state (int, optional): If deleted books should be requested as well. 1 = yes 0 = no. Defaults to 0.
Returns:
-------
- list[dict[int,BookData,int]]: Returns a list of dictionaries containing the bookdata, the id and the availability of the book in the following format:
-------
{"id": int,
"bookdata": BookData,
"available": int}
"""
query = f"SELECT id,bookdata,available FROM media WHERE (app_id={app_id} AND prof_id={prof_id}) AND (deleted={del_state if del_state == 0 else '1 OR deleted=0'})"
logger.log_info(f"Requesting media from database with query: {query}")
result = self.cur.execute(query).fetchall()
ret_result = []
for result_a in result:
# ic(result_a)
data = {"id": int, "bookdata": BookData, "available": int}
data["id"] = result_a[0]
data["bookdata"] = pickle.loads(result_a[1])
data["available"] = result_a[2]
ret_result.append(data)
return ret_result
def get_subjects_and_aliases(self):
query = "SELECT subjects.name, aliases.name FROM subjects LEFT JOIN aliases ON subjects.id = aliases.subject_id"
return self.cur.execute(query).fetchall()
def get_subjects(self):
query = "SELECT id,name FROM subjects"
return self.cur.execute(query).fetchall()
def get_aliases(self, subject_id):
query = f"SELECT name FROM aliases WHERE subject_id={subject_id}"
return self.cur.execute(query).fetchall()
def add_subject(self, subject_name):
query = f"INSERT INTO subjects (name) VALUES ('{subject_name}')"
self.cur.execute(query)
self.database.commit()
def get_apparats_by_prof(self, prof_id):
query = f"SELECT * FROM semesterapparat WHERE prof_id={prof_id}"
return self.cur.execute(query).fetchall()
def add_alias(self, alias_name, subject):
query = f"SELECT id FROM subjects WHERE name='{subject}'"
subject_id = self.cur.execute(query).fetchone()[0]
query = f"INSERT INTO aliases (name,subject_id) VALUES ('{alias_name}',{subject_id})"
self.cur.execute(query)
self.database.commit()
def update_apparat(self, apparat_data: ApparatData):
data = apparat_data
query = "UPDATE semesterapparat SET name = ?, fach = ?, dauer = ?, prof_id = ? WHERE appnr = ?"
params = (
data.appname,
data.app_fach,
data.dauerapp,
self.get_prof_id(data.profname),
data.appnr,
)
print(query)
self.cur.execute(query, params)
self.database.commit()
def delete_apparat(self, appnr: str, semester: str):
# update the deletion status to 1 and the deleted_state to semester for the given apparat
query = f"UPDATE semesterapparat SET deletion_status=1, deleted_date='{semester}' WHERE appnr='{appnr}'"
self.cur.execute(query)
self.database.commit()
def get_book_id(self, bookdata: BookData, app_id: int, prof_id: int):
query = "SELECT id FROM media WHERE bookdata=? AND app_id=? AND prof_id=?"
params = (pickle.loads(bookdata), app_id, prof_id)
result = self.cur.execute(query, params).fetchone()
return result
def set_availability(self, book_id, available):
query = "UPDATE media SET available=? WHERE id=?"
params = (available, book_id)
self.cur.execute(query, params)
self.database.commit()
def get_latest_book_id(self):
query = "SELECT id FROM media ORDER BY id DESC LIMIT 1"
result = self.cur.execute(query).fetchone()
return result[0]
def close(self):
self.database.close()
def login(self, username, hashed_password) -> bool:
# check if the user and password exist in the database
# if yes, return True
# if no, return False
query = "SELECT salt FROM user WHERE username=?"
params = (username,)
result = self.cur.execute(query, params).fetchone()
if result is None:
return False
salt = result[0]
print(salt)
query = "SELECT password FROM user WHERE username=?"
params = (str(username),)
result = self.cur.execute(query, params).fetchone()
password = result[0]
if password == f"{salt}{hashed_password}":
return True
else:
return False
# admin stuff below here
def get_users(self):
query = "SELECT * FROM user"
return self.cur.execute(query).fetchall()
def get_apparats(self) -> list[tuple]:
query = "SELECT * FROM semesterapparat"
return self.cur.execute(query).fetchall()
def change_password(self, user, password):
saltq = "SELECT salt FROM user WHERE username=?"
params = (user,)
salt = self.cur.execute(saltq, params).fetchone()[0]
password = f"{salt}{password}"
query = "UPDATE user SET password=? WHERE username=?"
params = (password, user)
self.cur.execute(query, params)
self.database.commit()
def get_role(self, username):
query = "SELECT role FROM user WHERE username=?"
params = (username,)
result = self.cur.execute(query, params).fetchone()
return result[0]
def get_roles(self):
query = "SELECT role FROM user"
return self.cur.execute(query).fetchall()
def create_user(self, username, password, role, salt):
"""Create a user based on passed data.
Args:
----
- username (str): Username to be used
- password (str): the salted password
- role (str): Role of the user
- salt (str): a random salt for the user
"""
query = "INSERT OR IGNORE INTO user (username, password, role, salt) VALUES (?, ?, ?, ?)"
params = (username, password, role, salt)
self.cur.execute(query, params)
self.database.commit()
def delete_user(self, user):
query = "DELETE FROM user WHERE username=?"
params = (user,)
self.cur.execute(query, params)
self.database.commit()
def get_faculty_members(self, name: str = None):
query = "SELECT titel, fname,lname,mail,telnr,fullname FROM prof"
if name:
query = query.replace(",fullname", "")
query += f" WHERE fullname='{name}'"
return self.cur.execute(query).fetchall()
def update_faculty_member(self, data, oldlname, oldfname):
placeholders = ", ".join(f"{k} = :{k}" for k in data.keys())
sql = f"UPDATE prof SET {placeholders} WHERE lname = :oldlname AND fname = :oldfname"
data["oldlname"] = oldlname
data["oldfname"] = oldfname
print(sql, data)
self.cur.execute(sql, data)
self.database.commit()
def faculty_data(self, name):
query = f"SELECT * FROM prof WHERE fullname='{name}'"
result = self.cur.execute(query).fetchone()
return result
def update_user(self, username, data: dict[str, str]):
query = "UPDATE user SET "
for key, value in data.items():
if key == "username":
continue
query += f"{key}='{value}',"
query = query[:-1]
query += " WHERE username=?"
params = (username,)
self.cur.execute(query, params)
self.database.commit()
def check_username(self, username):
query = "SELECT username FROM user WHERE username=?"
params = (username,)
result = self.cur.execute(query, params).fetchone()
if result is None:
return False
return True
def get_apparats_name(self, app_id, prof_id):
query = f"SELECT name FROM semesterapparat WHERE appnr={app_id} AND prof_id={prof_id}"
# ic(query)
result = self.cur.execute(query).fetchone()
return result[0]
def search_book(self, data: dict[str, str]) -> list[tuple[BookData, int]]:
query = "SELECT * FROM media "
result = self.database.execute(query).fetchall()
ret = []
# get length of data dict
length = len(data)
mode = 0
if length == 1:
if "signature" in data.keys():
mode = 1
elif "title" in data.keys():
mode = 2
elif length == 2:
mode = 3
else:
return None
print(len(result))
for res in result:
bookdata = pickle.loads(res[1])
app_id = res[2]
prof_id = res[3]
# if signature and title present in dict:
# if signature present in dict:
if mode == 1:
if data["signature"] in bookdata.signature:
ret.append((bookdata, app_id, prof_id))
# if title present in dict:
elif mode == 2:
if data["title"] in bookdata.title:
ret.append((bookdata, app_id, prof_id))
elif mode == 3:
if (
data["signature"] in bookdata.signature
and data["title"] in bookdata.title
):
ret.append((bookdata, app_id, prof_id))
return ret
if __name__ == "__main__":
db = Database()
print(db.login("kirchner", "loginpass"))

View File

@@ -1,9 +1,10 @@
import pickle
from typing import ByteString, Any
from typing import Any, ByteString
def make_pickle(data:Any):
def make_pickle(data: Any):
return pickle.dumps(data)
def load_pickle(data:ByteString):
def load_pickle(data: ByteString):
return pickle.loads(data)

View File

@@ -1,13 +1,14 @@
import datetime
def generateSemesterByDate():
currentYear = datetime.datetime.now().year
currentYear = int(str(currentYear)[-2:])
month = datetime.datetime.now().month
if month >= 4 and month <= 9:
return "SoSe " + str(currentYear)
currentYear = datetime.datetime.now().year
currentYear = int(str(currentYear)[-2:])
month = datetime.datetime.now().month
if month >= 4 and month <= 9:
return "SoSe " + str(currentYear)
else:
if month == 10 or month == 11:
return f"WiSe {currentYear}/{currentYear+1}"
else:
if month == 10 or month == 11:
return f"WiSe {currentYear}/{currentYear+1}"
else:
return f"WiSe {currentYear-1}/{currentYear}"
return f"WiSe {currentYear-1}/{currentYear}"

View File

@@ -1,9 +1,10 @@
class NoResultError(Exception):
def __init__(self,message):
self.message = f"The query: {message} returned no results"
def __init__(self, message):
self.message = f"The query: {message} returned no results"
super().__init__(self.message)
class AppPresentError(Exception):
def __init__(self, message):
self.message = f"The app {message} is already present in the database"
super().__init__(self.message)
super().__init__(self.message)

View File

@@ -1,2 +1,2 @@
#import basic error classes
from .DatabaseErrors import *
# import basic error classes
from .DatabaseErrors import *

View File

@@ -212,4 +212,4 @@ SEMAP_MEDIA_ACCOUNTS = {
"178": "1008017766",
"179": "1008017899",
"180": "1008017922",
}
}

View File

@@ -7,15 +7,16 @@ def csv_to_list(path: str) -> list[str]:
"""
Extracts the data from a csv file and returns it as a pandas dataframe
"""
with open(path, newline='') as csvfile:
reader = csv.reader(csvfile, delimiter=';', quotechar='|')
with open(path, newline="") as csvfile:
reader = csv.reader(csvfile, delimiter=";", quotechar="|")
ret = []
for row in reader:
print(row)
ret.append(row[0].replace('"', ""))
return ret
return ret
if __name__ == "__main__":
text = csv_to_list("C:/Users/aky547/Desktop/semap/71.csv")
#remove linebreaks
print(text)
# remove linebreaks
print(text)

View File

@@ -2,6 +2,7 @@ import re
from dataclasses import dataclass, field
from enum import Enum
@dataclass
class ApparatData:
prof_title: str | None = None
@@ -101,17 +102,17 @@ class Subjects(Enum):
TECHNIC = (22, "Technik")
THEOLOGY = (23, "Theologie")
ECONOMICS = (24, "Wirtschaftslehre")
@property
def id(self):
return self.value[0]
@property
def name(self):
return self.value[1]
@classmethod
def get_index(cls, name):
for i in cls:
if i.name == name:
return i.id -1
return i.id - 1

View File

@@ -1,24 +1,23 @@
from docx import Document
data={}
wordDoc = Document('files/Semesterapparat - Anmeldung.docx')
data = {}
wordDoc = Document("files/Semesterapparat - Anmeldung.docx")
paragraphs = wordDoc.tables
for table in paragraphs:
for column in table.columns:
cellcount=0
cellcount = 0
for cell in column.cells:
if cellcount<12:
cellcount+=1
print(f'cell:{cell.text}')
if cellcount < 12:
cellcount += 1
print(f"cell:{cell.text}")
# print(f'paragraphs[{i}]: {paragraphs[i]}')
# data[i] = paragraphs[i]
# for i in range(0, len(paragraphs)):
# for i in range(2, len(paragraphs)):
# data[i] = paragraphs[i]
print(data)
# for table in wordDoc.tables:
@@ -26,6 +25,3 @@ print(data)
# print('---')
# for cell in row.cells:
# print(f'cell:{cell.text}')

View File

@@ -1,11 +1,10 @@
import tabula
file = "files/Semesterapparat - Anmeldung.pdf"
file="files/Semesterapparat - Anmeldung.pdf"
def extract_book_data(file):
tables=tabula.read_pdf(file,pages="all",encoding="utf-8",multiple_tables=True)
tabula.read_pdf(file, pages="all", encoding="utf-8", multiple_tables=True)
tabula.convert_into(file, file.replace(".pdf"), output_format="csv", pages="all")
with open("files/Semesterapparat - Anmeldung.csv", "r") as f:
content=f.read()
f.read()

View File

@@ -1,25 +1,38 @@
import logging
import logging.handlers
import os
if not os.path.exists("logs"):
os.mkdir("logs")
#open and close the file to create it
# open and close the file to create it
with open("logs/application.log", "w") as f:
pass
log_filesize = 10 * 1024**2 # 10MB
backups = 5
# Create a common file handler for all loggers
common_file_handler = logging.FileHandler("logs/application.log")
common_file_handler = logging.handlers.RotatingFileHandler(
"logs/application.log",
mode="a",
encoding="utf-8",
maxBytes=log_filesize,
backupCount=backups,
)
common_file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
common_file_handler.setFormatter(formatter)
#set max file size to 10MB, if exceeded, create a new file
# set max file size to 10MB, if exceeded, create a new file
class MyLogger:
def __init__(self, logger_name):
self.logger = logging.getLogger(logger_name)
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(common_file_handler)
self.encoding = "utf-8"
def log_info(self, message: str):
# ensure that the message is encoded in utf-8
@@ -61,6 +74,6 @@ if __name__ == "__main__":
try:
# Simulate an exception
raise Exception("An exception occurred")
except Exception as e:
except Exception:
logger1.log_exception("An exception occurred in Logger1")
logger2.log_exception("An exception occurred in Logger2")

View File

@@ -12,19 +12,15 @@ def pdf_to_csv(path: str) -> pd.DataFrame:
"""
file = PDFQuery(path)
file.load()
#get the text from the pdf file
text_elems = file.extract([
('with_formatter', 'text'),
('all_text', '*')
])
extracted_text = text_elems['all_text']
# get the text from the pdf file
text_elems = file.extract([("with_formatter", "text"), ("all_text", "*")])
extracted_text = text_elems["all_text"]
return extracted_text
if __name__ == "__main__":
text = pdf_to_csv("54_pdf.pdf")
#remove linebreaks
# remove linebreaks
text = text.replace("\n", "")
print(text)

View File

@@ -1,20 +1,24 @@
import yaml
from dataclasses import dataclass, field
import yaml
@dataclass
class Settings:
"""Settings for the app."""
save_path: str
database_name: str
database_path: str
default_apps:bool = True
default_apps: bool = True
custom_applications: list[dict] = field(default_factory=list)
def save_settings(self):
"""Save the settings to the config file."""
with open("config.yaml", "w") as f:
yaml.dump(self.__dict__, f)
#open the config file and load the settings
# open the config file and load the settings
with open("config.yaml", "r") as f:
data = yaml.safe_load(f)

View File

@@ -1,7 +1,8 @@
import sqlite3
import time
from PyQt6.QtCore import QThread, pyqtSignal as Signal
from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend.database import Database
from src.logic.log import MyLogger
@@ -62,8 +63,8 @@ class BookGrabber(QThread):
for rds_item in rds.items:
sign = rds_item.superlocation
loc = rds_item.location
#ic(sign, loc)
#ic(rds_item)
# ic(sign, loc)
# ic(rds_item)
if self.app_id in sign or self.app_id in loc:
state = 1
break

View File

@@ -2,10 +2,11 @@ import os
import sqlite3
import time
#from icecream import ic
# from icecream import ic
from omegaconf import OmegaConf
from PyQt6 import QtWidgets
from PyQt6.QtCore import QThread, pyqtSignal as Signal
from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend.database import Database
from src.logic.log import MyLogger
@@ -26,7 +27,7 @@ class BackgroundChecker(QThread):
class MockAvailCheck:
def __init__(
self, links: list = [], appnumber: int = None, parent=None, books=list[dict]
self, links: list = None, appnumber: int = None, parent=None, books=list[dict]
):
if links is None:
links = []
@@ -58,7 +59,7 @@ class MockAvailCheck:
for item in rds.items:
sign = item.superlocation
loc = item.location
#ic(item.location, item.superlocation)
# ic(item.location, item.superlocation)
if self.appnumber in sign or self.appnumber in loc:
state = 1
book_id = None
@@ -197,18 +198,3 @@ class MailThread(QThread):
def run(self):
self.show_ui()
self.updateSignal.emit(1)

View File

@@ -1,7 +1,8 @@
import time
#from icecream import ic
from PyQt6.QtCore import QThread, pyqtSignal as Signal
# from icecream import ic
from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend.database import Database
from src.logic.log import MyLogger

View File

@@ -1,7 +1,8 @@
import time
#from icecream import ic
from PyQt6.QtCore import QThread, pyqtSignal as Signal
# from icecream import ic
from PyQt6.QtCore import QThread
from PyQt6.QtCore import pyqtSignal as Signal
from src.backend.database import Database
from src.logic.log import MyLogger

View File

@@ -1,14 +1,16 @@
import os
import sqlite3
import threading
import time
import os
from PyQt6.QtCore import QThread, pyqtSignal
from src.backend.database import Database
from src.logic.log import MyLogger
from src.transformers import RDS_AVAIL_DATA
from src.logic.webrequest import BibTextTransformer, WebRequest
import sqlite3
#from icecream import ic
from src.transformers import RDS_AVAIL_DATA
# from icecream import ic
class BookGrabber(QThread):
@@ -19,8 +21,8 @@ class BookGrabber(QThread):
self.is_Running = True
self.logger = MyLogger("Worker")
self.logger.log_info("Starting worker thread")
self.data,self.app_id,self.prof_id,self.mode = self.readFile(filename)
self.data, self.app_id, self.prof_id, self.mode = self.readFile(filename)
self.book_id = None
time.sleep(2)
@@ -68,8 +70,8 @@ class BookGrabber(QThread):
for rds_item in rds.items:
sign = rds_item.superlocation
loc = rds_item.location
#ic(sign, loc)
#ic(rds_item)
# ic(sign, loc)
# ic(rds_item)
if self.app_id in sign or self.app_id in loc:
state = 1
break
@@ -213,7 +215,7 @@ class AutoAdder(QThread):
class MockAvailCheck:
def __init__(
self, links: list = [], appnumber: int = None, parent=None, books=list[dict]
self, links: list = None, appnumber: int = None, parent=None, books=list[dict]
):
if links is None:
links = []
@@ -245,7 +247,7 @@ class MockAvailCheck:
for item in rds.items:
sign = item.superlocation
loc = item.location
#ic(item.location, item.superlocation)
# ic(item.location, item.superlocation)
if self.appnumber in sign or self.appnumber in loc:
state = 1
book_id = None

View File

@@ -16,8 +16,6 @@ from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtCore import QDate, QThread
from PyQt6.QtGui import QColor, QRegularExpressionValidator
# from src.logic.webrequest import BibTextTransformer, WebRequest
# from src.utils import documentationview
from src.backend.admin_console import AdminCommands
from src.backend.create_file import recreateFile
from src.backend.database import Database
@@ -29,7 +27,7 @@ from src.logic.csvparser import csv_to_list
from src.logic.dataclass import ApparatData, BookData
from src.logic.log import MyLogger
from src.logic.wordparser import word_docx_to_csv
from src.ui import ( # Mail_Dialog,
from src.ui import (
App_Ext_Dialog,
FilePicker,
GraphWidget,
@@ -63,7 +61,6 @@ class Medien(medienadder_ui):
return self.comboBox.currentText()
class MyComboBox(QtWidgets.QComboBox):
def __init__(self, parent=None):
@@ -184,18 +181,7 @@ class Ui(Ui_Semesterapparat):
QtWidgets.QScrollBar(), QtCore.Qt.AlignmentFlag.AlignRight
)
# connect contextmenuevent to tablewidget
self.tableWidget_apparate.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.tableWidget_apparate.customContextMenuRequested.connect(
self.open_context_menu
)
self.tableWidget_apparat_media.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.tableWidget_apparat_media.customContextMenuRequested.connect(
self.media_context_menu
)
# enable automatic resizing of columns for book_search_result
self.book_search_result.horizontalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeMode.Stretch
@@ -235,6 +221,9 @@ class Ui(Ui_Semesterapparat):
self.label_20.hide()
self.line_3.hide()
self.avail_status.hide()
self.chkbx_show_del_media.hide()
self.groupBox_2.hide()
self.groupBox.hide()
self.check_deletable.stateChanged.connect(self.gridchange)
self.tableWidget.horizontalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeMode.Stretch
@@ -247,6 +236,9 @@ class Ui(Ui_Semesterapparat):
self.tableWidget.resizeColumnsToContents()
self.tableWidget.resizeRowsToContents()
# set self.app_fach viable inputs to be
# self.app_fach.addItems([subject[1] for subject in self.db.getSubjects()])
# self.app_fach.addItem("")
# self.app_fach.setCurrentText("")
# create a thread, that continually checks the validity of the inputs
@@ -269,10 +261,6 @@ class Ui(Ui_Semesterapparat):
# self.thread_check()
### Admin interface ###
#!admin - create user
#!admin - delete user
#!admin - change user
# TODO:admin - change faculty
self.select_action_box.addItem("")
self.select_action_box.setCurrentText("")
self.hide_all()
@@ -282,7 +270,22 @@ class Ui(Ui_Semesterapparat):
)
self.book_search.clicked.connect(self.search_book)
# enable click functionality for the combobox to allow selection of roles
# Context Menus
self.tableWidget_apparate.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.tableWidget_apparat_media.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.tableWidget_apparate.customContextMenuRequested.connect(
self.open_context_menu
)
self.tableWidget_apparat_media.customContextMenuRequested.connect(
self.media_context_menu
)
self.tableWidget.customContextMenuRequested.connect(
self.statistics_table_context_menu
)
# admin buttons
self.user_frame_addUser.clicked.connect(self.add_user)
@@ -290,6 +293,7 @@ class Ui(Ui_Semesterapparat):
self.update_user.clicked.connect(self.update_user_data)
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
# Create instances to be used by the threads in the application
self.bookGrabber = None
self.availChecker = None
self.mail_thread = None
@@ -322,7 +326,7 @@ class Ui(Ui_Semesterapparat):
"title": title if title != "" else None,
}
params = {key: value for key, value in params.items() if value is not None}
#ic(params)
# ic(params)
retdata = self.db.searchBook(params)
if retdata is None:
return
@@ -378,7 +382,7 @@ class Ui(Ui_Semesterapparat):
password = self.user_create_frame_password.text()
role = self.user_frame_userrole.currentText()
if self.db.checkUsername(username):
#ic("username already exists")
# ic("username already exists")
# self.user_create_frame_error.setText("Der Nutzername ist bereits vergeben")#TODO: implement error message
return
userdata = AdminCommands().create_password(password)
@@ -402,8 +406,10 @@ class Ui(Ui_Semesterapparat):
)
self.user_delete_confirm.setChecked(False)
else:
self.user_delete_err_message.setText("Bitte bestätigen Sie die Löschung des Nutzers") # TODO: implement error message
#ic("please confirm the deletion of the user")
self.user_delete_err_message.setText(
"Bitte bestätigen Sie die Löschung des Nutzers"
) # TODO: implement error message
# ic("please confirm the deletion of the user")
def update_user_data(self):
username = self.user_edit_frame_user_select.currentText()
@@ -752,15 +758,21 @@ class Ui(Ui_Semesterapparat):
def delete_selected_apparats(self):
# get all selected apparats
selected_apparats = []
selected_apparat_rows = []
for i in range(self.tableWidget.rowCount()):
if self.tableWidget.cellWidget(i, 0).isChecked():
selected_apparats.append(self.tableWidget.item(i, 2).text())
selected_apparat_rows.append(i)
# delete all selected apparats
print(selected_apparats)
for apparat in selected_apparats:
self.db.deleteApparat(apparat, self.generateSemester(today=True))
for row in selected_apparat_rows:
# set the background of the row to red
for j in range(5):
self.tableWidget.item(row, j).setBackground(QtGui.QColor(235, 74, 71))
# refresh the table
self.tab_changed()
self.populate_tab()
self.btn_del_select_apparats.setEnabled(False)
def statistics(self):
@@ -842,7 +854,7 @@ class Ui(Ui_Semesterapparat):
def populate_frame(self, appdata: ApparatData):
# populate the frame with the data from the database
#ic(appdata)
# ic(appdata)
self.drpdwn_app_nr.setCurrentText(str(appdata.appnr))
self.prof_title.setText(appdata.prof_title)
prof_name = appdata.profname.split(" ")
@@ -912,6 +924,8 @@ class Ui(Ui_Semesterapparat):
self.update_app_media_list()
self.cancel_active_selection.click()
self.check_send_mail.show()
self.chkbx_show_del_media.show()
def confirm_popup(self, message: str):
dial = QtWidgets.QDialog()
@@ -1052,7 +1066,7 @@ class Ui(Ui_Semesterapparat):
return
selected_prof = self.drpdwn_prof_name.currentText()
data = self.db.getProfData(selected_prof)
#ic(data)
# ic(data)
prof_title = data[2]
if prof_title == "None":
prof_title = "Kein Titel"
@@ -1071,12 +1085,13 @@ class Ui(Ui_Semesterapparat):
return None
def load_app_data(self, app_id=None):
print(type(app_id))
if isinstance(app_id, str):
# double click the tableWidget_apparate row with the given app_id
row, column = self.get_index_of_value(self.tableWidget_apparate, app_id)
# set the current index to the row
self.tableWidget_apparate.setCurrentCell(row, 0)
self.check_send_mail.hide()
app_pos = self.tableWidget_apparate.currentIndex()
appnr = self.tableWidget_apparate.item(app_pos.row(), 0).text()
appname = self.tableWidget_apparate.item(app_pos.row(), 1).text()
@@ -1089,6 +1104,7 @@ class Ui(Ui_Semesterapparat):
self.populate_frame(appdata)
self.btn_apparat_save.hide()
self.btn_reserve.show()
self.chkbx_show_del_media.show()
self.drpdwn_app_nr.setDisabled(True)
self.update_app_media_list()
self.update_documemt_list()
@@ -1128,9 +1144,7 @@ class Ui(Ui_Semesterapparat):
self.chkbx_show_del_media.setEnabled(True)
self.drpdwn_app_nr.setEnabled(True)
self.app_fach.setEnabled(True)
self.app_fach.addItems([subject[1] for subject in self.db.getSubjects()])
self.app_fach.addItem("")
self.app_fach.setCurrentText("")
if self.tableWidget_apparat_media.rowCount() > 0:
self.tableWidget_apparat_media.setRowCount(0)
# clear all fields
@@ -1281,6 +1295,9 @@ class Ui(Ui_Semesterapparat):
self.dokument_list.setRowCount(0)
self.frame.setEnabled(False)
self.app_fach.setCurrentText("")
self.chkbx_show_del_media.hide()
self.check_send_mail.hide()
self.btn_reserve.hide()
for child in self.frame.findChildren(QtWidgets.QLineEdit):
child.clear()
@@ -1297,7 +1314,7 @@ class Ui(Ui_Semesterapparat):
# booklist:list[BookData]=[book[0] for book in books]
self.tableWidget_apparat_media.setRowCount(0)
for book in books:
book_id = book["id"]
book["id"]
book_data = book["bookdata"]
availability = book["available"]
# bd = BookData().from_string(book)
@@ -1587,7 +1604,7 @@ class Ui(Ui_Semesterapparat):
]
signatures = [i for i in signatures if i != ""]
#ic(signatures)
# ic(signatures)
print("starting thread")
self.autoGrabber = BookGrabber(
mode="ARRAY", app_id=app_id, prof_id=prof_id, data=signatures
@@ -1638,6 +1655,7 @@ class Ui(Ui_Semesterapparat):
self.drpdwn_prof_name.clear()
self.tableWidget_apparat_media.setRowCount(0)
self.frame.setEnabled(False)
self.check_send_mail.setChecked(False)
if not self.validate_fields():
self.confirm_popup("Bitte alle Pflichtfelder ausfüllen!")
@@ -1718,7 +1736,7 @@ class Ui(Ui_Semesterapparat):
self.old_apparats = self.apparats
def insert_apparat_into_table(self, apparat):
#ic(apparat)
# ic(apparat)
def __dauer_check(apparat):
return "Ja" if apparat[7] == 1 else "Nein"
@@ -1741,7 +1759,7 @@ class Ui(Ui_Semesterapparat):
0,
3,
QtWidgets.QTableWidgetItem(
str(apparat[8]) if apparat[8] != None else apparat[5]
str(apparat[8]) if apparat[8] is not None else apparat[5]
),
)
self.tableWidget_apparate.setItem(
@@ -1766,6 +1784,23 @@ class Ui(Ui_Semesterapparat):
remind_action.triggered.connect(self.reminder)
menu.exec(self.tableWidget_apparate.mapToGlobal(position))
def statistics_table_context_menu(self, position):
menu = QtWidgets.QMenu()
restore_action = menu.addAction("Wiederherstellen")
menu.addAction(restore_action)
restore_action.triggered.connect(self.restore_apparat)
menu.exec(self.tableWidget.mapToGlobal(position))
def restore_apparat(self):
row = self.tableWidget.currentRow()
apparat = self.tableWidget.item(row, 1).text()
ic(apparat)
apparat_id = self.db.getApparatId(apparat)
# restore the apparat
self.db.restoreApparat(apparat_id)
# update the table
self.reload()
def reminder(self):
self.logger.log_info("Opening reminder dialog")
dialog = QtWidgets.QDialog()
@@ -1850,7 +1885,7 @@ class Ui(Ui_Semesterapparat):
print(data)
OmegaConf.save(data, "config.yaml")
# re-load the config
config = OmegaConf.load("config.yaml")
OmegaConf.load("config.yaml")
self.logger.log_info("Saved settings to config.yaml")
self.reload()
@@ -2080,43 +2115,3 @@ if __name__ == "__main__":
# app.exec()
# open login screen
launch_gui()

View File

@@ -2,11 +2,12 @@ import requests
from bs4 import BeautifulSoup
from omegaconf import OmegaConf
# import sleep_and_retry decorator to retry requests
from ratelimit import limits, sleep_and_retry
from src.logic.dataclass import BookData
from src.logic.log import MyLogger
from src.transformers import ARRAYData, BibTeXData, COinSData, RDSData, RISData
#import sleep_and_retry decorator to retry requests
from ratelimit import limits, sleep_and_retry
logger = MyLogger(__name__)
config = OmegaConf.load("config.yaml")
@@ -121,6 +122,7 @@ class BibTextTransformer:
if RDS_IDENT in line:
self.data = line
return self
def return_data(self, option=None) -> BookData:
"""Return Data to caller.

View File

@@ -1,6 +1,8 @@
from .transformers import (RDS_AVAIL_DATA,
ARRAYData,
COinSData,
BibTeXData,
RISData,
RDSData)
from .transformers import (
RDS_AVAIL_DATA,
ARRAYData,
BibTeXData,
COinSData,
RDSData,
RISData,
)

View File

@@ -131,7 +131,7 @@ class ARRAYData:
.strip()
)
except Exception as e:
except Exception:
logger.log_exception("ARRAYData.transform failed")
return ""

View File

@@ -14,15 +14,18 @@ class Ui_MainWindow(object):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowModality(QtCore.Qt.WindowModality.WindowModal)
MainWindow.setEnabled(True)
MainWindow.resize(1601, 800)
MainWindow.resize(1589, 800)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1278, 800))
MainWindow.setMaximumSize(QtCore.QSize(1920, 800))
MainWindow.setMaximumSize(QtCore.QSize(1590, 800))
MainWindow.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icons/logo.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
MainWindow.setWindowIcon(icon)
MainWindow.setStatusTip("")
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
@@ -81,7 +84,7 @@ class Ui_MainWindow(object):
self.tableWidget_apparate = QtWidgets.QTableWidget(parent=self.horizontalLayoutWidget_2)
self.tableWidget_apparate.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparate.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.SelectedClicked)
self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget_apparate.setAlternatingRowColors(True)
self.tableWidget_apparate.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
@@ -130,7 +133,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setCheckable(False)
@@ -140,7 +142,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
font.setKerning(False)
self.dokument_list.setFont(font)
self.dokument_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
@@ -189,7 +190,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.sem_winter = QtWidgets.QRadioButton(parent=self.frame)
@@ -197,7 +197,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_winter.setFont(font)
self.sem_winter.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.sem_winter.setObjectName("sem_winter")
@@ -206,7 +205,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.drpdwn_app_nr = QtWidgets.QComboBox(parent=self.frame)
@@ -214,7 +212,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.drpdwn_app_nr.setFont(font)
self.drpdwn_app_nr.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhDigitsOnly)
self.drpdwn_app_nr.setEditable(True)
@@ -224,7 +221,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.app_name.setFont(font)
self.app_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.app_name.setObjectName("app_name")
@@ -233,7 +229,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_sommer.setFont(font)
self.sem_sommer.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.sem_sommer.setObjectName("sem_sommer")
@@ -242,7 +237,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.label_6 = QtWidgets.QLabel(parent=self.frame)
@@ -250,7 +244,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.sem_year = QtWidgets.QLineEdit(parent=self.frame)
@@ -258,7 +251,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_year.setFont(font)
self.sem_year.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.sem_year.setMaxLength(4)
@@ -268,7 +260,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.btn_apparat_save = QtWidgets.QPushButton(parent=self.frame)
@@ -276,7 +267,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_save.setFont(font)
self.btn_apparat_save.setObjectName("btn_apparat_save")
self.btn_apparat_apply = QtWidgets.QPushButton(parent=self.frame)
@@ -284,7 +274,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_apply.setFont(font)
self.btn_apparat_apply.setObjectName("btn_apparat_apply")
self.check_eternal_app = QtWidgets.QCheckBox(parent=self.frame)
@@ -292,7 +281,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.check_eternal_app.setFont(font)
self.check_eternal_app.setObjectName("check_eternal_app")
self.label_8 = QtWidgets.QLabel(parent=self.frame)
@@ -300,7 +288,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.prof_mail = QtWidgets.QLineEdit(parent=self.frame)
@@ -308,7 +295,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_mail.setFont(font)
self.prof_mail.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhEmailCharactersOnly)
self.prof_mail.setMaxLength(200)
@@ -319,7 +305,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_9.setFont(font)
self.label_9.setObjectName("label_9")
self.prof_tel_nr = QtWidgets.QLineEdit(parent=self.frame)
@@ -327,7 +312,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_tel_nr.setFont(font)
self.prof_tel_nr.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhDigitsOnly)
self.prof_tel_nr.setPlaceholderText("")
@@ -337,7 +321,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_10.setFont(font)
self.label_10.setObjectName("label_10")
self.drpdwn_prof_name = QtWidgets.QComboBox(parent=self.frame)
@@ -345,7 +328,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.drpdwn_prof_name.setFont(font)
self.drpdwn_prof_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.drpdwn_prof_name.setEditable(True)
@@ -358,7 +340,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.mail_mand.setFont(font)
self.mail_mand.setObjectName("mail_mand")
self.telnr_mand = QtWidgets.QLabel(parent=self.frame)
@@ -366,7 +347,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.telnr_mand.setFont(font)
self.telnr_mand.setObjectName("telnr_mand")
self.profname_mand = QtWidgets.QLabel(parent=self.frame)
@@ -374,7 +354,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.profname_mand.setFont(font)
self.profname_mand.setObjectName("profname_mand")
self.appname_mand = QtWidgets.QLabel(parent=self.frame)
@@ -382,7 +361,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.appname_mand.setFont(font)
self.appname_mand.setObjectName("appname_mand")
self.fach_mand = QtWidgets.QLabel(parent=self.frame)
@@ -390,7 +368,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.fach_mand.setFont(font)
self.fach_mand.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.fach_mand.setObjectName("fach_mand")
@@ -399,7 +376,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self._mand.setFont(font)
self._mand.setObjectName("_mand")
self.btn_add_document = QtWidgets.QPushButton(parent=self.frame)
@@ -407,7 +383,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_add_document.setFont(font)
self.btn_add_document.setObjectName("btn_add_document")
self.btn_open_document = QtWidgets.QPushButton(parent=self.frame)
@@ -415,7 +390,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_open_document.setFont(font)
self.btn_open_document.setObjectName("btn_open_document")
self.check_file = QtWidgets.QPushButton(parent=self.frame)
@@ -423,7 +397,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.check_file.setFont(font)
self.check_file.setObjectName("check_file")
self.formLayoutWidget_2 = QtWidgets.QWidget(parent=self.frame)
@@ -436,7 +409,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_12.setFont(font)
self.label_12.setObjectName("label_12")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_12)
@@ -444,19 +416,24 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_id_adis.setFont(font)
self.prof_id_adis.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhPreferNumbers)
self.prof_id_adis.setText("")
self.prof_id_adis.setObjectName("prof_id_adis")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.prof_id_adis)
self.label_13 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_13.setFont(font)
self.label_13.setObjectName("label_13")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_13)
self.apparat_id_adis = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
self.apparat_id_adis.setFont(font)
self.apparat_id_adis.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhPreferNumbers)
self.apparat_id_adis.setObjectName("apparat_id_adis")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.apparat_id_adis)
self.check_send_mail = QtWidgets.QCheckBox(parent=self.frame)
@@ -464,7 +441,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.check_send_mail.setFont(font)
self.check_send_mail.setObjectName("check_send_mail")
self.frame_3 = QtWidgets.QFrame(parent=self.frame)
@@ -483,7 +459,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.app_fach.setFont(font)
self.app_fach.setObjectName("app_fach")
self.gridLayout_6.addWidget(self.app_fach, 0, 0, 1, 1)
@@ -494,7 +469,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_title.setFont(font)
self.prof_title.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.prof_title.setObjectName("prof_title")
@@ -569,7 +543,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1)
@@ -797,6 +770,7 @@ class Ui_MainWindow(object):
self.tableWidget = QtWidgets.QTableWidget(parent=self.table)
self.tableWidget.setGeometry(QtCore.QRect(0, 0, 761, 391))
self.tableWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(5)
@@ -1071,7 +1045,6 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.appdata_check.setFont(font)
self.appdata_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.appdata_check.setObjectName("appdata_check")
@@ -1080,16 +1053,14 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.media_check.setFont(font)
self.media_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.media_check.setObjectName("media_check")
self.ids_check = QtWidgets.QCheckBox(parent=self.groupBox_2)
self.ids_check.setGeometry(QtCore.QRect(20, 140, 241, 41))
self.ids_check.setGeometry(QtCore.QRect(20, 110, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.ids_check.setFont(font)
self.ids_check.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.ids_check.setObjectName("ids_check")
@@ -1108,7 +1079,6 @@ class Ui_MainWindow(object):
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault)
self.media_checked.setFont(font)
@@ -1121,7 +1091,6 @@ class Ui_MainWindow(object):
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault)
self.media_edited_check.setFont(font)
@@ -1134,7 +1103,6 @@ class Ui_MainWindow(object):
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault)
self.app_created.setFont(font)
@@ -1147,7 +1115,6 @@ class Ui_MainWindow(object):
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault)
self.btn_copy_adis_command.setFont(font)
@@ -1155,9 +1122,9 @@ class Ui_MainWindow(object):
self.btn_copy_adis_command.setWhatsThis("")
self.btn_copy_adis_command.setAccessibleDescription("")
self.btn_copy_adis_command.setAutoFillBackground(False)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\../../../.designer/backup/icons/information.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.btn_copy_adis_command.setIcon(icon)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\../../../../../../.designer/backup/icons/information.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
self.btn_copy_adis_command.setIcon(icon1)
self.btn_copy_adis_command.setCheckable(False)
self.btn_copy_adis_command.setChecked(False)
self.btn_copy_adis_command.setAutoDefault(False)
@@ -1205,7 +1172,7 @@ class Ui_MainWindow(object):
self.label_total_day_messages.setObjectName("label_total_day_messages")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1601, 30))
self.menubar.setGeometry(QtCore.QRect(0, 0, 1589, 22))
self.menubar.setObjectName("menubar")
self.menuDatei = QtWidgets.QMenu(parent=self.menubar)
self.menuDatei.setObjectName("menuDatei")
@@ -1235,30 +1202,30 @@ class Ui_MainWindow(object):
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
self.tabWidget_2.setCurrentIndex(1)
self.stackedWidget_4.setCurrentIndex(1)
self.tabWidget_3.setCurrentIndex(1)
self.tabWidget_2.setCurrentIndex(0)
self.stackedWidget_4.setCurrentIndex(0)
self.tabWidget_3.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.drpdwn_app_nr, self.drpdwn_prof_name)
MainWindow.setTabOrder(self.drpdwn_app_nr, self.prof_title)
MainWindow.setTabOrder(self.prof_title, self.drpdwn_prof_name)
MainWindow.setTabOrder(self.drpdwn_prof_name, self.prof_mail)
MainWindow.setTabOrder(self.prof_mail, self.prof_tel_nr)
MainWindow.setTabOrder(self.prof_tel_nr, self.app_name)
MainWindow.setTabOrder(self.app_name, self.sem_year)
MainWindow.setTabOrder(self.app_name, self.app_fach)
MainWindow.setTabOrder(self.app_fach, self.sem_year)
MainWindow.setTabOrder(self.sem_year, self.check_eternal_app)
MainWindow.setTabOrder(self.check_eternal_app, self.btn_add_document)
MainWindow.setTabOrder(self.btn_add_document, self.btn_open_document)
MainWindow.setTabOrder(self.btn_open_document, self.check_file)
MainWindow.setTabOrder(self.check_file, self.btn_apparat_save)
MainWindow.setTabOrder(self.check_file, self.check_send_mail)
MainWindow.setTabOrder(self.check_send_mail, self.btn_apparat_save)
MainWindow.setTabOrder(self.btn_apparat_save, self.btn_apparat_apply)
MainWindow.setTabOrder(self.btn_apparat_apply, self.check_send_mail)
MainWindow.setTabOrder(self.check_send_mail, self.chkbx_show_del_media)
MainWindow.setTabOrder(self.chkbx_show_del_media, self.btn_reserve)
MainWindow.setTabOrder(self.btn_reserve, self.prof_id_adis)
MainWindow.setTabOrder(self.btn_apparat_apply, self.prof_id_adis)
MainWindow.setTabOrder(self.prof_id_adis, self.apparat_id_adis)
MainWindow.setTabOrder(self.apparat_id_adis, self.tabWidget_2)
MainWindow.setTabOrder(self.tabWidget_2, self.btn_del_select_apparats)
MainWindow.setTabOrder(self.btn_del_select_apparats, self.tabWidget_3)
MainWindow.setTabOrder(self.tabWidget_3, self.select_action_box)
MainWindow.setTabOrder(self.tabWidget_2, self.seach_by_signature)
MainWindow.setTabOrder(self.seach_by_signature, self.search_by_title)
MainWindow.setTabOrder(self.search_by_title, self.select_action_box)
MainWindow.setTabOrder(self.select_action_box, self.user_create_frame_username)
MainWindow.setTabOrder(self.user_create_frame_username, self.user_frame_userrole)
MainWindow.setTabOrder(self.user_frame_userrole, self.user_create_frame_password)
@@ -1272,9 +1239,7 @@ class Ui_MainWindow(object):
MainWindow.setTabOrder(self.user_edit_frame_new_password, self.update_user)
MainWindow.setTabOrder(self.update_user, self.edit_faculty_member_title)
MainWindow.setTabOrder(self.edit_faculty_member_title, self.edit_faculty_member_select_member)
MainWindow.setTabOrder(self.edit_faculty_member_select_member, self.faculty_member_old_telnr)
MainWindow.setTabOrder(self.faculty_member_old_telnr, self.faculty_member_oldmail)
MainWindow.setTabOrder(self.faculty_member_oldmail, self.edit_faculty_member_new_title)
MainWindow.setTabOrder(self.edit_faculty_member_select_member, self.edit_faculty_member_new_title)
MainWindow.setTabOrder(self.edit_faculty_member_new_title, self.edit_faculty_member_new_surname)
MainWindow.setTabOrder(self.edit_faculty_member_new_surname, self.user_faculty_member_new_name)
MainWindow.setTabOrder(self.user_faculty_member_new_name, self.user_faculty_member_new_mail)
@@ -1290,6 +1255,12 @@ class Ui_MainWindow(object):
MainWindow.setTabOrder(self.box_dauerapp, self.box_appnrs)
MainWindow.setTabOrder(self.box_appnrs, self.btn_copy_adis_command)
MainWindow.setTabOrder(self.btn_copy_adis_command, self.spin_select_message)
MainWindow.setTabOrder(self.spin_select_message, self.chkbx_show_del_media)
MainWindow.setTabOrder(self.chkbx_show_del_media, self.btn_reserve)
MainWindow.setTabOrder(self.btn_reserve, self.book_search)
MainWindow.setTabOrder(self.book_search, self.btn_del_select_apparats)
MainWindow.setTabOrder(self.btn_del_select_apparats, self.tabWidget_3)
MainWindow.setTabOrder(self.tabWidget_3, self.book_search_result)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
@@ -1298,7 +1269,7 @@ class Ui_MainWindow(object):
self.load_app.setText(_translate("MainWindow", "App. aufrufen"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
self.cancel_active_selection.setText(_translate("MainWindow", "Auswahl abbrechen"))
self.tableWidget_apparate.setSortingEnabled(True)
self.tableWidget_apparate.setSortingEnabled(False)
item = self.tableWidget_apparate.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "AppNr"))
item = self.tableWidget_apparate.horizontalHeaderItem(1)

View File

@@ -84,4 +84,3 @@ class Ui_Wizard(object):
self.label_3.setText(_translate("Wizard", "Save Path"))
self.save_path.setPlaceholderText(_translate("Wizard", "~/Desktop/SemapFiles"))
self.btn_save_path_select.setText(_translate("Wizard", "..."))

View File

@@ -8,20 +8,15 @@ from .dialogs import (
fileparser_ui,
login_ui,
medienadder_ui,
new_subject_ui,
parsed_titles_ui,
popus_confirm,
reminder_ui,
settings_ui,
new_subject_ui,
)
from .Ui_semesterapparat_ui import Ui_MainWindow as Ui_Semesterapparat
from .Ui_setupwizard import Ui_Wizard as SetupWizard
from .widgets import (
FilePicker,
GraphWidget,
Message_Widget,
StatusWidget,
)
from .widgets import FilePicker, GraphWidget, Message_Widget, StatusWidget
path = pathlib.Path(__file__).parent.absolute()
# from .mainwindow import Ui_MainWindow as Ui_MainWindow

1
src/ui/icons/email.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#99AAB5" d="M11.95 17.636L.637 28.949c-.027.028-.037.063-.06.091.34.57.814 1.043 1.384 1.384.029-.023.063-.033.09-.06L13.365 19.05c.39-.391.39-1.023 0-1.414-.392-.391-1.024-.391-1.415 0M35.423 29.04c-.021-.028-.033-.063-.06-.09L24.051 17.636c-.392-.391-1.024-.391-1.415 0s-.391 1.023 0 1.414l11.313 11.314c.026.026.062.037.09.06.571-.34 1.044-.814 1.384-1.384"/><path fill="#99AAB5" d="M32 5H4C1.791 5 0 6.791 0 9v1.03l14.528 14.496c1.894 1.893 4.988 1.893 6.884 0L36 10.009V9c0-2.209-1.791-4-4-4z"/><path fill="#E1E8ED" d="M32 5H4C2.412 5 1.051 5.934.405 7.275l14.766 14.767c1.562 1.562 4.096 1.562 5.657 0L35.595 7.275C34.949 5.934 33.589 5 32 5z"/><path fill="#66757F" d="M15 9.27c0-.73.365-1.27 1-1.27h3.62c.839 0 1.174.49 1.174 1 0 .496-.349 1-1.035 1h-2.708v2h2.533c.716 0 1.065.489 1.065 1 0 .496-.366 1-1.065 1h-2.533v2h2.84c.699 0 1.037.489 1.037 1 0 .496-.353 1-1.037 1h-3.766C15.482 18 15 17.469 15 16.812V9.27z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
src/ui/icons/locked.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#AAB8C2" d="M13 3C7.477 3 3 7.477 3 13v10h4V13c0-3.313 2.687-6 6-6s6 2.687 6 6v10h4V13c0-5.523-4.477-10-10-10z"/><path fill="#FFAC33" d="M26 32c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V20c0-2.209 1.791-4 4-4h18c2.209 0 4 1.791 4 4v12z"/><path fill="#C1694F" d="M35 9c0-4.971-4.029-9-9-9s-9 4.029-9 9c0 3.917 2.507 7.24 6 8.477V33.5c0 1.381 1.119 2.5 2.5 2.5 1.213 0 2.223-.864 2.45-2.01.018.001.032.01.05.01.553 0 1-.447 1-1v-1c0-.553-.447-1-1-1v-1c.553 0 1-.447 1-1v-2c0-.553-.447-1-1-1v-2.277c.596-.347 1-.984 1-1.723v-4.523c3.493-1.236 6-4.559 6-8.477zm-9-7c1.104 0 2 .896 2 2s-.896 2-2 2-2-.896-2-2 .896-2 2-2z"/></svg>

After

Width:  |  Height:  |  Size: 697 B

BIN
src/ui/icons/logo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

1
src/ui/icons/plus.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#31373D" d="M31 15H21V5c0-1.657-1.343-3-3-3s-3 1.343-3 3v10H5c-1.657 0-3 1.343-3 3s1.343 3 3 3h10v10c0 1.657 1.343 3 3 3s3-1.343 3-3V21h10c1.657 0 3-1.343 3-3s-1.343-3-3-3z"/></svg>

After

Width:  |  Height:  |  Size: 253 B

View File

@@ -1,28 +1,35 @@
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PySide6 UI code generator 6.3.1
# Created by: PyQt6 UI code generator 6.3.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 720)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.centralwidget.sizePolicy().hasHeightForWidth()
)
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
@@ -38,7 +45,10 @@ class Ui_MainWindow(object):
self.tabWidget = QtWidgets.QTabWidget(self.verticalLayoutWidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred,
QtWidgets.QSizePolicy.Policy.Preferred,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
@@ -54,7 +64,12 @@ class Ui_MainWindow(object):
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem)
self.load_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setObjectName("load_app")
@@ -62,10 +77,19 @@ class Ui_MainWindow(object):
self.create_new_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem1)
self.formLayout.setLayout(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QtWidgets.QTableWidget(self.horizontalLayoutWidget_2)
self.formLayout.setLayout(
0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2
)
self.tableWidget_apparate = QtWidgets.QTableWidget(
self.horizontalLayoutWidget_2
)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.tableWidget_apparate.setColumnCount(4)
self.tableWidget_apparate.setRowCount(0)
@@ -77,13 +101,19 @@ class Ui_MainWindow(object):
self.tableWidget_apparate.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, item)
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate)
self.formLayout.setWidget(
0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate
)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3)
self.formLayout.setLayout(
2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3
)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4)
self.formLayout.setLayout(
1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4
)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QtWidgets.QFrame(self.tab)
self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21))
@@ -118,17 +148,26 @@ class Ui_MainWindow(object):
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 1, 0, 1, 1)
self.app_group_box = QtWidgets.QGroupBox(self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.app_group_box.sizePolicy().hasHeightForWidth()
)
self.app_group_box.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setAlignment(
QtCore.Qt.AlignmentFlag.AlignLeading
| QtCore.Qt.AlignmentFlag.AlignLeft
| QtCore.Qt.AlignmentFlag.AlignVCenter
)
self.app_group_box.setCheckable(False)
self.app_group_box.setObjectName("app_group_box")
self.tableWidget = QtWidgets.QTableWidget(self.app_group_box)
@@ -142,7 +181,9 @@ class Ui_MainWindow(object):
self.tableWidget.setHorizontalHeaderItem(1, item)
self.frame = QtWidgets.QFrame(self.app_group_box)
self.frame.setGeometry(QtCore.QRect(10, 30, 731, 151))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
@@ -304,7 +345,9 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.load_app.setToolTip(_translate("MainWindow", "Load the Semesterapparate from the database"))
self.load_app.setToolTip(
_translate("MainWindow", "Load the Semesterapparate from the database")
)
self.load_app.setText(_translate("MainWindow", "App. Laden"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
item = self.tableWidget_apparate.horizontalHeaderItem(0)
@@ -344,14 +387,19 @@ class Ui_MainWindow(object):
self.btn_add_document.setText(_translate("MainWindow", "Dokument hinzufügen"))
self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen"))
self.toolButton.setText(_translate("MainWindow", "..."))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1")
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2")
)
self.menuDatei.setTitle(_translate("MainWindow", "Datei"))
self.menuEinstellungen.setTitle(_translate("MainWindow", "Einstellungen"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()

View File

@@ -3,7 +3,7 @@
# Created by: The Resource Compiler for Qt version 6.6.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
from PyQt6 import QtCore
qt_resource_data = b"\
\x00\x00\x00\xde\
@@ -131,25 +131,32 @@ qt_resource_struct = b"\
\x00\x00\x00b\x00\x02\x00\x00\x00\x01\x00\x00\x00\x06\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x02\xdb\
\x00\x00\x01\x8d\xabem#\
\x00\x00\x01\x8e,\x5c5%\
\x00\x00\x00b\x00\x02\x00\x00\x00\x01\x00\x00\x00\x08\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x00\xe2\
\x00\x00\x01\x8d\xabem!\
\x00\x00\x01\x8e,\x5c5\x22\
\x00\x00\x00b\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0a\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x01\xdb\
\x00\x00\x01\x8d\xabem!\
\x00\x00\x01\x8e,\x5c5!\
\x00\x00\x00b\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0c\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00r\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x8d\xabem#\
\x00\x00\x01\x8e,\x5c5'\
"
def qInitResources():
QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
QtCore.qRegisterResourceData(
0x03, qt_resource_struct, qt_resource_name, qt_resource_data
)
def qCleanupResources():
QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data)
QtCore.qUnregisterResourceData(
0x03, qt_resource_struct, qt_resource_name, qt_resource_data
)
qInitResources()

View File

@@ -1,28 +1,35 @@
# Form implementation generated from reading ui file 'ui/semesterapparat_ui.ui'
#
# Created by: PySide6 UI code generator 6.3.1
# Created by: PyQt6 UI code generator 6.3.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 747)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.centralwidget.sizePolicy().hasHeightForWidth()
)
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
@@ -39,7 +46,10 @@ class Ui_MainWindow(object):
self.tabWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred,
QtWidgets.QSizePolicy.Policy.Preferred,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
@@ -55,7 +65,12 @@ class Ui_MainWindow(object):
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem)
self.load_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
@@ -65,12 +80,23 @@ class Ui_MainWindow(object):
self.create_new_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem1)
self.formLayout.setLayout(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QtWidgets.QTableWidget(self.horizontalLayoutWidget_2)
self.formLayout.setLayout(
0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2
)
self.tableWidget_apparate = QtWidgets.QTableWidget(
self.horizontalLayoutWidget_2
)
self.tableWidget_apparate.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget_apparate.setEditTriggers(
QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers
)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.tableWidget_apparate.setColumnCount(4)
self.tableWidget_apparate.setRowCount(0)
@@ -82,13 +108,19 @@ class Ui_MainWindow(object):
self.tableWidget_apparate.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, item)
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate)
self.formLayout.setWidget(
0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate
)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3)
self.formLayout.setLayout(
2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3
)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4)
self.formLayout.setLayout(
1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4
)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QtWidgets.QFrame(self.tab)
self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21))
@@ -102,17 +134,26 @@ class Ui_MainWindow(object):
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.app_group_box = QtWidgets.QGroupBox(self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.app_group_box.sizePolicy().hasHeightForWidth()
)
self.app_group_box.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setAlignment(
QtCore.Qt.AlignmentFlag.AlignLeading
| QtCore.Qt.AlignmentFlag.AlignLeft
| QtCore.Qt.AlignmentFlag.AlignVCenter
)
self.app_group_box.setCheckable(False)
self.app_group_box.setObjectName("app_group_box")
self.dokument_list = QtWidgets.QTableWidget(self.app_group_box)
@@ -121,7 +162,9 @@ class Ui_MainWindow(object):
font.setKerning(False)
self.dokument_list.setFont(font)
self.dokument_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.dokument_list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection)
self.dokument_list.setSelectionMode(
QtWidgets.QAbstractItemView.SelectionMode.SingleSelection
)
self.dokument_list.setObjectName("dokument_list")
self.dokument_list.setColumnCount(4)
self.dokument_list.setRowCount(0)
@@ -148,7 +191,9 @@ class Ui_MainWindow(object):
self.frame = QtWidgets.QFrame(self.app_group_box)
self.frame.setEnabled(True)
self.frame.setGeometry(QtCore.QRect(10, 30, 731, 151))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
@@ -331,7 +376,9 @@ class Ui_MainWindow(object):
self.drpdwn_prof_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.drpdwn_prof_name.setEditable(True)
self.drpdwn_prof_name.setCurrentText("")
self.drpdwn_prof_name.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically)
self.drpdwn_prof_name.setInsertPolicy(
QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically
)
self.drpdwn_prof_name.setFrame(True)
self.drpdwn_prof_name.setObjectName("drpdwn_prof_name")
self.btn_add_document = QtWidgets.QPushButton(self.app_group_box)
@@ -445,7 +492,9 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.load_app.setToolTip(_translate("MainWindow", "Load the Semesterapparate from the database"))
self.load_app.setToolTip(
_translate("MainWindow", "Load the Semesterapparate from the database")
)
self.load_app.setText(_translate("MainWindow", "App. aufrufen"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
item = self.tableWidget_apparate.horizontalHeaderItem(0)
@@ -483,7 +532,9 @@ class Ui_MainWindow(object):
self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen"))
self.toolButton.setText(_translate("MainWindow", "..."))
self.label_7.setText(_translate("MainWindow", "Suche"))
self.search_media.setPlaceholderText(_translate("MainWindow", "Buch oder Signatur"))
self.search_media.setPlaceholderText(
_translate("MainWindow", "Buch oder Signatur")
)
self.label.setText(_translate("MainWindow", "Medienliste"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Buchtitel"))
@@ -493,17 +544,27 @@ class Ui_MainWindow(object):
item.setText(_translate("MainWindow", "Auflage"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Signatur"))
self.search.setToolTip(_translate("MainWindow", "Sucht im Katalog nach allen Medien, die die Apparatsnummer enthalten"))
self.search.setToolTip(
_translate(
"MainWindow",
"Sucht im Katalog nach allen Medien, die die Apparatsnummer enthalten",
)
)
self.search.setText(_translate("MainWindow", "Suche"))
self.add_medium.setText(_translate("MainWindow", "Medium hinzufügen"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1")
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2")
)
self.menuDatei.setTitle(_translate("MainWindow", "Datei"))
self.menuEinstellungen.setTitle(_translate("MainWindow", "Einstellungen"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()

View File

@@ -40,6 +40,10 @@
<property name="windowTitle">
<string>Semesterapparatsmanagement</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>../../icons/logo.ico</normaloff>../../icons/logo.ico</iconset>
</property>
<property name="statusTip">
<string/>
</property>
@@ -70,7 +74,7 @@
<enum>Qt::NoFocus</enum>
</property>
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<property name="sizePolicy">
@@ -166,7 +170,7 @@
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::SelectedClicked</set>
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
@@ -175,7 +179,7 @@
<enum>Qt::ElideMiddle</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
<bool>false</bool>
</property>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>true</bool>
@@ -986,6 +990,12 @@
<bold>false</bold>
</font>
</property>
<property name="inputMethodHints">
<set>Qt::ImhPreferNumbers</set>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
@@ -1002,7 +1012,17 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="apparat_id_adis"/>
<widget class="QLineEdit" name="apparat_id_adis">
<property name="font">
<font>
<pointsize>9</pointsize>
<bold>false</bold>
</font>
</property>
<property name="inputMethodHints">
<set>Qt::ImhPreferNumbers</set>
</property>
</widget>
</item>
</layout>
</widget>
@@ -1402,7 +1422,7 @@
</size>
</property>
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab_3">
<attribute name="title">
@@ -1646,7 +1666,7 @@
</rect>
</property>
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab_6">
<attribute name="title">
@@ -1791,6 +1811,9 @@
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
@@ -2613,7 +2636,7 @@
</property>
<property name="icon">
<iconset>
<normaloff>../../../../../.designer/backup/icons/information.png</normaloff>../../../../../.designer/backup/icons/information.png</iconset>
<normaloff>../../../../../../.designer/backup/icons/information.png</normaloff>../../../../../../.designer/backup/icons/information.png</iconset>
</property>
<property name="checkable">
<bool>false</bool>
@@ -2892,6 +2915,8 @@
<tabstop>tabWidget_3</tabstop>
<tabstop>book_search_result</tabstop>
</tabstops>
<resources/>
<resources>
<include location="../../resources.qrc"/>
</resources>
<connections/>
</ui>

File diff suppressed because it is too large Load Diff

View File

@@ -149,5 +149,3 @@ class Ui_Wizard(object):
)
# retranslateUi

View File

@@ -1,12 +1,12 @@
# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/sounds/semesterapparat_ui.ui'
#
# Created by: PySide6 UI code generator 6.5.3
# Created by: PyQt6 UI code generator 6.5.3
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
@@ -15,7 +15,9 @@ class Ui_MainWindow(object):
MainWindow.setWindowModality(QtCore.Qt.WindowModality.WindowModal)
MainWindow.setEnabled(True)
MainWindow.resize(1593, 800)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
@@ -24,10 +26,14 @@ class Ui_MainWindow(object):
MainWindow.setMaximumSize(QtCore.QSize(1920, 800))
MainWindow.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.centralwidget.sizePolicy().hasHeightForWidth()
)
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(parent=self.centralwidget)
@@ -44,7 +50,10 @@ class Ui_MainWindow(object):
self.tabWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred,
QtWidgets.QSizePolicy.Policy.Preferred,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
@@ -60,26 +69,48 @@ class Ui_MainWindow(object):
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem)
self.load_app = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2)
self.load_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.load_app.setObjectName("load_app")
self.verticalLayout_2.addWidget(self.load_app)
self.create_new_app = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2)
self.create_new_app = QtWidgets.QPushButton(
parent=self.horizontalLayoutWidget_2
)
self.create_new_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
self.cancel_active_selection = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_2)
self.cancel_active_selection = QtWidgets.QPushButton(
parent=self.horizontalLayoutWidget_2
)
self.cancel_active_selection.setObjectName("cancel_active_selection")
self.verticalLayout_2.addWidget(self.cancel_active_selection)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.verticalLayout_2.addItem(spacerItem1)
self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QtWidgets.QTableWidget(parent=self.horizontalLayoutWidget_2)
self.formLayout.setLayout(
1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2
)
self.tableWidget_apparate = QtWidgets.QTableWidget(
parent=self.horizontalLayoutWidget_2
)
self.tableWidget_apparate.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparate.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.SelectedClicked)
self.tableWidget_apparate.setSizeAdjustPolicy(
QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents
)
self.tableWidget_apparate.setEditTriggers(
QtWidgets.QAbstractItemView.EditTrigger.SelectedClicked
)
self.tableWidget_apparate.setAlternatingRowColors(True)
self.tableWidget_apparate.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
@@ -98,13 +129,19 @@ class Ui_MainWindow(object):
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(5, item)
self.tableWidget_apparate.horizontalHeader().setCascadingSectionResizes(True)
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate)
self.formLayout.setWidget(
1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate
)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4)
self.formLayout.setLayout(
2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4
)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3)
self.formLayout.setLayout(
3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3
)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QtWidgets.QFrame(parent=self.tab)
self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21))
@@ -119,10 +156,14 @@ class Ui_MainWindow(object):
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.app_group_box = QtWidgets.QGroupBox(parent=self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.app_group_box.sizePolicy().hasHeightForWidth()
)
self.app_group_box.setSizePolicy(sizePolicy)
self.app_group_box.setMinimumSize(QtCore.QSize(0, 210))
font = QtGui.QFont()
@@ -130,7 +171,11 @@ class Ui_MainWindow(object):
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setAlignment(
QtCore.Qt.AlignmentFlag.AlignLeading
| QtCore.Qt.AlignmentFlag.AlignLeft
| QtCore.Qt.AlignmentFlag.AlignVCenter
)
self.app_group_box.setCheckable(False)
self.app_group_box.setObjectName("app_group_box")
self.dokument_list = QtWidgets.QTableWidget(parent=self.app_group_box)
@@ -143,11 +188,17 @@ class Ui_MainWindow(object):
self.dokument_list.setFont(font)
self.dokument_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.dokument_list.setAcceptDrops(True)
self.dokument_list.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.dokument_list.setSizeAdjustPolicy(
QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents
)
self.dokument_list.setDragEnabled(True)
self.dokument_list.setDragDropMode(QtWidgets.QAbstractItemView.DragDropMode.DropOnly)
self.dokument_list.setDragDropMode(
QtWidgets.QAbstractItemView.DragDropMode.DropOnly
)
self.dokument_list.setDefaultDropAction(QtCore.Qt.DropAction.LinkAction)
self.dokument_list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection)
self.dokument_list.setSelectionMode(
QtWidgets.QAbstractItemView.SelectionMode.SingleSelection
)
self.dokument_list.setObjectName("dokument_list")
self.dokument_list.setColumnCount(4)
self.dokument_list.setRowCount(0)
@@ -174,7 +225,9 @@ class Ui_MainWindow(object):
self.frame = QtWidgets.QFrame(parent=self.app_group_box)
self.frame.setEnabled(True)
self.frame.setGeometry(QtCore.QRect(10, 30, 1241, 151))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
@@ -317,7 +370,9 @@ class Ui_MainWindow(object):
font.setBold(False)
font.setWeight(50)
self.prof_mail.setFont(font)
self.prof_mail.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhEmailCharactersOnly)
self.prof_mail.setInputMethodHints(
QtCore.Qt.InputMethodHint.ImhEmailCharactersOnly
)
self.prof_mail.setMaxLength(200)
self.prof_mail.setPlaceholderText("")
self.prof_mail.setObjectName("prof_mail")
@@ -366,7 +421,9 @@ class Ui_MainWindow(object):
self.drpdwn_prof_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.drpdwn_prof_name.setEditable(True)
self.drpdwn_prof_name.setCurrentText("")
self.drpdwn_prof_name.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically)
self.drpdwn_prof_name.setInsertPolicy(
QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically
)
self.drpdwn_prof_name.setFrame(True)
self.drpdwn_prof_name.setObjectName("drpdwn_prof_name")
self.mail_mand = QtWidgets.QLabel(parent=self.frame)
@@ -455,7 +512,9 @@ class Ui_MainWindow(object):
font.setWeight(50)
self.label_12.setFont(font)
self.label_12.setObjectName("label_12")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_12)
self.formLayout_3.setWidget(
0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_12
)
self.prof_id_adis = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
font = QtGui.QFont()
font.setPointSize(9)
@@ -463,7 +522,9 @@ class Ui_MainWindow(object):
font.setWeight(50)
self.prof_id_adis.setFont(font)
self.prof_id_adis.setObjectName("prof_id_adis")
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.prof_id_adis)
self.formLayout_3.setWidget(
0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.prof_id_adis
)
self.label_13 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
font = QtGui.QFont()
font.setPointSize(9)
@@ -471,10 +532,14 @@ class Ui_MainWindow(object):
font.setWeight(50)
self.label_13.setFont(font)
self.label_13.setObjectName("label_13")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_13)
self.formLayout_3.setWidget(
1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_13
)
self.apparat_id_adis = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.apparat_id_adis.setObjectName("apparat_id_adis")
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.apparat_id_adis)
self.formLayout_3.setWidget(
1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.apparat_id_adis
)
self.check_send_mail = QtWidgets.QCheckBox(parent=self.frame)
self.check_send_mail.setGeometry(QtCore.QRect(450, 120, 91, 17))
font = QtGui.QFont()
@@ -518,19 +583,33 @@ class Ui_MainWindow(object):
self.frame.raise_()
self.dokument_list.raise_()
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
self.tableWidget_apparat_media = QtWidgets.QTableWidget(parent=self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
self.tableWidget_apparat_media = QtWidgets.QTableWidget(
parent=self.gridLayoutWidget_2
)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget_apparat_media.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.tableWidget_apparat_media.sizePolicy().hasHeightForWidth()
)
self.tableWidget_apparat_media.setSizePolicy(sizePolicy)
self.tableWidget_apparat_media.setMinimumSize(QtCore.QSize(1259, 0))
self.tableWidget_apparat_media.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparat_media.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
self.tableWidget_apparat_media.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.tableWidget_apparat_media.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget_apparat_media.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.tableWidget_apparat_media.setSizeAdjustPolicy(
QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents
)
self.tableWidget_apparat_media.setEditTriggers(
QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers
)
self.tableWidget_apparat_media.setAlternatingRowColors(True)
self.tableWidget_apparat_media.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows)
self.tableWidget_apparat_media.setSelectionBehavior(
QtWidgets.QAbstractItemView.SelectionBehavior.SelectRows
)
self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media")
self.tableWidget_apparat_media.setColumnCount(7)
self.tableWidget_apparat_media.setRowCount(0)
@@ -548,7 +627,9 @@ class Ui_MainWindow(object):
self.tableWidget_apparat_media.setHorizontalHeaderItem(5, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(6, item)
self.tableWidget_apparat_media.horizontalHeader().setCascadingSectionResizes(True)
self.tableWidget_apparat_media.horizontalHeader().setCascadingSectionResizes(
True
)
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 9, 0, 1, 1)
self.label = QtWidgets.QLabel(parent=self.gridLayoutWidget_2)
font = QtGui.QFont()
@@ -560,12 +641,22 @@ class Ui_MainWindow(object):
self.gridLayout_2.addWidget(self.label, 2, 0, 1, 1)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
spacerItem2 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem2 = QtWidgets.QSpacerItem(
20,
20,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_5.addItem(spacerItem2)
self.chkbx_show_del_media = QtWidgets.QCheckBox(parent=self.gridLayoutWidget_2)
self.chkbx_show_del_media.setObjectName("chkbx_show_del_media")
self.horizontalLayout_5.addWidget(self.chkbx_show_del_media)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem3 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_5.addItem(spacerItem3)
self.add_layout = QtWidgets.QHBoxLayout()
self.add_layout.setObjectName("add_layout")
@@ -581,12 +672,22 @@ class Ui_MainWindow(object):
self.progress_label.setObjectName("progress_label")
self.add_layout.addWidget(self.progress_label)
self.horizontalLayout_5.addLayout(self.add_layout)
spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem4 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_5.addItem(spacerItem4)
self.btn_reserve = QtWidgets.QPushButton(parent=self.gridLayoutWidget_2)
self.btn_reserve.setObjectName("btn_reserve")
self.horizontalLayout_5.addWidget(self.btn_reserve)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem5 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_5.addItem(spacerItem5)
self.gridLayout_2.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
self.add_medium = QtWidgets.QPushButton(parent=self.tab)
@@ -657,7 +758,12 @@ class Ui_MainWindow(object):
self.box_person.setEditable(True)
self.box_person.setObjectName("box_person")
self.gridLayout_3.addWidget(self.box_person, 1, 1, 1, 1)
spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
spacerItem6 = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.gridLayout_3.addItem(spacerItem6, 4, 0, 1, 1)
self.label_15 = QtWidgets.QLabel(parent=self.gridLayoutWidget)
self.label_15.setObjectName("label_15")
@@ -675,7 +781,9 @@ class Ui_MainWindow(object):
self.tab_4.setObjectName("tab_4")
self.tabWidget_2.addTab(self.tab_4, "")
self.verticalLayout_3.addWidget(self.tabWidget_2)
self.stackedWidget_4 = QtWidgets.QStackedWidget(parent=self.verticalLayoutWidget_2)
self.stackedWidget_4 = QtWidgets.QStackedWidget(
parent=self.verticalLayoutWidget_2
)
self.stackedWidget_4.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.stackedWidget_4.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.stackedWidget_4.setObjectName("stackedWidget_4")
@@ -688,13 +796,19 @@ class Ui_MainWindow(object):
self.tab_6.setObjectName("tab_6")
self.statistics_table = QtWidgets.QTableWidget(parent=self.tab_6)
self.statistics_table.setGeometry(QtCore.QRect(0, 0, 435, 191))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.statistics_table.sizePolicy().hasHeightForWidth())
sizePolicy.setHeightForWidth(
self.statistics_table.sizePolicy().hasHeightForWidth()
)
self.statistics_table.setSizePolicy(sizePolicy)
self.statistics_table.setMaximumSize(QtCore.QSize(16777215, 191))
self.statistics_table.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.statistics_table.setEditTriggers(
QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers
)
self.statistics_table.setAlternatingRowColors(True)
self.statistics_table.setObjectName("statistics_table")
self.statistics_table.setColumnCount(3)
@@ -722,17 +836,26 @@ class Ui_MainWindow(object):
self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_3)
self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.btn_del_select_apparats = QtWidgets.QPushButton(parent=self.horizontalLayoutWidget_3)
self.btn_del_select_apparats = QtWidgets.QPushButton(
parent=self.horizontalLayoutWidget_3
)
self.btn_del_select_apparats.setObjectName("btn_del_select_apparats")
self.horizontalLayout_7.addWidget(self.btn_del_select_apparats)
spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
spacerItem7 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_7.addItem(spacerItem7)
self.table = QtWidgets.QWidget(parent=self.widget)
self.table.setGeometry(QtCore.QRect(0, 50, 761, 391))
self.table.setObjectName("table")
self.tableWidget = QtWidgets.QTableWidget(parent=self.table)
self.tableWidget.setGeometry(QtCore.QRect(0, 0, 761, 391))
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget.setEditTriggers(
QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers
)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
@@ -761,14 +884,19 @@ class Ui_MainWindow(object):
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.frame_creation_progress = QtWidgets.QFrame(parent=self.horizontalLayoutWidget)
self.frame_creation_progress = QtWidgets.QFrame(
parent=self.horizontalLayoutWidget
)
self.frame_creation_progress.setObjectName("frame_creation_progress")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.frame_creation_progress)
self.verticalLayout_4.setSpacing(6)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.groupBox_2 = QtWidgets.QGroupBox(parent=self.frame_creation_progress)
self.groupBox_2.setEnabled(True)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.groupBox_2.sizePolicy().hasHeightForWidth())
@@ -800,7 +928,10 @@ class Ui_MainWindow(object):
self.ids_check.setObjectName("ids_check")
self.verticalLayout_4.addWidget(self.groupBox_2)
self.groupBox = QtWidgets.QGroupBox(parent=self.frame_creation_progress)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Expanding,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
@@ -811,7 +942,7 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setItalic(False)
font.setItal # ic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
@@ -823,7 +954,7 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setItalic(False)
font.setItal # ic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
@@ -835,7 +966,7 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setItalic(False)
font.setItal # ic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
@@ -847,7 +978,7 @@ class Ui_MainWindow(object):
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setItalic(False)
font.setItal # ic(False)
font.setUnderline(False)
font.setWeight(50)
font.setKerning(True)
@@ -858,7 +989,13 @@ class Ui_MainWindow(object):
self.btn_copy_adis_command.setAccessibleDescription("")
self.btn_copy_adis_command.setAutoFillBackground(False)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("/home/alexander/GitHub/Semesterapparate/ui/sounds/../../../.designer/backup/icons/information.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
icon.addPixmap(
QtGui.QPixmap(
"/home/alexander/GitHub/Semesterapparate/ui/sounds/../../../.designer/backup/icons/information.png"
),
QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.Off,
)
self.btn_copy_adis_command.setIcon(icon)
self.btn_copy_adis_command.setCheckable(False)
self.btn_copy_adis_command.setChecked(False)
@@ -874,7 +1011,9 @@ class Ui_MainWindow(object):
self.calendarWidget = QtWidgets.QCalendarWidget(parent=self.frame_2)
self.calendarWidget.setGeometry(QtCore.QRect(0, 0, 291, 191))
self.calendarWidget.setGridVisible(True)
self.calendarWidget.setVerticalHeaderFormat(QtWidgets.QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader)
self.calendarWidget.setVerticalHeaderFormat(
QtWidgets.QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader
)
self.calendarWidget.setObjectName("calendarWidget")
self.message_frame = QtWidgets.QFrame(parent=self.frame_2)
self.message_frame.setGeometry(QtCore.QRect(0, 210, 291, 121))
@@ -946,11 +1085,17 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Semesterapparatsmanagement"))
self.load_app.setToolTip(_translate("MainWindow", "Load the Semesterapparate from the database"))
MainWindow.setWindowTitle(
_translate("MainWindow", "Semesterapparatsmanagement")
)
self.load_app.setToolTip(
_translate("MainWindow", "Load the Semesterapparate from the database")
)
self.load_app.setText(_translate("MainWindow", "App. aufrufen"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
self.cancel_active_selection.setText(_translate("MainWindow", "Auswahl abbrechen"))
self.cancel_active_selection.setText(
_translate("MainWindow", "Auswahl abbrechen")
)
self.tableWidget_apparate.setSortingEnabled(True)
item = self.tableWidget_apparate.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "AppNr"))
@@ -995,9 +1140,15 @@ class Ui_MainWindow(object):
self._mand.setText(_translate("MainWindow", "*"))
self.btn_add_document.setText(_translate("MainWindow", "Dokument hinzufügen"))
self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen"))
self.check_file.setToolTip(_translate("MainWindow", "Abhängig von der Anzahl der Medien kann die Suche sehr lange dauern"))
self.check_file.setText(_translate("MainWindow", "Medien aus Dokument\n"
" hinzufügen"))
self.check_file.setToolTip(
_translate(
"MainWindow",
"Abhängig von der Anzahl der Medien kann die Suche sehr lange dauern",
)
)
self.check_file.setText(
_translate("MainWindow", "Medien aus Dokument\n" " hinzufügen")
)
self.label_12.setText(_translate("MainWindow", "Prof-ID-aDIS"))
self.label_13.setText(_translate("MainWindow", "Apparat-ID-aDIS"))
self.check_send_mail.setText(_translate("MainWindow", "Mail senden"))
@@ -1017,12 +1168,16 @@ class Ui_MainWindow(object):
item = self.tableWidget_apparat_media.horizontalHeaderItem(6)
item.setText(_translate("MainWindow", "Link"))
self.label.setText(_translate("MainWindow", " Medienliste"))
self.chkbx_show_del_media.setText(_translate("MainWindow", "gel. Medien anzeigen"))
self.chkbx_show_del_media.setText(
_translate("MainWindow", "gel. Medien anzeigen")
)
self.label_info.setText(_translate("MainWindow", "Medien werden hinzugefügt"))
self.progress_label.setText(_translate("MainWindow", "Medium x/y"))
self.btn_reserve.setText(_translate("MainWindow", "Vorgemertk?"))
self.add_medium.setText(_translate("MainWindow", "Medien hinzufügen"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Anlegen"))
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Anlegen")
)
self.btn_search.setText(_translate("MainWindow", "Suchen"))
self.label_7.setText(_translate("MainWindow", "Appnr.:"))
self.label_18.setText(_translate("MainWindow", "Dauerapp:"))
@@ -1031,17 +1186,28 @@ class Ui_MainWindow(object):
self.label_11.setText(_translate("MainWindow", "Person:"))
self.label_16.setText(_translate("MainWindow", "Fach:"))
self.label_15.setText(_translate("MainWindow", "Löschbar"))
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), _translate("MainWindow", "Statistik"))
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), _translate("MainWindow", "Suchen"))
self.tabWidget_2.setTabText(
self.tabWidget_2.indexOf(self.tab_3), _translate("MainWindow", "Statistik")
)
self.tabWidget_2.setTabText(
self.tabWidget_2.indexOf(self.tab_4), _translate("MainWindow", "Suchen")
)
item = self.statistics_table.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Semester"))
item = self.statistics_table.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Zugang"))
item = self.statistics_table.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Abgang"))
self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.tab_6), _translate("MainWindow", "Tabelle"))
self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.tab_7), _translate("MainWindow", "Erstellte und gelöschte Semesterapparate"))
self.btn_del_select_apparats.setText(_translate("MainWindow", "Ausgewählte Löschen"))
self.tabWidget_3.setTabText(
self.tabWidget_3.indexOf(self.tab_6), _translate("MainWindow", "Tabelle")
)
self.tabWidget_3.setTabText(
self.tabWidget_3.indexOf(self.tab_7),
_translate("MainWindow", "Erstellte und gelöschte Semesterapparate"),
)
self.btn_del_select_apparats.setText(
_translate("MainWindow", "Ausgewählte Löschen")
)
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", " "))
item = self.tableWidget.horizontalHeaderItem(1)
@@ -1052,17 +1218,31 @@ class Ui_MainWindow(object):
item.setText(_translate("MainWindow", "Person"))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("MainWindow", "Fach"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Suchen / Statistik"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Admin"))
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_2),
_translate("MainWindow", "Suchen / Statistik"),
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Admin")
)
self.groupBox_2.setTitle(_translate("MainWindow", "Software"))
self.appdata_check.setText(_translate("MainWindow", "Apparatsdaten eingegeben"))
self.media_check.setText(_translate("MainWindow", "Medien hinzugefügt / importiert"))
self.ids_check.setText(_translate("MainWindow", "Prof-ID und Apparat-ID eingetragen"))
self.media_check.setText(
_translate("MainWindow", "Medien hinzugefügt / importiert")
)
self.ids_check.setText(
_translate("MainWindow", "Prof-ID und Apparat-ID eingetragen")
)
self.groupBox.setTitle(_translate("MainWindow", "aDIS"))
self.media_checked.setText(_translate("MainWindow", "Medien geprüft"))
self.media_edited_check.setText(_translate("MainWindow", "Medien bearbeitet"))
self.app_created.setText(_translate("MainWindow", "Apparat angelegt"))
self.btn_copy_adis_command.setToolTip(_translate("MainWindow", "Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren"))
self.btn_copy_adis_command.setToolTip(
_translate(
"MainWindow",
"Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren",
)
)
self.btn_copy_adis_command.setText(_translate("MainWindow", " aDIS Abfrage"))
self.label_14.setText(_translate("MainWindow", "Apparat"))
self.btn_delete_message.setText(_translate("MainWindow", "Löschen"))

View File

@@ -1,692 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1280</width>
<height>720</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1271</width>
<height>671</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Tab 1</string>
</attribute>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1261</width>
<height>161</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="load_app">
<property name="toolTip">
<string>Load the Semesterapparate from the database</string>
</property>
<property name="text">
<string>App. aufrufen</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="create_new_app">
<property name="text">
<string>neu. App anlegen</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QTableWidget" name="tableWidget_apparate">
<column>
<property name="text">
<string>AppNr</string>
</property>
</column>
<column>
<property name="text">
<string>App Name</string>
</property>
</column>
<column>
<property name="text">
<string>Professor</string>
</property>
</column>
<column>
<property name="text">
<string>Dauerapparat</string>
</property>
</column>
</widget>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3"/>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>0</x>
<y>160</y>
<width>1261</width>
<height>21</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget_2">
<property name="geometry">
<rect>
<x>0</x>
<y>180</y>
<width>1261</width>
<height>461</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QTableWidget" name="tableWidget_apparat_media">
<column>
<property name="text">
<string>Buchtitel</string>
</property>
</column>
<column>
<property name="text">
<string>Autor</string>
</property>
</column>
<column>
<property name="text">
<string>Auflage</string>
</property>
</column>
<column>
<property name="text">
<string>Signatur</string>
</property>
</column>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="app_group_box">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Apparatsdetails</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<widget class="QTableWidget" name="dokument_list">
<property name="geometry">
<rect>
<x>820</x>
<y>20</y>
<width>256</width>
<height>192</height>
</rect>
</property>
<column>
<property name="text">
<string>Dokumentname</string>
</property>
</column>
<column>
<property name="text">
<string>Typ</string>
</property>
</column>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>731</width>
<height>151</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QComboBox" name="drpdwn_prof_title">
<property name="geometry">
<rect>
<x>110</x>
<y>50</y>
<width>69</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>250</x>
<y>20</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparatsname</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>110</x>
<y>80</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>Nachname, Vorname</string>
</property>
</widget>
<widget class="QRadioButton" name="sem_winter">
<property name="geometry">
<rect>
<x>340</x>
<y>50</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Winter</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>71</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Prof. Name</string>
</property>
</widget>
<widget class="QComboBox" name="drpdwn_app_nr">
<property name="geometry">
<rect>
<x>110</x>
<y>20</y>
<width>69</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="app_name">
<property name="geometry">
<rect>
<x>340</x>
<y>20</y>
<width>113</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QRadioButton" name="sem_sommer">
<property name="geometry">
<rect>
<x>340</x>
<y>70</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Sommer</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Prof. Titel</string>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>270</x>
<y>60</y>
<width>51</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Semester</string>
</property>
</widget>
<widget class="QLineEdit" name="sem_year">
<property name="geometry">
<rect>
<x>410</x>
<y>60</y>
<width>113</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>2023</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>101</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparatsnummer</string>
</property>
</widget>
<widget class="QPushButton" name="btn_apparat_save">
<property name="geometry">
<rect>
<x>260</x>
<y>120</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Speichern</string>
</property>
</widget>
<widget class="QPushButton" name="btn_apparat_apply">
<property name="geometry">
<rect>
<x>350</x>
<y>120</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Aktualisieren</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox">
<property name="geometry">
<rect>
<x>340</x>
<y>90</y>
<width>101</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dauerapparat</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="btn_add_document">
<property name="geometry">
<rect>
<x>1100</x>
<y>40</y>
<width>131</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dokument hinzufügen</string>
</property>
</widget>
<widget class="QPushButton" name="btn_open_document">
<property name="geometry">
<rect>
<x>1100</x>
<y>80</y>
<width>131</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dokument öffnen</string>
</property>
</widget>
<widget class="QToolButton" name="toolButton">
<property name="geometry">
<rect>
<x>1110</x>
<y>110</y>
<width>25</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>200</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Suche</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>80</x>
<y>200</y>
<width>211</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>Buch oder Signatur</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>0</x>
<y>180</y>
<width>1259</width>
<height>18</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Medienliste</string>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1280</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuDatei">
<property name="title">
<string>Datei</string>
</property>
</widget>
<widget class="QMenu" name="menuEinstellungen">
<property name="title">
<string>Einstellungen</string>
</property>
</widget>
<addaction name="menuDatei"/>
<addaction name="menuEinstellungen"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,477 +0,0 @@
# -*- coding: utf-8 -*-
################################################################################
# Form generated from reading UI file 'untitled.ui'
##
# Created by: Qt User Interface Compiler version 6.5.2
##
# WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PyQt6.QtCore import (
QCoreApplication,
QDate,
QDateTime,
QLocale,
QMetaObject,
QObject,
QPoint,
QRect,
QSize,
Qt,
QTime,
QUrl,
)
from PyQt6.QtGui import (
QBrush,
QColor,
QConicalGradient,
QCursor,
QFont,
QFontDatabase,
QGradient,
QIcon,
QImage,
QKeySequence,
QLinearGradient,
QPainter,
QPalette,
QPixmap,
QRadialGradient,
QTransform,
QWidgetAction,
)
from PyQt6.QtWidgets import (
QApplication,
QCheckBox,
QComboBox,
QFormLayout,
QFrame,
QGridLayout,
QGroupBox,
QHBoxLayout,
QHeaderView,
QLabel,
QLineEdit,
QMainWindow,
QMenu,
QMenuBar,
QPushButton,
QRadioButton,
QSizePolicy,
QSpacerItem,
QStatusBar,
QTableWidget,
QTableWidgetItem,
QTabWidget,
QToolButton,
QVBoxLayout,
QWidget,
)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 720)
sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(
self.centralwidget.sizePolicy().hasHeightForWidth()
)
self.centralwidget.setSizePolicy(sizePolicy1)
self.verticalLayoutWidget = QWidget(self.centralwidget)
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayoutWidget.setGeometry(QRect(0, 0, 1271, 671))
self.verticalLayout = QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabWidget = QTabWidget(self.verticalLayoutWidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QWidget()
self.tab.setObjectName("tab")
sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
self.tab.setSizePolicy(sizePolicy2)
self.horizontalLayoutWidget_2 = QWidget(self.tab)
self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
self.horizontalLayoutWidget_2.setGeometry(QRect(0, 0, 1261, 161))
self.horizontalLayout_2 = QHBoxLayout(self.horizontalLayoutWidget_2)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.formLayout = QFormLayout()
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalSpacer = QSpacerItem(
20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
)
self.verticalLayout_2.addItem(self.verticalSpacer)
self.load_app = QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setObjectName("load_app")
self.verticalLayout_2.addWidget(self.load_app)
self.create_new_app = QPushButton(self.horizontalLayoutWidget_2)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
self.verticalSpacer_2 = QSpacerItem(
20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
)
self.verticalLayout_2.addItem(self.verticalSpacer_2)
self.formLayout.setLayout(0, QFormLayout.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QTableWidget(self.horizontalLayoutWidget_2)
if self.tableWidget_apparate.columnCount() < 4:
self.tableWidget_apparate.setColumnCount(4)
__qtablewidgetitem = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(0, __qtablewidgetitem)
__qtablewidgetitem1 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(1, __qtablewidgetitem1)
__qtablewidgetitem2 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(2, __qtablewidgetitem2)
__qtablewidgetitem3 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, __qtablewidgetitem3)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.formLayout.setWidget(0, QFormLayout.FieldRole, self.tableWidget_apparate)
self.horizontalLayout_3 = QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QFormLayout.LabelRole, self.horizontalLayout_3)
self.horizontalLayout_4 = QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QFormLayout.FieldRole, self.horizontalLayout_4)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QFrame(self.tab)
self.line.setObjectName("line")
self.line.setGeometry(QRect(0, 160, 1261, 21))
self.line.setFrameShape(QFrame.HLine)
self.line.setFrameShadow(QFrame.Sunken)
self.gridLayoutWidget_2 = QWidget(self.tab)
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayoutWidget_2.setGeometry(QRect(0, 180, 1261, 461))
self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.tableWidget_apparat_media = QTableWidget(self.gridLayoutWidget_2)
if self.tableWidget_apparat_media.columnCount() < 4:
self.tableWidget_apparat_media.setColumnCount(4)
__qtablewidgetitem4 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, __qtablewidgetitem4)
__qtablewidgetitem5 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, __qtablewidgetitem5)
__qtablewidgetitem6 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, __qtablewidgetitem6)
__qtablewidgetitem7 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, __qtablewidgetitem7)
self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media")
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 2, 0, 1, 1)
self.app_group_box = QGroupBox(self.gridLayoutWidget_2)
self.app_group_box.setObjectName("app_group_box")
sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
sizePolicy3.setHeightForWidth(
self.app_group_box.sizePolicy().hasHeightForWidth()
)
self.app_group_box.setSizePolicy(sizePolicy3)
font = QFont()
font.setPointSize(12)
font.setBold(True)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(
Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter
)
self.app_group_box.setCheckable(False)
self.dokument_list = QTableWidget(self.app_group_box)
if self.dokument_list.columnCount() < 2:
self.dokument_list.setColumnCount(2)
__qtablewidgetitem8 = QTableWidgetItem()
self.dokument_list.setHorizontalHeaderItem(0, __qtablewidgetitem8)
__qtablewidgetitem9 = QTableWidgetItem()
self.dokument_list.setHorizontalHeaderItem(1, __qtablewidgetitem9)
self.dokument_list.setObjectName("dokument_list")
self.dokument_list.setGeometry(QRect(820, 20, 256, 192))
self.frame = QFrame(self.app_group_box)
self.frame.setObjectName("frame")
self.frame.setGeometry(QRect(10, 30, 731, 151))
sizePolicy1.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy1)
self.frame.setFrameShape(QFrame.StyledPanel)
self.frame.setFrameShadow(QFrame.Raised)
self.drpdwn_prof_title = QComboBox(self.frame)
self.drpdwn_prof_title.setObjectName("drpdwn_prof_title")
self.drpdwn_prof_title.setGeometry(QRect(110, 50, 69, 22))
self.label_5 = QLabel(self.frame)
self.label_5.setObjectName("label_5")
self.label_5.setGeometry(QRect(250, 20, 91, 21))
font1 = QFont()
font1.setPointSize(9)
font1.setBold(False)
self.label_5.setFont(font1)
self.lineEdit = QLineEdit(self.frame)
self.lineEdit.setObjectName("lineEdit")
self.lineEdit.setGeometry(QRect(110, 80, 121, 20))
self.lineEdit.setFont(font1)
self.sem_winter = QRadioButton(self.frame)
self.sem_winter.setObjectName("sem_winter")
self.sem_winter.setGeometry(QRect(340, 50, 82, 17))
self.sem_winter.setFont(font1)
self.label_4 = QLabel(self.frame)
self.label_4.setObjectName("label_4")
self.label_4.setGeometry(QRect(10, 80, 71, 21))
self.label_4.setFont(font1)
self.drpdwn_app_nr = QComboBox(self.frame)
self.drpdwn_app_nr.setObjectName("drpdwn_app_nr")
self.drpdwn_app_nr.setGeometry(QRect(110, 20, 69, 22))
self.app_name = QLineEdit(self.frame)
self.app_name.setObjectName("app_name")
self.app_name.setGeometry(QRect(340, 20, 113, 20))
self.sem_sommer = QRadioButton(self.frame)
self.sem_sommer.setObjectName("sem_sommer")
self.sem_sommer.setGeometry(QRect(340, 70, 82, 17))
self.sem_sommer.setFont(font1)
self.label_3 = QLabel(self.frame)
self.label_3.setObjectName("label_3")
self.label_3.setGeometry(QRect(10, 50, 61, 20))
self.label_3.setFont(font1)
self.label_6 = QLabel(self.frame)
self.label_6.setObjectName("label_6")
self.label_6.setGeometry(QRect(270, 60, 51, 21))
self.label_6.setFont(font1)
self.sem_year = QLineEdit(self.frame)
self.sem_year.setObjectName("sem_year")
self.sem_year.setGeometry(QRect(410, 60, 113, 20))
self.sem_year.setFont(font1)
self.label_2 = QLabel(self.frame)
self.label_2.setObjectName("label_2")
self.label_2.setGeometry(QRect(10, 20, 101, 21))
self.label_2.setFont(font1)
self.btn_apparat_save = QPushButton(self.frame)
self.btn_apparat_save.setObjectName("btn_apparat_save")
self.btn_apparat_save.setGeometry(QRect(260, 120, 75, 23))
self.btn_apparat_save.setFont(font1)
self.btn_apparat_apply = QPushButton(self.frame)
self.btn_apparat_apply.setObjectName("btn_apparat_apply")
self.btn_apparat_apply.setGeometry(QRect(350, 120, 75, 23))
self.btn_apparat_apply.setFont(font1)
self.checkBox = QCheckBox(self.frame)
self.checkBox.setObjectName("checkBox")
self.checkBox.setGeometry(QRect(340, 90, 101, 17))
self.checkBox.setFont(font1)
self.btn_add_document = QPushButton(self.app_group_box)
self.btn_add_document.setObjectName("btn_add_document")
self.btn_add_document.setGeometry(QRect(1100, 40, 131, 25))
self.btn_add_document.setFont(font1)
self.btn_open_document = QPushButton(self.app_group_box)
self.btn_open_document.setObjectName("btn_open_document")
self.btn_open_document.setGeometry(QRect(1100, 80, 131, 25))
self.btn_open_document.setFont(font1)
self.toolButton = QToolButton(self.app_group_box)
self.toolButton.setObjectName("toolButton")
self.toolButton.setGeometry(QRect(1110, 110, 25, 19))
self.label_7 = QLabel(self.app_group_box)
self.label_7.setObjectName("label_7")
self.label_7.setGeometry(QRect(20, 200, 47, 21))
self.label_7.setFont(font1)
self.lineEdit_2 = QLineEdit(self.app_group_box)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_2.setGeometry(QRect(80, 200, 211, 20))
self.lineEdit_2.setFont(font1)
self.label = QLabel(self.app_group_box)
self.label.setObjectName("label")
self.label.setGeometry(QRect(0, 180, 1259, 18))
font2 = QFont()
font2.setPointSize(11)
font2.setBold(True)
self.label.setFont(font2)
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName("menubar")
self.menubar.setGeometry(QRect(0, 0, 1280, 21))
self.menuDatei = QMenu(self.menubar)
self.menuDatei.setObjectName("menuDatei")
self.menuEinstellungen = QMenu(self.menubar)
self.menuEinstellungen.setObjectName("menuEinstellungen")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuDatei.menuAction())
self.menubar.addAction(self.menuEinstellungen.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(
QCoreApplication.translate("MainWindow", "MainWindow", None)
)
# if QT_CONFIG(tooltip)
self.load_app.setToolTip(
QCoreApplication.translate(
"MainWindow", "Load the Semesterapparate from the database", None
)
)
# endif // QT_CONFIG(tooltip)
self.load_app.setText(
QCoreApplication.translate("MainWindow", "App. aufrufen", None)
)
self.create_new_app.setText(
QCoreApplication.translate("MainWindow", "neu. App anlegen", None)
)
___qtablewidgetitem = self.tableWidget_apparate.horizontalHeaderItem(0)
___qtablewidgetitem.setText(
QCoreApplication.translate("MainWindow", "AppNr", None)
)
___qtablewidgetitem1 = self.tableWidget_apparate.horizontalHeaderItem(1)
___qtablewidgetitem1.setText(
QCoreApplication.translate("MainWindow", "App Name", None)
)
___qtablewidgetitem2 = self.tableWidget_apparate.horizontalHeaderItem(2)
___qtablewidgetitem2.setText(
QCoreApplication.translate("MainWindow", "Professor", None)
)
___qtablewidgetitem3 = self.tableWidget_apparate.horizontalHeaderItem(3)
___qtablewidgetitem3.setText(
QCoreApplication.translate("MainWindow", "Dauerapparat", None)
)
___qtablewidgetitem4 = self.tableWidget_apparat_media.horizontalHeaderItem(0)
___qtablewidgetitem4.setText(
QCoreApplication.translate("MainWindow", "Buchtitel", None)
)
___qtablewidgetitem5 = self.tableWidget_apparat_media.horizontalHeaderItem(1)
___qtablewidgetitem5.setText(
QCoreApplication.translate("MainWindow", "Autor", None)
)
___qtablewidgetitem6 = self.tableWidget_apparat_media.horizontalHeaderItem(2)
___qtablewidgetitem6.setText(
QCoreApplication.translate("MainWindow", "Auflage", None)
)
___qtablewidgetitem7 = self.tableWidget_apparat_media.horizontalHeaderItem(3)
___qtablewidgetitem7.setText(
QCoreApplication.translate("MainWindow", "Signatur", None)
)
self.app_group_box.setTitle(
QCoreApplication.translate("MainWindow", "Apparatsdetails", None)
)
___qtablewidgetitem8 = self.dokument_list.horizontalHeaderItem(0)
___qtablewidgetitem8.setText(
QCoreApplication.translate("MainWindow", "Dokumentname", None)
)
___qtablewidgetitem9 = self.dokument_list.horizontalHeaderItem(1)
___qtablewidgetitem9.setText(
QCoreApplication.translate("MainWindow", "Typ", None)
)
self.label_5.setText(
QCoreApplication.translate("MainWindow", "Apparatsname", None)
)
self.lineEdit.setPlaceholderText(
QCoreApplication.translate("MainWindow", "Nachname, Vorname", None)
)
self.sem_winter.setText(
QCoreApplication.translate("MainWindow", "Winter", None)
)
self.label_4.setText(
QCoreApplication.translate("MainWindow", "Prof. Name", None)
)
self.sem_sommer.setText(
QCoreApplication.translate("MainWindow", "Sommer", None)
)
self.label_3.setText(
QCoreApplication.translate("MainWindow", "Prof. Titel", None)
)
self.label_6.setText(QCoreApplication.translate("MainWindow", "Semester", None))
self.sem_year.setPlaceholderText(
QCoreApplication.translate("MainWindow", "2023", None)
)
self.label_2.setText(
QCoreApplication.translate("MainWindow", "Apparatsnummer", None)
)
self.btn_apparat_save.setText(
QCoreApplication.translate("MainWindow", "Speichern", None)
)
self.btn_apparat_apply.setText(
QCoreApplication.translate("MainWindow", "Aktualisieren", None)
)
self.checkBox.setText(
QCoreApplication.translate("MainWindow", "Dauerapparat", None)
)
self.btn_add_document.setText(
QCoreApplication.translate("MainWindow", "Dokument hinzuf\u00fcgen", None)
)
self.btn_open_document.setText(
QCoreApplication.translate("MainWindow", "Dokument \u00f6ffnen", None)
)
self.toolButton.setText(QCoreApplication.translate("MainWindow", "...", None))
self.label_7.setText(QCoreApplication.translate("MainWindow", "Suche", None))
self.lineEdit_2.setPlaceholderText(
QCoreApplication.translate("MainWindow", "Buch oder Signatur", None)
)
self.label.setText(
QCoreApplication.translate("MainWindow", "Medienliste", None)
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab),
QCoreApplication.translate("MainWindow", "Tab 1", None),
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_2),
QCoreApplication.translate("MainWindow", "Tab 2", None),
)
self.menuDatei.setTitle(QCoreApplication.translate("MainWindow", "Datei", None))
self.menuEinstellungen.setTitle(
QCoreApplication.translate("MainWindow", "Einstellungen", None)
)
# retranslateUi

View File

@@ -63,7 +63,7 @@ class Ui_Form(object):
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setItal#ic(False)
font.setItal # ic(False)
font.setUnderline(False)
font.setWeight(75)
font.setKerning(True)

View File

@@ -55,7 +55,7 @@ class StatusWidget(QWidget):
action_item, [f"{person} ({str(len(entries))})"]
)
for entry in entries:
entry_item = QTreeWidgetItem(person_item, [entry])
QTreeWidgetItem(person_item, [entry])
# Make the person entry collapsible
person_item.setExpanded(False)
@@ -75,4 +75,3 @@ if __name__ == "__main__":
widget.person_double_clicked.connect(lambda x: print(x))
sys.exit(app.exec())

View File

@@ -1,15 +1,15 @@
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
pass
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
from PySide6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):

View File

@@ -49,4 +49,3 @@ if __name__ == "__main__":
widget = GraphWidget(data=data, legend_labels=["+", "-"])
widget.show()
sys.exit(app.exec())

View File

@@ -1,13 +1,12 @@
# Form implementation generated from reading ui file '/home/alexander/GitHub/SemesterapparatsManager/src/ui/widgets/webview.ui'
#
# Created by: PySide6 UI code generator 6.6.1
# Created by: PyQt6 UI code generator 6.6.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6 import QtWebEngineWidgets
from PyQt6 import QtCore, QtGui, QtWebEngineWidgets, QtWidgets
class Ui_MainWindow(object):
@@ -16,7 +15,9 @@ class Ui_MainWindow(object):
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.webEngineView = QtWebEngineWidgets.QWebEngineView(parent=self.centralwidget)
self.webEngineView = QtWebEngineWidgets.QWebEngineView(
parent=self.centralwidget
)
self.webEngineView.setGeometry(QtCore.QRect(160, 190, 300, 200))
self.webEngineView.setUrl(QtCore.QUrl("about:blank"))
self.webEngineView.setObjectName("webEngineView")

30
src/utils/Ui_docs.py Normal file
View File

@@ -0,0 +1,30 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\utils\docs.ui'
#
# Created by: PyQt6 UI code generator 6.6.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(800, 600)
self.gridLayout_2 = QtWidgets.QGridLayout(Dialog)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabs = QtWidgets.QTabWidget(parent=Dialog)
self.tabs.setObjectName("tabs")
self.gridLayout.addWidget(self.tabs, 0, 0, 1, 1)
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))

View File

@@ -1,2 +1,2 @@
from .pickles import load_pickle, dump_pickle
from .blob import create_blob
from .blob import create_blob
from .pickles import dump_pickle, load_pickle

View File

@@ -5,5 +5,3 @@ def create_blob(file):
with open(file, "rb") as f:
blob = f.read()
return blob

28
src/utils/docs.ui Normal file
View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTabWidget" name="tabs"/>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

77
src/utils/docs_ui.py Normal file
View File

@@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'docs.ui'
##
## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PyQt6.QtCore import (
QCoreApplication,
QDate,
QDateTime,
QLocale,
QMetaObject,
QObject,
QPoint,
QRect,
QSize,
Qt,
QTime,
QUrl,
)
from PyQt6.QtGui import (
QBrush,
QColor,
QConicalGradient,
QCursor,
QFont,
QFontDatabase,
QGradient,
QIcon,
QImage,
QKeySequence,
QLinearGradient,
QPainter,
QPalette,
QPixmap,
QRadialGradient,
QTransform,
)
from PyQt6.QtWidgets import (
QApplication,
QDialog,
QGridLayout,
QSizePolicy,
QTabWidget,
QWidget,
)
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dokumentation")
Dialog.resize(800, 600)
self.gridLayout_2 = QGridLayout(Dialog)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabs = QTabWidget(Dialog)
self.tabs.setObjectName("tabs")
self.gridLayout.addWidget(self.tabs, 0, 0, 1, 1)
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
self.retranslateUi(Dialog)
QMetaObject.connectSlotsByName(Dialog)
# setupUi
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QCoreApplication.translate("Dialog", "Dialog", None))
# retranslateUi

View File

@@ -1,9 +1,9 @@
import os
import sys
# from PySide6 import Webview
from PySide6.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget
# from PyQt6 import Webview
from PyQt6.QtWebEngineWidgets import QWebEngineView
from PyQt6.QtWidgets import QApplication, QMainWindow, QTabWidget
documentation_path = "docs"

View File

@@ -1,6 +1,9 @@
import pickle
def load_pickle(data):
return pickle.loads(data)
def dump_pickle(data):
return pickle.dumps(data)