def get_prospector_data(app=None): "Returns Google Charts string of Prospector Holdings" # update_institution_count() js_str = '' #! THIS OPERATION SHOULD BE CACHED for row in REDIS_DATASTORE.zrevrange('prospector-holdings', 0, -1, withscores=True): org_key = row[0] if int(row[1]) < 1: continue library_info = [REDIS_DATASTORE.hget(org_key, 'label'), REDIS_DATASTORE.scard( "{0}:bf:Books".format(org_key)), REDIS_DATASTORE.scard( "{0}:bf:MovingImage".format(org_key)), REDIS_DATASTORE.scard( "{0}:bf:MusicalAudio".format(org_key)), row[1] # Total Holdings ] js_str += '["{0}",{1}],\n'.format(library_info[0], ','.join([str(i) for i in library_info[1:]])) js_str = js_str[:-2] # Removes trailing comma return mark_safe(js_str)
def get_facet(facet): "Returns accordion group based on template and redis-key" # Assume facet_key is sorted set facet_grp_template = template.loader.get_template('cc-facet-group') facet = {'label': facet_key.split(":")[-1], 'items': []} facet['name'] = facet.get('label').lower().sub(" ","-") for item in REDIS_DATASTORE.zrevrange(facet_key, 0, -1, withscores=True): item = {'label': item[0].split(":")[-1], 'count': item[1]} facet['items'].append(item) return mark_safe(facet_grp_template.render( template.Context(facet)))
def get_prospector_bar_chart(app=None): "Returns a javascript for a Canvas.js bar chart of Prospector Holdings" js_str = "var ctx=$('#prospector-rlsp-bar').get(0).getContext('2d');" data = {'labels':[], 'data':[]} for row in REDIS_DATASTORE.zrevrange('prospector-holdings', 0, -1, withscores=True): if float(row[1]) > 0: org_key = row[0] data['labels'].append(REDIS_DATASTORE.hget(org_key, 'label')) data['data'].append(str(row[1])) js_str += """var data={{ labels: ["{0}"],""".format('","'.join(data['labels'])) js_str += """datasets: [ {{ fillColor : "rgba(151,187,205,0.5)", strokeColor : "rgba(151,187,205,1)", data : [{0}]}}]}};""".format(','.join(data['data'])) js_str += "new Chart(ctx).Bar(data, {scaleShowLabel: true});" return mark_safe(js_str)