Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions ietf/meeting/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1025,9 +1025,18 @@ def resolve_materials_for_one_meeting(meeting: Meeting):
)

def resolve_uploaded_material(meeting: Meeting, doc: Document):
resolved = []
resolved: list[ResolvedMaterial] = []
remove = ResolvedMaterial.objects.none()
blob = resolve_one_material(doc, rev=None, ext=None)
if blob is not None:
if blob is None:
# Versionless file does not exist. Remove the versionless ResolvedMaterial
# if it existed. This is to avoid leaving behind a stale link to a replaced
# version. This comes up e.g. if a ProceedingsMaterial is changed from having
# an uploaded file to being an external URL.
remove = ResolvedMaterial.objects.filter(
name=doc.name, meeting_number=meeting.number
)
else:
resolved.append(
ResolvedMaterial(
name=doc.name,
Expand All @@ -1047,12 +1056,15 @@ def resolve_uploaded_material(meeting: Meeting, doc: Document):
blob=blob.name,
)
)
# Create the new record(s)
ResolvedMaterial.objects.bulk_create(
resolved,
update_conflicts=True,
unique_fields=["name", "meeting_number"],
update_fields=["bucket", "blob"],
)
# and remove one if necessary (will be a none() queryset if not)
remove.delete()


def store_blob_for_one_material_file(doc: Document, rev: str, filepath: Path):
Expand Down
4 changes: 2 additions & 2 deletions ietf/meeting/views_proceedings.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from ietf.meeting.models import Meeting, MeetingHost
from ietf.meeting.helpers import get_meeting
from ietf.name.models import ProceedingsMaterialTypeName
from ietf.meeting.utils import handle_upload_file
from ietf.meeting.utils import handle_upload_file, resolve_uploaded_material
from ietf.utils.text import xslugify

class UploadProceedingsMaterialForm(FileUploadForm):
Expand Down Expand Up @@ -150,7 +150,7 @@ def save_proceedings_material_doc(meeting, material_type, title, request, file=N

if events:
doc.save_with_history(events)

resolve_uploaded_material(meeting, doc)
return doc


Expand Down
Loading