Skip to content

Commit db9b241

Browse files
committed
Fix validating document template metamodel version
1 parent cec2f76 commit db9b241

File tree

6 files changed

+16
-9
lines changed

6 files changed

+16
-9
lines changed

shared-common/src/Shared/DocumentTemplate/Constant/DocumentTemplate.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,12 @@ import Shared.Common.Model.Common.SemVer2Tuple
44

55
documentTemplateMetamodelVersion :: SemVer2Tuple
66
documentTemplateMetamodelVersion = SemVer2Tuple 17 0
7+
8+
isDocumentTemplateSupported :: SemVer2Tuple -> Bool
9+
isDocumentTemplateSupported metamodelVersion
10+
| metamodelVersion == documentTemplateMetamodelVersion = True
11+
| metamodelVersion.major == documentTemplateMetamodelVersion.major && metamodelVersion.minor < documentTemplateMetamodelVersion.minor = True
12+
| otherwise = False
13+
14+
isDocumentTemplateUnsupported :: SemVer2Tuple -> Bool
15+
isDocumentTemplateUnsupported = not . isDocumentTemplateSupported

wizard-server/src/Wizard/Database/Mapping/Project/ProjectDetailSettings.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ instance FromRow ProjectDetailSettings where
8282
let documentTemplateState =
8383
case mDocumentTemplateMetamodelVersion of
8484
Just metamodelVersion ->
85-
if metamodelVersion /= documentTemplateMetamodelVersion
85+
if isDocumentTemplateUnsupported metamodelVersion
8686
then Just UnsupportedMetamodelVersionDocumentTemplateState
8787
else Just DefaultDocumentTemplateState
8888
_ -> Nothing

wizard-server/src/Wizard/Service/DocumentTemplate/DocumentTemplateService.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Shared.Common.Model.Common.Sort
1212
import Shared.Common.Model.Error.Error
1313
import Shared.Coordinate.Service.Coordinate.CoordinateValidation
1414
import Shared.DocumentTemplate.Api.Resource.DocumentTemplate.DocumentTemplateSuggestionDTO
15+
import Shared.DocumentTemplate.Constant.DocumentTemplate
1516
import Shared.DocumentTemplate.Database.DAO.DocumentTemplate.DocumentTemplateAssetDAO
1617
import Shared.DocumentTemplate.Database.DAO.DocumentTemplate.DocumentTemplateDAO hiding (findDocumentTemplatesFiltered)
1718
import Shared.DocumentTemplate.Database.DAO.DocumentTemplate.DocumentTemplateFormatDAO
@@ -66,7 +67,7 @@ getDocumentTemplateSuggestions mPkgId includeUnsupportedMetamodelVersion mPhase
6667
where
6768
filterDocumentTemplatesInGroup :: [DocumentTemplateSuggestion] -> [DocumentTemplateSuggestion]
6869
filterDocumentTemplatesInGroup =
69-
filter (isDocumentTemplateSupported includeUnsupportedMetamodelVersion)
70+
filter (\dt -> includeUnsupportedMetamodelVersion || isDocumentTemplateSupported dt.metamodelVersion)
7071
. filter (isDocumentTemplateInPhase mPhase)
7172
. filterDocumentTemplates mPkgId
7273

wizard-server/src/Wizard/Service/DocumentTemplate/DocumentTemplateUtil.hs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ import Wizard.Model.Registry.RegistryTemplate
1313

1414
computeDocumentTemplateState :: [RegistryTemplate] -> DocumentTemplate -> DocumentTemplateState
1515
computeDocumentTemplateState tmlsFromRegistry tml =
16-
if not (isDocumentTemplateSupported False tml)
16+
if not (isDocumentTemplateSupported tml.metamodelVersion)
1717
then UnsupportedMetamodelVersionDocumentTemplateState
1818
else DefaultDocumentTemplateState
1919

2020
computeDocumentTemplateState' :: DocumentTemplateList -> DocumentTemplateState
2121
computeDocumentTemplateState' tml
22-
| not (isDocumentTemplateSupported False tml) = UnsupportedMetamodelVersionDocumentTemplateState
22+
| not (isDocumentTemplateSupported tml.metamodelVersion) = UnsupportedMetamodelVersionDocumentTemplateState
2323
| otherwise = DefaultDocumentTemplateState
2424

2525
selectDocumentTemplateByOrgIdAndTmlId tml =
@@ -31,9 +31,6 @@ getUsableKnowledgeModelPackagesForDocumentTemplate tml = chooseTheNewest . group
3131
where
3232
filterPackages tml = filter (\pkg -> not . null $ filterDocumentTemplates (Just pkg.pId) [tml])
3333

34-
isDocumentTemplateSupported True tml = True
35-
isDocumentTemplateSupported False tml = tml.metamodelVersion == documentTemplateMetamodelVersion
36-
3734
isDocumentTemplateInPhase (Just phase) tml = tml.phase == phase
3835
isDocumentTemplateInPhase _ _ = True
3936

wizard-server/src/Wizard/Service/DocumentTemplate/DocumentTemplateValidation.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ validateUsageBySomeDocument tmlId = do
7474
validateMetamodelVersion :: DocumentTemplate -> AppContextM ()
7575
validateMetamodelVersion tml =
7676
when
77-
(tml.metamodelVersion /= documentTemplateMetamodelVersion)
77+
(isDocumentTemplateUnsupported tml.metamodelVersion)
7878
( throwError . UserError $
7979
_ERROR_VALIDATION__TEMPLATE_UNSUPPORTED_METAMODEL_VERSION tml.tId (show tml.metamodelVersion) (show documentTemplateMetamodelVersion)
8080
)

wizard-server/src/Wizard/Service/Project/ProjectMapper.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ toProjectDetailTemplateState :: Maybe DocumentTemplate -> Maybe DocumentTemplate
230230
toProjectDetailTemplateState =
231231
fmap
232232
( \tml ->
233-
if tml.metamodelVersion /= documentTemplateMetamodelVersion
233+
if isDocumentTemplateUnsupported tml.metamodelVersion
234234
then UnsupportedMetamodelVersionDocumentTemplateState
235235
else DefaultDocumentTemplateState
236236
)

0 commit comments

Comments
 (0)