mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-25 00:28:31 -05:00
36 lines
1.3 KiB
CoffeeScript
36 lines
1.3 KiB
CoffeeScript
RootView = require 'views/core/RootView'
|
|
template = require 'templates/admin/demo-requests'
|
|
CocoCollection = require 'collections/CocoCollection'
|
|
TrialRequest = require 'models/TrialRequest'
|
|
|
|
module.exports = class DemoRequestsView extends RootView
|
|
id: 'admin-demo-requests-view'
|
|
template: template
|
|
|
|
constructor: (options) ->
|
|
super options
|
|
return unless me.isAdmin()
|
|
@trialRequests = new CocoCollection([], { url: '/db/trial.request?conditions[sort]="-created"&conditions[limit]=5000', model: TrialRequest })
|
|
@supermodel.loadCollection(@trialRequests, 'trial-requests', {cache: false})
|
|
@dayCounts = []
|
|
|
|
onLoaded: ->
|
|
return super() unless me.isAdmin()
|
|
dayCountMap = {}
|
|
for trialRequest in @trialRequests.models
|
|
day = trialRequest.get('created').substring(0, 10)
|
|
dayCountMap[day] ?= 0
|
|
dayCountMap[day]++
|
|
@dayCounts = []
|
|
for day, count of dayCountMap
|
|
@dayCounts.push(day: day, count: count)
|
|
@dayCounts.sort((a, b) -> b.day.localeCompare(a.day))
|
|
sevenCounts = []
|
|
for i in [@dayCounts.length - 1..0]
|
|
dayCount = @dayCounts[i]
|
|
sevenCounts.push(dayCount.count)
|
|
while sevenCounts.length > 7
|
|
sevenCounts.shift()
|
|
if sevenCounts.length is 7
|
|
dayCount.sevenAverage = Math.round(sevenCounts.reduce(((a, b) -> a + b), 0) / 7)
|
|
super()
|