Example #1
0
#!/usr/bin/python
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../modules')))
from topics import load_alltopics
from config import configuration, dataverse2indicators, load_dataverse, findpid, load_metadata
api = "http://clearance.sandbox.socialhistoryservices.org/collabs/static/data/dataframe100_0.json"
branch = 'clio1clio'
html = load_alltopics(api, branch)
print html
Example #2
0
#!/usr/bin/python
import os
import sys
sys.path.append(
    os.path.abspath(os.path.join(os.path.dirname(__file__), '../modules')))
from topics import load_alltopics
from config import configuration, dataverse2indicators, load_dataverse, findpid, load_metadata
api = "http://clearance.sandbox.socialhistoryservices.org/collabs/static/data/dataframe100_0.json"
branch = 'clio1clio'
html = load_alltopics(api, branch)
print html
Example #3
0
def dashboard(settings=''):
    activepage = 'Dashboard'
    config = configuration()
    if config['error']:
        return config['error']

    apiroot = config['apiroot']
    dataverseroot = config['dataverseroot']
    key = config['key']
    tabnum = '' 
    ctrnum = 0
    if not tabnum:
	tabnum = 3 # tabs with maps is default
    logscale = ''

    if config['perl']:
	perlbin = config['perl'] + ' '
    else:
        perlbin = "/usr/bin/perl "
    path = config['path']

    # Default parameters
    (datatitle, validate, topic, citation, cliopid, stats, fileid, clearpid) = ('', '', '', '', '', '', '', '')
    (handle, fromyear, toyear) = ('', 1500, 2012)
    (selectedcountries, selectedindicators) = ('', '')

    # Variables from dashboard
    varproject = request.args.get('project')
    varbase = request.args.get('base')
    dataset = request.args.get('dataset')
    # Log scales switch
    if request.args.get('logscale'):
        logscale = 1

    if request.args.get('pid'):
	dataset = request.args.get('pid')
    if dataset:
	(handle, revid, cliopid, clearpid) = findpid(dataset)

    action = request.args.get('action')
    year = request.args.get('year')
    hist = request.args.get('hist')
    if request.args.get('yearmin'):
        fromyear = request.args.get('yearmin')
    if request.args.get('yearmax'):
        toyear = request.args.get('yearmax')
    if request.args.get('y[min]'):
        fromyear = request.args.get('y[min]')
    if request.args.get('y[max]'):
        toyear = request.args.get('y[max]')
    # Select countries
    customcountrycodes = ''
    f = request.args
    for key in f.keys():
        if key == 'loc':
            for value in sorted(f.getlist(key)):
                customcountrycodes = str(customcountrycodes) + str(value) + ','
		ctrnum = ctrnum + 1
    if customcountrycodes:
        customcountrycodes = customcountrycodes[:-1]

    # Requests from Drupal
    fromdrupal = 0
    for key in f.keys():
        if is_location(key):
            for value in sorted(f.getlist(key)):
                customcountrycodes = str(customcountrycodes) + str(value) + ','
		fromdrupal = 1

    if fromdrupal:
        if customcountrycodes:
            customcountrycodes = customcountrycodes[:-1]

    template = "dashboard.html"

    # Load topics and locations
     
    api1 = apiroot + "/collabs/static/data/dataframe100_0.json"
    branch = config['branch']
    indicatorlist = load_alltopics(api1, branch)
    api2 = apiroot + "/collabs/static/data/dataframe94_0.json"
    locations = load_locations(api2)
    api3 = apiroot + "/collabs/static/data/historical.json"
    historical = load_historical(api3)
    if hist:
	locations = historical

    try:
        (dataversemeta, pid, fileid, cliopid) = load_metadata(dataset)
        for item in dataversemeta:
            citation = 'Suggested citation: ' + str(item['citation'])
            datatitle = str(item['name'])
            topic = item['topic']
    except:
        title = dataset

    if action == 'chart':
	template = 'chart.html'
    if action == 'map':
	template = 'worldmap.html'
    if action == 'validate':
	validate = 'yes'
	template = 'validate.html'
	template = 'simplechart.html'
    if action == 'geocoder':
	template = 'geocoder.html'
    if action == 'visualize':
	template = 'navigation.html'
	# DEB
 	jsonapi = apiroot + "/collabs/static/data/" + str(pid) + ".json"
	data = createdata(jsonapi)
	d = data.describe()
	show = d.transpose()
	stats = show.to_html()

    benforddata = ''
    datasetfile = ''
 
    try:
        benforddata = benford(dataset, year, '') 
    except:
	donothing = 1

    valtitle = ''
    if validate:
	# VALIDATION
	return 'Dataset not updated'
	cmd = path + "/../../bin/import.py -d '" + dataverseroot + "' -H '" + dataset + "'"
        p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
        maincontent = p.communicate()[0]
	valtitle = maincontent
	return 'Dataset updated'

    if benforddata:
	title = benforddata
	datasetfile = benforddata
    else:
	# Clio dataset
	try:
            cmd = perlbin + path + "/../../bin/api2data.pl " + dataset
            p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
            maincontent = p.communicate()[0]
            title = "World Data Strikes, 1927-2009"
            datasetfile = maincontent
	except:
	    donothing = 1

    datasetfile = valtitle
    if datatitle:
	title = datatitle
    if customcountrycodes:
	selectedcountries = customcountrycodes
    if dataset:
	selectedindicators = "\"" + dataset + "\""
    cliopids = cliopid

    # Choose tab
    if ctrnum <= 10:
	if ctrnum > 0:
	    tabnum = 0

    resp = make_response(render_template(template, active=activepage, pages=pages, title=title, datasetfile=datasetfile, dataset=dataset, stats=stats, topic=topic, citation=citation, cliopid=cliopid, indicatorlist=indicatorlist, locations=locations, fromyear=fromyear, toyear=toyear, customcountrycodes=customcountrycodes, handle=handle, selectedcountries=selectedcountries, selectedindicators=selectedindicators, cliopids=cliopids, logscale=logscale, tabnum=tabnum))
    return resp