|
from django.shortcuts import render
|
|
from menu.models import *
|
|
from django.db.models import Q
|
|
from django.http import HttpResponse, JsonResponse
|
|
from algorithm.views import search_menu
|
|
from general.views import process_json
|
|
# Create your views here.
|
|
|
|
|
|
# dish_material 是n*2的矩阵 eg. [[“100g”,"糯米粉",1],["25g","粘米粉",1]]
|
|
def set_dish(dish_name, dish_materials, dish_steps, dish_flavor):
|
|
dish = Dish.objects.create(name=dish_name)
|
|
flavor = DishFlavor.objects.create(sour=dish_flavor[0], sweet=dish_flavor[1], bitter=dish_flavor[2],
|
|
spicy=dish_flavor[3],
|
|
salty=dish_flavor[4], dish=dish)
|
|
time = 0
|
|
for item in dish_materials:
|
|
m = Material.objects.create(amount=item[0], dish=dish, food_type=FoodType.objects.get(name=item[1]))
|
|
if len(item) == 3:
|
|
m.is_important = item[2]
|
|
m.save()
|
|
|
|
for i in range(len(dish_steps)):
|
|
Step.objects.create(order=i + 1, text=dish_steps[i][0], time=dish_steps[i][1], dish=dish)
|
|
time += dish_steps[i][1]
|
|
dish.time = time
|
|
dish.save()
|
|
|
|
|
|
def get_menus(request):
|
|
openid = request.META['HTTP_X_WX_OPENID']
|
|
upper_bound = request.GET['upper_bound']
|
|
lower_bound = request.GET['lower_bound']
|
|
results = search_menu(upper_bound, lower_bound, openid).values()
|
|
for item in results:
|
|
item['time'] = float(item['time'])
|
|
results = process_json(results)
|
|
return JsonResponse({'result': results})
|
|
|
|
|
|
def get_materials(request):
|
|
dish_id = request.GET['id']
|
|
materials = Dish.objects.get(id=dish_id).material_set.values()
|
|
for material in materials:
|
|
material['name'] = FoodType.objects.get(id=material['food_type_id']).name
|
|
if material['is_important']:
|
|
material['is_important'] = 1
|
|
else:
|
|
material['is_important'] = 0
|
|
materials = process_json(materials)
|
|
return JsonResponse({'result': materials})
|
|
|
|
|
|
def get_steps(request):
|
|
dish_id = request.GET['id']
|
|
steps = Dish.objects.get(id=dish_id).step_set.values().order_by('order')
|
|
for step in steps:
|
|
step['time'] = float(step['time'])
|
|
steps = process_json(steps)
|
|
return JsonResponse({'result': steps})
|