diff --git a/app/models/SuperModel.coffee b/app/models/SuperModel.coffee index 36a7fab72..9ce14c75d 100644 --- a/app/models/SuperModel.coffee +++ b/app/models/SuperModel.coffee @@ -2,6 +2,7 @@ class SuperModel constructor: -> @models = {} @collections = {} + @schemas = {} _.extend(@, Backbone.Events) populateModel: (model) -> @@ -25,8 +26,11 @@ class SuperModel @removeEventsFromModel(model) modelLoaded: (model) -> + model.loadSchema() schema = model.schema() - return schema.once('sync', => @modelLoaded(model)) unless schema.loaded + unless schema.loaded + @schemas[schema.urlRoot] = schema + return schema.once('sync', => @modelLoaded(model)) refs = model.getReferencedModels(model.attributes, schema.attributes, '/', @shouldLoadProjection) refs = [] unless @mustPopulate is model or @shouldPopulate(model) # console.log 'Loaded', model.get('name') @@ -96,9 +100,12 @@ class SuperModel total = 0 loaded = 0 - for key, model of @models + for model in _.values @models total += 1 loaded += 1 if model.loaded + for schema in _.values @schemas + total += 1 + loaded += 1 if schema.loaded return 1.0 unless total return loaded / total