rework prof data using dataclass, change database code, fix bugs

This commit is contained in:
WorldTeacher
2024-09-23 15:45:42 +02:00
parent e91a40695a
commit cd74214c17
10 changed files with 150 additions and 65 deletions

View File

@@ -1,10 +1,12 @@
from .log import MyLogger
from .dataclass import ApparatData, BookData, Prof
from .thread_bookgrabber import BookGrabber
from .threads_autoadder import AutoAdder
from .threads_availchecker import AvailChecker
from .c_sort import custom_sort
from .constants import APP_NRS, PROF_TITLES
from .dataclass import ApparatData, BookData
from .constants import APP_NRS, PROF_TITLES, SEMAP_MEDIA_ACCOUNTS
from .csvparser import csv_to_list
from .wordparser import elsa_word_to_csv, word_docx_to_csv
from .log import MyLogger
from .zotero import ZoteroController

View File

@@ -2,6 +2,34 @@ import re
from dataclasses import dataclass, field
from enum import Enum
@dataclass
class Prof:
id: int = None
title: str= None
firstname: str= None
lastname: str= None
fullname: str= None
mail: str= None
telnr: str= None
#add function that sets the data based on a dict
def from_dict(self, data: dict):
for key, value in data.items():
if hasattr(self, key):
setattr(self, key, value)
return self
#add function that sets the data from a tuple
def from_tuple(self, data: tuple):
setattr(self, "id", data[0])
setattr(self, "title", data[1])
setattr(self, "firstname", data[2])
setattr(self, "lastname", data[3])
setattr(self, "fullname", data[4])
setattr(self, "mail", data[5])
setattr(self, "telnr", data[6])
return self
@dataclass
class ApparatData:
@@ -18,15 +46,16 @@ class ApparatData:
deleted: int = 0
prof_adis_id: int | None = None
apparat_adis_id: int | None = None
def get_prof_details(self) -> dict:
return {
@property
def prof_details(self) -> Prof:
return Prof().from_dict({
"title": self.prof_title,
"profname": self.profname,
"prof_mail": self.prof_mail,
"prof_tel": self.prof_tel,
"firstname": self.profname.split(',')[1].strip(),
"lastname": self.profname.split(',')[0].strip(),
"mail": self.prof_mail,
"telnr": self.prof_tel,
"fullname": f"{self.profname.split(',')[0].strip()} {self.profname.split(',')[1].strip()}",
}
})
def translateToFullname(self):
return f"{self.profname.split(',')[0].strip()} {self.profname.split(',')[1].strip()}"
@@ -117,3 +146,4 @@ class Subjects(Enum):
for i in cls:
if i.name == name:
return i.id - 1

View File

@@ -50,6 +50,7 @@ class BookGrabber(QThread):
self.logger.log_info("Processing entry: " + signature)
webdata = WebRequest(self.appnr).get_ppn(entry).get_data()
if webdata == "error":
continue