Compare commits

..

4 Commits

Author SHA1 Message Date
vabene1111
f2b3cfb8f0 Merge branch 'develop' 2023-05-26 09:56:17 +02:00
sardigital
5f07ef04d2 Translated using Weblate (Russian)
Currently translated at 71.6% (344 of 480 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ru/
2023-05-25 06:19:56 +00:00
vabene1111
4c69a0b721 fixed json import missing source url attribute 2023-05-24 20:32:47 +02:00
vabene1111
06a08dcf6e allow plugins to add navs 2023-05-23 16:05:12 +02:00
5 changed files with 30 additions and 13 deletions

View File

@@ -193,7 +193,7 @@ def get_from_scraper(scrape, request):
except Exception:
pass
if recipe_json['source_url']:
if 'source_url' in recipe_json and recipe_json['source_url']:
automations = Automation.objects.filter(type=Automation.INSTRUCTION_REPLACE, space=request.space, disabled=False).only('param_1', 'param_2', 'param_3').order_by('order').all()[:512]
for a in automations:
if re.match(a.param_1, (recipe_json['source_url'])[:512]):

View File

@@ -9,7 +9,7 @@
{% endblock %}</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex,nofollow" />
<meta name="robots" content="noindex,nofollow"/>
<link rel="shortcut icon" type="image/x-icon" href="{% static 'assets/favicon.svg' %}">
@@ -50,7 +50,7 @@
<script type="text/javascript">
$.fn.select2.defaults.set("theme", "bootstrap");
{% if request.user.is_authenticated %}
window.ACTIVE_SPACE_ID = '{{request.space.id}}';
window.ACTIVE_SPACE_ID = '{{request.space.id}}';
{% endif %}
</script>
@@ -323,6 +323,12 @@
<a class="dropdown-item" href="{% url 'view_space_overview' %}"><i
class="fas fa-list"></i> {% trans 'Overview' %}</a>
{% endif %}
{% plugin_dropdown_nav_templates as plugin_dropdown_nav_templates %}
{% for pn in plugin_dropdown_nav_templates %}
<div class="dropdown-divider"></div>
{% include pn %}
{% endfor %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{% url 'docs_markdown' %}"><i
class="fab fa-markdown fa-fw"></i> {% trans 'Markdown Guide' %}</a>
@@ -349,6 +355,7 @@
</div>
</nav>
{% message_of_the_day request as message_of_the_day %}
{% if message_of_the_day %}
<div class="bg-info" style=" width: 100%; text-align: center!important; color: #ffffff; padding: 8px">
@@ -413,7 +420,7 @@
localStorage.setItem('STATIC_URL', "{% base_path request 'static_base' %}")
localStorage.setItem('DEBUG', "{% is_debug %}")
localStorage.setItem('USER_ID', "{{request.user.pk}}")
window.addEventListener("load", () => {
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("{% url 'service_worker' %}", {scope: "{% base_path request 'base' %}" + '/'}).then(function (reg) {

View File

@@ -16,7 +16,7 @@ from cookbook.helper.mdx_attributes import MarkdownFormatExtension
from cookbook.helper.mdx_urlize import UrlizeExtension
from cookbook.models import Space, get_model_name
from recipes import settings
from recipes.settings import STATIC_URL
from recipes.settings import STATIC_URL, PLUGINS
register = template.Library()
@@ -132,6 +132,14 @@ def is_debug():
def markdown_link():
return f"{_('You can use markdown to format this field. See the ')}<a target='_blank' href='{reverse('docs_markdown')}'>{_('docs here')}</a>"
@register.simple_tag
def plugin_dropdown_nav_templates():
templates = []
for p in PLUGINS:
if p['nav_dropdown']:
templates.append(p['nav_dropdown'])
return templates
@register.simple_tag
def bookmarklet(request):

View File

@@ -147,6 +147,8 @@ try:
'base_url': plugin_class.base_url,
'bundle_name': plugin_class.bundle_name if hasattr(plugin_class, 'bundle_name') else '',
'api_router_name': plugin_class.api_router_name if hasattr(plugin_class, 'api_router_name') else '',
'nav_main': plugin_class.nav_main if hasattr(plugin_class, 'nav_main') else '',
'nav_dropdown': plugin_class.nav_dropdown if hasattr(plugin_class, 'nav_dropdown') else '',
}
PLUGINS.append(plugin_config)
except Exception:

View File

@@ -1,11 +1,11 @@
{
"warning_feature_beta": "Данный функционал находится в сдадии BETA (тестируется). Возможны баги и серьезные изменения функционала в будующем.",
"warning_feature_beta": "Данный функционал находится в стадии BETA (тестируется). Возможны баги и серьезные изменения функционала в будущем.",
"err_fetching_resource": "Ошибка при загрузке продукта!",
"err_creating_resource": "Ошибка при создании продукта!",
"err_updating_resource": "Ошибка при редактировании продукта!",
"err_deleting_resource": "Ошибка при удалении продукта!",
"success_fetching_resource": "Продукт успешно загружен!",
"success_creating_resource": "Продукт успешно загружен!",
"success_creating_resource": "Продукт успешно создан!",
"success_updating_resource": "Продукт успешно обновлен!",
"success_deleting_resource": "Продукт успешно удален!",
"file_upload_disabled": "Выгрузка файла не активирована в настройках.",
@@ -13,7 +13,7 @@
"confirm_delete": "Вы уверены, что хотите удалить этот объект?",
"import_running": "Идет загрузка, пожалуйста ждите!",
"all_fields_optional": "Все поля не обязательны для заполнения.",
"convert_internal": "Конвретировать рецепт во внутренний формат",
"convert_internal": "Конвертировать рецепт во внутренний формат",
"show_only_internal": "Показывать только рецепты во внутреннем формате",
"show_split_screen": "Двухколоночный вид",
"Log_Recipe_Cooking": "Журнал приготовления",
@@ -211,13 +211,13 @@
"FoodNotOnHand": "{food} отсутствует в наличии.",
"Undefined": "Неизвестно",
"AddFoodToShopping": "Добавить {food} в ваш список покупок",
"success_moving_resource": "Успешное перемещение ресурса!",
"success_merging_resource": "Ресурс успешно присоединен!",
"success_moving_resource": "Успешное перемещение продукта!",
"success_merging_resource": "Продукт успешно присоединен!",
"Shopping_Categories": "Категории покупок",
"Search Settings": "Искать настройки",
"err_merging_resource": "Произошла ошибка при перемещении ресурса!",
"err_merging_resource": "Произошла ошибка при перемещении продукта!",
"Remove_nutrition_recipe": "Уберите питательные вещества из рецепта",
"err_moving_resource": "Произошла ошибка при перемещении ресурса!",
"err_moving_resource": "Произошла ошибка при перемещении продукта!",
"NotInShopping": "{food} отсутствует в вашем списке покупок.",
"RemoveFoodFromShopping": "Удалить {food} из вашего списка покупок",
"ShowDelayed": "Показать отложенные элементы",
@@ -345,6 +345,6 @@
"GroupBy": "Сгруппировать по",
"facet_count_info": "Показывать количество рецептов в фильтрах поиска.",
"food_inherit_info": "Поля для продуктов питания, которые должны наследоваться по умолчанию.",
"warning_space_delete": "Вы можете удалить свое пространство, включая все рецепты, списки покупок, планы питания и все остальное, что вы создали. Этого нельзя отменить! Ты уверен, что хочешь это сделать?",
"warning_space_delete": "Вы можете удалить свое пространство, включая все рецепты, списки покупок, планы питания и все остальное, что вы создали. Этого нельзя отменить! Вы уверены, что хотите это сделать?",
"Description_Replace": "Изменить описание"
}