add activities

This commit is contained in:
2019-01-04 16:43:39 +05:00
parent 5e8c3ee2c9
commit ad71e72294
6 changed files with 147 additions and 2 deletions

View File

@ -18,6 +18,7 @@ class DataProvider:
"r")
cur.execute(f.read())
f.close()
self._connection.commit()
def get_enterprises(self) -> List[Enterprise]:
with self._connection.cursor() as cursor:
@ -30,6 +31,7 @@ class DataProvider:
name,
short_name
) for ent_id, name, short_name in cursor.fetchall()]
self._connection.commit()
return res
def get_enterprise_by_id(self, ent_id: int):
@ -37,6 +39,7 @@ class DataProvider:
cursor.execute("SELECT id, name, short_name "
"FROM enterprise where id=%s;", (ent_id,))
ent_id, name, short_name = cursor.fetchone()
self._connection.commit()
return Enterprise(
ent_id,
self.get_activities_by_enterprpise(ent_id),
@ -53,6 +56,7 @@ class DataProvider:
"right join do_activity da on activity.id = da.activity "
"where enterprise = %s",
(ent_id,))
self._connection.commit()
return [Activity(act_id, name) for act_id, name
in cursor.fetchall()]
@ -61,6 +65,7 @@ class DataProvider:
cur.execute(
"SELECT id from division where enterprise = %s", (ent_id,)
)
self._connection.commit()
return [Division(div_id,
self.get_contact_info_by_division(div_id),
self.get_activities_by_division(div_id)
@ -74,6 +79,7 @@ class DataProvider:
"FROM enterprise WHERE enterprise.id = %s)",
(ent_id,))
con_id, email = cur.fetchone()
self._connection.commit()
return ContactInfo(
con_id,
email,
@ -90,6 +96,7 @@ class DataProvider:
"FROM division WHERE division.id = %s)",
(div_id,))
con_id, email = cur.fetchone()
self._connection.commit()
return ContactInfo(
con_id,
email,
@ -103,6 +110,7 @@ class DataProvider:
cur.execute("SELECT id, date_of_start, date_of_end "
"FROM phone_number where contact_info = %s",
(con_id,))
self._connection.commit()
return [PhoneNumber(
ph_id,
date_start,
@ -115,6 +123,7 @@ class DataProvider:
"FROM head WHERE contact_info = %s",
(con_id,))
cur.fetchall()
self._connection.commit()
return [Head(id, date_start, date_end) for id, date_start, date_end
in cur]
@ -125,6 +134,7 @@ class DataProvider:
"date_of_start, date_of_end FROM location "
"where contact_info = %s",
(con_id,))
self._connection.commit()
return [
Location(id, country, city, street, house, room, date_of_start,
date_of_end) for
@ -139,6 +149,7 @@ class DataProvider:
"right join do_activity da on activity.id = da.activity "
"where division = %s",
(div_id,))
self._connection.commit()
return [Activity(act_id, name) for act_id, name
in cursor.fetchall()]
@ -147,6 +158,7 @@ class DataProvider:
cur.execute("INSERT INTO contact_info (email) VALUES (%s) "
"RETURNING id", (info.email, ))
info.id = cur.fetchone()[0]
self._connection.commit()
for head in info.head:
self.create_head(head, info.id)
for loc in info.locations:
@ -161,6 +173,7 @@ class DataProvider:
"VALUES (%s, %s, %s) RETURNING id",
(head.date_of_start, head.date_of_end, con_id))
head.id = cur.fetchone()[0]
self._connection.commit()
def create_location(self, loc: Location, con_id: int):
with self._connection.cursor() as cur:
@ -170,6 +183,7 @@ class DataProvider:
(loc.country, loc.city, loc.street, loc.house,
loc.room, loc.date_of_start, loc.date_of_end, con_id))
loc.id = cur.fetchone()[0]
self._connection.commit()
def create_phone_number(self, phone: PhoneNumber, con_id: int):
with self._connection.cursor() as cur:
@ -178,6 +192,7 @@ class DataProvider:
"(%s, %s, %s) RETURNING id",
(con_id, phone.date_of_start, phone.date_of_end))
phone.id = cur.fetchone()[0]
self._connection.commit()
def create_division(self, division: Division, ent_id: int):
with self._connection.cursor() as cur:
@ -188,6 +203,7 @@ class DataProvider:
division.id = cur.fetchone()[0]
for act in division.activities:
self.add_activity_to_division(division, act)
self._connection.commit()
def create_enterprise(self, enterprise: Enterprise):
with self._connection.cursor() as cur:
@ -203,22 +219,33 @@ class DataProvider:
self.add_activity_to_enterprise(enterprise, act)
for division in enterprise.divisions:
self.create_division(division, enterprise.id)
self._connection.commit()
def create_activity(self, activity: Activity):
with self._connection.cursor() as cur:
cur.execute("INSERT INTO activity (name) VALUES (%s) RETURNING id",
(activity.name, ))
activity.id = cur.fetchone()[0]
self._connection.commit()
def add_activity_to_division(self, division: Division, activity: Activity):
with self._connection.cursor() as cur:
cur.execute("INSERT INTO do_activity (activity, division) "
"VALUES (%s, %s)", (activity.id, division.id))
self._connection.commit()
def add_activity_to_enterprise(self, enterprise: Enterprise,
activity: Activity):
with self._connection.cursor() as cur:
cur.execute("INSERT INTO do_activity (activity, enterprise) "
"VALUES (%s, %s)", (activity.id, enterprise.id))
self._connection.commit()
def get_activities(self):
with self._connection.cursor() as cur:
cur.execute("SELECT id, name FROM activity")
res = [Activity(id, name) for id, name in cur.fetchall()]
self._connection.commit()
return res