選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

97 行
2.8KB

  1. from django.http import HttpResponse, HttpResponseRedirect
  2. from django.shortcuts import render
  3. from datetime import datetime
  4. import json
  5. import os
  6. import pandas as pd
  7. import matplotlib.pyplot as plt
  8. import numpy as np
  9. import seaborn as sns
  10. import re as re
  11. from .predict import predict_blooming
  12. def index(request):
  13. soon_blooms = predict_blooming('20.05.2019')
  14. return render(request, 'mobile/index.html', {'prediction': soon_blooms})
  15. def scan(request):
  16. question = q1
  17. if request.POST:
  18. data = request.POST
  19. print("data")
  20. if data["question"]:
  21. print("response to question", data["question"])
  22. for q in questions:
  23. if not q.key == data["question"]:
  24. continue
  25. for opt in q.options:
  26. if not opt.text == data["chosen_option"]:
  27. continue
  28. if opt.question:
  29. question = opt.question
  30. break
  31. else:
  32. return scanned(request, opt.result)
  33. # first question
  34. context = {'question': question}
  35. return render(request, 'mobile/scan.html', context)
  36. def scanned(request, tree):
  37. context = {'tree': {'name': tree}}
  38. return render(request, 'mobile/scanned.html', context)
  39. def addtree(request):
  40. if not request.POST:
  41. return HttpResponseRedirect("/mobile/scan")
  42. name = request.POST["name"]
  43. tree = request.POST["name"]
  44. longitude = request.POST["longitude"]
  45. latitude = request.POST["latitude"]
  46. bloom_start = datetime.now().timetuple().tm_yday
  47. if not os.path.isfile('/home/areion/tmp/data.json'):
  48. data = {'trees': []}
  49. else:
  50. with open('/home/areion/tmp/data.json', 'r') as f:
  51. data = json.load(f)
  52. with open('/home/areion/tmp/data.json', 'w+') as f:
  53. data["trees"].append(
  54. {'name': name, 'species': tree,
  55. 'longitude': longitude, 'latitude': latitude,
  56. 'bloom_start': bloom_start }
  57. )
  58. json.dump(data, f, indent=4)
  59. return render(request, "mobile/thankyou.html")
  60. class Option:
  61. def __init__(self, text, question=None, result=None):
  62. self.text = text
  63. self.question = question
  64. self.result = result
  65. class Question:
  66. def __init__(self, key, text, options):
  67. self.key = key
  68. self.text = text
  69. self.options = options
  70. q3 = Question("alive", "Is your tree alive?",
  71. [Option("yes", result="Poor Apple Tree"),
  72. Option("no", result="Dead Apple Tree")])
  73. q2 = Question("red", "Is your tree red?",
  74. [Option("yes", result="Red Apple Tree"),
  75. Option("no", result="Green Apple Tree")])
  76. q1 = Question("leaves", "Does your tree have leaves?",
  77. [Option("yes", question=q2), Option("no", question=q3)])
  78. questions = [q1, q2, q3]