from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render from datetime import datetime import json import os def index(request): return render(request, 'mobile/index.html') def scan(request): question = q1 if request.POST: data = request.POST print("data") if data["question"]: print("response to question", data["question"]) for q in questions: if not q.key == data["question"]: continue for opt in q.options: if not opt.text == data["chosen_option"]: continue if opt.question: question = opt.question break else: return scanned(request, opt.result) # first question context = {'question': question} return render(request, 'mobile/scan.html', context) def scanned(request, tree): context = {'tree': {'name': tree}} return render(request, 'mobile/scanned.html', context) def addtree(request): if not request.POST: return HttpResponseRedirect("/mobile/scan") name = request.POST["name"] tree = request.POST["name"] longitude = request.POST["longitude"] latitude = request.POST["latitude"] bloom_start = datetime.now().timetuple().tm_yday if not os.path.isfile('/tmp/data.json'): data = {'trees': []} else: with open('/tmp/data.json', 'r') as f: data = json.load(f) with open('/tmp/data.json', 'w') as f: data["trees"].append( {'name': name, 'species': tree, 'longitude': longitude, 'latitude': latitude, 'bloom_start': bloom_start } ) json.dump(data, f, indent=4) return render(request, "mobile/thankyou.html") class Option: def __init__(self, text, question=None, result=None): self.text = text self.question = question self.result = result class Question: def __init__(self, key, text, options): self.key = key self.text = text self.options = options q3 = Question("alive", "Is your tree alive?", [Option("yes", result="Poor Apple Tree"), Option("no", result="Dead Apple Tree")]) q2 = Question("red", "Is your tree red?", [Option("yes", result="Red Apple Tree"), Option("no", result="Green Apple Tree")]) q1 = Question("leaves", "Does your tree have leaves?", [Option("yes", question=q2), Option("no", question=q3)]) questions = [q1, q2, q3]