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
3 changes: 2 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Changelog
1.4.45 (unreleased)
-------------------

- Nothing changed yet.
- WEB-4414: Fix ProcedureViewlet crashing when procedure_ts token is no longer in vocabulary
[remdub]


1.4.44 (2026-04-28)
Expand Down
8 changes: 8 additions & 0 deletions src/imio/smartweb/core/tests/test_procedure.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,14 @@ def test_get_selected_procedure_title_returns_term_when_set(self, m):
self.assertIsNotNone(term)
self.assertIn("Acte de d\\u00e9c\\u00e8s", term.title)

@requests_mock.Mocker()
def test_get_selected_procedure_title_none_when_unknown_token(self, m):
url = f"{WCS_URL}formdefs/"
m.get(url, text=json.dumps(self.json_procedures_raw_mock))
self.procedure.procedure_ts = "https://nonexistent-procedure.be/unknown/"
viewlet = self._make_viewlet()
self.assertIsNone(viewlet.get_selected_procedure_title())

# --- is_anonymous ---

def test_is_anonymous_returns_false_when_authenticated(self):
Expand Down
5 changes: 4 additions & 1 deletion src/imio/smartweb/core/viewlets/procedure.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ def get_selected_procedure_title(self):
IVocabularyFactory, "imio.smartweb.vocabulary.PublikProcedures"
)
vocabulary = factory()
term = vocabulary.getTerm(self.context.procedure_ts)
try:
term = vocabulary.getTerm(self.context.procedure_ts)
except LookupError:
return None
return term

@property
Expand Down
Loading