├── .gitignore ├── .travis.yml ├── Gemfile ├── Gemfile.lock ├── LICENSE.txt ├── README.md ├── Vagrantfile ├── bin ├── create-images.sh ├── deskew-and-unpaper.py ├── name_find_and_replace.py ├── name_matcher.py ├── prepare_environment.bash ├── run_management_command ├── run_management_command_capture_stdout ├── update_hansard.bash ├── update_za_hansard.bash ├── vagrant-base.bash └── vagrant-install.bash ├── conf ├── .gitignore ├── crontab.ugly ├── general.yml-example ├── httpd.conf-example ├── nginx.conf.example ├── packages └── sysvinit.example ├── data └── .gitkeep ├── docs ├── BACKGROUND.md ├── INSTALL.md ├── OVERVIEW.md ├── STYLING_NOTES.md ├── TESTING.md ├── TROUBLESHOOTING.md └── south_africa.md ├── manage.py ├── pombola ├── .gitignore ├── __init__.py ├── admin_additions │ ├── __init__.py │ └── templates │ │ └── admin │ │ ├── base_site.html │ │ └── edit_inline │ │ └── tabular.html ├── api │ ├── __init__.py │ └── permissions.py ├── bills │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── bills │ │ │ ├── _bill_link.html │ │ │ ├── _pagination.html │ │ │ ├── _person_recent_bills.html │ │ │ ├── bill_list.html │ │ │ └── index.html │ ├── urls.py │ └── views.py ├── budgets │ ├── README.md │ ├── __init__.py │ ├── admin.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ └── budgets_import_place_budgets.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_datetimefield_remove_default.py │ │ └── __init__.py │ ├── models.py │ └── templates │ │ └── budgets │ │ └── budgets.html ├── config.py ├── core │ ├── __init__.py │ ├── admin.py │ ├── context_processors.py │ ├── fixtures │ │ └── test_data.json │ ├── kenya_import_scripts │ │ ├── extract_data_from_original_mzalendo_db.pl │ │ ├── extract_positions_from_db.pl │ │ ├── import_cdf_data_from_csv.py │ │ ├── import_committees_csv.py │ │ ├── import_constituency_county_map.py │ │ ├── import_contacts_from_tuples.py │ │ ├── import_contituencies_from_json.py │ │ ├── import_data_from_mzalendo.py │ │ ├── import_member_comments_from_json.py │ │ ├── import_member_photos.py │ │ ├── import_members_from_json.py │ │ ├── import_parties_from_json.py │ │ ├── import_positions_from_json.py │ │ ├── name_to_first_last.py │ │ ├── scrape_data_from_mzalendo.pl │ │ └── update_names.py │ ├── logging_filters.py │ ├── lookups.py │ ├── management │ │ ├── __init__.py │ │ ├── commands │ │ │ ├── __init__.py │ │ │ ├── core_check_mp_aspirants.py │ │ │ ├── core_cleanup_disqus_urls.py │ │ │ ├── core_create_elected_positions.py │ │ │ ├── core_create_places_from_mapit_entries.py │ │ │ ├── core_database_dump.py │ │ │ ├── core_end_positions.py │ │ │ ├── core_export_summary_csvs.py │ │ │ ├── core_export_to_popolo_json.py │ │ │ ├── core_extend_areas_to_generation_2.py │ │ │ ├── core_extend_party_memberships.py │ │ │ ├── core_find_stale_elasticsearch_documents.py │ │ │ ├── core_fix_ward_names.py │ │ │ ├── core_import_basic_positions_csv.py │ │ │ ├── core_import_kenyan_boundaries_2013.py │ │ │ ├── core_list_malformed_slugs.py │ │ │ ├── core_list_person_primary_images.py │ │ │ ├── core_match_places_to_mapit_areas.py │ │ │ ├── core_match_places_to_mapit_areas_2013.py │ │ │ ├── core_merge_organisations.py │ │ │ ├── core_merge_people.py │ │ │ ├── core_move_profile_url_to_parliament_url.py │ │ │ ├── core_output_constituency_party_affiliation.py │ │ │ ├── core_output_mp_contact_csv.py │ │ │ ├── core_output_mp_scorecard_csv.py │ │ │ ├── core_position_deduplicate.py │ │ │ ├── core_render_template.py │ │ │ └── core_set_area_parents.py │ │ └── merge.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_add_related_name.py │ │ ├── 0003_new_emailfield_max_length.py │ │ ├── 0004_parliamentarysession_position_title.py │ │ ├── 0005_parliamentarysession_make_house_optional.py │ │ ├── 0006_add_role_responsibilities.py │ │ ├── 0007_add_preferred_contact_option.py │ │ ├── 0008_sort_organisations_by_name.py │ │ ├── 0009_organisation_short_name.py │ │ ├── 0010_organisation_update_short_name.py │ │ ├── 0011_organisation_alter_short_name.py │ │ ├── 0012_organisation_seats.py │ │ ├── 0013_organisation_show_attendance.py │ │ ├── 0014_auto_20190906_1342.py │ │ └── __init__.py │ ├── models.py │ ├── popolo.py │ ├── seltests │ │ ├── __init__.py │ │ ├── admin_autocomplete.py │ │ └── basics.py │ ├── static │ │ ├── .gitignore │ │ ├── config.rb │ │ ├── css │ │ │ └── jquery.countdown-v1.6.0.css │ │ ├── images │ │ │ ├── assembly-16x16.jpg │ │ │ ├── chevron-left-alt.png │ │ │ ├── chevron-right-alt.png │ │ │ ├── chevron-right.png │ │ │ ├── comment-16px.png │ │ │ ├── county-perf-facebook.png │ │ │ ├── county-perf-twitter.png │ │ │ ├── d-logo.png │ │ │ ├── d-smiley-sprite.png │ │ │ ├── down-logo.png │ │ │ ├── facebook-16px.png │ │ │ ├── fade-to-green.png │ │ │ ├── favicon.png │ │ │ ├── feature_chevrons.png │ │ │ ├── has-dropdown-dark.png │ │ │ ├── logo-450-x-150.png │ │ │ ├── m-logo.png │ │ │ ├── m-smiley-sprite.png │ │ │ ├── mz-person-detail-appearances.png │ │ │ ├── mz-person-detail-budget.png │ │ │ ├── mz-person-detail-experience.png │ │ │ ├── mz-person-detail-positions.png │ │ │ ├── nub.png │ │ │ ├── organisation-16x16.jpg │ │ │ ├── organisation-200x200.jpg │ │ │ ├── organisation-210x210.jpg │ │ │ ├── organisation-90x90.jpg │ │ │ ├── pagination.png │ │ │ ├── pencil-16px.png │ │ │ ├── person-16x16.jpg │ │ │ ├── person-200x200.jpg │ │ │ ├── person-210x210.jpg │ │ │ ├── person-60x60.jpg │ │ │ ├── person-90x90.jpg │ │ │ ├── place-16x16.jpg │ │ │ ├── place-200x200.jpg │ │ │ ├── place-90x90.jpg │ │ │ ├── positiontitle-16x16.jpg │ │ │ ├── question.png │ │ │ ├── quotes.png │ │ │ ├── score-average.png │ │ │ ├── score-bad.png │ │ │ ├── score-disabled.png │ │ │ ├── score-good.png │ │ │ ├── search-icon-dark.png │ │ │ ├── search-icon.png │ │ │ ├── social-links.png │ │ │ ├── twitter-16px.png │ │ │ ├── twitter-app-logo.png │ │ │ ├── ui-icons_444444_256x240.png │ │ │ ├── ui-icons_555555_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ ├── js │ │ │ ├── analytics.js │ │ │ ├── election_countdown.js │ │ │ ├── feeds.js │ │ │ ├── functions.js │ │ │ ├── hide-reveal.js │ │ │ ├── hover-dropdown.js │ │ │ ├── libs │ │ │ │ ├── jquery-ui.js │ │ │ │ ├── jquery.countdown-v1.6.0.js │ │ │ │ ├── jquery.form-v2.94.js │ │ │ │ ├── modernizr.js │ │ │ │ └── respond.1.4.2.js │ │ │ ├── load_appearances.js │ │ │ ├── map.js │ │ │ ├── survey.js │ │ │ ├── twitter-embed.js │ │ │ └── ui-test.js │ │ ├── sass │ │ │ ├── _ajax_dialog.scss │ │ │ ├── _breadcrumb.scss │ │ │ ├── _budgets.scss │ │ │ ├── _buttons.scss │ │ │ ├── _colours_default.scss │ │ │ ├── _comments.scss │ │ │ ├── _common.scss │ │ │ ├── _core.scss │ │ │ ├── _footer.scss │ │ │ ├── _hansard.scss │ │ │ ├── _header.scss │ │ │ ├── _help.scss │ │ │ ├── _hide-reveal.scss │ │ │ ├── _home_page.scss │ │ │ ├── _home_page_carousel.scss │ │ │ ├── _hover-dropdown.scss │ │ │ ├── _html_elements.scss │ │ │ ├── _info_pages.scss │ │ │ ├── _jquery-ui.scss │ │ │ ├── _jquery-ui.structure.scss │ │ │ ├── _jquery-ui.theme.scss │ │ │ ├── _listing.scss │ │ │ ├── _local-aspirants.scss │ │ │ ├── _menu.scss │ │ │ ├── _object_menu.scss │ │ │ ├── _page.scss │ │ │ ├── _pagination.scss │ │ │ ├── _print.scss │ │ │ ├── _scorecard.scss │ │ │ ├── _search.scss │ │ │ ├── _social-and-tools.scss │ │ │ ├── _social.scss │ │ │ ├── _vcard.scss │ │ │ ├── admin.scss │ │ │ └── countdown.scss │ │ ├── static_test.txt │ │ └── templates │ │ │ └── header.html │ ├── templates │ │ ├── core │ │ │ ├── _alphabetical_pagination.html │ │ │ ├── _object_menu_link.html │ │ │ ├── _people_listing.html │ │ │ ├── _person_open_graph.html │ │ │ ├── _place_people_position.html │ │ │ ├── _place_search_filters.html │ │ │ ├── _position_listing.html │ │ │ ├── _position_session_links.html │ │ │ ├── _search_pagination_text.html │ │ │ ├── contact_list.html │ │ │ ├── default_place_candidate_lists.html │ │ │ ├── generic_list.html │ │ │ ├── generic_list_item.html │ │ │ ├── help_api.html │ │ │ ├── object_base.html │ │ │ ├── organisation_base.html │ │ │ ├── organisation_comments.html │ │ │ ├── organisation_contact_details.html │ │ │ ├── organisation_detail.html │ │ │ ├── organisation_list.html │ │ │ ├── organisation_list_item.html │ │ │ ├── organisation_people.html │ │ │ ├── override_breadcrumb.html │ │ │ ├── parties.html │ │ │ ├── person_appearances.html │ │ │ ├── person_base.html │ │ │ ├── person_comments.html │ │ │ ├── person_contact_details.html │ │ │ ├── person_detail.html │ │ │ ├── person_experience.html │ │ │ ├── person_feature.html │ │ │ ├── person_list.html │ │ │ ├── person_list_item.html │ │ │ ├── person_menu.html │ │ │ ├── person_position_section.html │ │ │ ├── person_scorecard.html │ │ │ ├── place_aspirants.html │ │ │ ├── place_base.html │ │ │ ├── place_budgets.html │ │ │ ├── place_candidate_lists.html │ │ │ ├── place_comments.html │ │ │ ├── place_data.html │ │ │ ├── place_detail.html │ │ │ ├── place_election.html │ │ │ ├── place_list.html │ │ │ ├── place_list_item.html │ │ │ ├── place_organisations.html │ │ │ ├── place_people.html │ │ │ ├── place_places.html │ │ │ ├── place_places_child.html │ │ │ ├── place_places_child_list.html │ │ │ ├── place_projects.html │ │ │ ├── place_scorecard.html │ │ │ ├── position_detail.html │ │ │ ├── position_detail_grid.html │ │ │ ├── position_list.html │ │ │ ├── position_list_item.html │ │ │ ├── position_position_section.html │ │ │ ├── positiontitle_list_item.html │ │ │ ├── session_list.html │ │ │ ├── social_tools.html │ │ │ └── unknown_list_item.html │ │ ├── template-for-blog.html │ │ └── ui-test.html │ ├── templatetags │ │ ├── __init__.py │ │ ├── absolute_url.py │ │ ├── active_class.py │ │ ├── add_query_parameter.py │ │ ├── breadcrumbs.py │ │ ├── clean_html.py │ │ ├── get_from_key.py │ │ ├── hidden.py │ │ └── switch.py │ ├── tests │ │ ├── __init__.py │ │ ├── smoke_tests.py │ │ ├── test_clean_html_templatetags.py │ │ ├── test_commands.py │ │ ├── test_models.py │ │ ├── test_open_graph.py │ │ ├── test_organisation_kinds.py │ │ ├── test_organisations.py │ │ ├── test_persons.py │ │ ├── test_popolo.py │ │ ├── test_positions.py │ │ ├── test_templatetags.py │ │ └── test_views.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── country │ ├── README.md │ └── __init__.py ├── experiments │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── feedback │ ├── __init__.py │ ├── admin.py │ ├── forms.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ └── feedback_report_pending.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_new_emailfield_max_length_and_datetimefield_remove_default.py │ │ └── __init__.py │ ├── models.py │ ├── seltests │ │ ├── __init__.py │ │ └── feedback_dialog.py │ ├── templates │ │ └── feedback │ │ │ └── add.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── generate_tasks.py ├── hansard │ ├── README.md │ ├── __init__.py │ ├── admin.py │ ├── api │ │ ├── __init__.py │ │ ├── serializers.py │ │ └── views.py │ ├── bin │ │ └── convert_pdf_to_html_on_remote_machine.bash │ ├── constants.py │ ├── fixtures │ │ └── hansard_test_data.json │ ├── kenya_parser.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── hansard_assign_speakers.py │ │ │ ├── hansard_check_for_new_sources.py │ │ │ ├── hansard_email_unmatched_speakers.py │ │ │ ├── hansard_process_sources.py │ │ │ ├── hansard_reattribute_entries.py │ │ │ └── hansard_women_speakers_word_frequency.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_source_unique_together_constraint.py │ │ ├── 0003_datetimefield_remove_default.py │ │ └── __init__.py │ ├── models │ │ ├── __init__.py │ │ ├── alias.py │ │ ├── base.py │ │ ├── entry.py │ │ ├── sitting.py │ │ ├── source.py │ │ └── venue.py │ ├── templates │ │ ├── admin │ │ │ └── hansard │ │ │ │ └── alias │ │ │ │ └── change_list.html │ │ └── hansard │ │ │ ├── entry_list.html │ │ │ ├── index.html │ │ │ ├── person_summary.html │ │ │ └── sitting_detail.html │ ├── tests │ │ ├── 2011-09-01-assembly-sample.doc │ │ ├── 2011-09-01-assembly-sample.html │ │ ├── 2011-09-01-assembly-sample.json │ │ ├── 2011-09-01-assembly-sample.pdf │ │ ├── 2013-07-31-senate-sample.html │ │ ├── 2013-07-31-senate-sample.json │ │ ├── 2013-07-31-senate-sample.pdf │ │ ├── __init__.py │ │ ├── smoke_tests.py │ │ ├── test_alias.py │ │ ├── test_entry.py │ │ ├── test_kenya_parser.py │ │ ├── test_reattribute_entries.py │ │ ├── test_sitting.py │ │ ├── test_sitting_view.py │ │ └── test_source.py │ ├── urls.py │ └── views.py ├── interests_register │ ├── README.md │ ├── __init__.py │ ├── admin.py │ ├── fixtures │ │ └── sample_source.json │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── interests_register_delete_existing.py │ │ │ └── interests_register_import_from_json.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tests.py │ └── views.py ├── kenya │ ├── 2013-election-data │ │ ├── .gitignore │ │ ├── gazette-results │ │ │ ├── governors-results.csv │ │ │ ├── members-results.csv │ │ │ ├── senators-results.csv │ │ │ ├── venues-county-assembly.csv │ │ │ ├── ward-results.csv │ │ │ └── woman-representatives-results.csv │ │ ├── names-manually-checked.csv │ │ ├── party-names-matched.csv │ │ ├── party-names.csv │ │ ├── positions-to-end-delete-and-alternative-names.csv │ │ ├── wards-names-matched.csv │ │ └── wards-names.csv │ ├── __init__.py │ ├── budget-data │ │ └── 2013-14-cdf.csv │ ├── election_data_2017 │ │ ├── __init__.py │ │ ├── iebc_offices.py │ │ └── results │ │ │ ├── na.csv │ │ │ ├── senate.csv │ │ │ └── wo.csv │ ├── forms.py │ ├── lib.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── core_set_iebc_api_ids.py │ │ │ ├── iebc_api.py │ │ │ ├── kenya_add_codes_to_mapit.py │ │ │ ├── kenya_adwords_csv.py │ │ │ ├── kenya_apply_updates.py │ │ │ ├── kenya_assign_aspirants_to_coalitions.py │ │ │ ├── kenya_check_for_recurring_problems.py │ │ │ ├── kenya_create_coalition_entries.py │ │ │ ├── kenya_dump_petition_and_senate_comments.py │ │ │ ├── kenya_get_possible_matches_from_iebc.py │ │ │ ├── kenya_hansard_speech_statistics.py │ │ │ ├── kenya_hide_people.py │ │ │ ├── kenya_import_2017_election_results.py │ │ │ ├── kenya_import_2017_photos.py │ │ │ ├── kenya_import_wards.py │ │ │ ├── kenya_matchup_coords_to_place.py │ │ │ ├── kenya_normalize_person_names.py │ │ │ ├── kenya_parse_iebc_office_data.py │ │ │ ├── kenya_remove_duplicate_aspirants.py │ │ │ ├── kenya_scrape_bills.py │ │ │ ├── kenya_set_election_results_from_gazette.py │ │ │ ├── kenya_sms_retrieve_messages.py │ │ │ └── kenya_update_aspirants_from_iebc.py │ ├── migrations │ │ ├── 0001_fix_mapit_area_types.py │ │ ├── 0002_adjust_parliamentary_sessions.py │ │ ├── 0003_remove_senate_organisation.py │ │ └── __init__.py │ ├── shujaaz.py │ ├── static │ │ ├── fonts │ │ │ ├── Skolar_Bold.woff │ │ │ ├── Skolar_Italic.woff │ │ │ └── Skolar_Regular.woff │ │ ├── images │ │ │ ├── chevron-grey-left-10x15.svg │ │ │ ├── chevron-grey-right-10x15.svg │ │ │ ├── chevron-red-6x10.svg │ │ │ ├── chevron-white.svg │ │ │ ├── facebook-icon.png │ │ │ ├── heinrich-boell.png │ │ │ ├── indigo-without-title.gif │ │ │ ├── logo-boll.png │ │ │ ├── logo-indigo.png │ │ │ ├── logo-mysociety.svg │ │ │ ├── logo-ned.svg │ │ │ ├── logo-nimd.png │ │ │ ├── mzalendo-awards-ribbon.png │ │ │ ├── mzalendo-header-background.svg │ │ │ ├── mzalendo-logo-large.png │ │ │ ├── mzalendo-logo-small.png │ │ │ ├── olympics-1st.png │ │ │ ├── olympics-2nd.png │ │ │ ├── olympics-3rd.png │ │ │ ├── parliament-400px.jpg │ │ │ ├── parliament-600px.jpg │ │ │ ├── peoples-shujaaz-award-badge.png │ │ │ ├── peoples-shujaaz-background.jpg │ │ │ ├── peoples-shujaaz-home-badge.png │ │ │ ├── peoples-shujaaz-logo.png │ │ │ ├── phone-white.svg │ │ │ ├── pin-logo.jpg │ │ │ ├── twitter-icon.png │ │ │ ├── wave-icon.png │ │ │ ├── women-curve-bottom.png │ │ │ ├── women-curve-top.png │ │ │ └── women-representative-topics-wordle.png │ │ ├── js │ │ │ ├── click-tracking.js │ │ │ ├── collapse-responsibilities.js │ │ │ ├── facebook-experiment.js │ │ │ ├── featured-person.js │ │ │ ├── lazy-loaded-images.js │ │ │ ├── libs │ │ │ │ └── blazy.js │ │ │ ├── riveted.js │ │ │ ├── select2-optgroup-matcher.js │ │ │ ├── sms-carousel.js │ │ │ └── women-wordcloud.js │ │ ├── kenya │ │ │ ├── election-homepage │ │ │ │ ├── base.css │ │ │ │ ├── images │ │ │ │ │ ├── countdown-icon.png │ │ │ │ │ ├── election-logo.png │ │ │ │ │ └── election-search.png │ │ │ │ └── style.css │ │ │ └── intro │ │ │ │ ├── intro.css │ │ │ │ ├── logo.png │ │ │ │ ├── logo.svg │ │ │ │ ├── logo@x2.png │ │ │ │ ├── logo_ie6.png │ │ │ │ └── search2.png │ │ └── sass │ │ │ ├── _bills.scss │ │ │ ├── _colours_kenya.scss │ │ │ ├── _county_performance.scss │ │ │ ├── _election-area-page.scss │ │ │ ├── _facebook_experiment.scss │ │ │ ├── _kenya_breadcrumb.scss │ │ │ ├── _kenya_footer.scss │ │ │ ├── _kenya_grid.scss │ │ │ ├── _kenya_hansard.scss │ │ │ ├── _kenya_header.scss │ │ │ ├── _kenya_home.scss │ │ │ ├── _kenya_menu.scss │ │ │ ├── _kenya_overrides.scss │ │ │ ├── _kenya_wrapper.scss │ │ │ ├── _shujaaz.scss │ │ │ ├── _women.scss │ │ │ └── kenya.scss │ ├── templates │ │ ├── 404.html │ │ ├── _county_petition.html │ │ ├── _county_senate.html │ │ ├── _county_share.html │ │ ├── _person_gallery_item.html │ │ ├── _share_facebook.html │ │ ├── _share_twitter.html │ │ ├── _shujaaz-finalist.html │ │ ├── _youth_comment.html │ │ ├── _youth_input.html │ │ ├── _youth_share.html │ │ ├── _youth_support.html │ │ ├── base.html │ │ ├── candidate_data_attribution.html │ │ ├── core │ │ │ ├── _position_listing.html │ │ │ ├── object_base.html │ │ │ ├── person_appearances.html │ │ │ ├── person_base.html │ │ │ ├── person_bills.html │ │ │ ├── person_detail.html │ │ │ ├── person_detail_appearance_list.html │ │ │ ├── person_detail_experience_list.html │ │ │ ├── person_detail_responsibilities.html │ │ │ ├── person_experience.html │ │ │ └── person_feature.html │ │ ├── county-performance-petition-submission.html │ │ ├── county-performance-senate-submission.html │ │ ├── county-performance.html │ │ ├── custom_place_candidate_lists.html │ │ ├── disqus_comments.html │ │ ├── down.html │ │ ├── facebook-ajax-response.html │ │ ├── facebook-experiment-placebo-thanks.html │ │ ├── facebook-experiment-placebo.html │ │ ├── facebook-experiment-politics-thanks.html │ │ ├── facebook-experiment-politics.html │ │ ├── find-polling-station.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── home-2013-election.html │ │ ├── home.html │ │ ├── iebc_office_detail.html │ │ ├── iebc_office_detail_ajax.html │ │ ├── iebc_office_single_select.html │ │ ├── intro.html │ │ ├── main_menu.html │ │ ├── menu_entries.html │ │ ├── register-to-vote.html │ │ ├── reps-female.html │ │ ├── reps-young.html │ │ ├── shujaaz-2014.html │ │ ├── shujaaz-2015.html │ │ ├── shujaaz-2018.html │ │ ├── shujaaz-voting.html │ │ ├── site_header.html │ │ ├── site_header_icon_facebook.html │ │ ├── site_header_icon_instagram.html │ │ ├── site_header_icon_twitter.html │ │ ├── site_header_icon_youtube.html │ │ ├── site_header_logo.html │ │ ├── site_header_search.html │ │ ├── twitter_widget.html │ │ ├── vote-thanks.html │ │ ├── women.html │ │ ├── youth-employment-comment-submission.html │ │ ├── youth-employment-input-submission.html │ │ ├── youth-employment-support-submission.html │ │ └── youth-employment.html │ ├── tests.py │ ├── urls.py │ ├── views.py │ ├── views_facebook_experiments.py │ └── views_iebc_office_locator.py ├── map │ ├── __init__.py │ ├── static │ │ ├── images │ │ │ └── crosshairs.png │ │ └── js │ │ │ └── map-drilldown.js │ ├── templates │ │ └── map │ │ │ └── home.html │ ├── urls.py │ └── views.py ├── middleware.py ├── nigeria │ ├── __init__.py │ ├── data │ │ ├── Nigeria - Political Atlas for SYE.csv │ │ ├── README.md │ │ ├── governors-2014-05-14.csv │ │ ├── governors-wikipedia-2012-02-14.csv │ │ ├── lga-name-corrections.csv │ │ └── manually-matched-FED-and-SEN.csv │ ├── initial_import │ │ ├── .gitignore │ │ ├── extract_areas.py │ │ ├── extract_positions_from_json_to_csv.py │ │ ├── extract_urls.py │ │ ├── import_people_from_json.py │ │ ├── import_positions_from_csv.py │ │ ├── representative_page_to_json.py │ │ ├── run.bash │ │ ├── senator_page_to_json.py │ │ └── unions │ │ │ ├── LGA-mappings.csv │ │ │ ├── constituencies_and_LGAs.csv │ │ │ ├── constituencies_and_LGAs_for_create_unions.csv │ │ │ ├── notes.txt │ │ │ ├── states_and_senatorial_districts.csv │ │ │ └── states_and_senatorial_districts_for_create_union.csv │ ├── lib.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── nigeria_add_governors.py │ │ │ ├── nigeria_add_polling_units_to_mapit.py │ │ │ ├── nigeria_fix_federal_constituencies.py │ │ │ ├── nigeria_fix_place_mapit_matches.py │ │ │ ├── nigeria_fix_senatorial_districts.py │ │ │ ├── nigeria_lga_name_helper.py │ │ │ ├── nigeria_load_lga_name_alternatives.py │ │ │ ├── nigeria_update_governors.py │ │ │ ├── nigeria_update_lga_boundaries_from_gadm.py │ │ │ └── nigeria_update_party_memberships.py │ ├── static │ │ ├── images │ │ │ ├── d-logo.png │ │ │ ├── favicon.png │ │ │ ├── header_bottom.png │ │ │ ├── header_top.png │ │ │ ├── logo-450-x-150.png │ │ │ ├── lr-carousel-arrows.png │ │ │ ├── mz-nigeria-logo-symbol.png │ │ │ ├── mz-nigeria-logo-text-small.png │ │ │ ├── mz-nigeria-logo-text.png │ │ │ └── mz-nigeria-logo.png │ │ └── sass │ │ │ ├── _colours_nigeria.scss │ │ │ ├── _nigeria_overrides.scss │ │ │ └── nigeria.scss │ ├── templates │ │ ├── 404.html │ │ ├── base.html │ │ ├── custom_place_candidate_lists.html │ │ ├── down.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── home.html │ │ ├── info │ │ │ ├── blog_list.html │ │ │ └── blog_post.html │ │ ├── menu_entries.html │ │ ├── search │ │ │ └── poll-unit-number.html │ │ ├── site_header_logo.html │ │ ├── site_header_search.html │ │ └── spinner │ │ │ └── slides │ │ │ └── spinner_image-content.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── place_data │ ├── __init__.py │ ├── bin │ │ └── import_place_data.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ └── models.py ├── projects │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_datetimefield_remove_default.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── projects │ │ │ ├── in_place.html │ │ │ └── place_summary.html │ ├── urls.py │ └── views.py ├── scorecards │ ├── __init__.py │ ├── admin.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ ├── scorecard_update_person_contact_scores.py │ │ │ └── scorecard_update_person_hansard_appearances.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_datetimefield_remove_default.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── admin │ │ │ └── scorecards │ │ │ │ └── data │ │ │ │ ├── change_list.html │ │ │ │ └── upload_csv.html │ │ └── scorecards │ │ │ └── scorecard.html │ ├── tests.py │ └── views.py ├── search │ ├── __init__.py │ ├── geocoder.py │ ├── search_indexes.py │ ├── templates │ │ └── search │ │ │ ├── _search_pagination.html │ │ │ ├── _search_results.html │ │ │ ├── global_search.html │ │ │ ├── hansard.html │ │ │ ├── indexes │ │ │ ├── core │ │ │ │ ├── organisation_text.txt │ │ │ │ ├── person_text.txt │ │ │ │ ├── place_text.txt │ │ │ │ └── positiontitle_text.txt │ │ │ ├── hansard │ │ │ │ └── entry_text.txt │ │ │ └── info │ │ │ │ └── infopage_text.txt │ │ │ ├── items │ │ │ ├── blog.html │ │ │ ├── hansard.html │ │ │ ├── organisation.html │ │ │ ├── person.html │ │ │ ├── place.html │ │ │ ├── position.html │ │ │ ├── positiontitle.html │ │ │ ├── speech.html │ │ │ └── unknown.html │ │ │ ├── location.html │ │ │ ├── search_base.html │ │ │ ├── search_results_item.html │ │ │ └── section_search.html │ ├── tests │ │ ├── __init__.py │ │ ├── autocomplete.py │ │ ├── fuzzy.py │ │ ├── geocoder-test-data │ │ │ ├── google_cape_town.json │ │ │ ├── google_east_london.json │ │ │ └── google_high_street.json │ │ ├── geocoder.py │ │ └── views.py │ ├── urls.py │ └── views.py ├── settings │ ├── __init__.py │ ├── apps.py │ ├── base.py │ ├── kenya.py │ ├── kenya_base.py │ ├── nigeria.py │ ├── nigeria_base.py │ ├── no_country.py │ ├── south_africa.py │ ├── south_africa_base.py │ ├── tests.py │ ├── tests_base.py │ ├── tests_kenya.py │ ├── tests_nigeria.py │ └── tests_south_africa.py ├── sms │ ├── __init__.py │ ├── admin.py │ ├── api.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_auto_20181003_1515.py │ │ └── __init__.py │ ├── models.py │ └── tests.py ├── south_africa │ ├── __init__.py │ ├── admin.py │ ├── bin │ │ └── people-json │ │ │ ├── .gitignore │ │ │ ├── committees.py │ │ │ ├── compile-json.py │ │ │ ├── manual.py │ │ │ ├── myreps.py │ │ │ ├── parl.py │ │ │ └── utils.py │ ├── data │ │ ├── adwords │ │ │ └── .gitkeep │ │ ├── candidates-2014-elections.csv │ │ ├── committee-members.csv │ │ ├── committees.csv │ │ ├── constituencies_and_offices │ │ │ ├── README.md │ │ │ ├── all_constituencies.csv │ │ │ ├── new-in-issue-1115-data.csv │ │ │ └── source_data │ │ │ │ ├── 2014 │ │ │ │ ├── ACDP_processed.csv │ │ │ │ ├── AIC.doc │ │ │ │ ├── AIC_processed.csv │ │ │ │ ├── ANC │ │ │ │ │ ├── Eastern Cape.doc │ │ │ │ │ ├── Free State.doc │ │ │ │ │ ├── Gauteng.doc │ │ │ │ │ ├── Kwazulu Natal.doc │ │ │ │ │ ├── Limpopo.doc │ │ │ │ │ ├── Mpumalanga.doc │ │ │ │ │ ├── North West.doc │ │ │ │ │ ├── Northern Cape.doc │ │ │ │ │ └── Western Cape.doc │ │ │ │ ├── APC_processed.csv │ │ │ │ ├── DA.xlsx │ │ │ │ ├── DA_processed.csv │ │ │ │ ├── DA_processed.xlsx │ │ │ │ ├── EFF.doc │ │ │ │ ├── EFF_processed.csv │ │ │ │ ├── EFF_processed.xlsx │ │ │ │ ├── FFplus_processed.csv │ │ │ │ ├── PMG_sourced_data.doc │ │ │ │ └── UDM_processed.csv │ │ │ │ ├── 2014.json │ │ │ │ └── convert_to_import_json.py │ │ ├── disqus.json │ │ ├── elections │ │ │ ├── 2014 │ │ │ │ ├── assembly.csv │ │ │ │ ├── executive.csv │ │ │ │ ├── iec_seat_assignment.csv │ │ │ │ ├── mpls.csv │ │ │ │ └── ncop.csv │ │ │ └── 2019 │ │ │ │ ├── National.csv │ │ │ │ ├── Provincial-EC.csv │ │ │ │ ├── Provincial-FS.csv │ │ │ │ ├── Provincial-GP.csv │ │ │ │ ├── Provincial-KZN.csv │ │ │ │ ├── Provincial-LIM.csv │ │ │ │ ├── Provincial-MP.csv │ │ │ │ ├── Provincial-NC.csv │ │ │ │ ├── Provincial-NW.csv │ │ │ │ ├── Provincial-WC.csv │ │ │ │ ├── README.md │ │ │ │ ├── committee-emails.csv │ │ │ │ ├── na-emails.csv │ │ │ │ ├── national-seats-assigned.csv │ │ │ │ ├── parties.csv │ │ │ │ └── provincial-seats-assigned.csv │ │ ├── legislature_members │ │ │ ├── all_contacts.json │ │ │ ├── all_positions.json │ │ │ ├── apply_changes_to_popolo.py │ │ │ ├── eastern_cape.csv │ │ │ ├── eastern_cape_contacts.csv │ │ │ ├── eastern_cape_gender.csv │ │ │ ├── eastern_cape_positions.csv │ │ │ ├── free_state.csv │ │ │ ├── free_state_contacts.csv │ │ │ ├── free_state_positions.csv │ │ │ ├── gauteng.csv │ │ │ ├── gauteng_contacts.csv │ │ │ ├── gauteng_positions.csv │ │ │ ├── kwazulu_natal.csv │ │ │ ├── kwazulu_natal_contacts.csv │ │ │ ├── kwazulu_natal_positions.csv │ │ │ ├── limpopo.csv │ │ │ ├── limpopo_contacts.csv │ │ │ ├── limpopo_positions.csv │ │ │ ├── north_west.csv │ │ │ ├── north_west_contacts.csv │ │ │ ├── north_west_positions.csv │ │ │ ├── western_cape.csv │ │ │ ├── western_cape_contacts.csv │ │ │ └── western_cape_positions.csv │ │ ├── members-interests │ │ │ ├── 2010.json │ │ │ ├── 2010_for_import.json │ │ │ ├── 2011.json │ │ │ ├── 2011_for_import.json │ │ │ ├── 2012.json │ │ │ ├── 2012_for_import.json │ │ │ ├── 2013.json │ │ │ ├── 2013_for_import.json │ │ │ ├── 2014.json │ │ │ ├── 2014_for_import.json │ │ │ ├── 2015.json │ │ │ ├── 2015_for_import.json │ │ │ ├── 2016.json │ │ │ ├── 2016_for_import.json │ │ │ ├── 2017.json │ │ │ ├── 2017_for_import.json │ │ │ ├── 2018.json │ │ │ ├── 2018_for_import.json │ │ │ ├── README.md │ │ │ ├── convert_to_import_json.py │ │ │ └── pdf_scraper │ │ │ │ ├── requirements.txt │ │ │ │ └── scrape_interests_pdf.py │ │ ├── mp_bios │ │ │ ├── apply_bios_from_json_onto_popolo.py │ │ │ ├── mpbios.json │ │ │ └── name_to_legal_name_mapping.csv │ │ ├── myreps-na.xml │ │ ├── myreps-national-assembly.html │ │ ├── myreps-ncop.xml │ │ ├── myreps_na_executive_export.csv │ │ ├── parties-2014-elections.csv │ │ └── test │ │ │ └── attendance_587.json │ ├── fallback_urls.py │ ├── fixtures │ │ └── mapit_south_africa.json │ ├── lib.py │ ├── management │ │ ├── .gitignore │ │ ├── __init__.py │ │ ├── commands │ │ │ ├── .gitignore │ │ │ ├── __init__.py │ │ │ ├── south_africa_adwords_csv.py │ │ │ ├── south_africa_create_new_parties_for_election_2019.py │ │ │ ├── south_africa_export_committee_members.py │ │ │ ├── south_africa_export_constituency_offices.py │ │ │ ├── south_africa_export_na_members.py │ │ │ ├── south_africa_import_boundaries.py │ │ │ ├── south_africa_import_constituency_offices.py │ │ │ ├── south_africa_import_election_candidates_2014.py │ │ │ ├── south_africa_import_election_candidates_2019.py │ │ │ ├── south_africa_import_election_results_2014.py │ │ │ ├── south_africa_import_election_results_2019.py │ │ │ ├── south_africa_import_email_addresses_elections_2019.py │ │ │ ├── south_africa_import_new_constituency_office_locations.py │ │ │ ├── south_africa_import_parties.py │ │ │ ├── south_africa_import_popolo_json.py │ │ │ ├── south_africa_import_scraped_photos.py │ │ │ ├── south_africa_restart_constituency_contacts.py │ │ │ ├── south_africa_set_da_office_locations.py │ │ │ ├── south_africa_sync_everypolitician_uuid.py │ │ │ ├── south_africa_sync_wikidata_ids_from_everypolitician.py │ │ │ ├── south_africa_update_constituency_office_address.py │ │ │ └── south_africa_update_constituency_offices.py │ │ └── helpers.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_add_parliamentary_sessions.py │ │ ├── 0003_attendancefororganisationtoggle.py │ │ └── __init__.py │ ├── models.py │ ├── search.py │ ├── search_indexes.py │ ├── static │ │ ├── css │ │ │ └── libs │ │ │ │ ├── chosen │ │ │ │ ├── chosen-sprite.png │ │ │ │ ├── chosen-sprite@2x.png │ │ │ │ └── chosen.css │ │ │ │ ├── datatables-1.10.10.css │ │ │ │ └── responsive-carousel.fade.css │ │ ├── fonts │ │ │ ├── lato-bold-webfont.eot │ │ │ ├── lato-bold-webfont.svg │ │ │ ├── lato-bold-webfont.ttf │ │ │ ├── lato-bold-webfont.woff │ │ │ ├── lato-italic-webfont.eot │ │ │ ├── lato-italic-webfont.svg │ │ │ ├── lato-italic-webfont.ttf │ │ │ ├── lato-italic-webfont.woff │ │ │ ├── lato-regular-webfont.eot │ │ │ ├── lato-regular-webfont.svg │ │ │ ├── lato-regular-webfont.ttf │ │ │ └── lato-regular-webfont.woff │ │ ├── images │ │ │ ├── SAA survey.jpg │ │ │ ├── civil-union-hom_32181533.png │ │ │ ├── committee-icon.png │ │ │ ├── committee-icon@2.png │ │ │ ├── decrim.jpg │ │ │ ├── elections-icon.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── has-dropdown.png │ │ │ ├── header_search.png │ │ │ ├── land_closed.png │ │ │ ├── land_submissions.png │ │ │ ├── landissue.png │ │ │ ├── link-icons.png │ │ │ ├── link-icons@2.png │ │ │ ├── medicalnegligence.jpg │ │ │ ├── mp-assets.jpg │ │ │ ├── mp-attendance.jpg │ │ │ ├── national-assembly.jpg │ │ │ ├── national-council-of-provinces.jpg │ │ │ ├── party-logos │ │ │ │ ├── acdp.png │ │ │ │ ├── anc.png │ │ │ │ ├── apc.png │ │ │ │ ├── azapo.png │ │ │ │ ├── cope.png │ │ │ │ ├── da.png │ │ │ │ ├── ff.png │ │ │ │ ├── id.png │ │ │ │ ├── ifp.png │ │ │ │ ├── mf.png │ │ │ │ ├── pac.png │ │ │ │ ├── sacp.png │ │ │ │ ├── ucdp.png │ │ │ │ └── udm.png │ │ │ ├── party-map-icons │ │ │ │ ├── adcp.png │ │ │ │ ├── agang.png │ │ │ │ ├── aic.png │ │ │ │ ├── anc.png │ │ │ │ ├── apc.png │ │ │ │ ├── azapo.png │ │ │ │ ├── cope.png │ │ │ │ ├── da.png │ │ │ │ ├── eff.png │ │ │ │ ├── ff.png │ │ │ │ ├── id.png │ │ │ │ ├── ifp.png │ │ │ │ ├── mf.png │ │ │ │ ├── pac.png │ │ │ │ ├── sacp.png │ │ │ │ ├── ucdp.png │ │ │ │ └── udm.png │ │ │ ├── person-58x78.jpg │ │ │ ├── person-contact-icons │ │ │ │ ├── email-icon.png │ │ │ │ ├── email-icon.svg │ │ │ │ ├── facebook-icon.png │ │ │ │ ├── facebook-icon.svg │ │ │ │ ├── linkedin-icon.png │ │ │ │ ├── linkedin-icon.svg │ │ │ │ ├── twitter-icon.png │ │ │ │ ├── twitter-icon.svg │ │ │ │ ├── whoswhosa-icon.png │ │ │ │ ├── whoswhosa-icon.svg │ │ │ │ ├── youtube-icon.png │ │ │ │ └── youtube-icon.svg │ │ │ ├── pmg-white-icon.png │ │ │ ├── rep-icon.png │ │ │ ├── rep-icon@2.png │ │ │ ├── rep-locator-contact-icons.png │ │ │ ├── rep-locator-contact-icons@2.png │ │ │ ├── rep-locator-credit-code4sa.png │ │ │ ├── rep-locator-credit-speak-up-mzansi.png │ │ │ ├── rep-locator-tooltip.png │ │ │ ├── rep-locator-tooltip.svg │ │ │ ├── rep-locator-tooltip@2.png │ │ │ ├── search-icon.png │ │ │ ├── search-icon@2.png │ │ │ ├── social-icons.png │ │ │ ├── splash-committee.jpg │ │ │ ├── splash-mps.jpg │ │ │ ├── survey-thumb.jpg │ │ │ ├── za-logo.png │ │ │ └── zero-vat-survey_31903862.png │ │ ├── js │ │ │ ├── advanced-search.js │ │ │ ├── attendance-table.js │ │ │ ├── interests-filter.js │ │ │ ├── lazy-loaded-images.js │ │ │ ├── libs │ │ │ │ ├── blazy.js │ │ │ │ ├── chosen.jquery.js │ │ │ │ ├── datatables-1.10.10.js │ │ │ │ └── fuse-2.2.0.js │ │ │ ├── mp-profiles-live-filter.js │ │ │ ├── person-messages-ajax.js │ │ │ ├── rep-locator.js │ │ │ ├── tabs.js │ │ │ ├── writeinpublic.js │ │ │ └── za-map-drilldown.js │ │ └── sass │ │ │ ├── _base_fonts.scss │ │ │ ├── _colours_south-africa.scss │ │ │ ├── _person-write.scss │ │ │ ├── _sayit.scss │ │ │ ├── _south-africa_overrides.scss │ │ │ ├── countdown.scss │ │ │ └── south-africa.scss │ ├── templates │ │ ├── 404.html │ │ ├── 500.html │ │ ├── base.html │ │ ├── core │ │ │ ├── _people_listing.html │ │ │ ├── _person_position.html │ │ │ ├── _position_listing.html │ │ │ ├── _search_pagination_text.html │ │ │ ├── generic_list.html │ │ │ ├── generic_list_item.html │ │ │ ├── organisation_detail.html │ │ │ ├── organisation_list_item.html │ │ │ ├── organisation_party.html │ │ │ ├── organisation_people.html │ │ │ ├── parliament_list_item.html │ │ │ ├── person_detail.html │ │ │ ├── person_detail_position.html │ │ │ ├── person_list_item.html │ │ │ ├── person_menu.html │ │ │ ├── person_speech_list.html │ │ │ ├── place_base.html │ │ │ ├── place_detail.html │ │ │ ├── place_people.html │ │ │ ├── place_places.html │ │ │ ├── position_detail.html │ │ │ └── social_tools.html │ │ ├── custom_place_candidate_lists.html │ │ ├── disqus_comments.html │ │ ├── down.html │ │ ├── error_base.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── home.html │ │ ├── info │ │ │ ├── _blog_sidebar.html │ │ │ ├── _blog_tags.html │ │ │ ├── blog_list.html │ │ │ └── blog_post.html │ │ ├── interests_register │ │ │ ├── index.html │ │ │ ├── index_complete.html │ │ │ ├── index_numberbyrepresentative.html │ │ │ ├── index_numberbysource.html │ │ │ ├── index_section.html │ │ │ └── source.html │ │ ├── map │ │ │ └── home.html │ │ ├── menu_entries.html │ │ ├── search │ │ │ ├── _search_pagination.html │ │ │ ├── items │ │ │ │ └── speech.html │ │ │ └── location.html │ │ ├── site_header_logo.html │ │ ├── site_header_search.html │ │ ├── south_africa │ │ │ ├── _newsletter_signup.html │ │ │ ├── _place_tabs.html │ │ │ ├── _position_listing_constituency.html │ │ │ ├── _search_box.html │ │ │ ├── committee_list.html │ │ │ ├── constituency_office_list.html │ │ │ ├── constituency_office_list_item.html │ │ │ ├── election │ │ │ │ ├── _national.html │ │ │ │ ├── _provincial.html │ │ │ │ ├── national.html │ │ │ │ ├── overview.html │ │ │ │ ├── provincial.html │ │ │ │ └── statistics.html │ │ │ ├── election_base.html │ │ │ ├── election_candidates_party.html │ │ │ ├── election_candidates_province.html │ │ │ ├── hansard_index.html │ │ │ ├── info_newsletter.html │ │ │ ├── latlon_detail_base_view.html │ │ │ ├── latlon_local_view.html │ │ │ ├── local_rep_list_item.html │ │ │ ├── mp_attendance.html │ │ │ ├── mp_profiles.html │ │ │ ├── organisation_house.html │ │ │ ├── person_appearances.html │ │ │ ├── person_attendances.html │ │ │ ├── question_index.html │ │ │ ├── question_section_detail.html │ │ │ └── question_speech.html │ │ ├── speeches │ │ │ ├── _breadcrumbs.html │ │ │ ├── _section_prev_next_links.html │ │ │ ├── _section_user_actions.html │ │ │ ├── _speaker_user_actions.html │ │ │ ├── _speech_user_actions.html │ │ │ ├── pagination.html │ │ │ ├── section_detail.html │ │ │ └── speech_detail.html │ │ └── writeinpublic │ │ │ └── committee-messages.html │ ├── templatetags │ │ ├── __init__.py │ │ ├── blog_titles.py │ │ ├── za_election_list_links.py │ │ ├── za_people_display.py │ │ └── za_speeches.py │ ├── tests.py │ ├── urls.py │ └── views │ │ ├── __init__.py │ │ ├── api.py │ │ ├── attendance.py │ │ ├── committees.py │ │ ├── constants.py │ │ ├── elections.py │ │ ├── geolocalization.py │ │ ├── home.py │ │ ├── infoviews.py │ │ ├── interests.py │ │ ├── organisations.py │ │ ├── person.py │ │ ├── positions.py │ │ ├── search.py │ │ └── speechviews.py ├── spinner │ ├── README.md │ ├── __init__.py │ ├── admin.py │ ├── fixtures │ │ └── test_data.json │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── static │ │ ├── css │ │ │ └── libs │ │ │ │ └── responsive-carousel.css │ │ ├── images │ │ │ └── lr-carousel-arrows.png │ │ └── js │ │ │ └── libs │ │ │ └── responsive-carousel.js │ ├── templates │ │ └── spinner │ │ │ ├── carousel-slides.html │ │ │ ├── display-slide.html │ │ │ ├── random.html │ │ │ └── slides │ │ │ ├── core_person.html │ │ │ ├── default.html │ │ │ ├── spinner_image-content.html │ │ │ └── spinner_quote-content.html │ ├── templatetags │ │ ├── __init__.py │ │ └── spinner.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── surveys │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_auto_20190319_1101.py │ │ └── __init__.py │ └── models.py ├── tasks │ ├── __init__.py │ ├── admin.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── admin │ │ │ └── tasks │ │ │ └── task │ │ │ ├── change_form.html │ │ │ ├── change_list.html │ │ │ ├── do.html │ │ │ └── do_next.html │ ├── tests.py │ └── views.py ├── templates │ ├── 500.html │ ├── _all_form_errors.html │ ├── base.html │ ├── candidate_data_attribution.html │ ├── default_base.html │ ├── disqus_comments.html │ ├── disqus_javascript.html │ ├── footer.html │ ├── header.html │ ├── home.html │ ├── include.html │ ├── main_menu.html │ ├── mapit │ │ ├── base.html │ │ └── index.html │ ├── menu_entries.html │ ├── robots.txt │ ├── site_header.html │ ├── site_header_logo.html │ ├── site_header_search.html │ ├── staging_header.html │ ├── twitter_widget.html │ └── wikipedia_attribution.html ├── testing │ ├── __init__.py │ └── selenium.py ├── urls.py ├── votematch │ ├── README.md │ ├── __init__.py │ ├── admin.py │ ├── fixtures │ │ └── development.json │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── static │ │ └── votematch │ │ │ ├── .gitignore │ │ │ ├── config.rb │ │ │ ├── css │ │ │ ├── base.css │ │ │ ├── desktop_tablet.css │ │ │ └── layout.css │ │ │ ├── images │ │ │ ├── quiz-smileys.jpg │ │ │ └── quiz-smileys.png │ │ │ └── sass │ │ │ ├── base.scss │ │ │ └── layout.scss │ ├── templates │ │ └── votematch │ │ │ ├── base.html │ │ │ ├── quiz_detail.html │ │ │ ├── quiz_list.html │ │ │ ├── scoring.html │ │ │ └── submission_detail.html │ ├── urls.py │ └── views.py ├── wordcloud │ ├── __init__.py │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ ├── __init__.py │ │ │ └── wordcloud_generate.py │ ├── static │ │ ├── css │ │ │ └── jqcloud.css │ │ └── js │ │ │ └── jqcloud-1.0.4.js │ ├── stopwords.txt │ ├── templates │ │ └── wordcloud │ │ │ └── wordcloud.html │ ├── tests │ │ ├── __init__.py │ │ └── test_wordcloud.py │ ├── urls.py │ ├── views.py │ └── wordcloud.py ├── writeinpublic │ ├── __init__.py │ ├── client.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── writeinpublic │ │ │ ├── committee-write-draft.html │ │ │ ├── committee-write-preview.html │ │ │ ├── committee-write-recipients.html │ │ │ ├── flash_messages.html │ │ │ ├── message.html │ │ │ ├── messages.html │ │ │ ├── pending.html │ │ │ ├── person-write-draft.html │ │ │ ├── person-write-preview.html │ │ │ └── person-write-recipients.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── wsgi.py ├── wsgi_monitor.py └── za_hansard │ ├── __init__.py │ ├── chairperson.py │ ├── data │ └── committee-meeting-mappings.csv │ ├── datejson.py │ ├── importers │ ├── __init__.py │ ├── import_base.py │ ├── import_json.py │ └── import_za_akomantoso.py │ ├── management │ ├── __init__.py │ └── commands │ │ ├── __init__.py │ │ ├── za_hansard_check_for_new_sources.py │ │ ├── za_hansard_check_for_new_sources_from_pmg.py │ │ ├── za_hansard_load_into_sayit.py │ │ ├── za_hansard_load_json.py │ │ ├── za_hansard_load_za_akomantoso.py │ │ ├── za_hansard_one_off_create_hansard_hierarchies.py │ │ ├── za_hansard_one_off_rename_hansard_month_sections.py │ │ ├── za_hansard_one_off_tag_speeches.py │ │ ├── za_hansard_pmg_api_scraper.py │ │ ├── za_hansard_q_and_a_scraper.py │ │ └── za_hansard_run_parsing.py │ ├── migrations │ ├── 0001_initial.py │ ├── 0002_add_pmg_api_fields.py │ ├── 0003_remove_unique_constraint_with_question_id_number.py │ ├── 0004_auto_20190322_1856.py │ └── __init__.py │ ├── models.py │ ├── parse.py │ ├── question_scraper.py │ └── tests │ ├── __init__.py │ ├── test_akomantoso_import.py │ ├── test_commands.py │ ├── test_hansard.py │ ├── test_inputs │ ├── answers_cache │ │ ├── content-php-category_id-248-documentstart-10-documentstart-20.html │ │ ├── content-php-category_id-248-documentstart-10.html │ │ ├── content-php-category_id-248-documentstart-20-documentstart-30.html │ │ ├── content-php-category_id-248-documentstart-30-documentstart-40.html │ │ ├── content-php-category_id-248-documentstart-40-documentstart-50.html │ │ ├── content-php-category_id-248-documentstart-5310-documentstart-5320.html │ │ ├── content-php-category_id-248-documentstart-5310.html │ │ └── content-php-category_id-248.html │ ├── committee │ │ ├── 1.json │ │ ├── 2.json │ │ ├── 3.json │ │ ├── 4.json │ │ ├── 5.json │ │ ├── 6.json │ │ ├── 7.json │ │ ├── 8.json │ │ └── 9.json │ ├── hansard │ │ ├── 0 │ │ │ └── 1 │ │ │ │ ├── 2013-05-08-00010-NA080513 │ │ │ │ └── 2013-05-08-00010-NA080513.xml │ │ ├── 20130522-na-debate-use-air-force-base-waterkloof-gupta-family-matters-public-importance.html │ │ ├── 502914_1.doc │ │ ├── 502914_1.xml │ │ ├── 520729_1.doc │ │ ├── EPC110512.doc │ │ ├── EPC110512.xml │ │ ├── NA200912.doc │ │ ├── NA200912.xml │ │ ├── NA210212.doc │ │ ├── NA210212.xml │ │ ├── NA290307.doc │ │ ├── NA290307.xml │ │ └── release-23.xsd │ ├── questions │ │ ├── 184530_1.pdf │ │ ├── 184530_1.xml │ │ ├── 458606_1.pdf │ │ ├── 458606_1.xml │ │ ├── 517147_1.pdf │ │ ├── 517147_1.xml │ │ ├── 529998_1.pdf │ │ ├── 529998_1.xml │ │ ├── 548302_1.pdf │ │ ├── 548302_1.xml │ │ ├── 559662_1.pdf │ │ ├── 559662_1.xml │ │ ├── answer_1.doc │ │ ├── answer_1_expected.txt │ │ ├── expected_json_data_for_184530_1.json │ │ ├── expected_json_data_for_458606_1.json │ │ ├── expected_json_data_for_517147_1.json │ │ ├── expected_json_data_for_529998_1.json │ │ ├── expected_json_data_for_548302_1.json │ │ └── expected_json_data_for_559662_1.json │ └── questions_cache │ │ ├── content-php-category_id-236-documentstart-10-documentstart-20.html │ │ ├── content-php-category_id-236-documentstart-10.html │ │ ├── content-php-category_id-236-documentstart-20-documentstart-30.html │ │ ├── content-php-category_id-236-documentstart-30-documentstart-40.html │ │ ├── content-php-category_id-236-documentstart-830-documentstart-840.html │ │ ├── content-php-category_id-236-documentstart-830.html │ │ └── content-php-category_id-236.html │ ├── test_json_import.py │ ├── test_pmg_q_and_a.py │ └── test_questions.py ├── pombola_sayit ├── __init__.py ├── management │ ├── __init__.py │ └── commands │ │ ├── __init__.py │ │ └── pombola_sayit_sync_pombola_to_popolo.py ├── migrations │ ├── 0001_initial.py │ └── __init__.py ├── models.py ├── templates │ └── speeches │ │ └── speech.html └── tests.py ├── requirements.txt ├── run-tests ├── run_selenium_tests.bash ├── run_tests_za.bash └── web ├── googlee8d580ff44c6001c.html └── static └── test.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | \#*\# 4 | \.\#* 5 | .idea/ 6 | 7 | .sass-cache 8 | .bundle 9 | web/down.default.html 10 | /web/down.html 11 | /pombola/core/static/sass/admin.css 12 | /pombola/core/static/sass/countdown.css 13 | /pombola/core/static/sass/jquery-ui.css 14 | /pombola/kenya/static/sass/kenya.css 15 | /pombola/nigeria/static/sass/nigeria.css 16 | /pombola/south_africa/static/sass/countdown.css 17 | /pombola/south_africa/static/sass/south-africa.css 18 | /staticfiles 19 | *.sublime-project 20 | *.sublime-workspace 21 | *.DS_Store 22 | .project 23 | .pydevproject 24 | build/ 25 | tmp/ 26 | /.env 27 | /data/* 28 | !/data/.gitkeep 29 | .vagrant/ 30 | .ruby-version 31 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem 'json' 4 | gem 'compass', '0.12.7' 5 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | chunky_png (1.3.11) 5 | compass (0.12.7) 6 | chunky_png (~> 1.2) 7 | fssm (>= 0.2.7) 8 | sass (~> 3.2.19) 9 | fssm (0.2.10) 10 | json (2.2.0) 11 | sass (3.2.19) 12 | 13 | PLATFORMS 14 | ruby 15 | 16 | DEPENDENCIES 17 | compass (= 0.12.7) 18 | json 19 | -------------------------------------------------------------------------------- /bin/run_management_command: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This is a simple script that can be used from the crontab to run a management 4 | # command in the correct environment. 5 | 6 | # abort on any errors 7 | set -e 8 | 9 | # check that we are in the expected directory 10 | cd `dirname $0`/.. 11 | 12 | # Set DATADIR. 13 | DATADIR=$(grep ^DATA_DIR conf/general.yml | awk '{ print $NF}' | tr -d "'\"") 14 | DATADIR=${DATADIR:-data} 15 | 16 | # Activate virtualenv 17 | virtualenv_dir="${DATADIR}/pombola-virtualenv" 18 | source ${virtualenv_dir}/bin/activate 19 | 20 | ./manage.py "$@" 21 | -------------------------------------------------------------------------------- /bin/run_management_command_capture_stdout: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # abort on any errors 4 | set -e 5 | 6 | # check that we are in the expected directory 7 | cd `dirname $0`/.. 8 | source ../pombola-virtualenv/bin/activate 9 | 10 | # don't abort on error so we can capture output 11 | set +e 12 | 13 | # run the command 14 | output="`./manage.py $@`" 15 | 16 | # suppress output unless we got a non-zero exit status 17 | if [ "$?" -ne 0 ] 18 | then 19 | echo "" 20 | echo "### output captured before '$@' exited ###" 21 | echo "" 22 | echo "$output" 23 | exit 1 24 | fi 25 | -------------------------------------------------------------------------------- /bin/update_hansard.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # abort on any errors 4 | set -e 5 | 6 | # check that we are in the expected directory 7 | cd `dirname $0`/.. 8 | 9 | # Set DATADIR. 10 | DATADIR=$(grep ^DATA_DIR conf/general.yml | awk '{ print $NF}' | tr -d "'\"") 11 | DATADIR=${DATADIR:-data} 12 | 13 | # Activate virtualenv 14 | virtualenv_dir="${DATADIR}/pombola-virtualenv" 15 | source ${virtualenv_dir}/bin/activate 16 | 17 | ./manage.py hansard_check_for_new_sources 18 | ./manage.py hansard_process_sources 19 | ./manage.py hansard_assign_speakers 20 | -------------------------------------------------------------------------------- /conf/.gitignore: -------------------------------------------------------------------------------- 1 | general*.yml 2 | general.yml.deployed 3 | httpd.conf 4 | httpd.conf.deployed 5 | 6 | -------------------------------------------------------------------------------- /data/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/data/.gitkeep -------------------------------------------------------------------------------- /pombola/.gitignore: -------------------------------------------------------------------------------- 1 | /cache 2 | -------------------------------------------------------------------------------- /pombola/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/__init__.py -------------------------------------------------------------------------------- /pombola/admin_additions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/admin_additions/__init__.py -------------------------------------------------------------------------------- /pombola/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/api/__init__.py -------------------------------------------------------------------------------- /pombola/api/permissions.py: -------------------------------------------------------------------------------- 1 | from rest_framework import permissions 2 | 3 | class ReadOnly(permissions.BasePermission): 4 | message = 'Only read-only access is allowed' 5 | 6 | def has_permission(self, request, view): 7 | return request.method in permissions.SAFE_METHODS 8 | -------------------------------------------------------------------------------- /pombola/bills/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/bills/__init__.py -------------------------------------------------------------------------------- /pombola/bills/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from pombola.bills import models 4 | 5 | @admin.register(models.Bill) 6 | class BillAdmin(admin.ModelAdmin): 7 | list_display = ['title', 'date', 'sponsor'] 8 | search_fields = ['title', 'sponsor__name', 'source_url'] 9 | -------------------------------------------------------------------------------- /pombola/bills/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/bills/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/bills/templates/bills/_bill_link.html: -------------------------------------------------------------------------------- 1 | {% if bill.act_source_url and bill.act_title %} 2 | {{ bill.act_title }} 3 | {% else %} 4 | {{ bill.title }} 5 | {% endif %} 6 | -------------------------------------------------------------------------------- /pombola/bills/templates/bills/_pagination.html: -------------------------------------------------------------------------------- 1 | {% if page_obj %} 2 | 17 | {% endif %} 18 | -------------------------------------------------------------------------------- /pombola/bills/templates/bills/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}Bills{% endblock %} 4 | 5 | {% block content %} 6 |
7 |

View bills by parliamentary session:

8 | 13 |
14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /pombola/bills/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from pombola.bills.views import IndexView, BillListView 4 | 5 | 6 | urlpatterns = [ 7 | url( r'^$', IndexView.as_view(), name="index" ), 8 | url( r'^(?P[\w\-]+)/$', BillListView.as_view(), name="list" ), 9 | ] 10 | -------------------------------------------------------------------------------- /pombola/budgets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/budgets/__init__.py -------------------------------------------------------------------------------- /pombola/budgets/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from pombola.budgets import models 4 | 5 | @admin.register(models.Budget) 6 | class BudgetAdmin(admin.ModelAdmin): 7 | list_display = ['content_object', 'name', 'currency', 'value', 'budget_session'] 8 | search_fields = ['organisation__name', 'place__name'] 9 | 10 | @admin.register(models.BudgetSession) 11 | class BudgetSessionAdmin(admin.ModelAdmin): 12 | list_display = ['name', 'date_start', 'date_end'] 13 | search_fields = ['name'] 14 | -------------------------------------------------------------------------------- /pombola/budgets/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/budgets/management/__init__.py -------------------------------------------------------------------------------- /pombola/budgets/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/budgets/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/budgets/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/budgets/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/__init__.py -------------------------------------------------------------------------------- /pombola/core/logging_filters.py: -------------------------------------------------------------------------------- 1 | from django.http import UnreadablePostError 2 | 3 | # This is taken from the Django documentation: 4 | # https://docs.djangoproject.com/en/1.6/topics/logging/#django.utils.log.CallbackFilter 5 | 6 | def skip_unreadable_post(record): 7 | if record.exc_info: 8 | exc_type, exc_value = record.exc_info[:2] 9 | if isinstance(exc_value, UnreadablePostError): 10 | return False 11 | return True 12 | -------------------------------------------------------------------------------- /pombola/core/lookups.py: -------------------------------------------------------------------------------- 1 | from ajax_select import LookupChannel 2 | 3 | from .models import Person 4 | 5 | 6 | class PersonLookup(LookupChannel): 7 | 8 | model = Person 9 | 10 | def get_query(self, q, requests): 11 | return Person.objects.filter(hidden=False, legal_name__icontains=q) 12 | -------------------------------------------------------------------------------- /pombola/core/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/management/__init__.py -------------------------------------------------------------------------------- /pombola/core/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/core/management/commands/core_list_person_primary_images.py: -------------------------------------------------------------------------------- 1 | from django.core.management.base import BaseCommand 2 | 3 | from pombola.core.models import Person 4 | 5 | class Command(BaseCommand): 6 | 7 | def handle(self, **options): 8 | help = 'List the paths of primary person images relative to media root' 9 | 10 | for p in Person.objects.filter(hidden=False): 11 | image_file_field = p.primary_image() 12 | if not image_file_field: 13 | continue 14 | print image_file_field.name 15 | -------------------------------------------------------------------------------- /pombola/core/migrations/0002_add_related_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='identifier', 16 | name='content_type', 17 | field=models.ForeignKey(related_name='pombola_identifier_set', to='contenttypes.ContentType'), 18 | preserve_default=True, 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /pombola/core/migrations/0003_new_emailfield_max_length.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0002_add_related_name'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='person', 16 | name='email', 17 | field=models.EmailField(max_length=254, blank=True), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/0004_parliamentarysession_position_title.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0003_new_emailfield_max_length'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='parliamentarysession', 16 | name='position_title', 17 | field=models.ForeignKey(blank=True, to='core.PositionTitle', null=True), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/0005_parliamentarysession_make_house_optional.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0004_parliamentarysession_position_title'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='parliamentarysession', 16 | name='house', 17 | field=models.ForeignKey(blank=True, to='core.Organisation', null=True), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/0008_sort_organisations_by_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0007_add_preferred_contact_option'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterModelOptions( 15 | name='organisation', 16 | options={'ordering': ['name']}, 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /pombola/core/migrations/0009_organisation_short_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0008_sort_organisations_by_name'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='organisation', 16 | name='short_name', 17 | field=models.CharField(max_length=200, null=True, editable=False), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/0011_organisation_alter_short_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0010_organisation_update_short_name'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='organisation', 16 | name='short_name', 17 | field=models.CharField(max_length=200, editable=False), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/0014_auto_20190906_1342.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0013_organisation_show_attendance'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='organisation', 16 | name='show_attendance', 17 | field=models.BooleanField(default=False, help_text=b'Toggles attendance records on person detail pages for people who belong to this organization.'), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/core/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/core/seltests/__init__.py: -------------------------------------------------------------------------------- 1 | from basics import * # noqa 2 | from admin_autocomplete import * # noqa 3 | -------------------------------------------------------------------------------- /pombola/core/static/.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | compass_app_log.txt -------------------------------------------------------------------------------- /pombola/core/static/images/assembly-16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/assembly-16x16.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/chevron-left-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/chevron-left-alt.png -------------------------------------------------------------------------------- /pombola/core/static/images/chevron-right-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/chevron-right-alt.png -------------------------------------------------------------------------------- /pombola/core/static/images/chevron-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/chevron-right.png -------------------------------------------------------------------------------- /pombola/core/static/images/comment-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/comment-16px.png -------------------------------------------------------------------------------- /pombola/core/static/images/county-perf-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/county-perf-facebook.png -------------------------------------------------------------------------------- /pombola/core/static/images/county-perf-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/county-perf-twitter.png -------------------------------------------------------------------------------- /pombola/core/static/images/d-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/d-logo.png -------------------------------------------------------------------------------- /pombola/core/static/images/d-smiley-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/d-smiley-sprite.png -------------------------------------------------------------------------------- /pombola/core/static/images/down-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/down-logo.png -------------------------------------------------------------------------------- /pombola/core/static/images/facebook-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/facebook-16px.png -------------------------------------------------------------------------------- /pombola/core/static/images/fade-to-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/fade-to-green.png -------------------------------------------------------------------------------- /pombola/core/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/favicon.png -------------------------------------------------------------------------------- /pombola/core/static/images/feature_chevrons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/feature_chevrons.png -------------------------------------------------------------------------------- /pombola/core/static/images/has-dropdown-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/has-dropdown-dark.png -------------------------------------------------------------------------------- /pombola/core/static/images/logo-450-x-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/logo-450-x-150.png -------------------------------------------------------------------------------- /pombola/core/static/images/m-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/m-logo.png -------------------------------------------------------------------------------- /pombola/core/static/images/m-smiley-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/m-smiley-sprite.png -------------------------------------------------------------------------------- /pombola/core/static/images/mz-person-detail-appearances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/mz-person-detail-appearances.png -------------------------------------------------------------------------------- /pombola/core/static/images/mz-person-detail-budget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/mz-person-detail-budget.png -------------------------------------------------------------------------------- /pombola/core/static/images/mz-person-detail-experience.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/mz-person-detail-experience.png -------------------------------------------------------------------------------- /pombola/core/static/images/mz-person-detail-positions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/mz-person-detail-positions.png -------------------------------------------------------------------------------- /pombola/core/static/images/nub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/nub.png -------------------------------------------------------------------------------- /pombola/core/static/images/organisation-16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/organisation-16x16.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/organisation-200x200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/organisation-200x200.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/organisation-210x210.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/organisation-210x210.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/organisation-90x90.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/organisation-90x90.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/pagination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/pagination.png -------------------------------------------------------------------------------- /pombola/core/static/images/pencil-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/pencil-16px.png -------------------------------------------------------------------------------- /pombola/core/static/images/person-16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/person-16x16.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/person-200x200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/person-200x200.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/person-210x210.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/person-210x210.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/person-60x60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/person-60x60.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/person-90x90.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/person-90x90.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/place-16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/place-16x16.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/place-200x200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/place-200x200.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/place-90x90.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/place-90x90.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/positiontitle-16x16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/positiontitle-16x16.jpg -------------------------------------------------------------------------------- /pombola/core/static/images/question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/question.png -------------------------------------------------------------------------------- /pombola/core/static/images/quotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/quotes.png -------------------------------------------------------------------------------- /pombola/core/static/images/score-average.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/score-average.png -------------------------------------------------------------------------------- /pombola/core/static/images/score-bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/score-bad.png -------------------------------------------------------------------------------- /pombola/core/static/images/score-disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/score-disabled.png -------------------------------------------------------------------------------- /pombola/core/static/images/score-good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/score-good.png -------------------------------------------------------------------------------- /pombola/core/static/images/search-icon-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/search-icon-dark.png -------------------------------------------------------------------------------- /pombola/core/static/images/search-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/search-icon.png -------------------------------------------------------------------------------- /pombola/core/static/images/social-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/social-links.png -------------------------------------------------------------------------------- /pombola/core/static/images/twitter-16px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/twitter-16px.png -------------------------------------------------------------------------------- /pombola/core/static/images/twitter-app-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/twitter-app-logo.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/static/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /pombola/core/static/js/load_appearances.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $('#appearances') 3 | .html("Loading……") 4 | .each( function () { 5 | var appearances = $(this); 6 | var url = appearances.data('url'); 7 | appearances.load(url); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /pombola/core/static/js/twitter-embed.js: -------------------------------------------------------------------------------- 1 | /* Javascript for the official Twitter widget */ 2 | 3 | jQuery(function($) { 4 | !function (d, s, id) { 5 | var js, 6 | fjs = d.getElementsByTagName(s)[0], 7 | p = /^http:/.test(d.location) ? 'http' : 'https'; 8 | if (!d.getElementById(id)) { 9 | js = d.createElement(s); 10 | js.id = id; 11 | js.src = p + "://platform.twitter.com/widgets.js"; 12 | fjs.parentNode.insertBefore(js, fjs); 13 | } 14 | }(document, "script", "twitter-wjs"); 15 | }); 16 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_budgets.scss: -------------------------------------------------------------------------------- 1 | table.budgets { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_colours_default.scss: -------------------------------------------------------------------------------- 1 | $colour_primary: #009245; 2 | $colour_primary_light: #87c43c; 3 | 4 | // Black ish 5 | $colour_blackish: #777777; 6 | 7 | // Black 8 | $colour_black: black; 9 | 10 | // White 11 | $colour_white: white; 12 | 13 | // Grey 14 | $colour_muted: #e6e6e6; 15 | 16 | // Darker Grey 17 | $colour_grey: gray; 18 | 19 | // Lighter Grey 20 | $colour_light_grey: #f6f6f6; 21 | 22 | // Light Black 23 | $colour_dark_grey: #2e2e2e; 24 | 25 | // Red 26 | $colour_red: #d40000; 27 | 28 | // Lighterer Grey 29 | $colour_lighter_grey: #f7f7f7; 30 | 31 | // Middling grey 32 | $colour_middling_grey: #b3b3b3; 33 | 34 | // average amber 35 | $colour_amber: #f9a326; 36 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_comments.scss: -------------------------------------------------------------------------------- 1 | #disqus_thread{ 2 | @media print { display: none; } 3 | } 4 | 5 | .disqus_help { 6 | font-size: 80%; 7 | margin-bottom: 1em; 8 | @media print { display: none; } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_hansard.scss: -------------------------------------------------------------------------------- 1 | ul.hansard_entries { 2 | em { 3 | font-style: italic; } 4 | strong { 5 | font-weight: bold; } 6 | li { 7 | margin-bottom: 0.5em; 8 | list-style: none; } 9 | li.scene { 10 | margin-left: 2em; } 11 | li.speech p { 12 | margin-left: 1em; } 13 | li.search_hansard { 14 | text-align: right; 15 | padding: 0.2em; } 16 | li.page_number { 17 | text-align: right; 18 | background: #eee; 19 | padding: 0.2em; } } 20 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_help.scss: -------------------------------------------------------------------------------- 1 | pre.code { 2 | margin-bottom: 1.5em; 3 | } 4 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_hide-reveal.scss: -------------------------------------------------------------------------------- 1 | .hide-reveal-link { 2 | display: block; 3 | padding: 0.5em 0; 4 | } 5 | 6 | .has-dropdown-dark { 7 | background-image: url('/static/images/has-dropdown-dark.png'); 8 | background-position: 100% 1em; 9 | background-repeat: no-repeat; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_hover-dropdown.scss: -------------------------------------------------------------------------------- 1 | // See core/static/js/hover-dropdown.js for documentation. 2 | 3 | .js-hover-dropdown { 4 | display: none; 5 | 6 | :hover > &, // show when parent (including any children) is hovered 7 | .js-hover-active > &, // show when parent has `.js-hover-active` class 8 | :hover + &, // show when trigger is hovered 9 | :focus + & // show when trigger is focussed 10 | { 11 | display: block; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_object_menu.scss: -------------------------------------------------------------------------------- 1 | div.object_menu { 2 | width: 100%; 3 | 4 | ul { 5 | @include list-reset-soft; 6 | 7 | li { 8 | display: inline-block; 9 | margin: 0 0.5em 0.2em 0; 10 | 11 | a { 12 | text-decoration: underline; 13 | } 14 | } 15 | 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_print.scss: -------------------------------------------------------------------------------- 1 | 2 | // Set the body width to wide so that the page renders as it would on a big 3 | // screen. 4 | 5 | @media print { 6 | body { 7 | width: 1000px; 8 | } 9 | } -------------------------------------------------------------------------------- /pombola/core/static/sass/_social.scss: -------------------------------------------------------------------------------- 1 | ul.social-buttons { 2 | @include list-reset-soft; 3 | li { 4 | float: left; 5 | padding: 4px; } } 6 | -------------------------------------------------------------------------------- /pombola/core/static/sass/_vcard.scss: -------------------------------------------------------------------------------- 1 | .vcard { 2 | 3 | @include list-reset-soft; 4 | overflow: hidden; 5 | 6 | li { 7 | 8 | .address p { 9 | line-height: 15px; 10 | padding-top: 4px; 11 | } 12 | 13 | .label { 14 | text-transform: uppercase; 15 | color: $colour_grey; 16 | font-size: 11px; 17 | float: left; 18 | clear: left; 19 | min-width: 60px; 20 | margin-left: 10px; 21 | margin-right: 10px; 22 | } 23 | 24 | p { 25 | padding-left: 45px; 26 | } 27 | } 28 | 29 | a { 30 | text-decoration: none; 31 | font-size: 12px; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /pombola/core/static/sass/admin.scss: -------------------------------------------------------------------------------- 1 | // very general styling 2 | @import "core"; 3 | @import "common"; 4 | -------------------------------------------------------------------------------- /pombola/core/static/sass/countdown.scss: -------------------------------------------------------------------------------- 1 | /* This can be overridden in country apps to customise the countdown 2 | appearance. */ 3 | -------------------------------------------------------------------------------- /pombola/core/static/static_test.txt: -------------------------------------------------------------------------------- 1 | static serving works! 2 | -------------------------------------------------------------------------------- /pombola/core/templates/core/_people_listing.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /pombola/core/templates/core/_place_search_filters.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | Where: 4 | 5 | 14 | 15 | 16 |
17 |
18 | -------------------------------------------------------------------------------- /pombola/core/templates/core/_search_pagination_text.html: -------------------------------------------------------------------------------- 1 |
2 | Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ paginator.count }}. 3 |
4 | -------------------------------------------------------------------------------- /pombola/core/templates/core/generic_list.html: -------------------------------------------------------------------------------- 1 | {% load pagination_tags %} 2 | 3 | {% if object_list %} 4 | 5 | {% autopaginate object_list %} 6 | 7 |

Entries {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ paginator.count }}.

8 | 9 | 14 | 15 | {% paginate %} 16 | 17 | {% else %} 18 |

No results were found

19 | 20 | {% endif %} 21 | 22 | -------------------------------------------------------------------------------- /pombola/core/templates/core/organisation_comments.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/organisation_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Comments{% endblock %} 4 | 5 | {% block subcontent %} 6 | {# Removed to revert to old comments pending Disqus migration #} 7 | {# include 'disqus_comments.html' #} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /pombola/core/templates/core/organisation_contact_details.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/organisation_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Contact Details{% endblock %} 4 | 5 | {% block subcontent %} 6 | {% include "core/contact_list.html" with contacts=object.contacts.all %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/core/templates/core/organisation_list.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load pagination_tags %} 3 | 4 | {% block title %}{% if kind %}{{ kind.name }}{% endif %}{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

9 | {% if kind %} 10 | {{ kind.name }} 11 | {% else %} 12 | Organisations 13 | {% endif %} 14 |

15 | 16 | {% include 'core/generic_list.html' %} 17 | 18 | {% endblock %} 19 | 20 | -------------------------------------------------------------------------------- /pombola/core/templates/core/override_breadcrumb.html: -------------------------------------------------------------------------------- 1 | {% load breadcrumbs %} 2 | {% block breadcrumbs %} 3 | {# dummy suppressing the latlong part for now #} 4 | 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /pombola/core/templates/core/parties.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load pagination_tags %} 3 | 4 | {% block title %}Political Parties Represented in Parliament{% endblock %} 5 | 6 | {% block content %} 7 | 8 |

9 | Political Parties Represented in Parliament 10 |

11 | 12 |

These are the parties whose members are currently MPs in parliament.

13 | 14 |

There is also a list of all parties.

15 | 16 | {% include 'core/generic_list.html' with object_list=parties %} 17 | 18 | {% endblock %} 19 | 20 | -------------------------------------------------------------------------------- /pombola/core/templates/core/person_comments.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/person_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Comments{% endblock %} 4 | 5 | {% block subcontent %} 6 | {# Removed to revert to old comments pending Disqus migration #} 7 | {# include 'disqus_comments.html' #} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /pombola/core/templates/core/person_contact_details.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/person_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Contact Details{% endblock %} 4 | 5 | {% block subcontent %} 6 | {% include "core/contact_list.html" with contacts=object.contacts.all %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/core/templates/core/person_list.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load thumbnail %} 3 | {% load pagination_tags %} 4 | 5 | {% block title %}People{% endblock %} 6 | 7 | {% block content %} 8 | 9 |

People

10 | 11 | {% include 'core/generic_list.html' %} 12 | 13 | {% endblock %} 14 | 15 | -------------------------------------------------------------------------------- /pombola/core/templates/core/person_scorecard.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/person_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Scorecard{% endblock %} 4 | 5 | {% block subcontent %} 6 | {% include 'scorecards/scorecard.html' %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_aspirants.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Aspirants{% endblock %} 4 | 5 | {% block subcontent %} 6 | 7 |
8 | 9 | 10 | 11 | {% include "core/place_candidate_lists.html" %} 12 | 13 |
14 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_budgets.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Budgets{% endblock %} 4 | 5 | {% block subcontent %} 6 | {% include 'budgets/budgets.html' %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_candidate_lists.html: -------------------------------------------------------------------------------- 1 | {% extends "custom_place_candidate_lists.html" %} 2 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_comments.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Comments{% endblock %} 4 | 5 | {% block subcontent %} 6 | {# Removed to revert to old comments pending Disqus migration #} 7 | {# include 'disqus_comments.html' #} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_places_child.html: -------------------------------------------------------------------------------- 1 |
  • 2 | {{ object.name }} 3 | ({{object.parliamentary_session.relative_time}} {{ object.kind.name }}) 4 |
  • 5 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_projects.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | {% load thumbnail %} 3 | {% load humanize %} 4 | 5 | {% block title %}{{ object.name }} Projects{% endblock %} 6 | 7 | {% block subcontent %} 8 | 9 |

    CDF Projects ({{ object.project_set.count }})

    10 |
    11 | {% include "include.html" with template="projects/place_summary.html" %} 12 |
    13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /pombola/core/templates/core/place_scorecard.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | 3 | {% block title %}{{ object.name }} Scorecard{% endblock %} 4 | 5 | {% block subcontent %} 6 | {% include 'scorecards/scorecard.html' %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/core/templates/core/position_position_section.html: -------------------------------------------------------------------------------- 1 | {% load pagination_tags %} 2 | 3 | {% autopaginate positions %} 4 | 5 | {% include "core/_place_search_filters.html" %} 6 | {% include "core/_alphabetical_pagination.html" %} 7 | {% include "core/_search_pagination_text.html" %} 8 | {% include "core/_position_listing.html" %} 9 | 10 | {% paginate %} 11 | -------------------------------------------------------------------------------- /pombola/core/templates/core/positiontitle_list_item.html: -------------------------------------------------------------------------------- 1 |
    2 |

    {{ object.name }}

    3 | 4 |
    5 | -------------------------------------------------------------------------------- /pombola/core/templates/core/session_list.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block title %}Parliamentary Sessions{% endblock %} 4 | 5 | {% block content %} 6 | 7 |

    Parliamentary Sessions

    8 | 9 | 18 | 19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /pombola/core/templates/core/unknown_list_item.html: -------------------------------------------------------------------------------- 1 |
    2 |

    {{ object.name }}

    3 | 4 | 5 |
    6 | 7 | -------------------------------------------------------------------------------- /pombola/core/templates/template-for-blog.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block title %}{% endblock %} 4 | 5 | {% block breadcrumbs %}{% endblock %} 6 | 7 | {% block content %} 8 | 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /pombola/core/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/templatetags/__init__.py -------------------------------------------------------------------------------- /pombola/core/templatetags/absolute_url.py: -------------------------------------------------------------------------------- 1 | from __future__ import unicode_literals 2 | 3 | from django import template 4 | 5 | register = template.Library() 6 | 7 | 8 | @register.filter 9 | def absolute_url(abs_path, request): 10 | return request.build_absolute_uri(abs_path) 11 | -------------------------------------------------------------------------------- /pombola/core/templatetags/add_query_parameter.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | 6 | @register.simple_tag 7 | def add_query_parameter(request, key, value): 8 | query_parameters = request.GET.copy() 9 | query_parameters[key] = value 10 | return query_parameters.urlencode() 11 | -------------------------------------------------------------------------------- /pombola/core/templatetags/clean_html.py: -------------------------------------------------------------------------------- 1 | from lxml.etree import LxmlError 2 | from lxml.html.clean import Cleaner 3 | 4 | from django.template import Library 5 | 6 | register = Library() 7 | 8 | @register.filter 9 | def as_clean_html(value): 10 | try: 11 | return Cleaner(style=True, scripts=True).clean_html(value.strip()) 12 | except LxmlError: 13 | return '

    ' 14 | -------------------------------------------------------------------------------- /pombola/core/templatetags/get_from_key.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | 6 | @register.filter 7 | def get_from_key(value, arg): 8 | try: 9 | return value[arg] 10 | except KeyError: 11 | return '' 12 | -------------------------------------------------------------------------------- /pombola/core/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/core/tests/__init__.py -------------------------------------------------------------------------------- /pombola/core/tests/smoke_tests.py: -------------------------------------------------------------------------------- 1 | from django_webtest import WebTest 2 | 3 | 4 | class SmokeTests(WebTest): 5 | def testFront(self): 6 | self.app.get('/') 7 | 8 | def testRobots(self): 9 | self.app.get('/robots.txt') 10 | 11 | def testMemcachedStatus(self): 12 | self.app.get('/status/memcached/') 13 | -------------------------------------------------------------------------------- /pombola/country/README.md: -------------------------------------------------------------------------------- 1 | This package abtracts away country-specific helper code, such as 2 | that which defines which positions are considered worth 3 | highlighting, so that one can just do: 4 | 5 | from pombola.country import significant_positions_filter 6 | -------------------------------------------------------------------------------- /pombola/experiments/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/experiments/__init__.py -------------------------------------------------------------------------------- /pombola/experiments/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/experiments/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/feedback/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/feedback/__init__.py -------------------------------------------------------------------------------- /pombola/feedback/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from pombola.feedback.models import Feedback 3 | 4 | @admin.register(Feedback) 5 | class FeedbackAdmin(admin.ModelAdmin): 6 | 7 | list_display = ('status', 'comment', 'user', 'email', 'url', 'created',) 8 | list_filter = ('created', 'status') 9 | date_hierarchy = 'created' 10 | ordering = ('-created',) 11 | raw_id_fields = ('user',) 12 | search_fields = ('comment', 'user__username', 'url', 'email') 13 | -------------------------------------------------------------------------------- /pombola/feedback/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/feedback/management/__init__.py -------------------------------------------------------------------------------- /pombola/feedback/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/feedback/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/feedback/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/feedback/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/feedback/seltests/__init__.py: -------------------------------------------------------------------------------- 1 | from feedback_dialog import * # noqa 2 | -------------------------------------------------------------------------------- /pombola/feedback/tests.py: -------------------------------------------------------------------------------- 1 | """ 2 | This file demonstrates writing tests using the unittest module. These will pass 3 | when you run "manage.py test". 4 | 5 | Replace this with more appropriate tests for your application. 6 | """ 7 | 8 | from django.test import TestCase 9 | 10 | 11 | class SimpleTest(TestCase): 12 | def test_basic_addition(self): 13 | """ 14 | Tests that 1 + 1 always equals 2. 15 | """ 16 | self.assertEqual(1 + 1, 2) 17 | -------------------------------------------------------------------------------- /pombola/feedback/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from .views import add 4 | 5 | 6 | urlpatterns = [ 7 | url(r'^$', add, name='feedback_add'), 8 | ] 9 | -------------------------------------------------------------------------------- /pombola/generate_tasks.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ 4 | Go through all models that are task related and check that all tasks have been 5 | generated. 6 | """ 7 | 8 | 9 | from pombola.core import models 10 | from pombola.tasks.models import Task 11 | 12 | task_related_models = [ models.Person, models.Contact ] 13 | 14 | for m in task_related_models: 15 | for obj in m.objects.all(): 16 | Task.call_generate_tasks_on( obj ) 17 | 18 | -------------------------------------------------------------------------------- /pombola/hansard/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/api/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/constants.py: -------------------------------------------------------------------------------- 1 | # Symbols for different name matching algorithms 2 | 3 | NAME_SUBSTRING_MATCH = 1 # Look for the whole name without the title. 4 | NAME_SET_INTERSECTION_MATCH = 2 # Intersect sets of words, including the title. 5 | -------------------------------------------------------------------------------- /pombola/hansard/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/management/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/management/commands/hansard_assign_speakers.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | from django.core.management.base import NoArgsCommand 3 | 4 | from pombola.hansard.models import Entry 5 | 6 | 7 | class Command(NoArgsCommand): 8 | help = 'Try to assign a person to each entry' 9 | args = '' 10 | 11 | def handle_noargs(self, **options): 12 | algorithm = settings.HANSARD_NAME_MATCHING_ALGORITHM 13 | Entry.assign_speakers(name_matching_algorithm=algorithm) 14 | -------------------------------------------------------------------------------- /pombola/hansard/migrations/0002_source_unique_together_constraint.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('hansard', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterUniqueTogether( 15 | name='source', 16 | unique_together=set([('name', 'list_page')]), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /pombola/hansard/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/models/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | from alias import Alias 4 | from source import Source, SourceUrlCouldNotBeRetrieved, SourceCouldNotParseTimeString 5 | from venue import Venue 6 | from sitting import Sitting 7 | from entry import Entry, NAME_SUBSTRING_MATCH, NAME_SET_INTERSECTION_MATCH 8 | -------------------------------------------------------------------------------- /pombola/hansard/models/base.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.core.urlresolvers import reverse 3 | 4 | class HansardModelBase(models.Model): 5 | 6 | def get_admin_url(self): 7 | url = reverse( 8 | 'admin:%s_%s_change' % ( self._meta.app_label, self._meta.model_name), 9 | args=[self.id] 10 | ) 11 | return url 12 | 13 | 14 | class Meta: 15 | abstract = True 16 | -------------------------------------------------------------------------------- /pombola/hansard/models/venue.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | from pombola.hansard.models.base import HansardModelBase 4 | 5 | class Venue(HansardModelBase): 6 | """ 7 | Venues for the sittings 8 | """ 9 | 10 | name = models.CharField(max_length=200, unique=True) 11 | slug = models.SlugField(unique=True) 12 | 13 | class Meta: 14 | app_label = 'hansard' 15 | ordering = [ 'slug' ] 16 | 17 | def __unicode__(self): 18 | return self.name 19 | -------------------------------------------------------------------------------- /pombola/hansard/templates/admin/hansard/alias/change_list.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/change_list.html" %} 2 | 3 | 4 | {% block object-tools-items %} 5 | {{ block.super }} 6 |
  • Next unassigned entry
  • 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/hansard/tests/2011-09-01-assembly-sample.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/tests/2011-09-01-assembly-sample.doc -------------------------------------------------------------------------------- /pombola/hansard/tests/2011-09-01-assembly-sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/tests/2011-09-01-assembly-sample.pdf -------------------------------------------------------------------------------- /pombola/hansard/tests/2013-07-31-senate-sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/tests/2013-07-31-senate-sample.pdf -------------------------------------------------------------------------------- /pombola/hansard/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/hansard/tests/__init__.py -------------------------------------------------------------------------------- /pombola/hansard/tests/smoke_tests.py: -------------------------------------------------------------------------------- 1 | from django_webtest import WebTest 2 | 3 | from pombola.core import models 4 | 5 | 6 | class SmokeTests(WebTest): 7 | 8 | def testAllAppearances(self): 9 | 10 | person = models.Person( 11 | legal_name="Alfred Smith", 12 | slug='alfred-smith', 13 | ) 14 | person.save() 15 | 16 | self.app.get('/hansard/person/alfred-smith/appearances/') 17 | -------------------------------------------------------------------------------- /pombola/interests_register/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/interests_register/__init__.py -------------------------------------------------------------------------------- /pombola/interests_register/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/interests_register/management/__init__.py -------------------------------------------------------------------------------- /pombola/interests_register/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/interests_register/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/interests_register/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/interests_register/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/interests_register/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /pombola/kenya/2013-election-data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore downloaded .jpg files 2 | /*/*.jpg 3 | /api-cache-* 4 | -------------------------------------------------------------------------------- /pombola/kenya/2013-election-data/gazette-results/venues-county-assembly.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/2013-election-data/gazette-results/venues-county-assembly.csv -------------------------------------------------------------------------------- /pombola/kenya/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/__init__.py -------------------------------------------------------------------------------- /pombola/kenya/election_data_2017/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/election_data_2017/__init__.py -------------------------------------------------------------------------------- /pombola/kenya/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/management/__init__.py -------------------------------------------------------------------------------- /pombola/kenya/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/kenya/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/kenya/static/fonts/Skolar_Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/fonts/Skolar_Bold.woff -------------------------------------------------------------------------------- /pombola/kenya/static/fonts/Skolar_Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/fonts/Skolar_Italic.woff -------------------------------------------------------------------------------- /pombola/kenya/static/fonts/Skolar_Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/fonts/Skolar_Regular.woff -------------------------------------------------------------------------------- /pombola/kenya/static/images/chevron-grey-left-10x15.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/static/images/chevron-grey-right-10x15.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/static/images/chevron-red-6x10.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/static/images/chevron-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/static/images/facebook-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/facebook-icon.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/heinrich-boell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/heinrich-boell.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/indigo-without-title.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/indigo-without-title.gif -------------------------------------------------------------------------------- /pombola/kenya/static/images/logo-boll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/logo-boll.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/logo-indigo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/logo-indigo.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/logo-nimd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/logo-nimd.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/mzalendo-awards-ribbon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/mzalendo-awards-ribbon.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/mzalendo-header-background.svg: -------------------------------------------------------------------------------- 1 | mzalendo-header-background -------------------------------------------------------------------------------- /pombola/kenya/static/images/mzalendo-logo-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/mzalendo-logo-large.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/mzalendo-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/mzalendo-logo-small.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/olympics-1st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/olympics-1st.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/olympics-2nd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/olympics-2nd.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/olympics-3rd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/olympics-3rd.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/parliament-400px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/parliament-400px.jpg -------------------------------------------------------------------------------- /pombola/kenya/static/images/parliament-600px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/parliament-600px.jpg -------------------------------------------------------------------------------- /pombola/kenya/static/images/peoples-shujaaz-award-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/peoples-shujaaz-award-badge.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/peoples-shujaaz-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/peoples-shujaaz-background.jpg -------------------------------------------------------------------------------- /pombola/kenya/static/images/peoples-shujaaz-home-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/peoples-shujaaz-home-badge.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/peoples-shujaaz-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/peoples-shujaaz-logo.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/phone-white.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/static/images/pin-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/pin-logo.jpg -------------------------------------------------------------------------------- /pombola/kenya/static/images/twitter-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/twitter-icon.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/wave-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/wave-icon.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/women-curve-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/women-curve-bottom.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/women-curve-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/women-curve-top.png -------------------------------------------------------------------------------- /pombola/kenya/static/images/women-representative-topics-wordle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/images/women-representative-topics-wordle.png -------------------------------------------------------------------------------- /pombola/kenya/static/js/lazy-loaded-images.js: -------------------------------------------------------------------------------- 1 | window.blazy = new Blazy({ 2 | selector: 'img[data-src]' 3 | }); 4 | -------------------------------------------------------------------------------- /pombola/kenya/static/js/women-wordcloud.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $(".issues-word-cloud").jQCloud( 3 | womenHansardWords, 4 | {shape: "elliptical"} 5 | ); 6 | }); 7 | -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/election-homepage/images/countdown-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/election-homepage/images/countdown-icon.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/election-homepage/images/election-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/election-homepage/images/election-logo.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/election-homepage/images/election-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/election-homepage/images/election-search.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/election-homepage/style.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/intro/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/intro/logo.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/intro/logo@x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/intro/logo@x2.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/intro/logo_ie6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/intro/logo_ie6.png -------------------------------------------------------------------------------- /pombola/kenya/static/kenya/intro/search2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/kenya/static/kenya/intro/search2.png -------------------------------------------------------------------------------- /pombola/kenya/static/sass/_colours_kenya.scss: -------------------------------------------------------------------------------- 1 | $colour_primary_mid: #48bb60; 2 | $colour_purple: #753C96; 3 | $colour_pale_purple: mix(#fff, $colour_purple, 90%); 4 | $colour_pale_yellow: #FFFCD5; 5 | $colour_pale_green: mix(#fff, $colour_primary_mid, 90%); 6 | 7 | $colour_red: #C52600; 8 | $colour_dark_grey: #222; 9 | 10 | // Introduced as part of the 2016 logo redesign 11 | $colour_deep_green: #009F57; 12 | $colour_cream: #F2F0E7; 13 | 14 | $colour_twitter_blue: #4099ff; 15 | $colour_facebook_blue: #3B5998; 16 | $colour_youtube_red: #FF0000; 17 | $colour_instagram_purple: #C837AB; 18 | -------------------------------------------------------------------------------- /pombola/kenya/static/sass/_kenya_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | @media only all and (min-width: 640px), print { 2 | #breadcrumb { 3 | height: 34px; /* to match nav bar */ 4 | background-color: $colour_muted; 5 | 6 | nav { 7 | ul { 8 | padding: 0; 9 | line-height: 34px; /* to match nav bar */ 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /pombola/kenya/static/sass/_kenya_hansard.scss: -------------------------------------------------------------------------------- 1 | span.highlighted { 2 | background-color: #8f8; 3 | } 4 | -------------------------------------------------------------------------------- /pombola/kenya/static/sass/_kenya_wrapper.scss: -------------------------------------------------------------------------------- 1 | .wrapper { 2 | .site-header &, 3 | .site-menu &, 4 | .site-footer &, 5 | body.home & { 6 | width: auto; 7 | padding-right: 1em; 8 | padding-left: 1em; 9 | 10 | // Override ridiculous `margin: 0 10px;` in _kenya_overrides.scss 11 | @media only screen and (min-width: 640px) and (max-width: 979px) { 12 | margin: 0 auto; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /pombola/kenya/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block title %}Page Not Found{% endblock %} 4 | 5 | {% block content %} 6 | 7 |

    Page Not Found - 404

    8 | 9 |

    The page you are looking for could not be found - please check the address and try again.

    10 | 11 | {% endblock %} 12 | 13 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_county_petition.html: -------------------------------------------------------------------------------- 1 |
    2 | {% csrf_token %} 3 |

    4 | 5 |

    6 |

    7 | {% include "_all_form_errors.html" with form=petition_form %} 8 |

    9 |

    10 | {% for field in petition_form.visible_fields %} 11 | {{ field }} 12 | {% endfor %} 13 | 14 |

    15 |
    16 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_county_senate.html: -------------------------------------------------------------------------------- 1 |
    2 | {% csrf_token %} 3 |

    4 |

    We will also send any comments through to the Senate Majority Leader

    5 |

    6 | {% include "_all_form_errors.html" with form=senate_form %} 7 |

    8 | {{ senate_form.comments }} 9 |

    10 |

    11 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_county_share.html: -------------------------------------------------------------------------------- 1 |
    2 |

    Share this petition with other Kenyans and allow your voice to be heard.

    3 | {% for share_partial in share_partials %} 4 |

    5 | {% include share_partial %} 6 |

    7 | {% endfor %} 8 |
    9 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_person_gallery_item.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_share_facebook.html: -------------------------------------------------------------------------------- 1 | Share this article on Facebook 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_share_twitter.html: -------------------------------------------------------------------------------- 1 | Share this article on Twitter 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/_youth_share.html: -------------------------------------------------------------------------------- 1 |
    2 |

    Share this information with your friends.

    3 | {% for share_partial in share_partials %} 4 |

    5 | {% include share_partial %} 6 |

    7 | {% endfor %} 8 |
    9 | -------------------------------------------------------------------------------- /pombola/kenya/templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "default_base.html" %} 2 | {% load pipeline %} 3 | 4 | {% block title_suffix %} :: Mzalendo{% endblock %} 5 | 6 | {% block css_headers %} 7 | {% stylesheet 'kenya' %} 8 | {% endblock %} 9 | 10 | {% block footer %} 11 | 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /pombola/kenya/templates/candidate_data_attribution.html: -------------------------------------------------------------------------------- 1 | {% with k=object.kind.slug %} 2 | {% if k == 'ward' or k == 'constituency' or k == 'county' %} 3 |

    4 | The aspirant data on this page is from the 5 | IEBC API, 6 | with many thanks. 7 |

    8 | {% endif %} 9 | {% endwith %} 10 | -------------------------------------------------------------------------------- /pombola/kenya/templates/core/person_detail_appearance_list.html: -------------------------------------------------------------------------------- 1 | {% load switch %} 2 | 3 | 11 | -------------------------------------------------------------------------------- /pombola/kenya/templates/core/person_detail_responsibilities.html: -------------------------------------------------------------------------------- 1 | {% for position in positions %} 2 | 3 | {% if position.title.responsibilities %} 4 | 5 |
    6 |

    Responsibilities as {{ position.title }}

    7 | 8 | {{ position.title.responsibilities }} 9 | 10 |
    11 | 12 | {% endif %} 13 | 14 | {% endfor %} 15 | -------------------------------------------------------------------------------- /pombola/kenya/templates/custom_place_candidate_lists.html: -------------------------------------------------------------------------------- 1 | {% extends "core/default_place_candidate_lists.html" %} 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/disqus_comments.html: -------------------------------------------------------------------------------- 1 | {% if settings.DISQUS_SHORTNAME %} 2 | 3 | {# This relies on the higher up templates including disqus_javascript #} 4 | 7 | 8 |
    9 | 10 | 11 | {% else %} 12 | Comments have not been enabled on this site. See 'DISQUS_SHORTNAME' in your settings. 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /pombola/kenya/templates/facebook-ajax-response.html: -------------------------------------------------------------------------------- 1 | OK 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/header.html: -------------------------------------------------------------------------------- 1 | {% include 'staging_header.html' %} 2 | 3 | {% include 'site_header.html' %} 4 | 5 | {% include 'main_menu.html' %} 6 | -------------------------------------------------------------------------------- /pombola/kenya/templates/iebc_office_detail_ajax.html: -------------------------------------------------------------------------------- 1 |
    2 | 3 | {% if office.missing %} 4 | 5 |

    Sorry, we have no data for {{ office.cons_name }} in 6 | {{ office.prov_name }} Province

    7 | 8 | {% else %} 9 | 10 |

    IEBC office in {{ office.cons_name }} ({{ office.prov_name }})

    11 | 12 |
    13 |
    Address:
    14 |
    {{ office.address }}
    15 |
    Telephone:
    16 |
    {{ office.telephone }}
    17 |
    18 | 19 | {% endif %} 20 | 21 |
    22 | -------------------------------------------------------------------------------- /pombola/kenya/templates/reps-female.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load thumbnail %} 3 | {% load pagination_tags %} 4 | 5 | {% block title %}Female Representatives{% endblock %} 6 | 7 | {% block content %} 8 | 9 |

    Female Representatives

    10 | 11 |

    This page lists all the female Members of the National Assembly and Senators.

    12 | 13 | {% include 'core/_position_listing.html' %} 14 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /pombola/kenya/templates/reps-young.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load thumbnail %} 3 | {% load pagination_tags %} 4 | 5 | {% block title %}Young Representatives{% endblock %} 6 | 7 | {% block content %} 8 | 9 |

    Youthful MPs

    10 | 11 |

    This page lists all Members of the National Assembly and Senators under the age of 35.

    12 | 13 | {% include 'core/_position_listing.html' %} 14 | 15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /pombola/kenya/templates/site_header_icon_facebook.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/site_header_icon_twitter.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/site_header_icon_youtube.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pombola/kenya/templates/site_header_search.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /pombola/kenya/templates/twitter_widget.html: -------------------------------------------------------------------------------- 1 | {# Official Twitter widget, set up by twitter-embed.js #} 2 |
    3 | 9 |
    10 | -------------------------------------------------------------------------------- /pombola/map/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/map/__init__.py -------------------------------------------------------------------------------- /pombola/map/static/images/crosshairs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/map/static/images/crosshairs.png -------------------------------------------------------------------------------- /pombola/map/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from pombola.map.views import home 4 | 5 | 6 | urlpatterns = [ 7 | url(r'^$', home, name='map-home'), 8 | ] 9 | -------------------------------------------------------------------------------- /pombola/map/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render_to_response 2 | from django.template import RequestContext 3 | 4 | def home(request): 5 | """Homepage""" 6 | 7 | return render_to_response( 8 | 'map/home.html', 9 | {}, 10 | context_instance=RequestContext(request) 11 | ) 12 | 13 | -------------------------------------------------------------------------------- /pombola/middleware.py: -------------------------------------------------------------------------------- 1 | from instances.models import Instance 2 | 3 | class FakeInstanceMiddleware: 4 | """ 5 | We don't really use instances, as we're embedding sayit as an app. It 6 | should really be factored out, but for now, just use the default one 7 | created by the initial migration. 8 | """ 9 | def process_request(self, request): 10 | request.instance, _ = Instance.objects.get_or_create(label='default') 11 | # We don't want to offer the ability to edit or delete 12 | # speeches to any users of the site at the moment, so force 13 | # that no user of the site is regarded as its owner. 14 | request.is_user_instance = False 15 | -------------------------------------------------------------------------------- /pombola/nigeria/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/__init__.py -------------------------------------------------------------------------------- /pombola/nigeria/initial_import/.gitignore: -------------------------------------------------------------------------------- 1 | var 2 | var.tgz 3 | -------------------------------------------------------------------------------- /pombola/nigeria/initial_import/extract_urls.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from bs4 import BeautifulSoup 4 | import sys 5 | import re 6 | 7 | soup = BeautifulSoup( sys.stdin.read() ) 8 | # print soup.prettify() 9 | 10 | title_re = re.compile('View My') 11 | 12 | for link in soup.find_all('a'): 13 | if title_re.search(link.get_text()): 14 | print link['href'] 15 | 16 | -------------------------------------------------------------------------------- /pombola/nigeria/lib.py: -------------------------------------------------------------------------------- 1 | def significant_positions_filter(qs): 2 | """Return a queryset only with 'significant' positions from it 3 | 4 | If you pass in a Position queryset, this should return a queryset 5 | which has filtered out any positions that aren't considered 6 | 'significant' for this country; this is used to determine which 7 | positions are shown on place pages, for instance. 8 | 9 | In the case of Nigeria, we only want to consider Senators, 10 | Governors and Federal Representatives.""" 11 | 12 | return qs.filter(title__slug__in=('governor', 'representative', 'senator')) 13 | -------------------------------------------------------------------------------- /pombola/nigeria/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/management/__init__.py -------------------------------------------------------------------------------- /pombola/nigeria/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/nigeria/static/images/d-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/d-logo.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/favicon.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/header_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/header_bottom.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/header_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/header_top.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/logo-450-x-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/logo-450-x-150.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/lr-carousel-arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/lr-carousel-arrows.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/mz-nigeria-logo-symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/mz-nigeria-logo-symbol.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/mz-nigeria-logo-text-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/mz-nigeria-logo-text-small.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/mz-nigeria-logo-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/mz-nigeria-logo-text.png -------------------------------------------------------------------------------- /pombola/nigeria/static/images/mz-nigeria-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/nigeria/static/images/mz-nigeria-logo.png -------------------------------------------------------------------------------- /pombola/nigeria/static/sass/_colours_nigeria.scss: -------------------------------------------------------------------------------- 1 | $colour_primary: #55a4da; 2 | $colour_primary_light: #75a8cd; 3 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block title %}Page Not Found{% endblock %} 4 | 5 | {% block content %} 6 | 7 |

    Page Not Found - 404

    8 | 9 |

    The page you are looking for could not be found - please check the address and try again.

    10 | 11 | {% endblock %} 12 | 13 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "default_base.html" %} 2 | {% load pipeline %} 3 | 4 | {% block title_suffix %} :: ShineYourEye {% endblock %} 5 | 6 | {% block css_headers %} 7 | {% stylesheet 'nigeria' %} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/custom_place_candidate_lists.html: -------------------------------------------------------------------------------- 1 | {% extends "core/default_place_candidate_lists.html" %} 2 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/header.html: -------------------------------------------------------------------------------- 1 | {% include 'staging_header.html' %} 2 | 3 | {% include 'main_menu.html' %} 4 | 5 | {% include 'site_header.html' %} 6 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/info/blog_post.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block open_graph %}{% include 'info/_blog_open_graph.html' %}{% endblock %} 4 | 5 | {% block title %} 6 | {{ object.title }} 7 | {% endblock %} 8 | 9 | {% block content %} 10 | 11 |
    12 | 13 |

    {{ object.title }}

    14 | 15 |

    {{ object.publication_date|date }}

    16 | 17 | {{ object.content_as_html|safe }} 18 | 19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/site_header_logo.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/site_header_search.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /pombola/nigeria/templates/spinner/slides/spinner_image-content.html: -------------------------------------------------------------------------------- 1 | {% load thumbnail %} 2 | 3 | 4 | {% thumbnail object.image "250x250" crop="center" quality=80 as im %} 5 | {{ object.caption }} 6 | {% endthumbnail %} 7 | 8 | 9 | -------------------------------------------------------------------------------- /pombola/nigeria/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | from .views import NGHomeView, NGSearchView 4 | 5 | 6 | urlpatterns = [ 7 | url(r'^$', NGHomeView.as_view(), name='home'), 8 | url(r'^search/$', NGSearchView.as_view(), name='core_search'), 9 | ] 10 | -------------------------------------------------------------------------------- /pombola/place_data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/place_data/__init__.py -------------------------------------------------------------------------------- /pombola/place_data/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/place_data/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/projects/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/projects/__init__.py -------------------------------------------------------------------------------- /pombola/projects/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | import models 3 | 4 | @admin.register(models.Project) 5 | class ProjectAdmin(admin.ModelAdmin): 6 | list_display = [ 'cdf_index', 'constituency', 'project_name' ] 7 | search_fields = [ 'constituency__name', 'project_name' ] 8 | -------------------------------------------------------------------------------- /pombola/projects/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/projects/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/projects/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | 3 | import views 4 | 5 | 6 | urlpatterns = [ 7 | url(r'^in/(?P[-\w]+)/', views.in_place, name='project_in_place'), 8 | ] 9 | -------------------------------------------------------------------------------- /pombola/projects/views.py: -------------------------------------------------------------------------------- 1 | from django.template import RequestContext 2 | from django.shortcuts import render_to_response, get_object_or_404 3 | 4 | import pombola.core.models 5 | 6 | 7 | def in_place(request, slug): 8 | 9 | place = get_object_or_404( pombola.core.models.Place, slug=slug) 10 | projects = place.project_set 11 | 12 | return render_to_response( 13 | 'projects/in_place.html', 14 | { 15 | 'place': place, 16 | 'projects': projects, 17 | }, 18 | context_instance=RequestContext(request) 19 | ) 20 | 21 | -------------------------------------------------------------------------------- /pombola/scorecards/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/scorecards/__init__.py -------------------------------------------------------------------------------- /pombola/scorecards/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/scorecards/management/__init__.py -------------------------------------------------------------------------------- /pombola/scorecards/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/scorecards/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/scorecards/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/scorecards/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/scorecards/templates/admin/scorecards/data/change_list.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/change_list.html" %} 2 | 3 | {% load admin_list i18n %} 4 | 5 | {% block object-tools-items %} 6 | {{ block.super }} 7 | {% if not is_popup %} 8 |
  • 9 | 10 | {% blocktrans %}Upload CSV file{% endblocktrans %} 11 | 12 |
  • 13 | {% endif %} 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /pombola/scorecards/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /pombola/search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/search/__init__.py -------------------------------------------------------------------------------- /pombola/search/templates/search/_search_pagination.html: -------------------------------------------------------------------------------- 1 | {% if page_obj.has_previous or page_obj.has_next %} 2 |
    3 | {% if page_obj.has_previous %}« Previous{% endif %} 4 | {% if page_obj.has_next %}Next »{% endif %} 5 |
    6 | {% endif %} 7 | -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/core/organisation_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.name }} 2 | -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/core/person_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.name }} 2 | -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/core/place_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.name }} 2 | -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/core/positiontitle_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.name }} 2 | -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/hansard/entry_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.content }} -------------------------------------------------------------------------------- /pombola/search/templates/search/indexes/info/infopage_text.txt: -------------------------------------------------------------------------------- 1 | {{ object.title }} {{ object.markdown_content }} {{ object.raw_content|striptags }} 2 | -------------------------------------------------------------------------------- /pombola/search/templates/search/items/blog.html: -------------------------------------------------------------------------------- 1 |
  • 2 | 3 |
    4 |

    {{ object.name }}

    5 | 6 | {# TODO: Style this. See https://docs.djangoproject.com/en/1.6/ref/templates/builtins/#date for date formatting options #} 7 |

    Blog post

    8 | 9 |
    10 | 11 |
  • 12 | -------------------------------------------------------------------------------- /pombola/search/templates/search/items/hansard.html: -------------------------------------------------------------------------------- 1 | {% load highlight %} 2 | 3 | {% comment %} 4 | FIXME: this next guard is only present because currently we 5 | have a not-properly-understood issue with Haystack letting 6 | Elasticsearch get out of sync with what's in the database: 7 | https://github.com/mysociety/pombola/issues/1424 8 | {% endcomment %} 9 | {% if result.object %} 10 |
  • 11 | 12 |

    {{ result.object.sitting.name }}

    13 | 14 |

    {% highlight result.object.content with query %}

    15 | 16 |
  • 17 | {% endif %} 18 | -------------------------------------------------------------------------------- /pombola/search/templates/search/items/positiontitle.html: -------------------------------------------------------------------------------- 1 |
  • 2 | 3 |
    4 |

    {{ object.name }}

    5 |
    6 | 7 |
  • 8 | -------------------------------------------------------------------------------- /pombola/search/templates/search/items/speech.html: -------------------------------------------------------------------------------- 1 |
  • 2 | 3 |
    4 |

    {{ result.object.section|default:"Result" }}

    5 |

    {{ result.highlighted.0|safe }}

    6 |
    7 | 8 |
  • 9 | -------------------------------------------------------------------------------- /pombola/search/templates/search/items/unknown.html: -------------------------------------------------------------------------------- 1 |
  • 2 | 3 |
    4 |

    {{ object.name }}

    5 |
    6 | 7 |
  • 8 | -------------------------------------------------------------------------------- /pombola/search/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/search/tests/__init__.py -------------------------------------------------------------------------------- /pombola/settings/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/settings/__init__.py -------------------------------------------------------------------------------- /pombola/settings/kenya.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa 2 | from .kenya_base import * # noqa 3 | 4 | 5 | INSTALLED_APPS = insert_after(INSTALLED_APPS, 6 | 'markitup', 7 | 'pombola.' + COUNTRY_APP) 8 | 9 | INSTALLED_APPS += OPTIONAL_APPS 10 | 11 | ENABLED_FEATURES = make_enabled_features(INSTALLED_APPS, ALL_OPTIONAL_APPS) 12 | 13 | PIPELINE_CSS.update(COUNTRY_CSS) 14 | PIPELINE_JS.update(COUNTRY_JS) 15 | -------------------------------------------------------------------------------- /pombola/settings/nigeria.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa 2 | from .nigeria_base import * # noqa 3 | 4 | 5 | INSTALLED_APPS = insert_after(INSTALLED_APPS, 6 | 'markitup', 7 | 'pombola.' + COUNTRY_APP) 8 | 9 | INSTALLED_APPS += OPTIONAL_APPS 10 | 11 | ENABLED_FEATURES = make_enabled_features(INSTALLED_APPS, ALL_OPTIONAL_APPS) 12 | 13 | PIPELINE_CSS.update(COUNTRY_CSS) 14 | -------------------------------------------------------------------------------- /pombola/settings/nigeria_base.py: -------------------------------------------------------------------------------- 1 | COUNTRY_APP = 'nigeria' 2 | 3 | OPTIONAL_APPS = ['pombola.spinner'] 4 | 5 | TWITTER_USERNAME = 'NGShineyoureye' 6 | TWITTER_WIDGET_ID = '354909651910918144' 7 | 8 | BLOG_RSS_FEED = 'http://eienigeria.org/rss.xml' 9 | 10 | MAP_BOUNDING_BOX_NORTH = 14.1 11 | MAP_BOUNDING_BOX_EAST = 14.7 12 | MAP_BOUNDING_BOX_SOUTH = 4 13 | MAP_BOUNDING_BOX_WEST = 2.5 14 | 15 | MAPIT_COUNTRY = 'NG' 16 | 17 | COUNTRY_CSS = { 18 | 'nigeria': { 19 | 'source_filenames': ( 20 | # .scss files for Nigeria 21 | 'sass/nigeria.scss', 22 | ), 23 | 'output_filename': 'css/nigeria.css' 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /pombola/settings/no_country.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa 2 | 3 | MAPIT_COUNTRY = 'Global' 4 | 5 | COUNTRY_APP = None 6 | 7 | MAP_BOUNDING_BOX_NORTH = None 8 | MAP_BOUNDING_BOX_SOUTH = None 9 | MAP_BOUNDING_BOX_EAST = None 10 | MAP_BOUNDING_BOX_WEST = None 11 | 12 | ENABLED_FEATURES = make_enabled_features(INSTALLED_APPS, ALL_OPTIONAL_APPS) 13 | -------------------------------------------------------------------------------- /pombola/settings/tests_kenya.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa 2 | from .tests_base import * # noqa 3 | from .kenya_base import * # noqa 4 | 5 | 6 | INSTALLED_APPS = insert_after(INSTALLED_APPS, 7 | 'markitup', 8 | 'pombola.' + COUNTRY_APP) 9 | 10 | INSTALLED_APPS += OPTIONAL_APPS 11 | 12 | ENABLED_FEATURES = make_enabled_features(INSTALLED_APPS, ALL_OPTIONAL_APPS) 13 | 14 | NOSE_ARGS += ['-a', 'country=kenya'] 15 | -------------------------------------------------------------------------------- /pombola/settings/tests_nigeria.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa 2 | from .tests_base import * # noqa 3 | from .nigeria_base import * # noqa 4 | 5 | 6 | INSTALLED_APPS = insert_after(INSTALLED_APPS, 7 | 'markitup', 8 | 'pombola.' + COUNTRY_APP) 9 | 10 | INSTALLED_APPS += OPTIONAL_APPS 11 | 12 | ENABLED_FEATURES = make_enabled_features(INSTALLED_APPS, ALL_OPTIONAL_APPS) 13 | 14 | NOSE_ARGS += ['-a', 'country=nigeria'] 15 | -------------------------------------------------------------------------------- /pombola/sms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/sms/__init__.py -------------------------------------------------------------------------------- /pombola/sms/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/sms/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/bin/people-json/.gitignore: -------------------------------------------------------------------------------- 1 | cache.sqlite 2 | -------------------------------------------------------------------------------- /pombola/south_africa/data/adwords/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/adwords/.gitkeep -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/README.md: -------------------------------------------------------------------------------- 1 | # Updated Data 2 | 3 | Updated constituency data is contained within the `source_data` folder. 4 | `convert_to_import_json.py` should be modified for each import to create 5 | a json file suitable for use with the 6 | `south_africa_update_constituency_offices` command. 7 | 8 | # Initial Import (2013) 9 | The data in `all_constituencies.csv` is a copy of the spreadsheet 10 | https://docs.google.com/spreadsheet/ccc?key=0Am9Hd8ELMkEsdHpOUjBvNVRzYlN4alRORklDajZwQlE 11 | 12 | -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/AIC.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/AIC.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Eastern Cape.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Eastern Cape.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Free State.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Free State.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Gauteng.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Gauteng.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Kwazulu Natal.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Kwazulu Natal.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Limpopo.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Limpopo.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Mpumalanga.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Mpumalanga.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/North West.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/North West.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Northern Cape.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Northern Cape.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Western Cape.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/ANC/Western Cape.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/APC_processed.csv: -------------------------------------------------------------------------------- 1 | Name,MP,MP Voice,MP Email,Physical Address,Province,Tel,Fax,Administrator,Administrator Voice 2 | APC Constituency Office: Polokwane,Nelson Themba Godi,021 403 3348 / 083 709 8477,ngodi@parliament.gov.za,"57 Landros Mare Street, Polokwane",Limpopo,,,, 3 | -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/DA.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/DA.xlsx -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/DA_processed.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/DA_processed.xlsx -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/EFF.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/EFF.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/EFF_processed.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/EFF_processed.xlsx -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/PMG_sourced_data.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/constituencies_and_offices/source_data/2014/PMG_sourced_data.doc -------------------------------------------------------------------------------- /pombola/south_africa/data/constituencies_and_offices/source_data/2014/UDM_processed.csv: -------------------------------------------------------------------------------- 1 | Name,MP,MP Voice,MP Email,Physical Address,Province,Tel,Fax,Administrator,Administrator Voice 2 | UDM Constituency Office: East London,Mncedisi Luthando Wellington Filtane,021 403 8639 / 082 780 6400 ,mvelasco@parliament.gov.za / filatanel@gmail.com,"First Floor, Central Square Building, Union Street, East London",Eastern Cape,,,Ms Sothondoshe, 3 | UDM Constituency Office: Pretoria,Bantubonke Harrington Holomisa,082 5524156 / 021 403 3921 ,bholomisa@udm.org.za / enyamela@parliament.gov.za,"Cnr Madiba and Detoit Street Pretoria 0001, South Africa",Gauteng,,,, 4 | -------------------------------------------------------------------------------- /pombola/south_africa/data/legislature_members/eastern_cape.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/data/legislature_members/eastern_cape.csv -------------------------------------------------------------------------------- /pombola/south_africa/data/members-interests/pdf_scraper/requirements.txt: -------------------------------------------------------------------------------- 1 | lxml==3.7.3 2 | scraperwiki==0.5.1 -------------------------------------------------------------------------------- /pombola/south_africa/management/.gitignore: -------------------------------------------------------------------------------- 1 | /.geocode-request-cache 2 | -------------------------------------------------------------------------------- /pombola/south_africa/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/management/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/management/commands/.gitignore: -------------------------------------------------------------------------------- 1 | /.geocode-request-cache 2 | -------------------------------------------------------------------------------- /pombola/south_africa/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('core', '0002_add_related_name'), 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='ZAPlace', 16 | fields=[ 17 | ], 18 | options={ 19 | 'proxy': True, 20 | }, 21 | bases=('core.place',), 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /pombola/south_africa/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/static/css/libs/chosen/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/css/libs/chosen/chosen-sprite.png -------------------------------------------------------------------------------- /pombola/south_africa/static/css/libs/chosen/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/css/libs/chosen/chosen-sprite@2x.png -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-bold-webfont.eot -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-bold-webfont.ttf -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-bold-webfont.woff -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-italic-webfont.eot -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-italic-webfont.ttf -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-italic-webfont.woff -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-regular-webfont.eot -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-regular-webfont.ttf -------------------------------------------------------------------------------- /pombola/south_africa/static/fonts/lato-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/fonts/lato-regular-webfont.woff -------------------------------------------------------------------------------- /pombola/south_africa/static/images/SAA survey.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/SAA survey.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/civil-union-hom_32181533.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/civil-union-hom_32181533.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/committee-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/committee-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/committee-icon@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/committee-icon@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/decrim.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/decrim.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/elections-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/elections-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/favicon.ico -------------------------------------------------------------------------------- /pombola/south_africa/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/favicon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/has-dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/has-dropdown.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/header_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/header_search.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/land_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/land_closed.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/land_submissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/land_submissions.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/landissue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/landissue.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/link-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/link-icons.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/link-icons@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/link-icons@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/medicalnegligence.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/medicalnegligence.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/mp-assets.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/mp-assets.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/mp-attendance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/mp-attendance.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/national-assembly.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/national-assembly.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/national-council-of-provinces.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/national-council-of-provinces.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/acdp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/acdp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/anc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/anc.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/apc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/apc.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/azapo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/azapo.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/cope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/cope.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/da.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/da.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/ff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/ff.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/id.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/ifp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/ifp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/mf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/mf.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/pac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/pac.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/sacp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/sacp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/ucdp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/ucdp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-logos/udm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-logos/udm.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/adcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/adcp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/agang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/agang.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/aic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/aic.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/anc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/anc.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/apc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/apc.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/azapo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/azapo.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/cope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/cope.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/da.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/da.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/eff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/eff.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/ff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/ff.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/id.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/ifp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/ifp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/mf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/mf.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/pac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/pac.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/sacp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/sacp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/ucdp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/ucdp.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/party-map-icons/udm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/party-map-icons/udm.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-58x78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-58x78.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/email-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/email-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/email-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/facebook-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/facebook-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/facebook-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/linkedin-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/linkedin-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/linkedin-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/twitter-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/twitter-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/whoswhosa-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/whoswhosa-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/person-contact-icons/youtube-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/person-contact-icons/youtube-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/pmg-white-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/pmg-white-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-icon@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-icon@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-contact-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-contact-icons.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-contact-icons@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-contact-icons@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-credit-code4sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-credit-code4sa.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-credit-speak-up-mzansi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-credit-speak-up-mzansi.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-tooltip.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/rep-locator-tooltip@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/rep-locator-tooltip@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/search-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/search-icon.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/search-icon@2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/search-icon@2.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/social-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/social-icons.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/splash-committee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/splash-committee.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/splash-mps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/splash-mps.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/survey-thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/survey-thumb.jpg -------------------------------------------------------------------------------- /pombola/south_africa/static/images/za-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/za-logo.png -------------------------------------------------------------------------------- /pombola/south_africa/static/images/zero-vat-survey_31903862.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/static/images/zero-vat-survey_31903862.png -------------------------------------------------------------------------------- /pombola/south_africa/static/js/attendance-table.js: -------------------------------------------------------------------------------- 1 | jQuery (function($) { 2 | $(document).ready(function(){ 3 | var order_by; 4 | if (POSITION == 'ministers') { 5 | order_by = [3, "desc"] 6 | } 7 | $('#mp-attendance').DataTable({ 8 | "paging": false, 9 | "info": false, 10 | "order": order_by 11 | }); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /pombola/south_africa/static/js/interests-filter.js: -------------------------------------------------------------------------------- 1 | jQuery (function($) { 2 | $('#display').change(function() { 3 | if ($('#display').val()!='all') { 4 | $('#organisation').prop( "disabled", true ); 5 | $('#party').prop( "disabled", true ); 6 | } 7 | else { 8 | $('#organisation').prop( "disabled", false ); 9 | $('#party').prop( "disabled", false ); 10 | } 11 | }); 12 | $('#display').trigger("change"); 13 | 14 | $('.group-select').on('click', function() { 15 | $('#group-interests-form').submit(); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /pombola/south_africa/static/js/lazy-loaded-images.js: -------------------------------------------------------------------------------- 1 | window.blazy = new Blazy({ 2 | selector: 'img[data-src]' 3 | }); 4 | 5 | $(document).on('js-mp-profiles-live-filter:updated', function(){ 6 | window.blazy.revalidate(); 7 | }); 8 | -------------------------------------------------------------------------------- /pombola/south_africa/static/js/person-messages-ajax.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | var messagesSelector = '.js-person-messages-all'; 3 | 4 | $('.js-person-messages-ajax').each(function() { 5 | var $tab = $(this); 6 | var $panel = $($tab.attr('href')); 7 | var url = $tab.data('ajax-url'); 8 | $.ajax({ 9 | url: url 10 | }).done(function(html) { 11 | $panel.html( $(html).find(messagesSelector) ); 12 | }).fail(function() { 13 | $panel.html('

    Error: Unable to load messages at this time. Please try again later.

    '); 14 | }); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /pombola/south_africa/static/js/writeinpublic.js: -------------------------------------------------------------------------------- 1 | jQuery(function($){ 2 | $('#id_recipients-persons').chosen(); 3 | }); 4 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends 'error_base.html' %} 2 | 3 | {% block title %}Page Not Found{% endblock %} 4 | 5 | {% block error_content %} 6 | 7 |

    404 — Page not found

    8 | 9 |

    We're sorry, the page you are looking for can't be found.

    10 | 11 |

    Try going back to the home page or use the search to find what you are looking for.

    12 | 13 | {% endblock %} 14 | 15 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends 'error_base.html' %} 2 | 3 | {% block title %}Internal Server Error{% endblock %} 4 | 5 | {% block error_content %} 6 | 7 |

    500 - There has been an error

    8 | 9 |

    We're sorry, there was an error when opening this page.

    10 | 11 |

    Try reloading this page or try again later.

    12 | 13 | {% endblock %} 14 | 15 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/_people_listing.html: -------------------------------------------------------------------------------- 1 |
      2 | {% for object in people %} 3 | {% include "core/generic_list_item.html" %} 4 | {% endfor %} 5 |
    6 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/_person_position.html: -------------------------------------------------------------------------------- 1 | {% load za_people_display %} 2 | 3 | {% should_display_position position.organisation position.title as display_position %} 4 | {% if display_position %} 5 | {{ position.title }} 6 | {% endif %} 7 | {% should_display_place position.organisation as display_place %} 8 | {% if display_place and position.place %} 9 | ({{ position.place.name }}) 10 | {% endif %} 11 | {% if display_position or display_place and position.place %} 12 |
    13 | {% endif %} 14 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/_position_listing.html: -------------------------------------------------------------------------------- 1 | {% load thumbnail %} 2 | 3 |
      4 | {% for position in positions %} 5 | {% include "core/generic_list_item.html" with object=position.person organisation_kind=position.organisation.kind %} 6 | {% empty %} 7 |
    • No records found.
    • 8 | {% endfor %} 9 |
    10 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/_search_pagination_text.html: -------------------------------------------------------------------------------- 1 |
    2 | Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ paginator.count }}. 3 |
    4 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/generic_list.html: -------------------------------------------------------------------------------- 1 | {% load pagination_tags %} 2 | 3 | {% if object_list %} 4 | 5 | {% autopaginate object_list %} 6 | 7 |
      8 | {% for object in object_list %} 9 | {% include 'core/generic_list_item.html' %} 10 | {% endfor %} 11 |
    12 | 13 | {% include "core/_search_pagination_text.html" %} 14 | 15 | {% paginate %} 16 | 17 | {% else %} 18 |

    No results were found

    19 | {% endif %} 20 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/parliament_list_item.html: -------------------------------------------------------------------------------- 1 | 2 |
    3 |

    {{ object.name }}

    4 | {% if object.seats %} 5 |

    {{ object.seats }} seats

    6 | {% endif %} 7 |
    8 |
    9 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/person_menu.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/templates/core/person_menu.html -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/place_people.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/place_base.html' %} 2 | 3 | {% block title %}{{ object.name }} People{% endblock %} 4 | 5 | {% block subcontent %} 6 | 7 |

    Related People

    8 | 9 |
    10 | {% include "core/generic_list.html" with object_list=object.related_people %} 11 |
    12 | 13 | {% endblock subcontent %} 14 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/core/social_tools.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/templates/core/social_tools.html -------------------------------------------------------------------------------- /pombola/south_africa/templates/custom_place_candidate_lists.html: -------------------------------------------------------------------------------- 1 | {% extends "core/default_place_candidate_lists.html" %} 2 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/down.html: -------------------------------------------------------------------------------- 1 | {% extends 'error_base.html' %} 2 | 3 | {% block title %}Down for Maintenance{% endblock %} 4 | 5 | {% block error_content %} 6 | 7 |

    Down for maintenance

    8 | 9 |

    We're sorry, this website is unavailable while we do some maintenance, please try again later.

    10 | 11 | {% endblock %} 12 | 13 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/header.html: -------------------------------------------------------------------------------- 1 | {% include 'staging_header.html' %} 2 | 3 | {% include 'site_header.html' %} 4 | 5 | {% include 'main_menu.html' %} 6 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/info/_blog_tags.html: -------------------------------------------------------------------------------- 1 | {% if object.tags.count %} 2 | 3 |
      4 | 5 | {% for tag in object.tags.all %} 6 | 7 |
    • {{ tag.name }}
    • 8 | 9 | {% endfor %} 10 | 11 |
    12 | 13 |
    14 |
    15 | 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/search/_search_pagination.html: -------------------------------------------------------------------------------- 1 | {% load pagination_tags %} 2 | {% paginate %} 3 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/site_header_search.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/templates/site_header_search.html -------------------------------------------------------------------------------- /pombola/south_africa/templates/south_africa/_search_box.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/south_africa/election/_provincial.html: -------------------------------------------------------------------------------- 1 |
    2 |

    View candidates by province

    3 | 4 |
      5 | {% for province in province_list %} 6 |
    • 7 | {{ province.name }} 8 |
    • 9 | {% endfor %} 10 |
    11 |
    12 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/south_africa/info_newsletter.html: -------------------------------------------------------------------------------- 1 | {% extends "info/infopage_detail.html" %} 2 | 3 | {% block content %} 4 |
    5 |
    6 | {{ block.super }} 7 |
    8 |
    9 | 12 |
    13 |
    14 | {% endblock %} 15 | 16 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/south_africa/person_appearances.html: -------------------------------------------------------------------------------- 1 | {% extends 'core/person_base.html' %} 2 | {% load pagination_tags %} 3 | 4 | 5 | {% block title %}{{ object.name }} Appearances{% endblock %} 6 | 7 | 8 | {% block subcontent %} 9 | 10 |

    Appearances

    11 | 12 | {% autopaginate speeches %} 13 | 14 | {% include "core/person_speech_list.html" with speechlist=speeches %} 15 | 16 | {% paginate %} 17 | 18 | {% endblock %} 19 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/speeches/_section_user_actions.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This template is intentionally blank to overide the SayIt include which 3 | contains urls that do not resolve correctly as a result of our overrides. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/speeches/_speaker_user_actions.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This template is intentionally blank to overide the SayIt include which 3 | contains urls that do not resolve correctly as a result of our overrides. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /pombola/south_africa/templates/speeches/_speech_user_actions.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This template is intentionally blank to overide the SayIt include which 3 | contains urls that do not resolve correctly as a result of our overrides. 4 | {% endcomment %} 5 | -------------------------------------------------------------------------------- /pombola/south_africa/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/south_africa/templatetags/__init__.py -------------------------------------------------------------------------------- /pombola/south_africa/views/__init__.py: -------------------------------------------------------------------------------- 1 | from .attendance import * 2 | from .committees import * 3 | from .constants import * 4 | from .elections import * 5 | from .geolocalization import * 6 | from .home import * 7 | from .infoviews import * 8 | from .interests import * 9 | from .organisations import * 10 | from .person import * 11 | from .positions import * 12 | from .search import * 13 | from .speechviews import * 14 | from .api import * 15 | -------------------------------------------------------------------------------- /pombola/south_africa/views/constants.py: -------------------------------------------------------------------------------- 1 | # For requests to external APIs, timeout after 3 seconds: 2 | API_REQUESTS_TIMEOUT = 6.05 3 | -------------------------------------------------------------------------------- /pombola/south_africa/views/infoviews.py: -------------------------------------------------------------------------------- 1 | from info.views import InfoBlogView, InfoPageView 2 | 3 | from pombola.core.views import CommentArchiveMixin 4 | 5 | 6 | class SANewsletterPage(InfoPageView): 7 | template_name = 'south_africa/info_newsletter.html' 8 | 9 | 10 | class SAInfoBlogView(CommentArchiveMixin, InfoBlogView): 11 | pass 12 | -------------------------------------------------------------------------------- /pombola/spinner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/spinner/__init__.py -------------------------------------------------------------------------------- /pombola/spinner/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/spinner/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/spinner/static/css/libs/responsive-carousel.css: -------------------------------------------------------------------------------- 1 | /* 2 | * responsive-carousel 3 | * https://github.com/filamentgroup/responsive-carousel 4 | * 5 | * Copyright (c) 2012 Filament Group, Inc. 6 | * Licensed under the MIT, GPL licenses. 7 | */ 8 | .carousel { 9 | width: 100%; 10 | position: relative; 11 | } 12 | .carousel .carousel-item { 13 | display: none; 14 | } 15 | .carousel .carousel-active { 16 | display: block; 17 | } 18 | .carousel .carousel-nav:nth-child(2) { 19 | display: none; 20 | } -------------------------------------------------------------------------------- /pombola/spinner/static/images/lr-carousel-arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/spinner/static/images/lr-carousel-arrows.png -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/carousel-slides.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | 3 | This template assumes that you've loaded the CSS and JS needed to make the 4 | carousel work - see https://github.com/filamentgroup/responsive-carousel for 5 | details. 6 | 7 | There is no need to provide the active slides in the template context, they 8 | are loaded using the spinner_active_slides templatetag. 9 | 10 | {% endcomment %} 11 | 12 | {% load spinner %} 13 | 14 | {% spinner_active_slides as slides %} 15 | 16 | {% for slide in slides %} 17 | 20 | {% endfor %} 21 | -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/display-slide.html: -------------------------------------------------------------------------------- 1 | {% with object=slide.content_object %} 2 | {% include slide.template_name %} 3 | {% endwith %} 4 | -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/random.html: -------------------------------------------------------------------------------- 1 | {# Commented out as unused, but possibly useful in future #} 2 | 3 | {# {% load spinner %} #} 4 | 5 | {# {% spinner_random_slide as slide %} #} 6 | 7 | {# {% include "spinner/display-slide.html" with slide=slide only %} #} 8 | -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/slides/default.html: -------------------------------------------------------------------------------- 1 |

    Default slide template

    2 | 3 |

    4 | 5 | This is the default slide template {{ slide.template_name }} which 6 | is being used because the template {{ slide.required_template_name }} 7 | could not be found for {{ slide }} (id {{ slide.id }}). 8 |

    9 | 10 |

    11 | Please create it. 12 |

    13 | -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/slides/spinner_image-content.html: -------------------------------------------------------------------------------- 1 | {% load thumbnail %} 2 | 3 | 4 | {% thumbnail object.image "598x200" crop="center" as im %} 5 | {{ object.caption }} 6 | {% endthumbnail %} 7 |

    {{ object.caption }}

    {{ object.description }}

    8 |
    9 | -------------------------------------------------------------------------------- /pombola/spinner/templates/spinner/slides/spinner_quote-content.html: -------------------------------------------------------------------------------- 1 | 2 |
    {{ object.quote }}
    3 | 4 | {{ object.attribution }} 5 | -------------------------------------------------------------------------------- /pombola/spinner/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/spinner/templatetags/__init__.py -------------------------------------------------------------------------------- /pombola/spinner/templatetags/spinner.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | from ..models import Slide 4 | 5 | 6 | register = template.Library() 7 | 8 | # Commented out as unused, but possibly useful in future 9 | # @register.assignment_tag 10 | # def spinner_random_slide(): 11 | # slide = Slide.objects.random_slide() 12 | # return slide 13 | 14 | @register.assignment_tag 15 | def spinner_active_slides(): 16 | slides = Slide.objects.all().active() 17 | return slides 18 | -------------------------------------------------------------------------------- /pombola/spinner/urls.py: -------------------------------------------------------------------------------- 1 | # Commented out as unused, but possibly useful in future 2 | 3 | # from django.conf.urls import include, url 4 | # 5 | # from django.views.generic import ListView, TemplateView 6 | # 7 | # from .views import SlideAfterView 8 | # 9 | # urlpatterns = [ 10 | # url( r'^random$', TemplateView.as_view(template_name='spinner/random.html'), name='spinner_random' ), 11 | # url( r'^after$', SlideAfterView.as_view(), name='spinner_slide_after' ), 12 | # ] 13 | -------------------------------------------------------------------------------- /pombola/surveys/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/surveys/__init__.py -------------------------------------------------------------------------------- /pombola/surveys/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from sorl.thumbnail.admin import AdminImageMixin 4 | 5 | from pombola.surveys.models import Survey 6 | 7 | 8 | class SurveyAdmin(AdminImageMixin, admin.ModelAdmin): 9 | pass 10 | admin.site.register(Survey, SurveyAdmin) 11 | -------------------------------------------------------------------------------- /pombola/surveys/migrations/0002_auto_20190319_1101.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('surveys', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterModelOptions( 15 | name='survey', 16 | options={'get_latest_by': 'created'}, 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /pombola/surveys/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/surveys/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/surveys/models.py: -------------------------------------------------------------------------------- 1 | from sorl.thumbnail import ImageField 2 | 3 | from django.db import models 4 | 5 | 6 | class Survey(models.Model): 7 | label = models.CharField(max_length=200, help_text="For your reference only. This label isn't displayed on the public website.") 8 | image = ImageField(upload_to='surveys') 9 | url = models.URLField() 10 | created = models.DateTimeField(auto_now_add=True) 11 | updated = models.DateTimeField(auto_now=True) 12 | 13 | def __str__(self): 14 | return self.label 15 | 16 | class Meta: 17 | get_latest_by = "created" 18 | -------------------------------------------------------------------------------- /pombola/tasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/tasks/__init__.py -------------------------------------------------------------------------------- /pombola/tasks/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/tasks/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/tasks/templates/admin/tasks/task/change_form.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/change_form.html" %} 2 | 3 | {% block object-tools-items %} 4 | {{ block.super }} 5 |
  • Do this task
  • 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /pombola/tasks/templates/admin/tasks/task/change_list.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/change_list.html" %} 2 | 3 | 4 | {% block object-tools-items %} 5 | {{ block.super }} 6 |
  • Do pending tasks
  • 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /pombola/tasks/templates/admin/tasks/task/do_next.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/base_site.html" %} 2 | 3 | {% load i18n admin_modify %} 4 | 5 | {% block content %} 6 |
    7 | 8 |

    All tasks done

    9 | 10 |

    There are no more tasks to do - well done!

    11 | 12 |

    Note - there map be more tasks in the system, but none need doing right now.

    13 | 14 |
    15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /pombola/tasks/views.py: -------------------------------------------------------------------------------- 1 | # Create your views here. 2 | -------------------------------------------------------------------------------- /pombola/templates/500.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% block title %}Internal Server Error{% endblock %} 4 | 5 | {% block content %} 6 | 7 |

    Internal Server Error - 500

    8 | 9 |

    Something went wrong on the server. Please try again later...

    10 | 11 | {% endblock %} 12 | 13 | -------------------------------------------------------------------------------- /pombola/templates/_all_form_errors.html: -------------------------------------------------------------------------------- 1 | {% if form.non_field_errors %} 2 | {{ form.non_field_errors.as_text|cut:"* " }} 3 | {% else %} 4 | {% for field in form %} 5 | {{ field.errors.as_text|cut:"* " }} 6 | {% endfor %} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /pombola/templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "default_base.html" %} 2 | 3 | 4 | {% block title_suffix %} :: Generic Pombola Site {% endblock %} 5 | 6 | {% block css_headers %} 7 | {# Include some "white label" styling here #} 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /pombola/templates/candidate_data_attribution.html: -------------------------------------------------------------------------------- 1 | {# If there's an attribution required for candidate data, put it here #} 2 | -------------------------------------------------------------------------------- /pombola/templates/header.html: -------------------------------------------------------------------------------- 1 | {% include 'staging_header.html' %} 2 | 3 | {% include 'main_menu.html' %} 4 | 5 | {% include 'site_header.html' %} 6 | -------------------------------------------------------------------------------- /pombola/templates/main_menu.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /pombola/templates/mapit/index.html: -------------------------------------------------------------------------------- 1 | {% extends "mapit/base.html" %} 2 | 3 | {% block title %}MapIt{% endblock %} 4 | 5 | {% block content %} 6 | 7 |

    MapIt

    8 | 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /pombola/templates/menu_entries.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | 3 | Menu entries - for both desktop and mobile. 4 | 5 | We use the same menu structure twice - once in the header and once in the 6 | footer. However the footer does not require the drill down so there is a way 7 | to specifically request it. This is all here in a separate file so that we 8 | won't forget to keep the two in sync when doing edits. 9 | 10 | {% endcomment %} 11 | 12 |
  • Home
  • 13 | -------------------------------------------------------------------------------- /pombola/templates/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | 3 | {% if staging %} 4 | # This is a staging server, so we ask all search engines not to index it. 5 | Disallow: / 6 | {% endif %} 7 | 8 | Disallow: /feedback 9 | Disallow: /admin 10 | Disallow: /county-performance 11 | -------------------------------------------------------------------------------- /pombola/templates/site_header.html: -------------------------------------------------------------------------------- 1 | {% load staticfiles %} 2 | 3 | 19 | -------------------------------------------------------------------------------- /pombola/templates/site_header_logo.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /pombola/templates/site_header_search.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /pombola/templates/staging_header.html: -------------------------------------------------------------------------------- 1 | 2 | {% if settings.STAGING %} 3 |
    4 | This is a staging site - any data saved here may be deleted. 5 |
    6 | {% endif %} 7 | -------------------------------------------------------------------------------- /pombola/templates/twitter_widget.html: -------------------------------------------------------------------------------- 1 | {# Official Twitter widget, set up by twitter-embed.js #} 2 | 11 | -------------------------------------------------------------------------------- /pombola/templates/wikipedia_attribution.html: -------------------------------------------------------------------------------- 1 | {# See http://en.wikipedia.org/wiki/Wikipedia:Reusing_Wikipedia_content for more details #} 2 |

    3 | Some content on this page may come from 4 | Wikipedia 5 | under a 6 | CC BY-SA 3.0 License. 7 |

    8 | -------------------------------------------------------------------------------- /pombola/testing/__init__.py: -------------------------------------------------------------------------------- 1 | from selenium import PombolaSeleniumTestCase # noqa 2 | 3 | -------------------------------------------------------------------------------- /pombola/votematch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/votematch/__init__.py -------------------------------------------------------------------------------- /pombola/votematch/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/votematch/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/votematch/static/votematch/.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | -------------------------------------------------------------------------------- /pombola/votematch/static/votematch/css/desktop_tablet.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | /*------------------------------------*\ 3 | DESKTOP_TABLET.CSS 4 | \*------------------------------------*/ 5 | form.quiz-form ul.check-list { 6 | float: right; 7 | } 8 | -------------------------------------------------------------------------------- /pombola/votematch/static/votematch/images/quiz-smileys.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/votematch/static/votematch/images/quiz-smileys.jpg -------------------------------------------------------------------------------- /pombola/votematch/static/votematch/images/quiz-smileys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/votematch/static/votematch/images/quiz-smileys.png -------------------------------------------------------------------------------- /pombola/votematch/templates/votematch/base.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load staticfiles %} 3 | 4 | {% block css_headers %} 5 | {{ block.super }} 6 | 7 | 8 | {% endblock %} 9 | 10 | {% block breadcrumbs %} 11 | {# Hide bread crumbs on the home page. Insert blank div to add padding #} 12 | 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /pombola/votematch/templates/votematch/quiz_list.html: -------------------------------------------------------------------------------- 1 | {% extends 'votematch/base.html' %} 2 | 3 | {% block title %} 4 | Quizzes 5 | {% endblock %} 6 | 7 | {% block content %} 8 | 9 |

    Quizzes!

    10 | 11 |
      12 | {% for quiz in object_list %} 13 |
    • 14 | {{ quiz.name }} 15 |
    • 16 | {% endfor %} 17 |
    18 | 19 | {% endblock %} 20 | -------------------------------------------------------------------------------- /pombola/wordcloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/wordcloud/__init__.py -------------------------------------------------------------------------------- /pombola/wordcloud/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/wordcloud/management/__init__.py -------------------------------------------------------------------------------- /pombola/wordcloud/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/wordcloud/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/wordcloud/templates/wordcloud/wordcloud.html: -------------------------------------------------------------------------------- 1 |
    2 | 11 | -------------------------------------------------------------------------------- /pombola/wordcloud/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/wordcloud/tests/__init__.py -------------------------------------------------------------------------------- /pombola/wordcloud/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from django.views.generic.base import RedirectView 3 | 4 | from .views import wordcloud 5 | 6 | urlpatterns = [ 7 | url(r'^wordcloud/$', wordcloud, name='wordcloud'), 8 | url(r'^wordcloud/(?P\d+)/$', wordcloud, name='wordcloud'), 9 | 10 | # Temporary redirects of old urls 11 | url(r'^tagcloud/$', 12 | RedirectView.as_view(pattern_name='wordcloud', permanent=True)), 13 | url(r'^tagcloud/(?P\d+)/$', 14 | RedirectView.as_view(pattern_name='wordcloud', permanent=True)), 15 | ] 16 | -------------------------------------------------------------------------------- /pombola/writeinpublic/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/writeinpublic/__init__.py -------------------------------------------------------------------------------- /pombola/writeinpublic/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/writeinpublic/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/writeinpublic/templates/writeinpublic/flash_messages.html: -------------------------------------------------------------------------------- 1 | {% if messages %} 2 |
      3 | {% for message in messages %} 4 | {{ message }} 5 | {% endfor %} 6 |
    7 | {% endif %} 8 | -------------------------------------------------------------------------------- /pombola/writeinpublic/templates/writeinpublic/pending.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}WriteInPublic message pending{% endblock %} 4 | 5 | {% block content %} 6 | 7 | {% include 'writeinpublic/flash_messages.html' %} 8 | 9 |
    10 | 11 |

    Thanks for your message

    12 | 13 |

    It will appear on the site once it has been approved by the site admins.

    14 | 15 |
    16 | 17 | {% endblock %} 18 | 19 | {% block correct_this_page %} 20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /pombola/za_hansard/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/datejson.py: -------------------------------------------------------------------------------- 1 | import json 2 | from datetime import date 3 | 4 | 5 | class DateEncoder (json.JSONEncoder): 6 | 7 | def default(self, obj): 8 | if isinstance(obj, date): 9 | return obj.strftime('%Y-%m-%d') 10 | 11 | return json.JSONEncoder.default(self, obj) 12 | -------------------------------------------------------------------------------- /pombola/za_hansard/importers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/importers/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/management/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/management/commands/za_hansard_load_json.py: -------------------------------------------------------------------------------- 1 | from speeches.management.import_commands import ImportCommand 2 | from pombola.za_hansard.importers.import_json import ImportJson 3 | 4 | 5 | class Command(ImportCommand): 6 | importer_class = ImportJson 7 | document_extension = 'txt' 8 | -------------------------------------------------------------------------------- /pombola/za_hansard/management/commands/za_hansard_load_za_akomantoso.py: -------------------------------------------------------------------------------- 1 | from speeches.management.import_commands import ImportCommand 2 | from pombola.za_hansard.importers.import_za_akomantoso import ImportZAAkomaNtoso 3 | 4 | 5 | class Command(ImportCommand): 6 | importer_class = ImportZAAkomaNtoso 7 | document_extension = 'xml' 8 | -------------------------------------------------------------------------------- /pombola/za_hansard/migrations/0003_remove_unique_constraint_with_question_id_number.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('za_hansard', '0002_add_pmg_api_fields'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterUniqueTogether( 15 | name='question', 16 | unique_together=set([('written_number', 'house', 'year'), ('dp_number', 'house', 'year'), ( 17 | 'oral_number', 'house', 'year'), ('president_number', 'house', 'year')]), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/za_hansard/migrations/0004_auto_20190322_1856.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import migrations, models 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('za_hansard', '0003_remove_unique_constraint_with_question_id_number'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AlterField( 15 | model_name='source', 16 | name='document_number', 17 | field=models.CharField(unique=True, max_length=200), 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /pombola/za_hansard/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/migrations/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/__init__.py -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/answers_cache/content-php-category_id-248-documentstart-40-documentstart-50.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/answers_cache/content-php-category_id-248-documentstart-40-documentstart-50.html -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/0/1/2013-05-08-00010-NA080513: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/0/1/2013-05-08-00010-NA080513 -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/502914_1.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/502914_1.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/520729_1.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/520729_1.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/EPC110512.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/EPC110512.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/NA200912.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/NA200912.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/NA210212.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/NA210212.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/hansard/NA290307.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/hansard/NA290307.doc -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/184530_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/184530_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/458606_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/458606_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/517147_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/517147_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/529998_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/529998_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/548302_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/548302_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/559662_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/559662_1.pdf -------------------------------------------------------------------------------- /pombola/za_hansard/tests/test_inputs/questions/answer_1.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola/za_hansard/tests/test_inputs/questions/answer_1.doc -------------------------------------------------------------------------------- /pombola_sayit/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola_sayit/__init__.py -------------------------------------------------------------------------------- /pombola_sayit/management/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola_sayit/management/__init__.py -------------------------------------------------------------------------------- /pombola_sayit/management/commands/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola_sayit/management/commands/__init__.py -------------------------------------------------------------------------------- /pombola_sayit/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mysociety/pombola/cb0f4a75aea91a471bb8b64921c80f19adf1a9f1/pombola_sayit/migrations/__init__.py -------------------------------------------------------------------------------- /pombola_sayit/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | from pombola.core.models import Person 4 | from speeches.models import Speaker 5 | 6 | 7 | class PombolaSayItJoin(models.Model): 8 | 9 | """This model provides a join table between Pombola and SsayIt people""" 10 | 11 | pombola_person = models.OneToOneField(Person, related_name='sayit_link') 12 | sayit_speaker = models.OneToOneField(Speaker, related_name='pombola_link') 13 | -------------------------------------------------------------------------------- /run_selenium_tests.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # abort on any error 4 | set -e 5 | 6 | find . -name '*.pyc' -delete 7 | 8 | # run our tests 9 | ./manage.py test --selenium-only \ 10 | core \ 11 | feedback 12 | -------------------------------------------------------------------------------- /web/googlee8d580ff44c6001c.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlee8d580ff44c6001c.html 2 | -------------------------------------------------------------------------------- /web/static/test.txt: -------------------------------------------------------------------------------- 1 | test 2 | --------------------------------------------------------------------------------