Merge branch 'master' of https://git.flavigny.de/christian/bloomhunt
This commit is contained in:
+1
-1
@@ -21,6 +21,6 @@ from django.views.generic import RedirectView
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^admin/', admin.site.urls),
|
url(r'^admin/', admin.site.urls),
|
||||||
url(r'^mobile/', include('mobile.urls')),
|
url(r'^mobile/', include('mobile.urls')),
|
||||||
url(r'^map/', include('map.urls'), name='map'),
|
url(r'^map/', include('map.urls')),
|
||||||
url(r'', RedirectView.as_view(url='/map/', permanent=False))
|
url(r'', RedirectView.as_view(url='/map/', permanent=False))
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ var trees_2 = [];
|
|||||||
|
|
||||||
for (var i = 0; i < treesFromJSON.length; i++) {
|
for (var i = 0; i < treesFromJSON.length; i++) {
|
||||||
let raw = treesFromJSON[i];
|
let raw = treesFromJSON[i];
|
||||||
let tree = new Tree(raw["name"], raw["bloom_start"] + 20,
|
let tree = new Tree(raw["name"], raw["bloom_start"] - 20,
|
||||||
raw["latitude"], raw["longitude"]);
|
raw["latitude"], raw["longitude"]);
|
||||||
trees_2.push(tree);
|
trees_2.push(tree);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ from django.urls import path
|
|||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
|
app_name = "map"
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index, name='index')
|
path('', views.index, name='index')
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,4 +12,5 @@ def index(request):
|
|||||||
loaded = json.load(f)
|
loaded = json.load(f)
|
||||||
s = json.dumps(loaded);
|
s = json.dumps(loaded);
|
||||||
data = {"trees": s}
|
data = {"trees": s}
|
||||||
|
|
||||||
return render(request, "map/index.html", context=data);
|
return render(request, "map/index.html", context=data);
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
body,html{
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: "Georgia", serif;
|
||||||
|
line-height: 29px;
|
||||||
|
color:#0c1a30;
|
||||||
|
padding:0;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main{
|
||||||
|
background:#fff scroll repeat-x 0px -100px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width:100%;
|
||||||
|
min-height: 100%;
|
||||||
|
/*background: #FFFFFF;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 70%;
|
||||||
|
margin: 0 auto;
|
||||||
|
overflow:hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
clear: both;
|
||||||
|
border-top: 1px solid #C2D1E1;
|
||||||
|
color: #a0acba;
|
||||||
|
padding: 4px 0px;
|
||||||
|
height: 41px;
|
||||||
|
font-family: "PT Sans", sans-serif;
|
||||||
|
font-size: 0.75em;
|
||||||
|
/* text-align: right; */
|
||||||
|
background: #f5f9ff;
|
||||||
|
/* vertical-align: middle; */
|
||||||
|
line-height: 31px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer p {
|
||||||
|
padding: 0 20px;
|
||||||
|
margin: 0;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer p.left {
|
||||||
|
padding: 0 20px;
|
||||||
|
margin: 0;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#heading {
|
||||||
|
width: 100%;
|
||||||
|
background: #132742 url(nav-back.png) scroll repeat-x bottom left;
|
||||||
|
color: #FFFFFF;
|
||||||
|
padding: 25px 0 0 0;
|
||||||
|
margin:0;
|
||||||
|
height: 94px;
|
||||||
|
overflow:hidden;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#heading .inner{
|
||||||
|
width: 70%;
|
||||||
|
margin:0 auto;
|
||||||
|
overflow:hidden;
|
||||||
|
line-height: 1em;
|
||||||
|
vertical-align: top;
|
||||||
|
height: 100px;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
/*height: 4em;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#heading h1 {
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
left: 94px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#heading img {
|
||||||
|
width: 64px;
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
#map_icon {
|
||||||
|
width: 64px;
|
||||||
|
margin:0;
|
||||||
|
position: absolute;
|
||||||
|
right: 50px;
|
||||||
|
top: 24px;
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
@@ -1,18 +1,44 @@
|
|||||||
|
{% load static %}
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
|
<title>Bloom Hunting</title>
|
||||||
|
|
||||||
|
<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" type="text/css" href="{% static 'mobile/base.css' %}">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id=content>
|
<div id="main">
|
||||||
|
<div id='header'>
|
||||||
|
<a href="{% url 'map:index' %}">
|
||||||
|
<img id="map_icon" class="right" src='{% static 'mobile/map_icon.png' %}' />
|
||||||
|
</a>
|
||||||
|
<div id='heading'>
|
||||||
|
<div class='inner'>
|
||||||
|
<img src='{% static 'favicon.ico' %}' />
|
||||||
|
<h1 id='title'>Bloom up your city</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- FOOTER -->
|
||||||
|
<div id='footer'>
|
||||||
|
<p class='left'>Bloom Hunting - a Ökostadt Heidelberg initiative</p>
|
||||||
|
<p>A Climathon Heidelberg project</p>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -7,4 +7,9 @@
|
|||||||
<p>Hunt blooming trees in your area.</p>
|
<p>Hunt blooming trees in your area.</p>
|
||||||
|
|
||||||
<a class="btn btn-default" id="btn_scan" href="{% url 'mobile:scan' %}">Scan a blooming tree</a>
|
<a class="btn btn-default" id="btn_scan" href="{% url 'mobile:scan' %}">Scan a blooming tree</a>
|
||||||
|
|
||||||
|
<p>Hey, some predictions</p>
|
||||||
|
|
||||||
|
<p>{{ prediction }}</p>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -7,13 +7,18 @@
|
|||||||
|
|
||||||
<p>{{ question.text }}</p>
|
<p>{{ question.text }}</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
{% for option in question.options %}
|
{% for option in question.options %}
|
||||||
|
<td width=30%>
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input name="question" type="hidden" value="{{ question.key }}">
|
<input name="question" type="hidden" value="{{ question.key }}">
|
||||||
<input name="chosen_option" class="btn btn-default" type="submit" value="{{ option.text }}">
|
<input name="chosen_option" class="btn btn-default" type="submit" value="{{ option.text }}">
|
||||||
</form>
|
</form>
|
||||||
|
</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ tree is blooming.<p>
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="text" name="name">
|
<input type="text" name="name">
|
||||||
<input type="hidden" name="tree" value="{{ tree.name }}">
|
<input type="hidden" name="tree" value="{{ tree.name }}">
|
||||||
<input id="in_long" type="text" name="longitude">
|
<input id="in_long" type="hidden" name="longitude">
|
||||||
<input id="in_lat" type="text" name="latitude">
|
<input id="in_lat" type="hidden" name="latitude">
|
||||||
<input type="submit" value="Name your tree">
|
<input type="submit" value="Name your tree">
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ from django.urls import path
|
|||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
|
app_name = "mobile"
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('addtree/', views.addtree, name='addtree'),
|
path('addtree/', views.addtree, name='addtree'),
|
||||||
path('scan/', views.scan , name='scan'),
|
path('scan/', views.scan , name='scan'),
|
||||||
|
|||||||
@@ -5,8 +5,16 @@ from datetime import datetime
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import numpy as np
|
||||||
|
import seaborn as sns
|
||||||
|
import re as re
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
|
|
||||||
|
|
||||||
return render(request, 'mobile/index.html')
|
return render(request, 'mobile/index.html')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user