Path:
strictdoc/features/diff_and_changelog/diff_screen_view_object.py
Lines:
74
Non-empty lines:
61
Non-empty lines covered with requirements:
61 / 61 (100.0%)
Functions:
9
Functions covered by requirements:
9 / 9 (100.0%)
1
"""2
@relation(SDOC-SRS-111, scope=file)3
"""4
5
import urllib
6
from dataclasses import dataclass
7
from typing import Optional
8
9
from markupsafe import Markup
10
11
from strictdoc import __version__
12
from strictdoc.core.project_config import ProjectConfig
13
from strictdoc.export.html.html_templates import JinjaEnvironment
14
from strictdoc.export.html.renderers.link_renderer import LinkRenderer
15
16
17
@dataclass18
class DiffScreenViewObject:
19
def __init__(
20
self,
21
*,
22
project_config: ProjectConfig,
23
results: bool,
24
left_revision: Optional[str],
25
right_revision: Optional[str],
26
error_message: Optional[str],
27
tab: str,
28
):29
self.project_config: ProjectConfig = project_config
30
self.results: bool = results
31
self.left_revision: Optional[str] = left_revision
32
self.right_revision: Optional[str] = right_revision
33
self.error_message: Optional[str] = error_message
34
self.tab: str = tab
35
36
link_renderer = LinkRenderer(
37
root_path="", static_path=project_config.dir_for_sdoc_assets
38
)39
self.link_renderer: LinkRenderer = link_renderer
40
self.is_running_on_server: bool = project_config.is_running_on_server
41
self.strictdoc_version = __version__
42
43
def get_document_level(self) -> int:
44
return 0
45
46
@property47
def left_revision_urlencoded(self) -> str:
48
return (
49
urllib.parse.quote(self.left_revision)
50
if self.left_revision is not None
51
else ""
52
)53
54
@property55
def right_revision_urlencoded(self) -> str:
56
return (
57
urllib.parse.quote(self.right_revision)
58
if self.right_revision is not None
59
else ""
60
)61
62
def render_screen(self, jinja_environment: JinjaEnvironment) -> Markup:
63
return jinja_environment.render_template_as_markup(
64
"features/diff_and_changelog/index.jinja", view_object=self
65
)66
67
def render_url(self, url: str) -> Markup:
68
return Markup(self.link_renderer.render_url(url))
69
70
def render_static_url(self, url: str) -> Markup:
71
return Markup(self.link_renderer.render_static_url(url))
72
73
def render_static_url_with_prefix(self, url: str) -> str:
74
return self.link_renderer.render_static_url_with_prefix(url)