feat: keep original text on ingredient parse (#1102)

* Keep Original Text on Ingredient Parse
* Reorder migration and update test
This commit is contained in:
Miroito 2022-03-29 18:07:01 +02:00 committed by GitHub
parent 5e44d1c238
commit 6f309d7a89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 33 additions and 2 deletions

View File

@ -0,0 +1,24 @@
"""Add original_text column to recipes_ingredients
Revision ID: f1a2dbee5fe9
Revises: 263dd6707191
Create Date: 2022-03-27 19:30:28.545846
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = "f1a2dbee5fe9"
down_revision = "263dd6707191"
branch_labels = None
depends_on = None
def upgrade():
op.add_column("recipes_ingredients", sa.Column("original_text", sa.String(), nullable=True))
def downgrade():
op.drop_column("recipes_ingredients", "original_text")

View File

@ -23,6 +23,7 @@ export interface Ingredient {
}
export interface ParsedIngredient {
input: string
confidence: Confidence;
ingredient: Ingredient;
}

View File

@ -88,6 +88,7 @@ import { CreateIngredientFood, CreateIngredientUnit, IngredientFood, IngredientU
import RecipeIngredientEditor from "~/components/Domain/Recipe/RecipeIngredientEditor.vue";
import { useUserApi } from "~/composables/api";
import { useFoods, useRecipe, useUnits } from "~/composables/recipes";
import { RecipeIngredient } from "~/types/api-types/admin";
interface Error {
ingredientIndex: number;
@ -218,7 +219,8 @@ export default defineComponent({
let ingredients = parsedIng.value.map((ing) => {
return {
...ing.ingredient,
};
originalText: ing.input
} as RecipeIngredient;
});
ingredients = ingredients.map((ing) => {

View File

@ -155,6 +155,7 @@ export interface RecipeIngredient {
food?: IngredientFood | CreateIngredientFood;
disableAmount?: boolean;
quantity?: number;
originalText?: string;
referenceId?: string;
}
export interface Recipe {

View File

@ -63,6 +63,8 @@ class RecipeIngredient(SqlAlchemyBase, BaseMixins):
food = orm.relationship(IngredientFoodModel, uselist=False)
quantity = Column(Float)
original_text = Column(String)
reference_id = Column(GUID) # Reference Links
@auto_init()

View File

@ -54,6 +54,7 @@ class RecipeIngredient(MealieModel):
food: Optional[Union[IngredientFood, CreateIngredientFood]]
disable_amount: bool = True
quantity: float = 1
original_text: Optional[str]
# Ref is used as a way to distinguish between an individual ingredient on the frontend
# It is required for the reorder and section titles to function properly because of how

View File

@ -4,7 +4,7 @@ from mealie.core.config import get_app_settings
from mealie.services.backups_v2.alchemy_exporter import AlchemyExporter
ALEMBIC_VERSIONS = [
{"version_num": "263dd6707191"},
{"version_num": "f1a2dbee5fe9"},
]