Skip to content

Commit b749ddf

Browse files
authored
Merge pull request #255 from msusicky/develop
2.2.9
2 parents 366db13 + a5e4ae7 commit b749ddf

27 files changed

+2876
-1587
lines changed

README.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,23 @@ Během marné snahy zajistit očkovací místa pro příbuzné jsme si všimli t
1616
Web: https://ockovani.opendatalab.cz
1717

1818
## Napsali o nás
19-
* https://denikn.cz/569269/kde-maji-volna-mista-programatori-po-nocich-vymysleli-aplikaci-ktera-muze-zkratit-cekani-na-vakcinu
20-
* https://www.zive.cz/clanky/kdyz-to-neudelal-stat-poradili-si-programatori-sami-vytvorili-aplikaci-s-prehledem-volnych-mist-pro-ockovani/sc-3-a-208719/default.aspx
21-
* https://domaci.ihned.cz/c1-66889710-programator-rozjel-web-ktery-ukaze-kde-je-volno-na-ockovani-ve-skladech-lezi-250-tisic-davek-vakcin-rika
22-
* https://forbes.cz/kde-se-nechat-naockovat-platforma-z-cvut-ukazuje-dostupne-ockovaci-kapacity/
23-
* https://www.echo24.cz/a/Sqbj5/kde-je-volna-vakcina-web-ukazuje-stav-na-ockovacich-mistech
24-
* https://zpravy.aktualne.cz/domaci/mladici-marne-hledali-ockovaci-termin-pro-prarodice-vytvoril/r~c7975d9c802511eb9cafac1f6b220ee8/
25-
* https://prazsky.denik.cz/zpravy_region/ockovani-termin-vakcina-senior-covid-nemocnice-poradi.html
26-
* https://www.ceskenoviny.cz/zpravy/2007015
27-
* https://radiozurnal.rozhlas.cz/kde-maji-dostatek-vakcin-vedci-z-cvut-vytvorili-web-ktery-porovnava-jednotliva-8446956
28-
* https://www.vitalia.cz/clanky/jak-si-ne-vybrat-nejpomalejsi-misto-na-ockovani-proti-covidu/
19+
* [Deník N: Kde mají volná místa? Programátoři po nocích vymysleli aplikaci, která může zkrátit čekání na vakcínu](https://denikn.cz/569269/kde-maji-volna-mista-programatori-po-nocich-vymysleli-aplikaci-ktera-muze-zkratit-cekani-na-vakcinu)
20+
* [Živě: Když to neudělal stát, poradili si programátoři sami. Vytvořili aplikaci s přehledem volných míst pro očkování](https://www.zive.cz/clanky/kdyz-to-neudelal-stat-poradili-si-programatori-sami-vytvorili-aplikaci-s-prehledem-volnych-mist-pro-ockovani/sc-3-a-208719/default.aspx)
21+
* [Hospodářské noviny: Programátor rozjel web, který ukáže, kde je volno na očkování. Ve skladech leží 250 tisíc dávek vakcín, říká](https://domaci.ihned.cz/c1-66889710-programator-rozjel-web-ktery-ukaze-kde-je-volno-na-ockovani-ve-skladech-lezi-250-tisic-davek-vakcin-rika)
22+
* [Forbes: Kde se nechat naočkovat. Platforma z ČVUT ukazuje dostupné očkovací kapacity](https://forbes.cz/kde-se-nechat-naockovat-platforma-z-cvut-ukazuje-dostupne-ockovaci-kapacity/)
23+
* [Echo24: Kde je volná vakcína? Web ukazuje stav na očkovacích místech](https://www.echo24.cz/a/Sqbj5/kde-je-volna-vakcina-web-ukazuje-stav-na-ockovacich-mistech)
24+
* [Aktuálně: Mladí muži marně hledali očkovací termín pro prarodiče. Vytvořili web s volnými místy](https://zpravy.aktualne.cz/domaci/mladici-marne-hledali-ockovaci-termin-pro-prarodice-vytvoril/r~c7975d9c802511eb9cafac1f6b220ee8/)
25+
* [inSmart: Kde je pro mě vakcína? ČVUT vyvinulo aplikaci s přehledem volných míst na očkování proti Covidu](https://insmart.cz/volna-mista-vakciny-covid/)
26+
* [Česká věda do světa: Odborníci z ČVUT vytvořili aplikaci pro očkování proti koronaviru](http://ceskavedadosveta.cz/odbornici-z-cvut-vytvorili-aplikaci-pro-ockovani-proti-koronaviru/)
27+
* [Deník: Vyberte si nejmenší frontu. Pomůže aplikace s vytížeností očkovacích míst](https://www.denik.cz/z_domova/ockovani-termin-vakcina-senior-covid-nemocnice-poradi.html)
28+
* [ČTK: Počet čekajících na vakcínu na covid je možné si ověřit na webu](https://www.ceskenoviny.cz/zpravy/2007015)
29+
* [pribram.cz: Počet čekajících na vakcínu na covid je možné si ověřit na webu](https://www.pribram.cz/clanek/pocet-cekajicich-na-vakcinu-na-covid-je-mozne-si-overit-na-webu/18978/)
30+
* [MoneyMAG: Počet čekajících na vakcínu je možné si ověřit na webu](https://moneymag.cz/aktuality/pocet-cekajicich-na-vakcinu-je-mozne-si-overit-na-webu.f69bad14)
31+
* [EuroZprávy: Počet čekajících na vakcínu je možné si ověřit na webu](https://eurozpravy.cz/domaci/zdravotnictvi/pocet-cekajicich-na-vakcinu-je-mozne-si-overit-na-webu.a09f5308/)
32+
* [Český rozhlas: Kde mají dostatek vakcín? Vědci z ČVUT vytvořili web, který porovnává jednotlivá očkovací místa](https://radiozurnal.rozhlas.cz/kde-maji-dostatek-vakcin-vedci-z-cvut-vytvorili-web-ktery-porovnava-jednotliva-8446956)
33+
* [Vitalia: Jak si (ne)vybrat nejpomalejší místo na očkování proti covidu](https://www.vitalia.cz/clanky/jak-si-ne-vybrat-nejpomalejsi-misto-na-ockovani-proti-covidu/)
34+
* [Televize Seznam: Večerní zprávy (15. 3.)](https://www.televizeseznam.cz/video/vecerni-zpravy-porad/kteri-ministri-uz-jsou-naockovani-opatreni-do-velikonoc-a-opakovani-rocniku-64143662)
35+
* [TV9P: Marta Kloučková Quintet a webová aplikace z FIT](https://www.youtube.com/watch?v=_DcoB_fXfe4)
2936

3037
## Poznámky k fungování
3138
Pro získávání dat využívala metody scrapingu. Nyní využíváme oficiálních dat od UZIS.
@@ -68,6 +75,14 @@ If you want to fetch recent data please set the FETCH_DATA environment variable:
6875

6976
`flask db upgrade`
7077

78+
1. fetch data
79+
80+
`flask fetch-opendata`
81+
82+
1. compute metrics
83+
84+
`flask compute-metrics`
85+
7186
1. start Flask webserver
7287

7388
`flask run`

app/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
import logging
33

44
from flask import Flask, Blueprint
5-
from flask_sqlalchemy import SQLAlchemy
65
from flask_migrate import Migrate
6+
from flask_sqlalchemy import SQLAlchemy
7+
78
from config import Config
89

910
app = Flask(__name__)
@@ -20,4 +21,4 @@
2021

2122
from app import filters, views, models, commands
2223

23-
app.register_blueprint(bp)
24+
app.register_blueprint(bp)

app/commands.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import click
55

66
from app import app
7-
from app.etl import Etl
7+
from app.etl import MetricsEtl
88
from app.opendata_fetcher import OpenDataFetcher
99
from app.twitter_bot import TwitterBot
1010

@@ -46,7 +46,7 @@ def compute_metrics_command(datum):
4646

4747
while start_date <= end_date:
4848
app.logger.info("Computing metrics for date: '{}'.".format(start_date))
49-
etl = Etl(start_date)
49+
etl = MetricsEtl(start_date)
5050
result = etl.compute_all()
5151
if not result:
5252
break

app/context.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from datetime import date
2+
3+
from flask import g
4+
from sqlalchemy import func
5+
6+
from app import db
7+
from app.models import Import
8+
9+
STATUS_FINISHED = 'FINISHED'
10+
11+
12+
def get_import_date():
13+
"""
14+
Returns date of the last successful import.
15+
"""
16+
if 'import_date' not in g:
17+
last_date = db.session.query(func.max(Import.date)).filter(Import.status == STATUS_FINISHED).first()[0]
18+
g.import_date = date.today() if last_date is None else last_date
19+
20+
return g.import_date
21+
22+
23+
def get_import_id():
24+
"""
25+
Returns id of the last successful import.
26+
"""
27+
if 'import_id' not in g:
28+
last_id = db.session.query(func.max(Import.id)).filter(Import.status == STATUS_FINISHED).first()[0]
29+
g.import_id = -1 if last_id is None else last_id
30+
31+
return g.import_id

0 commit comments

Comments
 (0)