Skip to content

Commit

Permalink
Merge pull request #210 from ynput/209-workfiles-createdby-and-update…
Browse files Browse the repository at this point in the history
…dby-fields-are-not-autopopulated

Workfiles: auto populate createdBy and updatedBy
  • Loading branch information
martastain authored May 24, 2024
2 parents b67475d + eff8d48 commit 4e44df1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
10 changes: 10 additions & 0 deletions api/operations/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ async def process_operation(
if operation.entity_type == "version":
if not payload_dict.get("author"):
payload_dict["author"] = user.name
elif operation.entity_type == "workfile":
if not payload_dict.get("created_by"):
payload_dict["created_by"] = user.name
if not payload_dict.get("updated_by"):
payload_dict["updated_by"] = payload_dict["created_by"]
entity = entity_class(project_name, payload_dict)
await entity.ensure_create_access(user)
description = f"{operation.entity_type.capitalize()} {entity.name} created"
Expand All @@ -131,6 +136,11 @@ async def process_operation(

payload = entity_class.model.patch_model(**operation.data)
assert operation.entity_id is not None, "entity_id is required for update"

if operation.entity_type == "workfile":
if not payload.updated_by:
payload.updated_by = user.name

entity = await entity_class.load(
project_name,
operation.entity_id,
Expand Down
9 changes: 9 additions & 0 deletions api/workfiles/workfiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ async def create_workfile(
Use a POST request to create a new workfile
"""

if not post_data.created_by:
post_data.created_by = user.name
if not post_data.updated_by:
post_data.updated_by = post_data.created_by

workfile = WorkfileEntity(project_name=project_name, payload=post_data.dict())
await workfile.ensure_create_access(user)
event = {
Expand Down Expand Up @@ -83,6 +88,10 @@ async def update_workfile(

workfile = await WorkfileEntity.load(project_name, workfile_id)
await workfile.ensure_update_access(user)

if not post_data.updated_by:
post_data = user.name

events = build_pl_entity_change_events(workfile, post_data)
workfile.patch(post_data)
await workfile.save()
Expand Down

0 comments on commit 4e44df1

Please sign in to comment.