示例#1
0
def init_zip_table():
    """currently only imports US zip codes from CSV file
    :return:
    """
    import django
    django.setup()

    import csv
    import os

    from RazorCRM_App.models import Locale

    file_path = os.path.join(os.path.dirname(__file__), 'us_zip_codes.txt')

    with open(file_path, newline='') as csv_file:
        zip_reader = csv.reader(csv_file, delimiter=',')
        i = 0
        ##  zip,city,state,latitude,longitude,timezone,dst
        for row in zip_reader:
            zip_code = __stringify_zip(row[0])
            print("[SYS] adding zip code: {0}".format(zip_code))

            city = row[1]
            state = row[2]
            lat = row[3]
            lon = row[4]
            tz_offset = row[5]

            Locale.create(zip_code, city, state, lat, lon, tz_offset, "US")

            i += 1

    print("[SYS] import zip codes complete: {0}".format(i))
示例#2
0
def get_or_create_locale(addr_info):
    locale_set = Locale.objects.filter(post_code=addr_info[AddrInfoKeys.POSTAL])

    if not locale_set:
        locale = Locale(addr_info[AddrInfoKeys.CITY],
                        addr_info[AddrInfoKeys.STATE],
                        addr_info[AddrInfoKeys.POSTAL],
                        addr_info[AddrInfoKeys.COUNTRY])
        locale.save()

    else:
        locale = locale_set[0]

    return locale