Merge branch 'mealie-next' into fix/make-mealie-alpha-migrations-more-fault-tolerant

This commit is contained in:
Michael Genson
2024-03-05 09:17:38 -06:00
committed by GitHub
57 changed files with 514 additions and 341 deletions

View File

@@ -29,13 +29,13 @@
"generic-updated": "{name} беше актуализирано",
"generic-created-with-url": "{name} беше създадено, {url}",
"generic-updated-with-url": "{name} беше актуализирано, {url}",
"generic-duplicated": "{name} е дублицирано",
"generic-duplicated": "{name} е дублирано",
"generic-deleted": "{name} беше изтрито"
},
"datetime": {
"year": "година|години",
"day": "ден|дни",
"hour": "час|часове",
"hour": "час|часа и",
"minute": "минута|минути",
"second": "секунда|секунди",
"millisecond": "милисекунда|милисекунди",

View File

@@ -1,6 +1,6 @@
{
"acorn-squash": "abóbora-bolota",
"alfalfa-sprouts": "broto de alfafa",
"alfalfa-sprouts": "rebentos de alfafa",
"anchovies": "anchovas",
"apples": "maçãs",
"artichoke": "alcachofra",
@@ -11,16 +11,16 @@
"bacon": "bacon",
"baking-powder": "fermento em pó",
"baking-soda": "bicarbonato de sódio",
"baking-sugar": "açúcar fino",
"bar-sugar": "açúcar em barra",
"baking-sugar": "açúcar granulado",
"bar-sugar": "açúcar em ",
"basil": "manjericão",
"bell-peppers": "pimentão",
"bell-peppers": "pimentões",
"blackberries": "amoras",
"brassicas": "brassicas",
"bok-choy": "bok choy",
"broccoflower": "brocoflor",
"brassicas": "crucíferas",
"bok-choy": "couve chinesa",
"broccoflower": "couve-romanesca",
"broccoli": "brócolos",
"broccolini": "broccolini",
"broccolini": "bimi",
"broccoli-rabe": "grelo de brócolo",
"brussels-sprouts": "couve-de-bruxelas",
"cabbage": "repolho",
@@ -34,20 +34,20 @@
"brown-sugar": "açúcar mascavado",
"butter": "manteiga",
"butternut-pumpkin": "abóbora manteiga",
"butternut-squash": "abóbora de manteiga",
"butternut-squash": "puré de abóbora manteiga",
"cactus-edible": "cato, comestível",
"calabrese": "brócolo",
"calabrese": "brócolo calabrese",
"cannabis": "canábis",
"capsicum": "capsicum",
"caraway": "cominho",
"caraway": "alcarávia",
"carrot": "cenoura",
"castor-sugar": "açúcar de confeiteiro",
"cayenne-pepper": "pimenta cayenne",
"cayenne-pepper": "pimenta caiena",
"celeriac": "aipo-rábano",
"celery": "aipo",
"cereal-grains": "farelo de cereais",
"cereal-grains": "grãos de cereal",
"rice": "arroz",
"chard": "acelga portuguesa",
"chard": "acelga",
"cheese": "queijo",
"chicory": "chicória",
"chilli-peppers": "pimenta chili",
@@ -56,31 +56,31 @@
"cilantro": "coentros",
"cinnamon": "canela",
"clarified-butter": "manteiga clarificada",
"coconut": "côco",
"coconut-milk": "leite de côco",
"coconut": "coco",
"coconut-milk": "leite de coco",
"coffee": "café",
"confectioners-sugar": "açucar em pó",
"confectioners-sugar": "açúcar em pó",
"coriander": "coentro",
"corn": "milho",
"corn-syrup": "xarope de milho",
"cottonseed-oil": "óleo de algodão",
"courgette": "courgette",
"cream-of-tartar": "creme de tártaro",
"courgette": "curgete",
"cream-of-tartar": "cremor tártaro",
"cucumber": "pepino",
"cumin": "cominho",
"daikon": "rabanete branco",
"dairy-products-and-dairy-substitutes": "produtos lácteos e substitutos de leite",
"eggs": "ovos",
"ghee": "manteiga indiana",
"ghee": "manteiga ghee",
"milk": "leite",
"dandelion": "dente-de-leão",
"demerara-sugar": "açúcar de demerara",
"demerara-sugar": "açúcar demerara",
"dough": "massa",
"edible-cactus": "cacto comestível",
"eggplant": "berinjela",
"edible-cactus": "cato comestível",
"eggplant": "beringela",
"endive": "endívia",
"fats": "gorduras",
"speck": "presunto",
"speck": "presunto tirolês",
"fava-beans": "favas",
"fiddlehead": "rebentos de feto comestíveis",
"fish": "peixe",
@@ -89,7 +89,7 @@
"salt-cod": "bacalhau salgado",
"salmon": "salmão",
"skate": "raia",
"stockfish": "bacalhau salgado",
"stockfish": "bacalhau seco",
"trout": "truta",
"tuna": "atum",
"five-spice-powder": "cinco especiarias chinesas em pó",
@@ -101,7 +101,7 @@
"oranges": "laranjas",
"pear": "pera",
"tomato": "tomate ",
"fruit-sugar": "açúcar de fruta",
"fruit-sugar": "frutose",
"garam-masala": "garam masala",
"garlic": "alho",
"gem-squash": "abóbora gem",
@@ -128,17 +128,17 @@
"jerusalem-artichoke": "alcachofra-de-jerusalém",
"jicama": "nabo-mexicano",
"kale": "couve",
"kumara": "kumara",
"kumara": "batata-doce",
"leavening-agents": "fermentos",
"leek": "alho-françês",
"legumes": "legumes ",
"peas": "ervilhas",
"beans": "feijões",
"lentils": "lentilhas",
"lemongrass": "erva-limão",
"lemongrass": "erva-príncipe",
"lettuce": "alface",
"liver": "fígado",
"maple-syrup": "xarope de ácer",
"maple-syrup": "xarope de acer",
"meat": "carne",
"mortadella": "mortadela",
"mushroom": "cogumelo",
@@ -146,7 +146,7 @@
"mussels": "mexilhão",
"nori": "nori",
"nutmeg": "noz-moscada",
"nutritional-yeast-flakes": "levedura nutricional",
"nutritional-yeast-flakes": "flocos de levedura nutricional",
"nuts": "frutos secos",
"nanaimo-bar-mix": "mistura de barras nanaimo",
"octopuses": "polvos",
@@ -166,12 +166,12 @@
"parsnip": "cherovia",
"pepper": "pimenta",
"peppers": "pimentos",
"plantain": "banana-da-terra",
"plantain": "plátano",
"pineapple": "ananás",
"poppy-seeds": "sementes de papoila",
"potatoes": "batatas",
"poultry": "carne de aves",
"powdered-sugar": "açucar em pó",
"powdered-sugar": "açúcar em pó",
"pumpkin": "abóbora",
"pumpkin-seeds": "sementes de abóbora",
"radish": "rabanete",
@@ -218,5 +218,5 @@
"watercress": "agrião",
"watermelon": "melancia",
"xanthan-gum": "goma xantana",
"yeast": "fermento"
"yeast": "levedura"
}

View File

@@ -1,6 +1,6 @@
[
{
"name": "Продукция"
"name": "Пресни плодове&зеленчуци"
},
{
"name": "Зърнени култури"
@@ -15,7 +15,7 @@
"name": "Месо"
},
{
"name": "Морска храна"
"name": "Морски дарове"
},
{
"name": "Напитки"
@@ -24,7 +24,7 @@
"name": "Печива"
},
{
"name": "Canned Goods"
"name": "Консерви"
},
{
"name": "Допълнения"

View File

@@ -21,7 +21,7 @@
"name": "Bebidas"
},
{
"name": "Pães e Bolos"
"name": "Produtos de pastelaria"
},
{
"name": "Enlatados"
@@ -30,7 +30,7 @@
"name": "Condimentos"
},
{
"name": "Doçaria"
"name": "Confeitaria"
},
{
"name": "Lacticínios"
@@ -57,7 +57,7 @@
"name": "Doces"
},
{
"name": "Bebidas Alcoólicas"
"name": "Álcool"
},
{
"name": "Outros"

View File

@@ -10,7 +10,7 @@
"abbreviation": "с.л."
},
"cup": {
"name": "cup",
"name": "чаена чаша",
"description": "",
"abbreviation": "cup"
},
@@ -70,7 +70,7 @@
"abbreviation": "мг"
},
"splash": {
"name": "плисък",
"name": "1/2 ч.л.",
"description": "",
"abbreviation": ""
},
@@ -80,7 +80,7 @@
"abbreviation": ""
},
"serving": {
"name": "порция",
"name": "порция|порции",
"description": "",
"abbreviation": ""
},

View File

@@ -2,17 +2,17 @@
"teaspoon": {
"name": "colher de chá",
"description": "",
"abbreviation": "tsp"
"abbreviation": "csm"
},
"tablespoon": {
"name": "colher de sopa",
"description": "",
"abbreviation": "tbsp"
"abbreviation": "csp"
},
"cup": {
"name": "chávena",
"description": "",
"abbreviation": "cup"
"abbreviation": "chávena"
},
"fluid-ounce": {
"name": "onça fluida",
@@ -80,7 +80,7 @@
"abbreviation": ""
},
"serving": {
"name": "dose",
"name": "porção",
"description": "",
"abbreviation": ""
},

View File

@@ -101,7 +101,7 @@ class ShoppingListItemOut(ShoppingListItemBase):
update_at: datetime | None = None
@model_validator(mode="after")
def post_validate(self):
def populate_missing_label(self):
# if we're missing a label, but the food has a label, use that as the label
if (not self.label) and (self.food and self.food.label):
self.label = self.food.label

View File

@@ -184,13 +184,13 @@ class Recipe(RecipeSummary):
model_config = ConfigDict(from_attributes=True)
@model_validator(mode="after")
def post_validate(self):
# the ingredient disable_amount property is unreliable,
# so we set it here and recalculate the display property
def calculate_missing_food_flags_and_format_display(self):
disable_amount = self.settings.disable_amount if self.settings else True
for ingredient in self.recipe_ingredient:
ingredient.disable_amount = disable_amount
ingredient.is_food = not ingredient.disable_amount
# recalculate the display property, since it depends on the disable_amount flag
ingredient.display = ingredient._format_display()
return self

View File

@@ -145,7 +145,7 @@ class RecipeIngredientBase(MealieModel):
"""
@model_validator(mode="after")
def post_validate(self):
def calculate_missing_food_flags(self):
# calculate missing is_food and disable_amount values
# we can't do this in a validator since they depend on each other
if self.is_food is None and self.disable_amount is not None:
@@ -156,7 +156,10 @@ class RecipeIngredientBase(MealieModel):
self.is_food = bool(self.food)
self.disable_amount = not self.is_food
# format the display property
return self
@model_validator(mode="after")
def format_display(self):
if not self.display:
self.display = self._format_display()