Changed user logic to display name and refined requirements page design

This commit is contained in:
gulimabr
2025-12-02 10:00:42 -03:00
parent a52a669521
commit e152c07f65
7 changed files with 129 additions and 65 deletions

View File

@@ -314,6 +314,20 @@ def _require_role(user, allowed_role_ids: List[int], action: str = "perform this
)
def _get_display_name(user) -> str:
"""
Get the best display name for a user.
Falls back in order: full_name -> username -> sub.
Args:
user: The database user object
Returns:
The best available display name for the user
"""
return user.full_name or user.username or user.sub
async def _verify_project_membership(project_id: int, user_id: int, db: AsyncSession):
"""Helper to verify user is a member of a project."""
project_repo = ProjectRepository(db)
@@ -570,7 +584,7 @@ async def get_project_members(
return [
ProjectMemberResponse(
id=member.id,
sub=member.sub,
sub=_get_display_name(member),
role_id=member.role_id,
role_name=member.role.role_name if member.role else "unknown",
role_display_name=ROLE_DISPLAY_NAMES.get(member.role.role_name, member.role.role_name.title()) if member.role else "Unknown",
@@ -647,7 +661,7 @@ async def update_member_role(
return ProjectMemberResponse(
id=updated_user.id,
sub=updated_user.sub,
sub=_get_display_name(updated_user),
role_id=updated_user.role_id,
role_name=role.role_name,
role_display_name=ROLE_DISPLAY_NAMES.get(role.role_name, role.role_name.title()),
@@ -772,9 +786,9 @@ def _build_requirement_response(req) -> RequirementResponse:
# Get the latest validation
latest_validation = max(req.validations, key=lambda v: v.created_at or req.created_at)
validation_status = latest_validation.status.status_name if latest_validation.status else "Not Validated"
# Try to get username from user relationship
# Try to get display name from user relationship
if latest_validation.user:
validated_by = latest_validation.user.sub
validated_by = _get_display_name(latest_validation.user)
validated_at = latest_validation.created_at
validation_version = latest_validation.req_version_snapshot
@@ -1112,7 +1126,7 @@ async def create_validation(
req_version_snapshot=validation.req_version_snapshot,
comment=validation.comment,
created_at=validation.created_at,
validator_username=user.sub,
validator_username=_get_display_name(user),
validator_id=user.id
)
@@ -1159,7 +1173,7 @@ async def get_validation_history(
req_version_snapshot=v.req_version_snapshot,
comment=v.comment,
created_at=v.created_at,
validator_username=v.user.sub,
validator_username=_get_display_name(v.user),
validator_id=v.user_id
)
for v in validations
@@ -1416,7 +1430,7 @@ async def create_requirement_link(
"req_name": target_req.req_name,
"tag_code": target_req.tag.tag_code
},
created_by_username=user.sub,
created_by_username=_get_display_name(user),
created_by_id=user.id,
created_at=link.created_at
)