use only one jinja env
slightly improves performance
This commit is contained in:
@@ -6,7 +6,7 @@ import json
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk
|
||||
from jinja2 import Environment, Template
|
||||
from jinja2 import Template
|
||||
|
||||
from ks_includes.screen_panel import ScreenPanel
|
||||
|
||||
@@ -75,26 +75,23 @@ class MenuPanel(ScreenPanel):
|
||||
key = list(self.items[i])[0]
|
||||
item = self.items[i][key]
|
||||
|
||||
env = Environment(extensions=["jinja2.ext.i18n"], autoescape=True)
|
||||
env.install_gettext_translations(self._config.get_lang())
|
||||
|
||||
printer = self._printer.get_printer_status_data()
|
||||
|
||||
name = env.from_string(item['name']).render(printer)
|
||||
icon = env.from_string(item['icon']).render(printer) if item['icon'] else None
|
||||
style = env.from_string(item['style']).render(printer) if item['style'] else None
|
||||
name = self._screen.env.from_string(item['name']).render(printer)
|
||||
icon = self._screen.env.from_string(item['icon']).render(printer) if item['icon'] else None
|
||||
style = self._screen.env.from_string(item['style']).render(printer) if item['style'] else None
|
||||
|
||||
b = self._gtk.Button(icon, name, style or f"color{i % 4 + 1}")
|
||||
|
||||
if item['panel'] is not None:
|
||||
panel = env.from_string(item['panel']).render(printer)
|
||||
panel = self._screen.env.from_string(item['panel']).render(printer)
|
||||
b.connect("clicked", self.menu_item_clicked, panel, item)
|
||||
elif item['method'] is not None:
|
||||
params = {}
|
||||
|
||||
if item['params'] is not False:
|
||||
try:
|
||||
p = env.from_string(item['params']).render(printer)
|
||||
p = self._screen.env.from_string(item['params']).render(printer)
|
||||
params = json.loads(p)
|
||||
except Exception as e:
|
||||
logging.exception(f"Unable to parse parameters for [{name}]:\n{e}")
|
||||
|
Reference in New Issue
Block a user