more recipe import fixes

This commit is contained in:
vabene1111
2020-06-23 18:48:22 +02:00
parent 6197cab1ed
commit 752854028a
2 changed files with 40 additions and 35 deletions

View File

@@ -1,4 +1,5 @@
import re import re
from random import random
from django.http import JsonResponse from django.http import JsonResponse
from django.utils.dateparse import parse_duration from django.utils.dateparse import parse_duration
@@ -58,7 +59,7 @@ def find_recipe_json(ld_json, url):
ingredient = " ".join(ingredient_split) ingredient = " ".join(ingredient_split)
if ingredient: if ingredient:
ingredients.append({'amount': amount, 'unit': {'text': unit, 'id': 'null'}, 'ingredient': {'text': ingredient, 'id': 'null'}, 'original': x}) ingredients.append({'amount': amount, 'unit': {'text': unit, 'id': round(random() * 1000)}, 'ingredient': {'text': ingredient, 'id': round(random() * 1000)}, 'original': x})
ld_json['recipeIngredient'] = ingredients ld_json['recipeIngredient'] = ingredients
else: else:

View File

@@ -82,12 +82,14 @@
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
<table style="width: 100%"> <table class="table-layout:fixed">
<col width="95%"/>
<col width="5%"/>
<tr> <tr>
<td> <td>
<multiselect v-tabindex <multiselect v-tabindex
ref="unit" ref="unit"
style="width: 100%;" style="width: 100%!important;"
v-model="i.unit" v-model="i.unit"
:options="units" :options="units"
:close-on-select="true" :close-on-select="true"
@@ -293,14 +295,6 @@
console.log(err) console.log(err)
}) })
}, },
addTag(newTag) {
const tag = {
name: newTag,
code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))
}
this.options.push(tag)
this.value.push(tag)
},
importRecipe: function () { importRecipe: function () {
this.$set(this.recipe_data, 'all_keywords', this.all_keywords) this.$set(this.recipe_data, 'all_keywords', this.all_keywords)
this.$http.post(`{% url 'data_import_url' %}`, this.recipe_data).then((response) => { this.$http.post(`{% url 'data_import_url' %}`, this.recipe_data).then((response) => {
@@ -314,22 +308,22 @@
}, },
addIngredient: function (i) { addIngredient: function (i) {
this.recipe_data.recipeIngredient.push({ this.recipe_data.recipeIngredient.push({
unit: {id: Math.random() * 100, text: '{{ request.user.userpreference.default_unit }}'}, unit: {id: Math.random() * 1000, text: '{{ request.user.userpreference.default_unit }}'},
amount: 0, amount: 0,
ingredient: {id: Math.random() * 100, text: ''} ingredient: {id: Math.random() * 1000, text: ''}
}) })
}, },
addIngredientType: function (tag, index) { addIngredientType: function (tag, index) {
index = index.replace('ingredient_', '') index = index.replace('ingredient_', '')
let new_ingredient = this.recipe_data.recipeIngredient[index] let new_ingredient = this.recipe_data.recipeIngredient[index]
new_ingredient.ingredient = {'id': Math.random() * 100, 'text': tag} new_ingredient.ingredient = {'id': Math.random() * 1000, 'text': tag}
this.ingredients.push(new_ingredient.ingredient) this.ingredients.push(new_ingredient.ingredient)
this.recipe_data.recipeIngredient[index] = new_ingredient this.recipe_data.recipeIngredient[index] = new_ingredient
}, },
addUnitType: function (tag, index) { addUnitType: function (tag, index) {
index = index.replace('unit_', '') index = index.replace('unit_', '')
let new_unit = this.recipe_data.recipeIngredient[index] let new_unit = this.recipe_data.recipeIngredient[index]
new_unit.unit = {'id': Math.random() * 100, 'text': tag} new_unit.unit = {'id': Math.random() * 1000, 'text': tag}
this.units.push(new_unit.unit) this.units.push(new_unit.unit)
this.recipe_data.recipeIngredient[index] = new_unit this.recipe_data.recipeIngredient[index] = new_unit
}, },
@@ -356,7 +350,8 @@
this.units = response.data.results; this.units = response.data.results;
if (this.recipe_data !== undefined) { if (this.recipe_data !== undefined) {
for (let x of Array.from(this.recipe_data.recipeIngredient)) { for (let x of Array.from(this.recipe_data.recipeIngredient)) {
if (x.ingredient.text !== '') { if (x.unit.text !== '') {
this.units = this.units.filter(item => item.text !== x.unit.text)
this.units.push(x.unit) this.units.push(x.unit)
} }
} }
@@ -369,7 +364,16 @@
searchIngredients: function (query) { searchIngredients: function (query) {
this.ingredients_loading = true this.ingredients_loading = true
this.$http.get("{% url 'dal_ingredient' %}" + '?q=' + query).then((response) => { this.$http.get("{% url 'dal_ingredient' %}" + '?q=' + query).then((response) => {
this.ingredients = this.ingredients.concat(response.data.results); this.ingredients = response.data.results
if (this.recipe_data !== undefined) {
for (let x of Array.from(this.recipe_data.recipeIngredient)) {
if (x.ingredient.text !== '') {
this.ingredients = this.ingredients.filter(item => item.text !== x.ingredient.text)
this.ingredients.push(x.ingredient)
}
}
}
this.ingredients_loading = false this.ingredients_loading = false
}).catch((err) => { }).catch((err) => {
console.log(err) console.log(err)