Skip to content

Commit

Permalink
fixed empty data issues
Browse files Browse the repository at this point in the history
  • Loading branch information
tusharrao198 committed Feb 7, 2021
1 parent 73602f0 commit 6f960a9
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 49 deletions.
82 changes: 79 additions & 3 deletions src/covidtracker/templates/covidtracker/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,51 @@
<div class="section-bg pt-5 pb-5 px-5" id="introduction">
<div class="container mt-2">
<br>
<div class="text-right"><h1 class="title-a text-center headingtext">COVID | CASES | INDIA = {{Totalcases}}<small class="text-danger"> +({{increment}})</small></h1>Dated: {{present_date}} <hr class="titlehr" />
<div class="text-right"><h1 class="title-a text-center headingtext">COVID | CASES | INDIA </h1>Last Updated: {{present_date}} <hr class="titlehr" />
</div>
</div>
<header ></header >

<div class="card-deck justify-content-center title-a text-center">
<div class="card border-danger mb-2" style="max-width: 15rem;">
<div class="card-header bg-transparent border-danger text-danger">Confirmed</div>
<div class="card-body text-danger">
<!-- <h5 class="card-title headingtext">Confirmed</h5> -->
<p class="card-text">{{confirmed}}</p><p>+↑({{cases_increment}})</p>
</div>
<!-- <div class="card-footer bg-transparent border-success">Footer</div> -->
</div>
<div class="card border-danger mb-2" style="max-width: 15rem;">
<div class="card-header bg-transparent border-danger text-danger">Deaths</div>
<div class="card-body text-danger">
<!-- <h5 class="card-title">Deaths</h5> -->
<p class="card-text">{{Death}}</p><p>+↑({{death_inc}})</p>
</div>
<!-- <div class="card-footer bg-transparent border-success">Footer</div> -->
</div>
<div class="card border-success mb-2" style="max-width: 15rem;">
<div class="card-header bg-transparent border-success text-success">Recovered</div>
<div class="card-body text-success text-center">
<!-- <h5 class="card-title">Recovered</h5> -->
<p class="card-text">{{Recovered}}</p><p>+↑({{recovered_inc}})</p>
</div>
<!-- <div class="card-footer bg-transparent border-success">Footer</div> -->
</div>
<div class="card border-danger mb-2" style="max-width: 15rem;">
<div class="card-header bg-transparent border-danger text-danger">Active</div>
<div class="card-body text-danger text-center">
<!-- <h5 class="card-title">Active</h5> -->
<p class="card-text">{{Active}}</p>
</div>
<!-- <div class="card-footer bg-transparent border-success">Footer</div> -->
</div>
</div>

<br>

<h1 align="center" style="color: Orange"><b> Search Cases in your city</b></h1>
<div class="container">
<div class="msg"></div>
<form class="form-horizontal" id="find_cases" action={% url 'search' %} method = "GET">
<div class="form-group">
<label class="control-label col-sm-2" for="state" style="color: white">State:</label>
Expand All @@ -35,11 +74,13 @@ <h1 align="center" style="color: Orange"><b> Search Cases in your city</b></h1>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10 center">
<button type="submit" class="btn btn-info">Search</button>
<button type="submit" id="submit_button" class="btn btn-info">Search</button>
</div>
</div>
</form>
</div>

<br>
<h1 align ="center"style="color: green" ><b> Cases in Each State</b></h1>

<div class="section-bg pt-5 pb-5 px-5" id="introduction">
Expand Down Expand Up @@ -119,7 +160,7 @@ <h3 class="subtitle-a">*Contact*</h3>
for (let key in options) {
citi.push(key);
}
console.log(citi);
// console.log(citi);

if (citi.length==0){
console.log(`Data was not recieved for State = ${state_name}`)
Expand All @@ -146,6 +187,41 @@ <h3 class="subtitle-a">*Contact*</h3>
}
}
}

let input_fields_check = document.querySelector("#submit_button");
input_fields_check.addEventListener('click', check_search);
function check_search(e) {
e.preventDefault();
let state_input = document.querySelector("#state");
let city_input = document.querySelector("#city");
let s = state_input.value;
let c = city_input.value;
let msg = document.querySelector(".msg");
// console.log("SASD",s.length);
if (s.length==0 || c.length==0){
// console.log("0000000",s,"000000000000",c);
document.getElementById("submit_button").disabled = true;
// msg.classList.add("error");
// msg.innerHTML = "Please Select!";

// setTimeout(() => msg.remove(), 3000);
}
document.getElementById("submit_button").disabled = false;
}
let form_ = document.getElementById("find_cases");
input_fields_check.addEventListener('click', enableBtn);
function enableBtn() {
let state_input = document.querySelector("#state");
let city_input = document.querySelector("#city");
let s = state.value;
let c = city.value;
// console.log("SSDDSDSDSSFSFSFSF")
if (s.length!=0 && c.length!=0){
// console.log("S",s,"C",c);
document.getElementById("submit_button").disabled = false;
form_.submit();
}
}
</script>
{% endblock %}

118 changes: 72 additions & 46 deletions src/covidtracker/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from django.shortcuts import render

from django.db.models import Avg, Count, Min, Sum

from django.core.serializers.json import DjangoJSONEncoder
from django.forms.models import model_to_dict
from django.core import serializers
Expand Down Expand Up @@ -63,35 +65,49 @@ def update_state():
# )


def totalcases_count():
def total_count():
url_daily = "https://api.rootnet.in/covid19-in/stats/latest"
js = open_url(url_daily)
return js["data"]["summary"]["total"]
totalcases = js["data"]["summary"]["total"]
recovered = js["data"]["summary"]["discharged"]
death = js["data"]["summary"]["deaths"]
confirmed = (
js["data"]["summary"]["confirmedCasesIndian"]
+ js["data"]["summary"]["confirmedCasesForeign"]
)
active = confirmed - (death + recovered)
return totalcases, confirmed, active, death, recovered


# Cases Increment
# Cases Increment
def cases_increment():
Totalcases = totalcases_count()
url_history = "https://api.rootnet.in/covid19-in/stats/history"
js2 = open_url(url_history)
print("making connection")
# cases incement of last two days in INDIA
dict_inc={}
for i in range(len(js2['data'])):
#info_datewise = i
if i >= (len(js2['data'])-2):
cases_state = [js2['data'][i]['summary']['total'], js2['data'][i]['summary']['deaths'], js2['data'][i]['summary']['discharged']]
dict_inc[js2['data'][i]['day']] = cases_state
dict_inc = {}
for i in range(len(js2["data"])):
# info_datewise = i
if i >= (len(js2["data"]) - 2):
cases_state = [
js2["data"][i]["summary"]["total"],
js2["data"][i]["summary"]["deaths"],
js2["data"][i]["summary"]["discharged"],
]
dict_inc[js2["data"][i]["day"]] = cases_state
# finding increase in cases per day
len_dict = len(list(dict_inc))
day_before = list(dict_inc)[0]
present_date = list(dict_inc)[1]
print("day_before: ",day_before)
print("last: ",present_date)
inc = dict_inc[present_date][0]-dict_inc[day_before][0]
print("inc: ", inc)
return inc, day_before, present_date
cases_inc = dict_inc[present_date][0] - dict_inc[day_before][0]
death_inc = dict_inc[present_date][1] - dict_inc[day_before][1]
recovered_inc = dict_inc[present_date][2] - dict_inc[day_before][2]
print("DICT_INC:", dict_inc)
print("recovered_inc:", recovered_inc)
print("death_inc:", death_inc)

return cases_inc, day_before, present_date, death_inc, recovered_inc

increment, day_before, present_date = cases_increment()

def update_district():
url_district = "https://api.covid19india.org/state_district_wise.json"
Expand All @@ -104,21 +120,17 @@ def update_district():
recovered_ = js1[state_name_]["districtData"][city_name_]["recovered"]
active_ = js1[state_name_]["districtData"][city_name_]["active"]
deaths_ = js1[state_name_]["districtData"][city_name_]["deceased"]
# if city_name_=="Unknown": print(f"Unknown+{state_name_}")

if city_name_!=f"Unknown+{state_name_}":
# print("THISone , if city_name_!=:")
if city_name_ != f"Unknown+{state_name_}":
try:
changes = district_cases.objects.filter(city_name=city_name_)
print("TRY : ", changes)
print("\n\nFROM ---------------DB========================= ",changes)
print("\n\nFROM DB========================= ",changes[0].confirmed)
print("\n\nnew-confirmed =-------------- ",confirmed_)
if confirmed_ > changes[0].confirmed:
# print(
# "Updating model district_cases =", state_name_, "->", city_name_
# )
do_it = district_cases.objects.filter(city_name=city_name_).update(
do_it = district_cases.objects.filter(
city_name=city_name_
).update(
state_name=state_name_,
city_name=city_name_,
confirmed=confirmed_,
Expand All @@ -127,41 +139,41 @@ def update_district():
Active=active_,
)
except:
city_name_= f"Unknown+{state_name_}"
city_name_ = f"Unknown+{state_name_}"
changes = district_cases.objects.filter(city_name=city_name_)
print("EXCEPT : ", changes)
print("\n\nFROM ---------------DB========================= ",changes)
print("\n\nFROM DB========================= ",changes[0].confirmed)
print("\n\nnew-confirmed =-------------- ",confirmed_)
# print("EXCEPT : ", changes)
# print("\n\nFROM ---------------DB========================= ",changes)
# print("\n\nFROM DB========================= ",changes[0].confirmed)
# print("\n\nnew-confirmed =-------------- ",confirmed_)
if confirmed_ > changes[0].confirmed:
# print(
# "Updating model district_cases =", state_name_, "->", city_name_
# )
do_it = district_cases.objects.filter(city_name=city_name_).update(
do_it = district_cases.objects.filter(
city_name=city_name_
).update(
state_name=state_name_,
city_name=city_name_,
confirmed=confirmed_,
Death=deaths_,
Recovered=recovered_,
Active=active_,
)
elif city_name_==f"Unknown+{state_name_}":
print("THISone , if city_name_==:")

elif city_name_ == f"Unknown+{state_name_}":
# print("THISone , if city_name_==:")
city_name_ = f"{city_name_}+{state_name_}"
try:
changes = district_cases.objects.filter(city_name=city_name_)
except:
changes = district_cases.objects.filter(city_name=f"Unknown+{state_name_}")
# changes = district_cases.objects.filter(city_name=f"{city_name_}+{state_name_}")
print("\n\nFROM ---------------DB========================= ",changes)
print("\n\nFROM DB========================= ",changes[0].confirmed)
print("\n\nnew-confirmed =-------------- ",confirmed_)
changes = district_cases.objects.filter(
city_name=f"Unknown+{state_name_}"
)
if confirmed_ > changes[0].confirmed:
# print(
# "Updating model district_cases =", state_name_, "->", city_name_
# )

do_it = district_cases.objects.filter(city_name=city_name_).update(
state_name=state_name_,
city_name=city_name_,
Expand All @@ -170,16 +182,19 @@ def update_district():
Recovered=recovered_,
Active=active_,
)

# do_it.save()
# else:
# print(
# f"{state_name_}---->{city_name_}----------------------district cases are up to date"
# )


# update_state()
# update_district()
update_state()
update_district()
totalcases, confirmed, active, death, recovered = total_count()
increment, day_before, present_date, death_inc, recovered_inc = cases_increment()

# updating if changes made, only for the first user goes to a site

##################################################################################
Expand All @@ -189,16 +204,27 @@ def covid_state(request):
# citycases = states_cases.objects.all()
# query = search_(request.GET, queryset=citycases)
# citycases = query.qs

confirmed__sum = states_cases.objects.all().aggregate(Sum("confirmed"))
Active__sum = states_cases.objects.all().aggregate(Sum("Active"))
Recovered__sum = states_cases.objects.all().aggregate(Sum("Recovered"))
Death__sum = states_cases.objects.all().aggregate(Sum("Death"))
context_ = {
# "city_cases": "city_cases",
"Totalcases": totalcases_count(),
"Totalcases": totalcases,
"confirmed": confirmed__sum["confirmed__sum"],
"Active": Active__sum["Active__sum"],
"Death": Death__sum["Death__sum"],
"Recovered": Recovered__sum["Recovered__sum"],
"district_cases": district_cases.objects.all(),
"states_cases": states_cases.objects.all().order_by("id"),
"title": "State",
"state": "active",
"increment": increment,
"cases_increment": increment,
"recovered_inc": recovered_inc,
"death_inc": death_inc,
"day_before": day_before,
"present_date": present_date,
"title": "INDIA",
"state": "active",
}
return render(request, "covidtracker/home.html", context_)

Expand Down

0 comments on commit 6f960a9

Please sign in to comment.