admin: big data time
parent
464e7cf127
commit
36f60172e0
|
@ -41,7 +41,7 @@ class IndexView(AdminSecurityMixin, flask_admin.AdminIndexView):
|
|||
func.sum(FaceshieldRequest.faceshield_full_delivered).label('faceshield_full_delivered'),
|
||||
func.sum(FaceshieldRequest.faceshield_front_required).label('faceshield_front_required'),
|
||||
func.sum(FaceshieldRequest.faceshield_front_delivered).label('faceshield_front_delivered'),
|
||||
).group_by(FaceshieldRequest.status).all()
|
||||
).filter(FaceshieldRequest.status != Status.rejected, FaceshieldRequest.status != Status.spam).group_by(FaceshieldRequest.status).all()
|
||||
|
||||
vstats = FaceshieldRequest.query.select_from(FaceshieldRequest).with_entities(
|
||||
PostalCode.voivodeship.label('voivodeship'),
|
||||
|
@ -50,9 +50,14 @@ class IndexView(AdminSecurityMixin, flask_admin.AdminIndexView):
|
|||
func.sum(FaceshieldRequest.faceshield_full_delivered).label('faceshield_full_delivered'),
|
||||
func.sum(FaceshieldRequest.faceshield_front_required).label('faceshield_front_required'),
|
||||
func.sum(FaceshieldRequest.faceshield_front_delivered).label('faceshield_front_delivered'),
|
||||
).join(FaceshieldRequest.postalcode_info).group_by(PostalCode.voivodeship).order_by(func.count().desc()).all()
|
||||
).filter(FaceshieldRequest.status != Status.rejected, FaceshieldRequest.status != Status.spam).join(FaceshieldRequest.postalcode_info).group_by(PostalCode.voivodeship).order_by(func.count().desc()).all()
|
||||
|
||||
return self.render('admin_index.html', stats=stats, vstats=vstats)
|
||||
dstats = FaceshieldRequest.query.select_from(FaceshieldRequest).with_entities(
|
||||
func.date_trunc('day', FaceshieldRequest.created).label('date'),
|
||||
func.count().label('count'),
|
||||
).filter(FaceshieldRequest.status != Status.rejected, FaceshieldRequest.status != Status.spam).group_by(func.date_trunc('day', FaceshieldRequest.created)).order_by(func.count().desc()).all()
|
||||
|
||||
return self.render('admin_index.html', stats=stats, vstats=vstats, dstats=dstats)
|
||||
|
||||
|
||||
class FaceshieldRequestAdmin(ModelView):
|
||||
|
|
|
@ -23,6 +23,22 @@
|
|||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<h1>
|
||||
Creation date
|
||||
</h1>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>Count</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in dstats %}
|
||||
<tr><td>{{ row.date }}</td><td>{{ row.count }}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h1>Voivodeship breakdown</h1>
|
||||
|
|
Loading…
Reference in New Issue