Skip to content

Commit 2d2e879

Browse files
fix: versioned href for slides URL (ietf-tools#8040)
1 parent 83f5fc8 commit 2d2e879

3 files changed

Lines changed: 11 additions & 13 deletions

File tree

ietf/meeting/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1840,7 +1840,7 @@ def agenda_extract_slide(item):
18401840
"id": item.id,
18411841
"title": item.title,
18421842
"rev": item.rev,
1843-
"url": item.get_versionless_href(),
1843+
"url": item.get_href(),
18441844
"ext": item.file_extension(),
18451845
}
18461846

ietf/utils/meetecho.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -481,12 +481,10 @@ def delete_conference(self, conf: Conference):
481481
class SlidesManager(Manager):
482482
"""Interface between Datatracker models and Meetecho API
483483
484-
Note: The URL we send comes from get_versionless_href(). This should match what we use as the
485-
URL in api_get_session_materials(). Additionally, it _must_ give the right result for a Document
486-
instance that has not yet been persisted to the database. This is because upload_session_slides()
487-
(as of 2024-03-07) SessionPresentations before saving its updated Documents. This means, for
488-
example, using get_absolute_url() will cause bugs. (We should refactor upload_session_slides() to
489-
avoid this requirement.)
484+
Note: the URL sent for a slide deck comes from DocumentInfo.get_href() and includes the revision
485+
of the slides being sent. Be sure that 1) the URL matches what api_get_session_materials() returns
486+
for the slides; and 2) the URL is valid if it is fetched immediately - possibly even before the call
487+
to SlidesManager.add() or send_update() returns.
490488
"""
491489

492490
def __init__(self, api_config):
@@ -521,7 +519,7 @@ def add(self, session: "Session", slides: "Document", order: int):
521519
deck={
522520
"id": slides.pk,
523521
"title": slides.title,
524-
"url": slides.get_versionless_href(), # see above note re: get_versionless_href()
522+
"url": slides.get_href(),
525523
"rev": slides.rev,
526524
"order": order,
527525
}
@@ -575,7 +573,7 @@ def send_update(self, session: "Session"):
575573
{
576574
"id": deck.document.pk,
577575
"title": deck.document.title,
578-
"url": deck.document.get_versionless_href(), # see note above re: get_versionless_href()
576+
"url": deck.document.get_href(),
579577
"rev": deck.document.rev,
580578
"order": deck.order,
581579
}

ietf/utils/tests_meetecho.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ def test_add(self, mock_add, mock_wg_token):
558558
deck={
559559
"id": slides_doc.pk,
560560
"title": slides_doc.title,
561-
"url": slides_doc.get_versionless_href(),
561+
"url": slides_doc.get_href(session.meeting),
562562
"rev": slides_doc.rev,
563563
"order": 13,
564564
},
@@ -597,7 +597,7 @@ def test_delete(self, mock_delete, mock_update, mock_wg_token):
597597
{
598598
"id": slides_doc.pk,
599599
"title": slides_doc.title,
600-
"url": slides_doc.get_versionless_href(),
600+
"url": slides_doc.get_href(session.meeting),
601601
"rev": slides_doc.rev,
602602
"order": 1,
603603
},
@@ -635,7 +635,7 @@ def test_revise(self, mock_add, mock_delete, mock_wg_token):
635635
deck={
636636
"id": slides_doc.pk,
637637
"title": slides_doc.title,
638-
"url": slides_doc.get_versionless_href(),
638+
"url": slides_doc.get_href(slides.session.meeting),
639639
"rev": slides_doc.rev,
640640
"order": 23,
641641
},
@@ -660,7 +660,7 @@ def test_send_update(self, mock_send_update, mock_wg_token):
660660
{
661661
"id": slides.document_id,
662662
"title": slides.document.title,
663-
"url": slides.document.get_versionless_href(),
663+
"url": slides.document.get_href(slides.session.meeting),
664664
"rev": slides.document.rev,
665665
"order": 0,
666666
}

0 commit comments

Comments
 (0)