def write_field_data_to_db(field_name, field_data):
            for country_name in field_data.keys():

                # get country if it exists; create it if it doesn't.
                country_slug = slugify(country_name)
                try:
                    country = Country.objects.get(url_name=country_slug)
                except Country.DoesNotExist:
                    country = Country(url_name=country_slug)
                    country.CIAWFB_name_short = country_name
                    country.save()

                # Get CIA WFB Entry if it exists; create it if it doesn't.
                try:
                    CIAWFB_object = CIAWFBEntry.objects.get(country__id=country.id)
                except CIAWFBEntry.DoesNotExist:
                    CIAWFB_object = CIAWFBEntry(country=country, date_entered=timezone.now())
                    CIAWFB_object.save()

                # Now update the field we've got for that CIAWFB entry
                db_name = slugify(field_name).replace('-', '_')

                try:
                    setattr(CIAWFB_object, db_name, field_data[country_name])
                    CIAWFB_object.save()
                except DatabaseError:
                    print('Unable to write field "%s" (country "%s"). Size to write was %s.' %
                          (db_name, country_name, len(field_data[country_name])))
                    longest_field = 0
                    for cname in field_data.keys():
                        len_data = len(field_data[cname])
                        if len_data > longest_field:
                            longest_field = len_data
                    print("Field: %s; Max Length: %s" % (field_name, longest_field))
                    raise DatabaseError
Esempio n. 2
0
def editImmigrant(imm, firstName, lastName, gender, date, country, continent,
                  ethnicity, spokenLang, processLocation, destCity, destState):
    imm = getImmigrant(imm)
    imm.immfirstname = firstName
    imm.immlastname = lastName
    imm.immgender = gender
    imm.immdate = date

    cont = Continent.objects.get(cname=continent)

    try:
        # Attempts to find that country
        c = Country.objects.get(cname=country)
    except Country.DoesNotExist:
        # If that country is not found, creates it
        c = Country(cname=country, ccontinent=cont)
        c.save()

    try:
        # Attempts to find that ethnicity
        e = Ethnicity.objects.get(ename=ethnicity)
    except Ethnicity.DoesNotExist:
        # If that combination is not found, creates it
        e = Ethnicity(ename=ethnicity)
        e.save()

    try:
        # Attempts to find that ethnicity
        sl = Languages.objects.get(lname=spokenLang)
    except Languages.DoesNotExist:
        # If that combination is not found, creates it
        sl = Languages(lname=spokenLang)
        sl.save()

    try:
        # Attempts to find that specific ethnic background combination
        eb = Ethnicbackground.objects.get(country=country,
                                          ethnicity=ethnicity,
                                          spokenlang=spokenLang)
    except Ethnicbackground.DoesNotExist:
        # If that combination is not found, creates it
        eb = Ethnicbackground(country=c, ethnicity=e, spokenlang=sl)
        eb.save()

    imm.immeb = eb
    imm.immprocloc = Processlocation.objects.get(plname=processLocation)

    state = State.objects.get(sname=destState)

    try:
        # Tries to find the city (that matches the state)
        city = City.objects.get(cname=destCity, cstate=state)
    except City.DoesNotExist:
        # If that city doesn't exist, creates it
        city = City(cname=destCity, cstate=state)
        city.save()

    imm.immdestcity = city

    imm.save()
    def handle(self, *args, **kwargs):
        self.stdout.write(self.style.SUCCESS("Lancement du programme"))
        self.key = key = os.environ.get("UNSPLASH_KEY")

        all_countries = list(pycountry.countries)
        clist = []
        temp_dict = TempClass()
        temp_dict = temp_dict.get_datas()
        for i in all_countries:
            clist.append(i)
        for country in tqdm(clist):
            time.sleep(35)

            try:
                country_resume = wikipedia.summary(country.name, sentences=1)
            except:
                country_resume = "No resume avaible for now..."
            try:
                query = country.name.lower()
                url = f"https://unsplash.com/napi/search?query={country.name}&xp=&per_page=1"
                headers = {"authorization": f"Client-ID {self.key}"}
                response = requests.get(url, headers=headers)
                urls = []
                resp = response.json()
                for img in resp["photos"]["results"]:
                    try:
                        urls.append((img.get("urls")["small"]))
                    except:
                        try:
                            urls.append((img.get("urls")["thumbnail"]))
                        except:
                            urls.append((img.get("urls")["raw"]))

                response = requests.get(urls[0])
                pic = ("data:" + response.headers["Content-Type"] + ";" +
                       "base64," +
                       base64.b64encode(response.content).decode("utf-8"))
            except:
                self.stdout.write(
                    self.style.WARNING("WARNING NOT FOUND IMAGE"))
                pic = "No image found"

            if country.alpha_3 in temp_dict:
                c = Country(
                    name=country.name,
                    alpha_2=country.alpha_2,
                    alpha_3=country.alpha_3,
                    temp_averges=temp_dict[country.alpha_3],
                    flag=f"../static/img/flags/flag-{country.alpha_2}.jpg",
                    resume=country_resume,
                    picture=pic,
                )
                c.save()
                a = self.style.WARNING(f"{country.name}")
                b = self.style.SUCCESS(" [OK] ")
                self.stdout.write(a + b)
        self.stdout.write(self.style.SUCCESS("Opération terminée: [OK]"))
Esempio n. 4
0
  def handle(self, *args, **options):

    # TODO: need to load from csv

    for c in Country.objects.all():
      c.delete()

    with open("data/countryInfo.txt", "r") as country_file:
      reader = csv.DictReader(country_file, delimiter='\t')
      for row in reader:
        country = Country(name=row['Country'], iso_code=row['ISO'])
        country.save()

    print "{country_count} countries saved ".format(country_count=Country.objects.all().count())
Esempio n. 5
0
    def handle(self, *args, **options):

        # TODO: need to load from csv

        for c in Country.objects.all():
            c.delete()

        with open("data/countryInfo.txt", "r") as country_file:
            reader = csv.DictReader(country_file, delimiter='\t')
            for row in reader:
                country = Country(name=row['Country'], iso_code=row['ISO'])
                country.save()

        print "{country_count} countries saved ".format(
            country_count=Country.objects.all().count())
Esempio n. 6
0
File: views.py Progetto: mki/brTech
def cities(request, slug=''):
    try:
        city = City.objects(country=Country.objects(slug=slug)[0])
    except:
        raise Http404

    return render_to_response('city.html', {'City': city, 'slug': slug},
        context_instance=RequestContext(request))
Esempio n. 7
0
    def parse(self, response):
        Country.objects.all().delete()
        City.objects.all().delete()

        country_list = response.xpath(
            '//*[@id="country"]//option/text()').extract()[1:40]
        for country in country_list:
            sleep(randint(4, 9))

            new_country = Country(name=country)
            new_country.save()

            yield scrapy.Request(
                "https://numbeo.com/cost-of-living/country_result.jsp?country={}"
                .format(country),
                callback=self.parse_city,
                meta={"country_id": new_country.id})
Esempio n. 8
0
    def handle_country(self, data_set):
        print("-------handle_country-------")

        item = Country()
        item.name = data_set["name"]
        item.currency = data_set["currency"]
        item.save()
Esempio n. 9
0
    def setUp(self):
        credentials = {"username": "******", "password": "******"}
        User.objects.create_superuser(email="*****@*****.**", **credentials)
        self.client.login(**credentials)

        country = Country(code="CY", name="Country")
        country.save()

        cc = CooperativeCenter(code="AB12.3", country=country)
        cc.save()

        cc2 = CooperativeCenter(code="CD45.6", country=country)
        cc2.save()

        john = User.objects.create_user(username="******", email="*****@*****.**")
        john.profile.cooperative_center = cc
        john.profile.save()

        jane = User.objects.create_user(username="******", email="*****@*****.**")
        jane.profile.cooperative_center = cc2
        jane.profile.save()

        settings.ITEMS_PER_PAGE = 3
Esempio n. 10
0
def cities():
    base, prog = get_data()

    print '\n'
    print 'Import/Update City'

    for row in base:
        try:
            city = City.objects(name_eu = row[2])[0]
        except:
            city = City(name_eu = row[2])

        city.name_ru = row[2]
        city.country = Country.objects(name_eu = row[3])[0]
        city.slug = '%s' % (str(row[2]).replace(' ','_'))
        city.save()

        prog.increment_amount()
        print prog, '\r',
        sys.stdout.flush()
Esempio n. 11
0
class OrderForm(forms.Form):
    first_name = forms.CharField(max_length=150,
                                 widget=forms.TextInput(attrs={
                                     'class': 'district',
                                 }))
    last_name = forms.CharField(max_length=150,
                                widget=forms.TextInput(attrs={
                                    'class': 'district',
                                }))
    phone = forms.CharField(max_length=10,
                            widget=forms.TextInput(attrs={
                                'class': 'district',
                            }))
    email = forms.EmailField(widget=forms.EmailInput(attrs={
        'class': 'district',
    }))
    country = forms.ChoiceField(choices=Country.get_countries(),
                                widget=forms.Select(attrs={
                                    'class': 'district',
                                }))
    street = forms.CharField(max_length=100,
                             widget=forms.TextInput(attrs={
                                 'class': 'district',
                             }))
    city = forms.CharField(max_length=25,
                           widget=forms.TextInput(attrs={
                               'class': 'district',
                           }))
    postcode = forms.CharField(max_length=150,
                               widget=forms.TextInput(attrs={
                                   'class': 'district',
                               }))
    comment = forms.CharField(max_length=500,
                              widget=forms.TextInput(attrs={
                                  'class': 'district',
                              }))
Esempio n. 12
0
# Takes the csv file: countries_webscrape.csv and populates the counties model.
# This code was executed using the django shell.
# Based on code from http://abhishekchhibber.com/django-importing-a-csv-file-to-database-models/
import csv
from main.models import Country

with open('webscrape/countries_webscrape.csv') as webscrapecsv:
    csv_file = csv.DictReader(webscrapecsv)
    i = 0
    for row in csv_file:
        country_result = Country(name=row['name'], code=i)
        country_result.save()
        i += 1
Esempio n. 13
0
from main.models import Country, State, Holiday

for name in ['Brazil', 'Sweden', 'United States']:
    country = Country(name=name)
    country.save()