Skip to content

Commit cd5d7a9

Browse files
authored
feat: TT-384-re add activity name to time entries
1 parent df3fe5c commit cd5d7a9

File tree

6 files changed

+31
-17
lines changed

6 files changed

+31
-17
lines changed

commons/data_access_layer/file_stream.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import os
2-
from azure.storage.blob.blockblobservice import BlockBlobService
2+
import tempfile
3+
4+
from azure.storage.blob import BlockBlobService, ContainerPermissions
5+
from datetime import datetime, timedelta
36

47
ACCOUNT_KEY = os.environ.get('AZURE_STORAGE_ACCOUNT_KEY')
58

@@ -15,10 +18,14 @@ def __init__(self, account_name:str, container_name:str):
1518
self.blob_service = BlockBlobService(account_name=self.account_name, account_key=ACCOUNT_KEY)
1619

1720
def get_file_stream(self, filename:str):
18-
import tempfile
1921
try:
2022
local_file = tempfile.NamedTemporaryFile()
21-
self.blob_service.get_blob_to_stream(self.container_name, filename, stream=local_file)
23+
self.blob_service.get_blob_to_stream(
24+
container_name=self.container_name,
25+
blob_name= filename,
26+
stream=local_file,
27+
max_connections=200
28+
)
2229

2330
local_file.seek(0)
2431
return local_file

tests/time_tracker_api/activities/activities_model_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,4 @@ def test__find_all_from_blob_storage__return_empty_list__when_send_event_context
8787
event_context=event_context,
8888
file_name="incorrect.json"
8989
)
90-
assert result == []
90+
assert result == [{"result": "error", "message": "file not found"}]

time_tracker_api/activities/activities_model.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,11 @@ def find_all_from_blob_storage(
123123
tenant_id_value = self.find_partition_key_value(event_context)
124124
function_mapper = self.get_mapper_or_dict(mapper)
125125
if tenant_id_value is None:
126-
return []
126+
return [{"result": "error", "message": "tenant_id is None"}]
127127

128128
fs = FileStream("storageaccounteystr82c5","tt-common-files")
129129
result = fs.get_file_stream(file_name)
130-
return list(map(function_mapper, json.load(result))) if result is not None else []
130+
return list(map(function_mapper, json.load(result))) if result is not None else [{"result": "error", "message": "file not found"}]
131131

132132
class ActivityCosmosDBDao(APICosmosDBDao, ActivityDao):
133133
def __init__(self, repository):
@@ -143,7 +143,7 @@ def get_all_with_id_in_list(
143143
activity_ids,
144144
)
145145

146-
def get_all(
146+
def get_all_v1(
147147
self,
148148
conditions: dict = None,
149149
activities_id: List = None,
@@ -162,7 +162,7 @@ def get_all(
162162
)
163163
return activities
164164

165-
def get_all_test(self, conditions: dict = None) -> list:
165+
def get_all(self, conditions: dict = None) -> list:
166166
event_ctx = self.create_event_context("read-many")
167167
activities = self.repository.find_all_from_blob_storage(event_context=event_ctx)
168168
return activities

time_tracker_api/time_entries/time_entries_dao.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,7 @@ def get_lastest_entries_by_project(
153153
projects_ids = [project.id for project in projects]
154154

155155
activity_dao = activities_model.create_dao()
156-
activities = activity_dao.get_all(
157-
visible_only=False,
158-
)
156+
activities = activity_dao.get_all()
159157

160158
result = []
161159
for id_project in projects_ids:

time_tracker_api/time_entries/time_entries_repository.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,7 @@ def add_complementary_info(
110110
add_project_info_to_time_entries(time_entries, projects)
111111

112112
activity_dao = activities_model.create_dao()
113-
activities = activity_dao.get_all(
114-
activities_id=activity_ids,
115-
visible_only=False,
116-
max_count=max_count,
117-
)
113+
activities = activity_dao.get_all()
118114

119115
add_activity_name_to_time_entries(time_entries, activities)
120116

utils/extend_model.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def add_project_info_to_time_entries(time_entries, projects):
9696
setattr(time_entry, 'customer_name', project.customer_name)
9797

9898

99-
def add_activity_name_to_time_entries(time_entries, activities):
99+
def add_activity_name_to_time_entries_v1(time_entries, activities):
100100
for time_entry in time_entries:
101101
for activity in activities:
102102
if time_entry.activity_id == activity.id:
@@ -107,6 +107,19 @@ def add_activity_name_to_time_entries(time_entries, activities):
107107
)
108108
setattr(time_entry, 'activity_name', name)
109109

110+
def add_activity_name_to_time_entries(time_entries, activities):
111+
for time_entry in time_entries:
112+
result = [x for x in activities if time_entry.activity_id == x.id]
113+
if result:
114+
name = (
115+
result[0].name + " (archived)"
116+
if result[0].is_deleted()
117+
else result[0].name
118+
)
119+
setattr(time_entry, 'activity_name', name)
120+
else:
121+
setattr(time_entry, 'activity_name', "Unknown")
122+
110123

111124
def add_user_email_to_time_entries(time_entries, users):
112125
for time_entry in time_entries:

0 commit comments

Comments
 (0)