Merge pull request #133 from alphagov/aggregate-data

Aggregate data
This commit is contained in:
NIcholas Staples
2016-03-08 08:55:04 +00:00
4 changed files with 96 additions and 10 deletions

View File

@@ -1,10 +1,14 @@
from flask import current_app
from app import db
from app.models import Notification
from app.models import Notification, Job
from sqlalchemy import desc
def dao_create_notification(notification):
if notification.job_id:
db.session.query(Job).filter_by(
id=notification.job_id
).update({Job.notifications_sent: Job.notifications_sent + 1})
db.session.add(notification)
db.session.commit()
@@ -19,12 +23,12 @@ def get_notification_for_job(service_id, job_id, notification_id):
def get_notifications_for_job(service_id, job_id, page=1):
query = Notification.query.filter_by(service_id=service_id, job_id=job_id)\
.order_by(desc(Notification.created_at))\
query = Notification.query.filter_by(service_id=service_id, job_id=job_id) \
.order_by(desc(Notification.created_at)) \
.paginate(
page=page,
per_page=current_app.config['PAGE_SIZE']
)
page=page,
per_page=current_app.config['PAGE_SIZE']
)
return query

View File

@@ -162,6 +162,7 @@ class Job(db.Model):
onupdate=datetime.datetime.now)
status = db.Column(db.Enum(*JOB_STATUS_TYPES, name='job_status_types'), nullable=False, default='pending')
notification_count = db.Column(db.Integer, nullable=False)
notifications_sent = db.Column(db.Integer, nullable=False, default=0)
processing_started = db.Column(
db.DateTime,
index=False,