Example #1
0
    def test_mp_with_two_constituencies(self):
        Position.objects.create(
            category='political',
            person=self.person,
            place=self.constituency,
            organisation=self.na,
            title=self.na_member_title,
            start_date=ApproximateDate(2015, 1, 1),
        )

        Position.objects.create(
            category='political',
            person=self.person,
            place=self.constituency2,
            organisation=self.na,
            title=self.na_member_title,
            start_date=ApproximateDate(2015, 1, 2),
        )

        request = RequestFactory().get('/person/test-person/')
        request.user = AnonymousUser()
        response = KEPersonDetail.as_view()(request, slug='test-person')

        self.assertEqual(len(response.context_data['constituencies']), 1)
        self.assertEqual(response.context_data['constituencies'][0],
                         self.constituency2)

        # Check that admins got mailed.
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(
            mail.outbox[0].subject,
            '[Django] ERROR: test-person - Too many NA memberships (2)',
        )
Example #2
0
    def test_mp_with_two_constituencies(self):
        Position.objects.create(
            category="political",
            person=self.person,
            place=self.constituency,
            organisation=self.na,
            title=self.na_member_title,
            start_date=ApproximateDate(2015, 1, 1),
        )

        Position.objects.create(
            category="political",
            person=self.person,
            place=self.constituency2,
            organisation=self.na,
            title=self.na_member_title,
            start_date=ApproximateDate(2015, 1, 2),
        )

        request = RequestFactory().get("/person/test-person/")
        request.user = AnonymousUser()
        response = KEPersonDetail.as_view()(request, slug="test-person")

        self.assertEqual(len(response.context_data["constituencies"]), 1)
        self.assertEqual(response.context_data["constituencies"][0], self.constituency2)

        # Check that admins got mailed.
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject, "[Django] ERROR: test-person - Too many NA memberships (2)")
Example #3
0
    def test_mp_with_county(self):
        Position.objects.create(
            category="political",
            person=self.person,
            place=self.constituency,
            organisation=self.na,
            title=self.na_member_title,
        )

        Position.objects.create(category="political", person=self.person, place=self.county)

        request = RequestFactory().get("/person/test-person/")
        request.user = AnonymousUser()
        response = KEPersonDetail.as_view()(request, slug="test-person")

        self.assertEqual(len(response.context_data["constituencies"]), 1)
        self.assertEqual(response.context_data["constituencies"][0], self.constituency)
Example #4
0
    def test_mp_with_county(self):
        Position.objects.create(
            category='political',
            person=self.person,
            place=self.constituency,
            organisation=self.na,
            title=self.na_member_title,
        )

        Position.objects.create(
            category='political',
            person=self.person,
            place=self.county,
        )

        request = RequestFactory().get('/person/test-person/')
        request.user = AnonymousUser()
        response = KEPersonDetail.as_view()(request, slug='test-person')

        self.assertEqual(len(response.context_data['constituencies']), 1)
        self.assertEqual(response.context_data['constituencies'][0],
                         self.constituency)
Example #5
0
    def test_senator_with_party_membership_linked_to_constituency(self):
        Position.objects.create(
            category='political',
            person=self.person,
            place=self.county,
            organisation=self.senate,
            title=self.senator_title,
            )

        Position.objects.create(
            category='political',
            person=self.person,
            place=self.constituency,
            organisation=self.party,
            title=self.party_member_title,
            )

        request = RequestFactory().get('/person/test-person/')
        request.user = AnonymousUser()
        response = KEPersonDetail.as_view()(request, slug='test-person')

        self.assertEqual(len(response.context_data['constituencies']), 1)
        self.assertEqual(response.context_data['constituencies'][0], self.county)
Example #6
0
     TemplateView.as_view(template_name='register-to-vote.html')),
 url(r'^find-polling-station$',
     TemplateView.as_view(template_name='find-polling-station.html')),
 url(r'^women/$',
     TemplateView.as_view(template_name='women.html'),
     name='women'),
 url(r'^youthful-mps/$',
     YoungRepresentativesView.as_view(),
     name='young-reps'),
 url(r'^female-representatives/$',
     FemaleRepresentativesView.as_view(),
     name='female-reps'),
 url(r'^person/all/$',
     ListView.as_view(model=models.Person),
     name='person_list'),
 url(r'^person/(?P<slug>[-\w]+)/$', KEPersonDetail.as_view(),
     name='person'),
 url(r'^person/(?P<slug>[-\w]+)/appearances/$',
     KEPersonDetailAppearances.as_view(sub_page='appearances'),
     name='person'),
 url(r'^person/(?P<slug>[-\w]+)/experience/$',
     KEPersonDetailExperience.as_view(sub_page='experience'),
     name='person'),
 url(
     '^info/political-parties$',
     RedirectView.as_view(
         pattern_name='organisation_kind',
         permanent=False,
     ),
     {'slug': 'party'},
 ),
Example #7
0
from pombola.kenya.views import KEPersonDetail, KEPersonDetailAppearances

from .views import (CountyPerformanceView, CountyPerformanceSenateSubmission,
    CountyPerformancePetitionSubmission, CountyPerformanceShare,
    CountyPerformanceSurvey, EXPERIMENT_DATA, ThanksTemplateView,
    ShujaazFinalistsView
)

urlpatterns = patterns('',
    url(r'^shujaaz$', ShujaazFinalistsView.as_view(), name='shujaaz-finalists'),
    url(r'^shujaaz-voting$', TemplateView.as_view(template_name='shujaaz-voting.html'), name='shujaaz-voting'),
    url(r'^intro$',                TemplateView.as_view(template_name='intro.html') ),
    url(r'^register-to-vote$',     TemplateView.as_view(template_name='register-to-vote.html') ),
    url(r'^find-polling-station$', TemplateView.as_view(template_name='find-polling-station.html') ),
    url(r'^person/(?P<slug>[-\w]+)/$',
        KEPersonDetail.as_view(), name='person'),
    url(r'^person/(?P<slug>[-\w]+)/appearances/$',
        KEPersonDetailAppearances.as_view(sub_page='appearances'),
        name='person'),
)

# Create the two County Performance pages:

for experiment_slug in ('mit-county', 'mit-county-larger'):
    view_kwargs = {'experiment_slug': experiment_slug}
    view_kwargs.update(EXPERIMENT_DATA[experiment_slug])
    base_name = view_kwargs['base_view_name']
    base_path = r'^' + base_name
    urlpatterns.append(
        url(base_path + r'$',
            CountyPerformanceView.as_view(**view_kwargs),
Example #8
0
from pombola.kenya.views import KEPersonDetail, KEPersonDetailAppearances

from .views import (CountyPerformanceView, CountyPerformanceSenateSubmission,
    CountyPerformancePetitionSubmission, CountyPerformanceShare,
    CountyPerformanceSurvey, EXPERIMENT_DATA, ThanksTemplateView,
    ShujaazFinalistsView
)

urlpatterns = patterns('',
    url(r'^shujaaz$', ShujaazFinalistsView.as_view(), name='shujaaz-finalists'),
    url(r'^shujaaz-voting$', TemplateView.as_view(template_name='shujaaz-voting.html'), name='shujaaz-voting'),
    url(r'^intro$',                TemplateView.as_view(template_name='intro.html') ),
    url(r'^register-to-vote$',     TemplateView.as_view(template_name='register-to-vote.html') ),
    url(r'^find-polling-station$', TemplateView.as_view(template_name='find-polling-station.html') ),
    url(r'^person/(?P<slug>[-\w]+)/$',
        KEPersonDetail.as_view(), name='person'),
    url(r'^person/(?P<slug>[-\w]+)/appearances/$',
        KEPersonDetailAppearances.as_view(sub_page='appearances'),
        name='person'),
)

# Create the two County Performance pages:

for experiment_slug in ('mit-county', 'mit-county-larger'):
    base_name = EXPERIMENT_DATA[experiment_slug]['base_view_name']
    base_path = r'^' + base_name
    view_kwargs = {'experiment_slug': experiment_slug}
    urlpatterns.append(
        url(base_path + r'$',
            CountyPerformanceView.as_view(**view_kwargs),
            name=base_name)
Example #9
0
urlpatterns = [
    url(r"^$", KEHomeView.as_view(), name="home"),
    url(
        r"^shujaaz$",
        RedirectView.as_view(pattern_name="shujaaz-finalists-2015", permanent=False),
        name="shujaaz-redirect",
    ),
    url(r"^shujaaz/2015$", ShujaazFinalists2015View.as_view(), name="shujaaz-finalists-2015"),
    url(r"^shujaaz/2014$", ShujaazFinalists2014View.as_view(), name="shujaaz-finalists-2014"),
    url(r"^shujaaz-voting$", TemplateView.as_view(template_name="shujaaz-voting.html"), name="shujaaz-voting"),
    url(r"^intro$", TemplateView.as_view(template_name="intro.html")),
    url(r"^register-to-vote$", TemplateView.as_view(template_name="register-to-vote.html")),
    url(r"^find-polling-station$", TemplateView.as_view(template_name="find-polling-station.html")),
    url(r"^women/$", TemplateView.as_view(template_name="women.html"), name="women"),
    url(r"^person/all/$", ListView.as_view(model=models.Person), name="person_list"),
    url(r"^person/(?P<slug>[-\w]+)/$", KEPersonDetail.as_view(), name="person"),
    url(
        r"^person/(?P<slug>[-\w]+)/appearances/$",
        KEPersonDetailAppearances.as_view(sub_page="appearances"),
        name="person",
    ),
    url(
        r"^person/(?P<slug>[-\w]+)/experience/$", KEPersonDetailExperience.as_view(sub_page="experience"), name="person"
    ),
    url(
        "^info/political-parties$",
        RedirectView.as_view(pattern_name="organisation_kind", permanent=False),
        {"slug": "party"},
    ),
    url(r"^iebc-office-lookup$", OfficeSingleSelectView.as_view(), name="iebc-offices-single-select"),
    url(r"^iebc-office$", OfficeDetailView.as_view(), name="iebc-office"),