Exemple #1
0
def generate_results_page(study_id,final_rankings):
    print "generate_results_page"
    studyObj = Database.getStudy(study_id)
    results = {
        "study_id": study_id,
        "question": studyObj['study_question'],
        "ranking": []
    }
    # TODO: Optimize this so that it doesn't run one query per
    # location just to fetch the place_id.
    study_places = set(map(str,studyObj['places_id']))
    places = defaultdict(list)
    for rankedLocationID in final_rankings:
        locationObj = Database.getLocation(rankedLocationID)
        # Get the place_ids shared (set intersection) between the study and this location.
        # I'm assuming there'll only be one in common, since a location should appear
        # in a study only once.
        # place_id = list(study_places&set(locationObj['place_id']))[0]
        place_id = list(study_places&set(locationObj['place_id']))[0]
        score = final_rankings[rankedLocationID]
        places[place_id].append({
            "location_id": rankedLocationID,
            "score": score,
            "loc": locationObj['loc'],
            "heading": locationObj['heading'],
            "pitch": locationObj['pitch'],
            "study_rank": len(places[place_id])+1
        })
    for place_id in places.keys():
        places[place_id].sort(key=lambda x:x['score'])
        placeObj = Database.getPlace(place_id)
        placeRanking = {
            "name": placeObj.get('name'),
            "name_slug": slugify(placeObj.get('name')),
            "place_id": place_id,
            "rankings": places[place_id]
        }
        results['ranking'].append(placeRanking)
    Database.results.update({
        "study_id": study_id,
    },
    {
        "study_id": study_id,
        "results": results
    },True)
Exemple #2
0
def generate_results_page(study_id, final_rankings):
    print "generate_results_page"
    studyObj = Database.getStudy(study_id)
    results = {
        "study_id": study_id,
        "question": studyObj['study_question'],
        "ranking": []
    }
    # TODO: Optimize this so that it doesn't run one query per
    # location just to fetch the place_id.
    study_places = set(map(str, studyObj['places_id']))
    places = defaultdict(list)
    for rankedLocationID in final_rankings:
        locationObj = Database.getLocation(rankedLocationID)
        # Get the place_ids shared (set intersection) between the study and this location.
        # I'm assuming there'll only be one in common, since a location should appear
        # in a study only once.
        # place_id = list(study_places&set(locationObj['place_id']))[0]
        place_id = list(study_places & set(locationObj['place_id']))[0]
        score = final_rankings[rankedLocationID]
        places[place_id].append({
            "location_id": rankedLocationID,
            "score": score,
            "loc": locationObj['loc'],
            "heading": locationObj['heading'],
            "pitch": locationObj['pitch'],
            "study_rank": len(places[place_id]) + 1
        })
    for place_id in places.keys():
        places[place_id].sort(key=lambda x: x['score'])
        placeObj = Database.getPlace(place_id)
        placeRanking = {
            "name": placeObj.get('name'),
            "name_slug": slugify(placeObj.get('name')),
            "place_id": place_id,
            "rankings": places[place_id]
        }
        results['ranking'].append(placeRanking)
    Database.results.update({
        "study_id": study_id,
    }, {
        "study_id": study_id,
        "results": results
    }, True)
    {
        'city_name': 'NYC',
        'study_id': '4f7ce59e7edf1f7ecf0000ca'
    },
    {
        'city_name': 'Tokyo',
        'study_id': '4f7ce61a7edf1f7ecf000130'
    },
    {
        'city_name': 'Mexico City',
        'study_id': '4f7ce6737edf1f7ecf000196'
    }
]

for city in studies:
    city['city_name_id'] = slugify(city['city_name'])

def genTestResults(studies,question="Which place looks more unique?",question_shortid='unique'):
    # Get 70 locations for each city
    testResults = {
        'question': question,
        'question_shortid': question_shortid,
        'study_type': 'main_study',
        'ranking': []
    }
    site_rank = 1
    shuffle(studies)
    for city in studies:
        locs = Database.getLocations(city['study_id'],70)
        locs = [i for i in locs]
        shuffle(locs)
Exemple #4
0
}, {
    'city_name': 'Boston',
    'study_id': '4f7ce54f7edf1f7ecf000065'
}, {
    'city_name': 'NYC',
    'study_id': '4f7ce59e7edf1f7ecf0000ca'
}, {
    'city_name': 'Tokyo',
    'study_id': '4f7ce61a7edf1f7ecf000130'
}, {
    'city_name': 'Mexico City',
    'study_id': '4f7ce6737edf1f7ecf000196'
}]

for city in studies:
    city['city_name_id'] = slugify(city['city_name'])


def genTestResults(studies,
                   question="Which place looks more unique?",
                   question_shortid='unique'):
    # Get 70 locations for each city
    testResults = {
        'question': question,
        'question_shortid': question_shortid,
        'study_type': 'main_study',
        'ranking': []
    }
    site_rank = 1
    shuffle(studies)
    for city in studies: