Exemplo n.º 1
0
def export_all_answers(request):
    """
    Method to export all databases answers to a csv file
    """

    list_databases = get_databases_from_solr(request, "*:*")
    return save_answers_to_csv(list_databases, "DBs")
Exemplo n.º 2
0
def export_all_answers(request):
    """
    Method to export all databases answers to a csv file
    """

    list_databases = get_databases_from_solr(request, "*:*")
    return save_answers_to_csv(list_databases, "DBs")
Exemplo n.º 3
0
def export_bd_answers(request, runcode):
    """
    Method to export answers of a specific database to a csv file
    :param request:
    :param runcode:
    """

    list_databases = get_databases_from_solr(request, "id:" + runcode)
    return save_answers_to_csv(list_databases, "MyDB")
Exemplo n.º 4
0
def export_my_answers(request):
    """
    Method to export my databases answers to a csv file
    """

    user = request.user
    list_databases = get_databases_from_solr(request, "user_t:" + '"' + user.username + '"')

    return save_answers_to_csv(list_databases, "MyDBs")
Exemplo n.º 5
0
def export_bd_answers(request, runcode):
    """
    Method to export answers of a specific database to a csv file
    :param request:
    :param runcode:
    """

    list_databases = get_databases_from_solr(request, "id:" + runcode)
    return save_answers_to_csv(list_databases, 'MyDB')
Exemplo n.º 6
0
def export_my_answers(request):
    """
    Method to export my databases answers to a csv file
    """

    user = request.user
    list_databases = get_databases_from_solr(
        request, "user_t:" + '"' + user.username + '"')

    return save_answers_to_csv(list_databases, "MyDBs")
Exemplo n.º 7
0
def export_search_answers(request):
    """
    Method to export search databases answers to a csv file
    """

    user = request.user

    query = None
    isadvanced = request.session.get('isAdvanced')
    value = request.session.get('query')

    if (isadvanced):
        query = value
    else:
        query = "text_t:" + str(value)

    list_databases = get_databases_from_solr(request, query)

    return save_answers_to_csv(list_databases, "search_results")
Exemplo n.º 8
0
def export_search_answers(request):
    """
    Method to export search databases answers to a csv file
    """

    user = request.user

    query = None
    isadvanced = request.session.get('isAdvanced')
    value = request.session.get('query')

    if(isadvanced):
        query = value
    else:
        query = "text_t:"+str(value)

    list_databases = get_databases_from_solr(request, query)

    return save_answers_to_csv(list_databases, "search_results")
Exemplo n.º 9
0
def geo(request, template_name='geo.html'):

    if not config.geolocation:
        raise Http404

    query = None
    isAdvanced = False
    if (request.session.get('isAdvanced') == True):
        query = request.session.get('query')
        if query == None:
            query = "*:*"

        isAdvanced = True
    else:
        if (request.session.get('query') != None):
            query = "'" + re.sub("['\"']", "\\'",
                                 request.session.get('query')) + "'"
            query = "text_t:" + query

        else:
            query = "*:*"

    #print "query@" + query
    list_databases = get_databases_from_solr(request, query)

    list_locations = []
    _long_lats = []
    # since the geolocation is now adding the locations, we no longer need to look it up when showing,
    # we rather get it directly
    db_list = {}
    questionnaires_ids = {}
    qqs = Questionnaire.objects.all()
    for q in qqs:
        questionnaires_ids[q.slug] = (q.pk, q.name)
    for database in list_databases:

        if database.location.find(".") != -1:
            _loc = database.location.split(".")[0]
        else:
            _loc = database.location

        city = None
        g = geocoders.GeoNames(username='******')

        if _loc != None and g != None and len(_loc) > 1:
            #try:
            #    place, (lat, lng) = g.geocode(_loc)
            #except:
            #    continue
            try:
                city = City.objects.filter(name=_loc.lower())[0]

            # if dont have this city on the db
            except:
                print "-- Error: The city " + _loc + " doesnt exist on the database. Maybe too much requests were being made when it happened ? Trying again..."

                #obtain lat and longitude
                city = retrieve_geolocation(_loc.lower())

                if city != None:
                    #print city

                    city.save()

                else:
                    print "-- Error: retrieving geolocation"
                    continue

            _long_lats.append(str(city.lat) + ", " + str(city.long))
            import pdb

            #pdb.set_trace()
            def __cleanvalue(v):
                return v.encode('ascii',
                                'ignore').strip().replace('\n', ' ').replace(
                                    '\r', ' ')

            def db_ready(database, city):
                return {
                    'name': database.name,
                    'location': __cleanvalue(database.location),
                    'institution': __cleanvalue(database.institution),
                    'contact': __cleanvalue(database.email_contact),
                    'number_patients': __cleanvalue(database.number_patients),
                    'ttype': __cleanvalue(database.type_name),
                    'id': database.id,
                    'admin_name': __cleanvalue(database.admin_name),
                    'admin_address': __cleanvalue(database.admin_address),
                    'admin_email': __cleanvalue(database.admin_email),
                    'admin_phone': __cleanvalue(database.admin_phone),
                    'scien_name': __cleanvalue(database.scien_name),
                    'scien_address': __cleanvalue(database.scien_address),
                    'scien_email': __cleanvalue(database.scien_email),
                    'scien_phone': __cleanvalue(database.scien_phone),
                    'tec_name': __cleanvalue(database.tec_name),
                    'tec_address': __cleanvalue(database.tec_address),
                    'tec_email': __cleanvalue(database.tec_email),
                    'tec_phone': __cleanvalue(database.tec_phone),
                    'lat': str(city.lat),
                    'long': str(city.long),
                }

            if ((city.lat, city.long) in db_list):
                db_list[(city.lat, city.long)].append(db_ready(database, city))
            else:
                db_list[(city.lat, city.long)] = [db_ready(database, city)]

        list_locations.append(_loc)

    return render(
        request, template_name, {
            'request': request,
            'db_list': db_list,
            'search_old': request.session.get('query', ''),
            'list_cities': list_locations,
            'lats_longs': _long_lats,
            'breadcrumb': True,
            'isAdvanced': isAdvanced
        })
Exemplo n.º 10
0
def geo(request, template_name='geo.html'):

    if not config.geolocation:
        raise Http404

    query = None
    isAdvanced = False
    if(request.session.get('isAdvanced') == True):
        query = request.session.get('query')
        if query == None:
            query = "*:*"

        isAdvanced = True
    else:
        if(request.session.get('query') != None):
            query = "'"+re.sub("['\"']","\\'",request.session.get('query'))+"'"
            query = "text_t:"+query

        else:
            query = "*:*"

    #print "query@" + query
    list_databases = get_databases_from_solr(request, query)

    list_locations = []
    _long_lats = []
    # since the geolocation is now adding the locations, we no longer need to look it up when showing,
    # we rather get it directly
    db_list = {}
    questionnaires_ids = {}
    qqs = Questionnaire.objects.all()
    for q in qqs:
        questionnaires_ids[q.slug] = (q.pk, q.name)
    for database in list_databases:

        if database.location.find(".")!= -1:
            _loc = database.location.split(".")[0]
        else:
            _loc = database.location

        city=None
        g = geocoders.GeoNames(username='******')

        if _loc!= None and g != None and len(_loc)>1:
            #try:
            #    place, (lat, lng) = g.geocode(_loc)
            #except:
            #    continue
            try:
                city = City.objects.filter(name=_loc.lower())[0]

            # if dont have this city on the db
            except:
                print "-- Error: The city " + _loc + " doesnt exist on the database. Maybe too much requests were being made when it happened ? Trying again..."

                #obtain lat and longitude
                city = retrieve_geolocation(_loc.lower())

                if city != None:
                    #print city

                    city.save()

                else:
                    print "-- Error: retrieving geolocation"
                    continue

            _long_lats.append(str(city.lat) + ", " + str(city.long))
            import pdb
            #pdb.set_trace()
            def __cleanvalue(v):
                return v.encode('ascii', 'ignore').strip().replace('\n', ' ').replace('\r', ' ')


            def db_ready(database, city):
                return {    'name': database.name,
                            'location': __cleanvalue(database.location),
                            'institution': __cleanvalue(database.institution),
                            'contact': __cleanvalue(database.email_contact),
                            'number_patients': __cleanvalue(database.number_patients),
                            'ttype': __cleanvalue(database.type_name),
                            'id' : database.id,
                            'admin_name': __cleanvalue(database.admin_name),
                            'admin_address': __cleanvalue(database.admin_address),
                            'admin_email': __cleanvalue(database.admin_email),
                            'admin_phone': __cleanvalue(database.admin_phone),
                            'scien_name': __cleanvalue(database.scien_name),
                            'scien_address': __cleanvalue(database.scien_address),
                            'scien_email': __cleanvalue(database.scien_email),
                            'scien_phone': __cleanvalue(database.scien_phone),
                            'tec_name': __cleanvalue(database.tec_name),
                            'tec_address': __cleanvalue(database.tec_address),
                            'tec_email': __cleanvalue(database.tec_email),
                            'tec_phone': __cleanvalue(database.tec_phone),
                            'lat' : str(city.lat),
                            'long': str(city.long),
                        }

            if((city.lat, city.long) in db_list):
                db_list[(city.lat, city.long)].append(db_ready(database, city))
            else:
                db_list[(city.lat, city.long)] = [db_ready(database, city)]

        list_locations.append(_loc)

    return render(request, template_name, {'request': request, 'db_list' : db_list,
                                           'search_old': request.session.get('query',''),
                                           'list_cities': list_locations,
                                           'lats_longs': _long_lats,
                                           'breadcrumb': True, 'isAdvanced': isAdvanced})