Path:
strictdoc/export/html/form_objects/rows/row_with_grammar_element_form_object.py
Lines:
40
Non-empty lines:
32
Non-empty lines covered with requirements:
32 / 32 (100.0%)
Functions:
4
Functions covered by requirements:
4 / 4 (100.0%)
1
"""2
@relation(SDOC-SRS-56, scope=file)3
"""4
5
from dataclasses import dataclass
6
from typing import Any, Dict, List
7
8
from markupsafe import Markup
9
10
from strictdoc.export.html.html_templates import JinjaEnvironment
11
12
13
@dataclass14
class RowWithGrammarElementFormObject:
15
field: Any
16
errors: Dict[str, List[str]]
17
jinja_environment: JinjaEnvironment
18
19
def __post_init__(self) -> None:
20
assert self.field is not None
21
assert isinstance(self.jinja_environment, JinjaEnvironment), (
22
self.jinja_environment
23
)24
25
def render(self) -> Markup:
26
if self.field.is_new:
27
rendered_template = self.jinja_environment.render_template_as_markup(
28
"components/grammar_form/row_with_new_grammar_element/index.jinja",
29
form_object=self,
30
)31
return rendered_template
32
else:
33
rendered_template = self.jinja_environment.render_template_as_markup(
34
"components/grammar_form/row_with_grammar_element/index.jinja",
35
form_object=self,
36
)37
return rendered_template
38
39
def get_errors(self, field_name: str) -> List[str]:
40
return self.errors.get(field_name, [])