Skip to content

Commit

Permalink
Exclude dossier assignment from propertysheet when workspace is active
Browse files Browse the repository at this point in the history
  • Loading branch information
Abdu-moustafa committed Jan 30, 2025
1 parent b50dc89 commit 2aed98a
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 6 deletions.
1 change: 1 addition & 0 deletions changes/TI-1895.other
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Exclude the dossier assignment slot from propertysheets for teamraum deployments. [amo]
6 changes: 4 additions & 2 deletions opengever/propertysheets/assignment.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from opengever.propertysheets import _
from opengever.workspace import is_workspace_feature_enabled
from zope.component import getUtility
from zope.interface import implementer
from zope.schema.interfaces import IVocabularyFactory
Expand All @@ -21,8 +22,9 @@ def __call__(self, context):
for term in get_document_assignment_slots_vocab():
assignment_terms.append(term)

for term in get_dossier_assignment_slots_vocab():
assignment_terms.append(term)
if not is_workspace_feature_enabled():
for term in get_dossier_assignment_slots_vocab():
assignment_terms.append(term)

return SimpleVocabulary(assignment_terms)

Expand Down
9 changes: 5 additions & 4 deletions opengever/propertysheets/definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from opengever.propertysheets.default_from_member import attach_member_property_default_factory
from opengever.propertysheets.exceptions import InvalidFieldType
from opengever.propertysheets.exceptions import InvalidFieldTypeDefinition
from opengever.propertysheets.exceptions import InvalidSchemaAssignment
from opengever.propertysheets.helpers import add_current_value_to_allowed_terms
from opengever.propertysheets.helpers import is_choice_field
from opengever.propertysheets.helpers import is_multiple_choice_field
Expand Down Expand Up @@ -198,9 +197,11 @@ def assignments(self, values):
term = assignment_slots.getTermByToken(token)
assignments.append(term.value)
except LookupError:
raise InvalidSchemaAssignment(
"The assignment '{}' is invalid.".format(token)
)
# Missing slots should be ignored without raising an error.
# This allows custom properties to remain usable even if the corresponding slots no longer exist.
# Currently, this mainly occurs during testing or local development
# when switching between Gever and Teamraum.
continue

self._assignments = tuple(assignments)

Expand Down
31 changes: 31 additions & 0 deletions opengever/propertysheets/tests/test_propertysheet_metaschema.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,3 +410,34 @@ def test_field_descriptions_are_translated(self, browser):
],
[prop['description'] for prop in field_properties.values()]
)


class TestWorkSpacePropertysheetMetaschemaEndpoint(IntegrationTestCase):
features = ('workspace',)

@browsing
def test_assignment_vocabularies_excluded_dossier_type(self, browser):
self.login(self.propertysheets_manager, browser)

headers = self.api_headers.copy()
headers.update({'Accept-Language': 'de-ch'})

browser.open(
view="@propertysheet-metaschema",
headers=headers,
)

properties = browser.json['properties']
self.assertEqual(
[
u'Dokument',
u'Dokument (Typ: Anfrage)',
u'Dokument (Typ: Antrag)',
u'Dokument (Typ: Bericht)',
u'Dokument (Typ: Offerte)',
u'Dokument (Typ: Protokoll)',
u'Dokument (Typ: Reglement)',
u'Dokument (Typ: Vertrag)',
u'Dokument (Typ: Weisung)',
],
properties['assignments']['items']['enumNames'])

0 comments on commit 2aed98a

Please sign in to comment.