{"id":13579826,"url":"https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates","last_synced_at":"2025-04-05T23:32:43.002Z","repository":{"id":107578371,"uuid":"595397764","full_name":"PiotrMachowski/Home-Assistant-custom-components-Custom-Templates","owner":"PiotrMachowski","description":"This integration adds possibility to use new functions in Home Assistant Jinja2 templating engine.","archived":false,"fork":false,"pushed_at":"2025-04-05T00:26:33.000Z","size":77,"stargazers_count":36,"open_issues_count":1,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-05T01:23:45.644Z","etag":null,"topics":["home-assistant","jinja2","jinja2-templates","template","templates"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PiotrMachowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"piotrmachowski","custom":["buycoffee.to/piotrmachowski","paypal.me/PiMachowski","revolut.me/314ma"]}},"created_at":"2023-01-31T01:44:56.000Z","updated_at":"2025-04-05T00:26:18.000Z","dependencies_parsed_at":"2024-06-10T23:19:23.633Z","dependency_job_id":"fda9434d-9673-45c8-b8f9-cc2ca021007b","html_url":"https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PiotrMachowski","download_url":"https://codeload.github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415793,"owners_count":20935383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-assistant","jinja2","jinja2-templates","template","templates"],"created_at":"2024-08-01T15:01:43.678Z","updated_at":"2025-04-05T23:32:37.991Z","avatar_url":"https://github.com/PiotrMachowski.png","language":"Python","funding_links":["https://ko-fi.com/piotrmachowski","buycoffee.to/piotrmachowski","paypal.me/PiMachowski","revolut.me/314ma","https://ko-fi.com/piotrmachowski'","https://paypal.me/PiMachowski","https://www.buymeacoffee.com/PiotrMachowski"],"categories":["Python"],"sub_categories":[],"readme":"[![HACS Default][hacs_shield]][hacs]\n[![GitHub Latest Release][releases_shield]][latest_release]\n[![GitHub All Releases][downloads_total_shield]][releases]\n[![Installations][installations_shield]][releases]\n[![Community Forum][community_forum_shield]][community_forum]\u003c!-- piotrmachowski_support_badges_start --\u003e\n[![Ko-Fi][ko_fi_shield]][ko_fi]\n[![buycoffee.to][buycoffee_to_shield]][buycoffee_to]\n[![PayPal.Me][paypal_me_shield]][paypal_me]\n[![Revolut.Me][revolut_me_shield]][revolut_me]\n\u003c!-- piotrmachowski_support_badges_end --\u003e\n\n\n[hacs_shield]: https://img.shields.io/static/v1.svg?label=HACS\u0026message=Default\u0026style=popout\u0026color=green\u0026labelColor=41bdf5\u0026logo=HomeAssistantCommunityStore\u0026logoColor=white\n[hacs]: https://hacs.xyz/docs/default_repositories\n\n[latest_release]: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/releases/latest\n[releases_shield]: https://img.shields.io/github/release/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates.svg?style=popout\n\n[releases]: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/releases\n[downloads_total_shield]: https://img.shields.io/github/downloads/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/total\n\n[installations_shield]: https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fanalytics.home-assistant.io%2Fcustom_integrations.json\u0026query=%24.custom_templates.total\u0026style=popout\u0026color=41bdf5\u0026label=analytics\n\n[community_forum_shield]: https://img.shields.io/static/v1.svg?label=%20\u0026message=Forum\u0026style=popout\u0026color=41bdf5\u0026logo=HomeAssistant\u0026logoColor=white\n[community_forum]: https://community.home-assistant.io/t/custom-templates/528378\n\n\n# Custom Templates\n\n\u003e [!CAUTION]\n\u003e This custom integration tampers with internal code of Home Assistant which _might_ cause some unforeseen issues (especially after HA updates).\n\u003e \n\u003e If you encounter any problems related to templating engine or translations try uninstalling this integration before raising an issue in Home Assistant repository.\n\n\nThis integration adds possibility to use new functions in Home Assistant Jinja2 templating engine:\n- `ct_state_translated` - returns translated state of an entity\n- `ct_state_attr_translated` - returns translated value of an attribute of an entity\n- `ct_translated` - returns translation for a given key\n- `ct_all_translations` - returns all available translations (that can be used with `ct_translated`)\n- `ct_eval` - evaluates text as a template\n- `ct_is_available` - checks if given entity is available\n- `ct_dict_merge` - Merges two or more dictionaries together. \n\n## Usage\n\n### `ct_state_translated`\n\nThis function returns translated state of an entity.\nSecond parameter (language) is optional - it defaults to the language configured in Home Assistant.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```\nState: {{ states(\"sun.sun\") }}\nTranslated en: {{ ct_state_translated(\"sun.sun\", \"en\") }}\nTranslated en: {{ \"sun.sun\" | ct_state_translated(\"en\") }}\nTranslated nl: {{ ct_state_translated(\"sun.sun\", \"nl\") }}\nTranslated nl: {{ \"sun.sun\" | ct_state_translated(\"nl\") }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```\nState: below_horizon\nTranslated en: Below horizon\nTranslated en: Below horizon\nTranslated nl: Onder de horizon\nTranslated nl: Onder de horizon\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_state_attr_translated`\n\nThis function returns translated value of an attribute of an entity.\nThird parameter (language) is optional - it defaults to the language configured in Home Assistant.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```\nAttribute: {{ state_attr(\"automation.example\", \"mode\") }}\nTranslated en: {{ ct_state_attr_translated(\"automation.example\", \"mode\", \"en\") }}\nTranslated en: {{ \"automation.example\" | ct_state_attr_translated(\"mode\", \"en\") }}\nTranslated nl: {{ ct_state_attr_translated(\"automation.example\", \"mode\", \"nl\") }}\nTranslated nl: {{ \"automation.example\" | ct_state_attr_translated(\"mode\", \"nl\") }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```\nAttribute: single\nTranslated en: Single\nTranslated en: Single\nTranslated nl: Enkelvoudig\nTranslated nl: Enkelvoudig\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_translated`\n\nThis function returns translation for a given key. You can use `ct_all_translations` to check available keys.\nSecond parameter (language) is optional - it defaults to the language configured in Home Assistant.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```yaml\nTranslated en: {{ ct_translated(\"component.sun.entity_component._.state.below_horizon\", \"en\") }}\nTranslated en: {{ \"component.sun.entity_component._.state.below_horizon\" | ct_translated(\"en\") }}\nTranslated nl: {{ ct_translated(\"component.sun.entity_component._.state.below_horizon\", \"nl\") }}\nTranslated nl: {{ \"component.sun.entity_component._.state.below_horizon\" | ct_translated(\"nl\") }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```\nTranslated en: Below horizon\nTranslated en: Below horizon\nTranslated nl: Onder de horizon\nTranslated nl: Onder de horizon\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_all_translations`\n\nThis function returns all available translations.\nParameter (language) is optional - it defaults to the language configured in Home Assistant.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```\n{{ ct_all_translations(\"en\") }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```json\n{\n  \"component.sun.entity_component._.state.above_horizon\": \"Above horizon\",\n  \"component.sun.entity_component._.state.below_horizon\": \"Below horizon\"\n}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_eval`\n\nThis function evaluates text as a template.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```yaml\n{% set template_text = \"{{ states('sun.sun') }}\" %}\n{{ ct_eval(template_text) }}\n{{ template_text | ct_eval }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e \n\n```\nbelow_horizon\nbelow_horizon\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_is_available`\n\nThis function checks if given entity has an available state.\nBy default, the following states are treated as not available: `unknown`, `unavailable`, `\u003cempty_text\u003e`, `None`.\nIt is possible to override this list by providing a second argument.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```yaml\n{{ states('sensor.invalid') }}\n{{ ct_is_available('sensor.invalid') }}\n{{ ct_is_available('sensor.invalid', ['', 'unknown']) }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e \n\n```\nunavailable\ntrue\nfalse\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### `ct_dict_merge`\n\nThis function will merge one or more dictionaries (mappings) together into a single dictionary.\nIf any key is shared between two or more dictionaries, the value of the key will be the last value passed.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth\u003e\nInput\n\u003c/th\u003e\n\u003cth\u003e\nOutput\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n```yaml\n{% set dict_1 = {'a':1,'b':2,'c':3} %}\n{% set dict_2 = {'d':4,'e':5,'f':6} %}\n{% set dict_3 = {'b':7,'d':8,'g':9} %}\n{{ ct_dict_merge(dict_1, dict_1) }}\n{{ ct_dict_merge(dict_1, dict_2) }}\n{{ ct_dict_merge(dict_2, dict_3) }}\n{{ ct_dict_merge(dict_1, dict_2, dict_3) }}\n```\n\n\u003c/td\u003e\n\u003ctd\u003e \n\n```django\n\n\n\n{'a': 1, 'b': 2, 'c': 3}\n{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}\n{'d': 8, 'e': 5, 'f': 6, 'b': 7, 'g': 9}\n{'a': 1, 'b': 7, 'c': 3, 'd': 8, 'e': 5, 'f': 6, 'g': 9}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Configuration\n\nTo use this integration you have to add following config in `configuration.yaml`:\n\n* Without additional languages:\n  ```yaml\n  custom_templates:\n  ```\n\n* With additional languages:\n  ```yaml\n  custom_templates:\n    preload_translations:\n      - en\n      - nl\n  ```\n\nA list of available language tags is available [here](https://github.com/home-assistant/core/blob/master/homeassistant/generated/languages.py), a list of descriptions of language tags is available [here](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry).\n\nSection `preload_translations` should contain a list of languages you want to use with translations-related functions.\nIf it is not provided only a language provided in HA config will be loaded.\n\n## Installation\n\nSince version v1.4.0 the minimal supported version of Home Assistant is 2024.5.0.\n\n### Using [HACS](https://hacs.xyz/) (recommended)\n\nThis integration can be installed using HACS.\nTo do it search for `Custom Templates` in *Integrations* section.\n \n### Manual\n\nDownload [*custom_templates.zip*](https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/releases/latest/download/custom_templates.zip) and extract its contents to `config/custom_components/custom_templates` directory:\n```bash\nmkdir -p custom_components/custom_templates\ncd custom_components/custom_templates\nwget https://github.com/PiotrMachowski/Home-Assistant-custom-components-Custom-Templates/releases/latest/download/custom_templates.zip\nunzip custom_templates.zip\nrm custom_templates.zip\n```\n\nFinally, restart Home Assistant and configure the integration.\n\n\n\n\u003c!-- piotrmachowski_support_links_start --\u003e\n\n## Support\n\nIf you want to support my work with a donation you can use one of the following platforms:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003ePlatform\u003c/th\u003e\n    \u003cth\u003ePayment methods\u003c/th\u003e\n    \u003cth\u003eLink\u003c/th\u003e\n    \u003cth\u003eComment\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eKo-fi\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003ePayPal\u003c/li\u003e\n      \u003cli\u003eCredit card\u003c/li\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href='https://ko-fi.com/piotrmachowski' target='_blank'\u003e\u003cimg height='35px' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003eNo fees\u003c/li\u003e\n      \u003cli\u003eSingle or monthly payment\u003c/li\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ebuycoffee.to\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003eBLIK\u003c/li\u003e\n      \u003cli\u003eBank transfer\u003c/li\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://buycoffee.to/piotrmachowski\" target=\"_blank\"\u003e\u003cimg src=\"https://buycoffee.to/btn/buycoffeeto-btn-primary.svg\" height=\"35px\" alt=\"Postaw mi kawę na buycoffee.to\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003ePayPal\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003ePayPal\u003c/li\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://paypal.me/PiMachowski\" target=\"_blank\"\u003e\u003cimg src=\"https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg\" border=\"0\" alt=\"PayPal Logo\" height=\"35px\" style=\"height: auto !important;width: auto !important;\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003eNo fees\u003c/li\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eRevolut\u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003eRevolut\u003c/li\u003e\n      \u003cli\u003eCredit Card\u003c/li\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://revolut.me/314ma\" target=\"_blank\"\u003e\u003cimg src=\"https://www.revolut.com/favicon/android-chrome-192x192.png\" height=\"35px\" alt=\"Revolut\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cli\u003eNo fees\u003c/li\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n[ko_fi_shield]: https://img.shields.io/static/v1.svg?label=%20\u0026message=Ko-Fi\u0026color=F16061\u0026logo=ko-fi\u0026logoColor=white\n\n[ko_fi]: https://ko-fi.com/piotrmachowski\n\n[buycoffee_to_shield]: https://shields.io/badge/buycoffee.to-white?style=flat\u0026labelColor=white\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw1AUhU9TpaIVh1YQcchQnayIijhKFYtgobQVWnUweemP0KQhSXFxFFwLDv4sVh1cnHV1cBUEwR8QVxcnRRcp8b6k0CLGC4/3cd49h/fuA4R6malmxzigapaRisfEbG5FDLzChxB6MIZ+iZl6Ir2QgWd93VM31V2UZ3n3/Vm9St5kgE8knmW6YRGvE09vWjrnfeIwK0kK8TnxqEEXJH7kuuzyG+eiwwLPDBuZ1BxxmFgstrHcxqxkqMRTxBFF1ShfyLqscN7irJarrHlP/sJgXltOc53WEOJYRAJJiJBRxQbKsBClXSPFRIrOYx7+QcefJJdMrg0wcsyjAhWS4wf/g9+zNQuTE25SMAZ0vtj2xzAQ2AUaNdv+PrbtxgngfwautJa/UgdmPkmvtbTIEdC3DVxctzR5D7jcAQaedMmQHMlPSygUgPcz+qYcELoFulfduTXPcfoAZGhWSzfAwSEwUqTsNY93d7XP7d+e5vx+AIahcq//o+yoAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wETCy4vFNqLzwAAAVpJREFUOMvd0rFLVXEYxvHPOedKJnKJhrDLuUFREULE7YDCMYj+AydpsCWiaKu29hZxiP4Al4aWwC1EdFI4Q3hqEmkIBI8ZChWXKNLLvS0/Qcza84V3enm/7/s878t/HxGkeTaIGziP+EB918nawu7Dq1d0e1+2J2bepnk2jFEUVVF+qKV51o9neBCaugfge70keoxxUbSWjrQ+4SUyzKZ5NlnDZdzGG7w4DIh+dtZEFntDA98l8S0MYwctNGrYz9WqKJePFLq80g5Sr+EHlnATp+NA+4qLaZ7FfzMrzbMBjGEdq8GrJMZnvAvFC/8wfAwjWMQ8XmMzaW9sdevNRgd3MFhvNpbaG1u/Dk2/hOc4gadVUa7Um425qii/7Z+xH9O4jwW8Cqv24Tru4hyeVEU588cfBMgpPMI9nMFe0BkFzVOYrYqycyQgQJLwTC2cDZCPeF8V5Y7jGb8BUpRicy7OU5MAAAAASUVORK5CYII=\n\n[buycoffee_to]: https://buycoffee.to/piotrmachowski\n\n[buy_me_a_coffee_shield]: https://img.shields.io/static/v1.svg?label=%20\u0026message=Buy%20me%20a%20coffee\u0026color=6f4e37\u0026logo=buy%20me%20a%20coffee\u0026logoColor=white\n\n[buy_me_a_coffee]: https://www.buymeacoffee.com/PiotrMachowski\n\n[paypal_me_shield]: https://img.shields.io/static/v1.svg?label=%20\u0026message=PayPal.Me\u0026logo=paypal\n\n[paypal_me]: https://paypal.me/PiMachowski\n\n[revolut_me_shield]: https://img.shields.io/static/v1.svg?label=%20\u0026message=Revolut\u0026logo=revolut\n\n[revolut_me]: https://revolut.me/314ma\n\u003c!-- piotrmachowski_support_links_end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiotrMachowski%2FHome-Assistant-custom-components-Custom-Templates/lists"}