Esempio n. 1
0
    def handle(self, *args, **options):

        #Basics
        (city, country, date, url) = self.get_basic_info()

        #Main organizer
        team = self.get_main_organizer()

        #Team
        team = self.get_team(team)

        #Create users
        click.echo("OK! That's it. Now I'll create your event.")
        click.echo("Here is an access info for team members:")

        members = self.create_users(team)

        #Event and EventPage objects
        name = u'Django Girls '+city
        latlng = get_coordinates_for_city(city, country)
        event = Event.objects.create(name=name, city=city, country=country, latlng=latlng, main_organizer=members[0], date=date, is_on_homepage=False)
        for member in members:
            event.team.add(member)

        page = EventPage.objects.create(event=event, url=url, title=name)

        #Default content
        self.add_default_content(page)
        self.add_default_menu(page)

        click.echo(u"Website is ready here: http://djangogirls.org/{0}".format(url))
        click.echo("Congrats on yet another event!")
        click.echo("------------")
        click.echo("Important! Go here: http://djangogirls.org/admin/core/event/{0}/ Upload a photo of city and tick is on homepage checkbox!".format(event.id))
Esempio n. 2
0
    def test_get_coordinates_for_city(self, mock_get):
        mock_get.return_value.json.return_value = [{"lat": "1.23", "lon": "4.56"}]

        result = get_coordinates_for_city("London", "UK")

        mock_get.assert_called_once_with(NOMINATIM_URL, params={"format": "json", "q": "London, UK"})
        self.assertEqual(result, "1.23, 4.56")
Esempio n. 3
0
    def test_returns_none_when_no_results(self, mock_get):
        # Results are an empty list
        mock_get.return_value.json.return_value = []

        result = get_coordinates_for_city("PretendTown", "UK")

        mock_get.assert_called_once_with(NOMINATIM_URL, params={"format": "json", "q": "PretendTown, UK"})
        self.assertIsNone(result)
Esempio n. 4
0
    def test_returns_none_when_invalid_results(self, mock_get):
        # Empty dict returned in results
        mock_get.return_value.json.return_value = [{}]

        result = get_coordinates_for_city("PretendTown", "UK")

        mock_get.assert_called_once_with(NOMINATIM_URL, params={"format": "json", "q": "PretendTown, UK"})
        self.assertIsNone(result)
    def handle(self, *args, **options):

        events = Event.objects.all()

        for event in events:
            self.stdout.write("{}, {}".format(event.city, event.country))
            event.latlng = get_coordinates_for_city(event.city, event.country)
            self.stdout.write("{}".format(event.latlng))
            event.save()
Esempio n. 6
0
    def handle(self, *args, **options):

        events = Event.objects.all()

        for event in events:
            print(event.city, event.country)
            event.latlng = get_coordinates_for_city(event.city, event.country)
            print(event.latlng)
            event.save()
Esempio n. 7
0
def test_returns_none_when_invalid_results(mock_get):
    # Empty dict returned in results
    mock_get.return_value.json.return_value = [{}]

    result = get_coordinates_for_city('PretendTown', 'UK')

    mock_get.assert_called_once_with(NOMINATIM_URL,
                                     params={
                                         'format': 'json',
                                         'q': 'PretendTown, UK',
                                     })
    assert result is None
Esempio n. 8
0
def test_returns_none_when_no_results(mock_get):
    # Results are an empty list
    mock_get.return_value.json.return_value = []

    result = get_coordinates_for_city('PretendTown', 'UK')

    mock_get.assert_called_once_with(NOMINATIM_URL,
                                     params={
                                         'format': 'json',
                                         'q': 'PretendTown, UK',
                                     })
    assert result is None
Esempio n. 9
0
def command():
    """Creates new Django Girls event"""
    # Basics
    (city, country, date, url, event_mail) = get_basic_info()

    # Main organizer
    main_organizer = get_main_organizer()

    # Team
    team = get_team(main_organizer)

    click.echo("OK! That's it. Now I'll create your event.")

    # Event and EventPage objects
    name = "Django Girls " + city
    latlng = get_coordinates_for_city(city, country)
    mail = event_mail + "@djangogirls.org"
    event = Event.objects.create(
        name=name, city=city, country=country, latlng=latlng, email=mail, date=date, is_on_homepage=False
    )

    page = EventPage.objects.create(event=event, url=url, title=name)

    # Create users
    members = create_users(team, event)
    event.main_organizer = members[0]
    event.save()

    # Default content
    add_default_content(page)
    add_default_menu(page)

    click.secho("Website is ready here: http://djangogirls.org/{0}".format(url), fg="green")
    click.echo(DELIMITER)

    click.secho("Ok, now follow this:", fg="black", bg="green")
    click.echo("1. Find a photo of a city with CC license on Flickr. Download it.")
    click.echo("2. Go here: http://djangogirls.org/admin/core/event/{0}/".format(event.id))
    click.echo("3. Upload a photo of city, add credits and tick 'is on homepage' checkbox. Save.")
    click.echo("4. Send e-mail with instructions to a team!")
    click.echo(DELIMITER)
    click.secho("This is a ready, filled out mail to sent to organizers:", fg="green")

    click.echo("SUBJECT: Django Girls {} setup".format(event.city))
    click.echo("TO: {}, {}, [email protected]".format(", ".join([x.email for x in members]), event.email))
    click.echo("BODY:")
    click.echo(
        render_to_string("emails/setup.txt", {"event": event, "email_password": "******", "settings": settings})
    )

    brag_on_slack_bang(city, country, members)
Esempio n. 10
0
    def test_returns_none_when_no_results(self, mock_get):
        # Results are an empty list
        mock_get.return_value.json.return_value = []

        result = get_coordinates_for_city('PretendTown', 'UK')

        mock_get.assert_called_once_with(
            NOMINATIM_URL,
            params={
                'format': 'json',
                'q': 'PretendTown, UK',
            }
        )
        self.assertIsNone(result)
Esempio n. 11
0
def test_get_coordinates_for_city(mock_get):
    mock_get.return_value.json.return_value = [{
        'lat': '1.23',
        'lon': '4.56',
    }]

    result = get_coordinates_for_city('London', 'UK')

    mock_get.assert_called_once_with(NOMINATIM_URL,
                                     params={
                                         'format': 'json',
                                         'q': 'London, UK',
                                     })
    assert result == '1.23, 4.56'
Esempio n. 12
0
    def test_returns_none_when_invalid_results(self, mock_get):
        # Empty dict returned in results
        mock_get.return_value.json.return_value = [{}]

        result = get_coordinates_for_city('PretendTown', 'UK')

        mock_get.assert_called_once_with(
            NOMINATIM_URL,
            params={
                'format': 'json',
                'q': 'PretendTown, UK',
            }
        )
        self.assertIsNone(result)
Esempio n. 13
0
    def test_get_coordinates_for_city(self, mock_get):
        mock_get.return_value.json.return_value = [{
            'lat': '1.23',
            'lon': '4.56',
        }]

        result = get_coordinates_for_city('London', 'UK')

        mock_get.assert_called_once_with(
            NOMINATIM_URL,
            params={
                'format': 'json',
                'q': 'London, UK',
            }
        )
        self.assertEqual(result, '1.23, 4.56')
Esempio n. 14
0
    def handle(self, *args, **options):

        #Basics
        (city, country, date, url, event_mail) = self.get_basic_info()

        #Main organizer
        team = self.get_main_organizer()

        #Team
        team = self.get_team(team)

        #Create users
        click.echo("OK! That's it. Now I'll create your event.")
        click.echo("Here is an access info for team members:")

        members = self.create_users(team)

        #Event and EventPage objects
        name = 'Django Girls ' + city
        latlng = get_coordinates_for_city(city, country)
        mail = event_mail + '@djangogirls.org'
        event = Event.objects.create(name=name,
                                     city=city,
                                     country=country,
                                     latlng=latlng,
                                     email=mail,
                                     main_organizer=members[0],
                                     date=date,
                                     is_on_homepage=False)
        for member in members:
            event.team.add(member)

        page = EventPage.objects.create(event=event, url=url, title=name)

        #Default content
        self.add_default_content(page)
        self.add_default_menu(page)

        click.echo(
            "Website is ready here: http://djangogirls.org/{0}".format(url))
        click.echo("Congrats on yet another event!")
        click.echo("------------")
        click.echo(
            "Important! Go here: http://djangogirls.org/admin/core/event/{0}/ Upload a photo of city and tick is on homepage checkbox!"
            .format(event.id))
Esempio n. 15
0
    def handle(self, *args, **options):
        #Basics
        (city, country, date, url, event_mail) = self.get_basic_info()

        #Main organizer
        main_organizer = self.get_main_organizer()

        #Team
        team = self.get_team(main_organizer)

        #Create users
        click.echo("OK! That's it. Now I'll create your event.")

        members, members_as_list = self.create_users(team)

        #Event and EventPage objects
        name = 'Django Girls ' + city
        latlng = get_coordinates_for_city(city, country)
        mail = event_mail + '@djangogirls.org'
        event = Event.objects.create(name=name,
                                     city=city,
                                     country=country,
                                     latlng=latlng,
                                     email=mail,
                                     main_organizer=members[0],
                                     date=date,
                                     is_on_homepage=False)
        for member in members:
            event.team.add(member)

        page = EventPage.objects.create(event=event, url=url, title=name)

        #Default content
        self.add_default_content(page)
        self.add_default_menu(page)

        click.secho(
            "Website is ready here: http://djangogirls.org/{0}".format(url),
            fg='green')
        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")

        self.invite_team_to_slack(members)

        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")

        click.secho("Ok, now follow this:", fg='black', bg='green')
        click.echo(
            "1. Find a photo of a city with CC license on Flickr. Download it."
        )
        click.echo(
            "2. Go here: http://djangogirls.org/admin/core/event/{0}/".format(
                event.id))
        click.echo(
            "3. Upload a photo of city, add credits and tick 'is on homepage' checkbox. Save."
        )
        click.echo("4. Send e-mail with instructions to a team!")
        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")
        click.secho("This is a ready, filled out mail to sent to organizers:",
                    fg='green')

        click.echo("SUBJECT: Django Girls {} setup".format(event.city))
        click.echo("TO: {}, {}, [email protected]".format(
            ', '.join([x.email for x in members]), event.email))
        click.echo("BODY:")
        click.echo(
            render_to_string(
                'emails/setup.txt', {
                    'event': event,
                    'members': members_as_list,
                    'email_password': '******',
                    'settings': settings
                }))

        self.brag_on_slack_bang(city, country, members)
Esempio n. 16
0
 def save(self, *args, **kwargs):
     if not self.latlng:
         self.latlng = get_coordinates_for_city(self.city, self.get_country_display())
     super(EventApplication, self).save(*args, **kwargs)
Esempio n. 17
0
    def save(self, *args, **kwargs):
        if not self.latlng:
            self.latlng = get_coordinates_for_city(self.city,
                                                   self.get_country_display())

        super().save(*args, **kwargs)
Esempio n. 18
0
def command(short):
    """Creates new Django Girls event"""
    # Basics
    (city, country, date, url, event_mail) = get_basic_info()

    # Main organizer
    main_organizer = get_main_organizer()

    # Team
    team = get_team(main_organizer)

    click.echo("OK! That's it. Now I'll create your event.")

    # Event and EventPage objects
    name = 'Django Girls ' + city
    latlng = get_coordinates_for_city(city, country)
    mail = event_mail + '@djangogirls.org'
    event = Event.objects.create(name=name,
                                 city=city,
                                 country=country,
                                 latlng=latlng,
                                 email=mail,
                                 date=date,
                                 is_on_homepage=False,
                                 page_url=url,
                                 page_title=name)

    # Create users
    members = create_users(team, event)
    event.main_organizer = members[0]
    event.save()

    # Default content
    add_default_content(event)
    add_default_menu(event)

    click.secho(
        "Website is ready here: http://djangogirls.org/{0}".format(url),
        fg='green')
    click.echo(DELIMITER)

    click.secho("Ok, now follow this:", fg='black', bg='green')
    click.echo(
        "1. Find a photo of a city with CC license on Flickr. Download it.")
    click.echo(
        "2. Go here: http://djangogirls.org/admin/core/event/{0}/".format(
            event.id))
    click.echo(
        "3. Upload a photo of city, add credits and tick 'is on homepage' checkbox. Save."
    )
    click.echo("4. Send e-mail with instructions to a team!")
    click.echo(DELIMITER)
    click.secho("This is a ready, filled out mail to sent to organizers:",
                fg='green')

    click.echo("SUBJECT: Django Girls {} setup".format(event.city))
    click.echo("TO: {}, {}, [email protected]".format(
        ', '.join([x.email for x in members]), event.email))
    click.echo("BODY:")

    if short:
        click.echo(
            render_to_string('emails/setup-short.txt', {
                'event': event,
            }))
    else:
        click.echo(
            render_to_string(
                'emails/setup.txt', {
                    'event': event,
                    'email_password': '******',
                    'settings': settings
                }))

    brag_on_slack_bang(city, country, members)
Esempio n. 19
0
 def save(self, *args, **kwargs):
     if not self.latlng:
         self.latlng = get_coordinates_for_city(self.city, self.country)
     super(EventApplication, self).save(*args, **kwargs)
Esempio n. 20
0
    def handle(self, *args, **options):
        # Basics
        (city, country, date, url, event_mail) = self.get_basic_info()

        # Main organizer
        main_organizer = self.get_main_organizer()

        # Team
        team = self.get_team(main_organizer)

        # Create users
        click.echo("OK! That's it. Now I'll create your event.")

        members, members_as_list = self.create_users(team)

        # Event and EventPage objects
        name = 'Django Girls ' + city
        latlng = get_coordinates_for_city(city, country)
        mail = event_mail + '@djangogirls.org'
        event = Event.objects.create(name=name, city=city, country=country,
                                     latlng=latlng, email=mail,
                                     main_organizer=members[0], date=date,
                                     is_on_homepage=False)
        for member in members:
            event.team.add(member)

        page = EventPage.objects.create(event=event, url=url, title=name)

        # Default content
        self.add_default_content(page)
        self.add_default_menu(page)

        click.secho(
            "Website is ready here: http://djangogirls.org/{0}".format(url),
            fg='green')
        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")

        self.invite_team_to_slack(members)

        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")

        click.secho("Ok, now follow this:", fg='black', bg='green')
        click.echo(
            "1. Find a photo of a city with CC license on Flickr. Download it.")
        click.echo(
            "2. Go here: http://djangogirls.org/admin/core/event/{0}/".format(event.id))
        click.echo(
            "3. Upload a photo of city, add credits and tick 'is on homepage' checkbox. Save.")
        click.echo("4. Send e-mail with instructions to a team!")
        click.echo("")
        click.echo(
            "---------------------------------------------------------------")
        click.echo("")
        click.secho(
            "This is a ready, filled out mail to sent to organizers:", fg='green')

        click.echo("SUBJECT: Django Girls {} setup".format(event.city))
        click.echo("TO: {}, {}, [email protected]".format(
            ', '.join([x.email for x in members]),
            event.email
        ))
        click.echo("BODY:")
        click.echo(render_to_string('emails/setup.txt', {
            'event': event,
            'members': members_as_list,
            'email_password': '******',
            'settings': settings
        }))

        self.brag_on_slack_bang(city, country, members)