feat(logs): add workspace activity log api

This commit is contained in:
2026-04-28 16:42:37 +03:30
parent c8a118788b
commit 71924ce6fb
32 changed files with 1118 additions and 122 deletions

View File

@@ -1,11 +1,13 @@
from django.core.exceptions import ValidationError
from django.conf import settings
from django.db import models
from django.db.models import Q
from core.models.base import BaseModel
from apps.workspaces.models import Workspace
from apps.projects.models import Project
from django.core.exceptions import ValidationError
from django.conf import settings
from django.db import models
from django.db.models import Q
from apps.logs.services import build_workspace_log_metadata
from apps.logs.services.constants import SECTION_TIME_ENTRIES
from core.models.base import BaseModel
from apps.workspaces.models import Workspace
from apps.projects.models import Project
from apps.tags.models import Tag
@@ -69,8 +71,18 @@ class TimeEntry(BaseModel):
)
]
def __str__(self):
return f"{self.user} - {self.start_time}"
def __str__(self):
return f"{self.user} - {self.start_time}"
def get_additional_data(self):
target_label = self.description.strip() if self.description else f"Time entry {self.start_time.isoformat()}"
return build_workspace_log_metadata(
section=SECTION_TIME_ENTRIES,
workspace_id=self.workspace_id,
target_id=self.id,
target_label=target_label,
extra={"entry_user_id": str(self.user_id)},
)
def clean(self):
if self.project and self.project.workspace_id != self.workspace_id: