29
29
import logging # Logger for debug/info/error messages
30
30
import re
31
31
from pprint import pprint
32
+
32
33
logger = logging .getLogger ("openscap" )
33
34
34
35
from sys import version_info
@@ -479,12 +480,21 @@ def get_values_by_rule_id(self, id, check=None):
479
480
480
481
return items
481
482
483
+
482
484
def __parse_value (self , value ):
483
-
485
+ ''' Used by get_tailoring_items() '''
486
+
487
+ # update the local lang lists
488
+ def __update_lang (item , lang ):
489
+ if lang not in item ["langs" ]:
490
+ item ["langs" ].add (lang )
491
+
492
+
484
493
# get value properties
485
494
item = {}
486
495
item ["id" ] = value .id
487
- item ["lang" ] = self .model .benchmark .lang
496
+ item ["langs" ] = {self .model .benchmark .lang } # set of available langs
497
+ item ["lang" ] = self .model .benchmark .lang # legacy support of item["lang"]
488
498
item ["titles" ] = {}
489
499
item ["descs" ] = {}
490
500
# Titles / Questions
@@ -493,11 +503,14 @@ def __parse_value(self, value):
493
503
item ["titles" ][question .lang ] = question .text
494
504
else :
495
505
for title in value .title :
506
+ __update_lang (item , title .lang )
496
507
item ["titles" ][title .lang ] = title .text
508
+
497
509
if item ["lang" ] not in item ["titles" ]:
498
510
item ["titles" ][item ["lang" ]] = ""
499
511
# Descriptions
500
512
for desc in value .description :
513
+ __update_lang (item , desc .lang )
501
514
item ["descs" ][desc .lang ] = desc .text
502
515
if item ["lang" ] not in item ["descs" ]:
503
516
item ["descs" ][item ["lang" ]] = ""
0 commit comments