Skip to content

Commit bb9b3b3

Browse files
Will Beddowironman5366
Will Beddow
authored andcommitted
🎉 User can now select the temperature unit they want in /settings. Additionally, changed malfunctioning location settings.
1 parent 1bb29ed commit bb9b3b3

File tree

4 files changed

+32
-28
lines changed

4 files changed

+32
-28
lines changed

core/plugins/weather.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def main(event):
1818
db = event["db"]
1919
username = event["username"]
2020
user_table = db["users"].find_one(username=username)
21-
if (user_table["city"] and user_table["country"]):
21+
if ("city" in user_table.keys() and "country" in user_table.keys()):
2222
if user_table["state"]:
2323
fetch_str = "{0}, {1}".format(user_table["city"], user_table["state"])
2424
else:
@@ -28,9 +28,17 @@ def main(event):
2828
observation = owm.weather_at_place(fetch_str)
2929
w = observation.get_weather()
3030
status = w.get_detailed_status()
31-
temperature = w.get_temperature('fahrenheit')
32-
weather_str = "Weather for {0} is {1}, with a temperature of {2} F".format(
33-
fetch_str, status, temperature["temp"])
31+
temp_sym = "F"
32+
if "temp_unit" in user_table.keys():
33+
user_temp_unit = user_table["temp_unit"]
34+
temperature = w.get_temperature(user_temp_unit)
35+
if user_temp_unit == "celsius":
36+
temp_sym = "C"
37+
else:
38+
temperature = w.get_temperature('fahrenheit')
39+
40+
weather_str = "Weather for {0} is {1}, with a temperature of {2} {3}".format(
41+
fetch_str, status, temperature["temp"], temp_sym)
3442
response["text"] = weather_str
3543
else:
3644
# TODO: try to use ip data

templates/settings.html

+13-12
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,23 @@ <h2>Settings</h2>
6464
<p>Email:</p>
6565
<input type="text" id = "email" name="email" value="{{ session["user"]["email"] }}">
6666
<br>
67+
<p>Temperature Unit:</p>
68+
<select id="temp_unit">
69+
<option value="celsius">C</option>
70+
<option value="fahrenheit">F</option>
71+
</select>
72+
<br>
6773
<p>News site:</p>
6874
<input type="text" id = "news_site" name="news_site" value="{{ session["user"]["news_site"] }}">
6975
<p>Please put in your password to submit the settings:</p>
7076
<input type="password" id="password" name="password" placeholder="Password">
7177
<input type="hidden" id="username" name="username" value="{{ session["username"] }}">
7278
<br>
73-
<br>
74-
<select name="country" class="countries" id="countryId">
75-
<option value="">Select Country</option>
76-
</select>
79+
<input type="text" name="country" class="countries" id="countryId" value="{{ session["user"]["country"] }}">
7780
<br>
78-
<select name="state" class="states" id="stateId">
79-
<option value="">Select State</option>
80-
</select>
81+
<input type="text" class="states" id="stateId" value="{{ session["user"]["state"] }}">
8182
<br>
82-
<select name="city" class="cities" id="cityId">
83-
<option value="">Select City</option>
84-
</select>
83+
<input type="text" class="cities" id="cityId" value="{{ session["user"]["city"] }}">
8584
<input id="goButton" type="submit" onclick="submitSettings();">
8685
</form>
8786
<div id="loader">
@@ -117,13 +116,15 @@ <h2>Settings</h2>
117116
email=document.getElementById("email").value;
118117
username=document.getElementById("username").value;
119118
password=document.getElementById("password").value;
120-
city = document.getElementById("cityId").value;
119+
city = document.getElementById("cityId").value;
121120
country = document.getElementById("countryId").value;
122121
state = document.getElementById("stateId").value;
122+
temp_unit = document.getElementById("temp_unit").value;
123123
var http = new XMLHttpRequest();
124124
var url = "/api/settings";
125125
var params="first_name="+first_name+"&"+"last_name="+last_name+"&"+"email="+email+"&"+"username="+
126-
username+"&"+"password="+password+"&city="+city+"&country="+country+"&state="+state;
126+
username+"&"+"password="+password+"&city="+city+"&country="+country+"&state="+state+
127+
"&temp_unit="+temp_unit;
127128
http.open("POST", url, true);
128129
//Send the proper header information along with the request
129130
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

templates/signup.html

+5-11
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,11 @@ <h2>Sign up</h2>
9494
<input type="email" name="email" id="email" value="" placeholder="Email" />
9595
</div>
9696
<br>
97-
<select name="country" class="countries" id="countryId">
98-
<option value=""></option>
99-
</select>
100-
<br>
101-
<select name="state" class="states" id="stateId">
102-
<option value="">Select State</option>
103-
</select>
104-
<br>
105-
<select name="city" class="cities" id="cityId">
106-
<option value="">Select City</option>
107-
</select>
97+
<input type="text" name="country" class="countries" placeholder = "Country" id="countryId" >
98+
<br>
99+
<input type="text" class="states" id="stateId" placeholder="State/Region">
100+
<br>
101+
<input type="text" class="cities" id="cityId" placeholder="City">
108102
</div>
109103
<div class="row uniform">
110104
<div class="12u">

will.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,8 @@ def new_user():
123123
"news_site": "http://reuters.com",
124124
"city": city,
125125
"country": country,
126-
"state": state
126+
"state": state,
127+
"temp_unit": "fahrenheit"
127128
})
128129
db.commit()
129130
response["type"] = "success"

0 commit comments

Comments
 (0)