mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
more recipe import fixes
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -120,24 +122,24 @@
|
|||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
|
|
||||||
<multiselect v-tabindex
|
<multiselect v-tabindex
|
||||||
ref="ingredient"
|
ref="ingredient"
|
||||||
v-model="i.ingredient"
|
v-model="i.ingredient"
|
||||||
:options="ingredients"
|
:options="ingredients"
|
||||||
:taggable="true"
|
:taggable="true"
|
||||||
@tag="addIngredientType"
|
@tag="addIngredientType"
|
||||||
placeholder="{% trans 'Select one' %}"
|
placeholder="{% trans 'Select one' %}"
|
||||||
tag-placeholder="{% trans 'Select' %}"
|
tag-placeholder="{% trans 'Select' %}"
|
||||||
:close-on-select="true"
|
:close-on-select="true"
|
||||||
:clear-on-select="true"
|
:clear-on-select="true"
|
||||||
:allow-empty="false"
|
:allow-empty="false"
|
||||||
:preserve-search="true"
|
:preserve-search="true"
|
||||||
label="text"
|
label="text"
|
||||||
:id="'ingredient_' + index"
|
:id="'ingredient_' + index"
|
||||||
track-by="id"
|
track-by="id"
|
||||||
:multiple="false"
|
:multiple="false"
|
||||||
:loading="ingredients_loading"
|
:loading="ingredients_loading"
|
||||||
@search-change="searchIngredients"
|
@search-change="searchIngredients"
|
||||||
@open="openIngredientSelect">
|
@open="openIngredientSelect">
|
||||||
|
|
||||||
</multiselect>
|
</multiselect>
|
||||||
</div>
|
</div>
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user