diff --git a/ghost/admin/app/components/dashboard/v5/chart-email.js b/ghost/admin/app/components/dashboard/v5/chart-email.js index c5054911e8..a429f93603 100644 --- a/ghost/admin/app/components/dashboard/v5/chart-email.js +++ b/ghost/admin/app/components/dashboard/v5/chart-email.js @@ -39,9 +39,9 @@ export default class ChartEmailOpenRate extends Component { } get chartData() { - const stats = this.dashboardStats.emailOpenRateStats.filter(stat => stat.email.deliveredCount > 0); + const stats = this.dashboardStats.emailOpenRateStats; const labels = stats.map(stat => stat.title); - const data = stats.map(stat => stat.email.openedCount / stat.email.deliveredCount * 100); + const data = stats.map(stat => stat.email.openRate); return { labels, diff --git a/ghost/admin/app/services/dashboard-stats.js b/ghost/admin/app/services/dashboard-stats.js index 03adc480c0..ad3aa6fc08 100644 --- a/ghost/admin/app/services/dashboard-stats.js +++ b/ghost/admin/app/services/dashboard-stats.js @@ -379,8 +379,10 @@ export default class DashboardStatsService extends Service { this.emailsSent30d = this.dashboardMocks.emailsSent30d; return; } - // Normal implementation - // @todo + + const start30d = new Date(Date.now() - 30 * 3600 * 1000); + const result = yield this.store.query('email', {limit: 100, filter: 'submitted_at:>' + start30d.toISOString()}); + this.emailsSent30d = result.reduce((c, email) => c + email.emailCount, 0); } loadEmailOpenRateStats() {