rework prof data using dataclass, change database code, fix bugs
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user