You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 line
2.7KB

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