fixed original text for pasted ingredients

This commit is contained in:
vabene1111
2025-08-30 08:29:07 +02:00
parent a83f474d70
commit f055df3b4d
4 changed files with 16 additions and 6 deletions

View File

@@ -2507,7 +2507,7 @@ def meal_plans_to_ical(queryset, filename):
request=inline_serializer(name="IngredientStringSerializer", fields={'text': CharField()}),
responses=inline_serializer(name="ParsedIngredientSerializer",
fields={'amount': IntegerField(), 'unit': CharField(), 'food': CharField(),
'note': CharField()})
'note': CharField(), 'original_text': CharField()})
)
@api_view(['POST'])
@permission_classes([CustomIsUser & CustomTokenHasReadWriteScope])
@@ -2517,7 +2517,7 @@ def ingredient_from_string(request):
ingredient_parser = IngredientParser(request, False)
amount, unit, food, note = ingredient_parser.parse(text)
ingredient = {'amount': amount, 'unit': None, 'food': None, 'note': note}
ingredient = {'amount': amount, 'unit': None, 'food': None, 'note': note, 'original_text': text}
if food:
food, created = Food.objects.get_or_create(space=request.space, name=food)
ingredient['food'] = {'name': food.name, 'id': food.id}

View File

@@ -61,7 +61,7 @@
<div v-if="!mobile">
<vue-draggable v-model="step.ingredients" handle=".drag-handle" :on-sort="sortIngredients" :empty-insert-threshold="25" group="ingredients">
<v-row v-for="(ingredient, index) in step.ingredients" :key="ingredient.id" dense>
<v-col cols="12" class="pa-0 ma-0 text-center text-disabled">
<v-col cols="12" class="pa-0 ma-0 text-center text-disabled" v-if="ingredient.originalText">
<v-icon icon="$import" size="x-small"></v-icon>
{{ ingredient.originalText }}
</v-col>
@@ -306,6 +306,7 @@ function parseAndInsertIngredients() {
r.forEach(i => {
console.log(i)
step.value.ingredients.push({
originalText: i.value.originalText,
amount: i.value.amount,
food: i.value.food,
unit: i.value.unit,

View File

@@ -79,12 +79,12 @@
<v-col class="text-center">
<v-btn-group density="compact" divided border>
<v-btn color="success" prepend-icon="fa-solid fa-plus" @click="addStep()">{{ $t('Add_Step') }}</v-btn>
<v-btn color="warning" @click="dialogStepManager = true">
<v-btn color="warning" @click="dialogStepManager = true" :disabled="editingObj.steps.length < 2">
<v-icon icon="fa-solid fa-arrow-down-1-9"></v-icon>
</v-btn>
<v-btn prepend-icon="fa-solid fa-maximize" @click="handleSplitAllSteps"><span v-if="!mobile">{{ $t('Split') }}</span></v-btn>
<v-btn prepend-icon="fa-solid fa-minimize" @click="handleMergeAllSteps"><span v-if="!mobile">{{ $t('Merge') }}</span></v-btn>
<v-btn prepend-icon="fa-solid fa-maximize" @click="handleSplitAllSteps" :disabled="editingObj.steps.length < 1"><span v-if="!mobile">{{ $t('Split') }}</span></v-btn>
<v-btn prepend-icon="fa-solid fa-minimize" @click="handleMergeAllSteps" :disabled="editingObj.steps.length < 2"><span v-if="!mobile">{{ $t('Merge') }}</span></v-btn>
</v-btn-group>

View File

@@ -43,6 +43,12 @@ export interface ParsedIngredient {
* @memberof ParsedIngredient
*/
note: string;
/**
*
* @type {string}
* @memberof ParsedIngredient
*/
originalText: string;
}
/**
@@ -53,6 +59,7 @@ export function instanceOfParsedIngredient(value: object): value is ParsedIngred
if (!('unit' in value) || value['unit'] === undefined) return false;
if (!('food' in value) || value['food'] === undefined) return false;
if (!('note' in value) || value['note'] === undefined) return false;
if (!('originalText' in value) || value['originalText'] === undefined) return false;
return true;
}
@@ -70,6 +77,7 @@ export function ParsedIngredientFromJSONTyped(json: any, ignoreDiscriminator: bo
'unit': json['unit'],
'food': json['food'],
'note': json['note'],
'originalText': json['original_text'],
};
}
@@ -83,6 +91,7 @@ export function ParsedIngredientToJSON(value?: ParsedIngredient | null): any {
'unit': value['unit'],
'food': value['food'],
'note': value['note'],
'original_text': value['originalText'],
};
}