self.cursor

This commit is contained in:
2025-05-23 15:45:25 +03:00
parent 0e5bc28930
commit f48a05611c

View File

@@ -10,13 +10,13 @@ logger = logging.getLogger(__name__)
class Database:
def __init__(self, db_name: str, sql_path: str):
self.con = sq.connect(db_name)
cursor = self.con.cursor()
self.cursor = self.con.cursor()
try:
with open(sql_path, 'r', encoding='utf-8') as f:
sql_script = f.read()
cursor.executescript(sql_script)
self.cursor.executescript(sql_script)
self.con.commit()
logger.info("База данных успешно инициализирована!")
except Exception as e:
@@ -25,16 +25,15 @@ class Database:
# Сделать изменение всех полей при IntegrityError
def insert_activities(self, activities: list[Activity]):
cur = self.con.cursor()
is_updated = True
for act in activities:
if is_updated:
tags = cur.execute("SELECT * FROM tags WHERE id = ?", (act.tag_id, )).fetchall()
vetro_projects = cur.execute("SELECT * FROM vetro_projects WHERE id = ?", (act.vetro_project_id, )).fetchall()
tags = self.cursor.execute("SELECT * FROM tags WHERE id = ?", (act.tag_id, )).fetchall()
vetro_projects = self.cursor.execute("SELECT * FROM vetro_projects WHERE id = ?", (act.vetro_project_id, )).fetchall()
if not tags or not vetro_projects:
is_updated = False
try:
cur.execute(
self.cursor.execute(
"INSERT INTO activities VALUES(?,?,?,?,?,?,?,?,?)",
(
act.id,
@@ -49,7 +48,7 @@ class Database:
)
)
except sq.IntegrityError:
cur.execute(
self.cursor.execute(
"""UPDATE activities
SET description = ?, time_spent = ?, date_start = ?, date_end = ?, is_tracked = ?, vetro_project_id = ?, tag_id = ?, project_id = ?
WHERE id = ?""",
@@ -71,10 +70,9 @@ class Database:
logging.info("База данных устарела. Рекомендуем обновить с помощью флага -i [--init-db]")
def insert_time_entries(self, activities: list[Activity]):
cur = self.con.cursor()
for act in activities:
try:
cur.execute(
self.cursor.execute(
"""INSERT INTO time_entry
(date, description, activity_id, time_spent, task_id, activity_type_id)
VALUES(?,?,?,?,?,?)""",
@@ -93,12 +91,11 @@ class Database:
def insert_tags(self, tags: list[Tag]):
cur = self.con.cursor()
for tag in tags:
try:
cur.execute("INSERT INTO tags VALUES(?, ?)",(tag.id,tag.title))
self.cursor.execute("INSERT INTO tags VALUES(?, ?)",(tag.id,tag.title))
except sq.IntegrityError:
cur.execute(
self.cursor.execute(
"""UPDATE tags
SET title = ?
WHERE id = ?""",
@@ -109,12 +106,11 @@ class Database:
def insert_vetro_projects(self, vetro_projects: list[VetroProject]):
cur = self.con.cursor()
for vetro_project in vetro_projects:
try:
cur.execute("INSERT INTO vetro_projects VALUES(?, ?)", (vetro_project.id, vetro_project.title))
self.cursor.execute("INSERT INTO vetro_projects VALUES(?, ?)", (vetro_project.id, vetro_project.title))
except sq.IntegrityError:
cur.execute("""
self.cursor.execute("""
UPDATE vetro_projects
SET title = ?
WHERE id = ?""",
@@ -124,12 +120,11 @@ class Database:
self.con.commit()
def insert_activity_types(self, activity_types: list[ActivityType]):
cur = self.con.cursor()
for activity_type in activity_types:
try:
cur.execute("INSERT INTO activity_types VALUES(?, ?)", (activity_type.id, activity_type.title))
self.cursor.execute("INSERT INTO activity_types VALUES(?, ?)", (activity_type.id, activity_type.title))
except sq.IntegrityError:
cur.execute("""
self.cursor.execute("""
UPDATE activity_types
SET title = ?
WHERE id = ?""",