Basic setup and ajax structure
This commit is contained in:
parent
9f1e9fa099
commit
a05d6d8b5c
|
@ -14,9 +14,9 @@
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/">Home</a></li>
|
<li><a href="/">Home</a></li>
|
||||||
<li><a href="sprinklers">Sprinklers</a></li>
|
<li><a href="/sprinklers">Sprinklers</a></li>
|
||||||
<li><a href="weather">Weather</a></li>
|
<li><a href="/weather">Weather</a></li>
|
||||||
<li><a href="schedule">Schedule</a></li>
|
<li><a href="/schedule">Schedule</a></li>
|
||||||
<li><a href="setup">Setup</a></li>
|
<li><a href="/setup">Setup</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
Binary file not shown.
|
@ -0,0 +1,12 @@
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class Setup(models.Model):
|
||||||
|
latitude = models.CharField(max_length=10)
|
||||||
|
longitude = models.CharField(max_length=10)
|
||||||
|
cityID = models.IntegerField()
|
||||||
|
|
||||||
|
googleID = models.CharField(max_length=100)
|
||||||
|
calendarName = models.CharField(max_length=100)
|
||||||
|
|
||||||
|
precipitationLimit = models.IntegerField()
|
||||||
|
precipitationTime = models.IntegerField()
|
|
@ -0,0 +1,61 @@
|
||||||
|
{% include "templates/header.html" %}
|
||||||
|
|
||||||
|
|
||||||
|
<section id="intro">
|
||||||
|
<header>
|
||||||
|
<h2>Sprinklers!</h2>
|
||||||
|
</header>
|
||||||
|
<p>Blah blah blah watering. Blah blah rain.</p>
|
||||||
|
<img src="/static/images/introimage.png" alt="lime" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<article class="articlecontent">
|
||||||
|
<p id="demo">Finding location...</p>
|
||||||
|
</article>
|
||||||
|
<article class="articlecontent">
|
||||||
|
<p id="demo2"></p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var x=document.getElementById("demo");
|
||||||
|
if (navigator.geolocation)
|
||||||
|
{
|
||||||
|
navigator.geolocation.getCurrentPosition(showPosition);
|
||||||
|
|
||||||
|
}
|
||||||
|
else{x.innerHTML="Geolocation is not supported by this browser.";}
|
||||||
|
|
||||||
|
function showPosition(position)
|
||||||
|
{
|
||||||
|
x.innerHTML="Latitude: " + position.coords.latitude +
|
||||||
|
"<br>Longitude: " + position.coords.longitude;
|
||||||
|
|
||||||
|
var xmlhttp;
|
||||||
|
if (window.XMLHttpRequest)
|
||||||
|
{// code for IE7+, Firefox, Chrome, Opera, Safari
|
||||||
|
xmlhttp=new XMLHttpRequest();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{// code for IE6, IE5
|
||||||
|
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
}
|
||||||
|
xmlhttp.onreadystatechange=function()
|
||||||
|
{
|
||||||
|
if (xmlhttp.readyState==4 && xmlhttp.status==200)
|
||||||
|
{
|
||||||
|
document.getElementById("demo2").innerHTML=xmlhttp.responseText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById("demo2").innerHTML= "Retrieving weather...";
|
||||||
|
xmlhttp.open("GET","/weather/ajax?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude,true);
|
||||||
|
xmlhttp.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,16 @@
|
||||||
|
"""
|
||||||
|
This file demonstrates writing tests using the unittest module. These will pass
|
||||||
|
when you run "manage.py test".
|
||||||
|
|
||||||
|
Replace this with more appropriate tests for your application.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleTest(TestCase):
|
||||||
|
def test_basic_addition(self):
|
||||||
|
"""
|
||||||
|
Tests that 1 + 1 always equals 2.
|
||||||
|
"""
|
||||||
|
self.assertEqual(1 + 1, 2)
|
|
@ -0,0 +1 @@
|
||||||
|
# Create your views here.
|
|
@ -19,7 +19,16 @@ def currentTemp():
|
||||||
response = urllib2.urlopen(queryURL)
|
response = urllib2.urlopen(queryURL)
|
||||||
|
|
||||||
decoder = json.JSONDecoder()
|
decoder = json.JSONDecoder()
|
||||||
data = decoder.decode(response.read())["main"]["temp"]
|
temperature = decoder.decode(response.read())["main"]["temp"]
|
||||||
|
|
||||||
return (str(data) + " Degrees")
|
return (str(temperature) + " Degrees")
|
||||||
|
|
||||||
|
def currentTempByLatLon(latitude, longitude):
|
||||||
|
|
||||||
|
queryURL = weatherURL + "lat=" + str(latitude) + "&lon=" + str(longitude)
|
||||||
|
response = urllib2.urlopen(queryURL)
|
||||||
|
|
||||||
|
decoder = json.JSONDecoder()
|
||||||
|
temperature = decoder.decode(response.read())["main"]["temp"]
|
||||||
|
|
||||||
|
return (str(temperature) + " Degrees")
|
Binary file not shown.
|
@ -1,17 +0,0 @@
|
||||||
{% include "templates/header.html" %}
|
|
||||||
|
|
||||||
{% if sprinkler %}
|
|
||||||
sprinkler ID: {{sprinkler.id}}<br/>
|
|
||||||
sprinkler Name: {{sprinkler.name}}<br/>
|
|
||||||
sprinkler On? {{sprinkler.status}}<br/>
|
|
||||||
{% for entry in sprinkler_log %}
|
|
||||||
Log ID: {{entry.id}}<br/>
|
|
||||||
Time Started: {{entry.timeOn}}<br/>
|
|
||||||
Time Ended: {{entry.timeOff}}<br/>
|
|
||||||
{% endfor %}
|
|
||||||
{% else %}
|
|
||||||
<p>No sprinklers were found with that ID.</p>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
{% include "templates/header.html" %}
|
||||||
|
|
||||||
|
|
||||||
|
<section id="intro">
|
||||||
|
<header>
|
||||||
|
<h2>Sprinklers!</h2>
|
||||||
|
</header>
|
||||||
|
<p>Blah blah blah watering. Blah blah rain.</p>
|
||||||
|
<img src="/static/images/introimage.png" alt="lime" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<article class="articlecontent">
|
||||||
|
<p id="demo">Finding location...</p>
|
||||||
|
</article>
|
||||||
|
<article class="articlecontent">
|
||||||
|
<p id="demo2"></p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var x=document.getElementById("demo");
|
||||||
|
if (navigator.geolocation)
|
||||||
|
{
|
||||||
|
navigator.geolocation.getCurrentPosition(showPosition);
|
||||||
|
|
||||||
|
}
|
||||||
|
else{x.innerHTML="Geolocation is not supported by this browser.";}
|
||||||
|
|
||||||
|
function showPosition(position)
|
||||||
|
{
|
||||||
|
x.innerHTML="Latitude: " + position.coords.latitude +
|
||||||
|
"<br>Longitude: " + position.coords.longitude;
|
||||||
|
|
||||||
|
var xmlhttp;
|
||||||
|
if (window.XMLHttpRequest)
|
||||||
|
{// code for IE7+, Firefox, Chrome, Opera, Safari
|
||||||
|
xmlhttp=new XMLHttpRequest();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{// code for IE6, IE5
|
||||||
|
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
}
|
||||||
|
xmlhttp.onreadystatechange=function()
|
||||||
|
{
|
||||||
|
if (xmlhttp.readyState==4 && xmlhttp.status==200)
|
||||||
|
{
|
||||||
|
document.getElementById("demo2").innerHTML=xmlhttp.responseText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById("demo2").innerHTML= "Retrieving weather...";
|
||||||
|
xmlhttp.open("GET","/weather/ajax?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude,true);
|
||||||
|
xmlhttp.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -3,5 +3,6 @@ from django.conf.urls import patterns, url
|
||||||
from weather import views
|
from weather import views
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^$', views.index, name='index')
|
url(r'^$', views.index, name='index'),
|
||||||
|
url(r'^ajax$', views.ajax, name='ajax')
|
||||||
)
|
)
|
||||||
|
|
BIN
weather/urls.pyc
BIN
weather/urls.pyc
Binary file not shown.
|
@ -4,6 +4,8 @@ import urllib2
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from weather.models import Location
|
from weather.models import Location
|
||||||
|
from django.template import Context, loader
|
||||||
|
from weather import WeatherUtils
|
||||||
|
|
||||||
weatherURL = "http://api.openweathermap.org/data/2.5/weather?"
|
weatherURL = "http://api.openweathermap.org/data/2.5/weather?"
|
||||||
|
|
||||||
|
@ -18,5 +20,16 @@ def index(request):
|
||||||
decoder = json.JSONDecoder()
|
decoder = json.JSONDecoder()
|
||||||
data = decoder.decode(response.read())
|
data = decoder.decode(response.read())
|
||||||
|
|
||||||
return HttpResponse("Latitude: " + str(data))
|
template = loader.get_template('weather/index.html')
|
||||||
|
context = Context({
|
||||||
|
'latitude': latitude,
|
||||||
|
})
|
||||||
|
return HttpResponse(template.render(context))
|
||||||
|
|
||||||
|
def ajax(request):
|
||||||
|
|
||||||
|
latitude = request.GET['lat'] # request.POST.get('lat', False)
|
||||||
|
longitude = request.GET['lon'] # request.POST.get('lat', False)
|
||||||
|
|
||||||
|
temperature = WeatherUtils.currentTempByLatLon(latitude, longitude)
|
||||||
|
return HttpResponse(temperature)
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue