Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

98 rindas
2.9KB

  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. context = {'question': question}
  31. return render(request, 'mobile/scan2.html', context)
  32. else:
  33. return scanned(request, opt.result)
  34. # first question
  35. context = {'question': question}
  36. return render(request, 'mobile/scan.html', context)
  37. def scanned(request, tree):
  38. context = {'tree': {'name': tree}}
  39. return render(request, 'mobile/scanned.html', context)
  40. def addtree(request):
  41. if not request.POST:
  42. return HttpResponseRedirect("/mobile/scan")
  43. name = request.POST["name"]
  44. tree = request.POST["name"]
  45. longitude = request.POST["longitude"]
  46. latitude = request.POST["latitude"]
  47. bloom_start = datetime.now().timetuple().tm_yday
  48. if not os.path.isfile('/home/areion/tmp/data.json'):
  49. data = {'trees': []}
  50. else:
  51. with open('/home/areion/tmp/data.json', 'r') as f:
  52. data = json.load(f)
  53. with open('/home/areion/tmp/data.json', 'w+') as f:
  54. data["trees"].append(
  55. {'name': name, 'species': tree,
  56. 'longitude': longitude, 'latitude': latitude,
  57. 'bloom_start': bloom_start }
  58. )
  59. json.dump(data, f, indent=4)
  60. return render(request, "mobile/thankyou.html")
  61. class Option:
  62. def __init__(self, text, question=None, result=None):
  63. self.text = text
  64. self.question = question
  65. self.result = result
  66. class Question:
  67. def __init__(self, key, text, options):
  68. self.key = key
  69. self.text = text
  70. self.options = options
  71. q3 = Question("alive", "Is your tree alive?",
  72. [Option("yes", result="Poor Apple Tree"),
  73. Option("no", result="Dead Apple Tree")])
  74. q2 = Question("red", "Is your tree red?",
  75. [Option("yes", result="Red Apple Tree"),
  76. Option("no", result="Green Apple Tree")])
  77. q1 = Question("leaves", "Does your tree have leaves?",
  78. [Option("yes", question=q2), Option("no", question=q3)])
  79. questions = [q1, q2, q3]