├── .cfignore ├── .circleci └── config.yml ├── .coveragerc ├── .cspell └── custom-dictionary-workspace.txt ├── .eslintignore ├── .eslintrc ├── .flake8 ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── feature-request.md │ └── task-issue.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .hound.yml ├── .jshintignore ├── .jshintrc ├── .pre-commit-config.yaml ├── .prettierignore ├── .prettierrc ├── .puppeteerrc.cjs ├── .stylelintrc.json ├── CONTRIBUTING.md ├── LICENSE.md ├── Procfile ├── README.md ├── babel.config.json ├── bin ├── cf_env_setup.sh └── run.sh ├── code-gov-config.json ├── conftest.py ├── fec ├── .coveragerc ├── data │ ├── __init__.py │ ├── admin.py │ ├── api_caller.py │ ├── apps.py │ ├── constants.py │ ├── ecfr_caller.py │ ├── jinja2.py │ ├── legal_test_data.py │ ├── templates │ │ ├── browse-data.jinja │ │ ├── candidates-single.jinja │ │ ├── committees-single.jinja │ │ ├── datatable.jinja │ │ ├── election-lookup.jinja │ │ ├── elections.jinja │ │ ├── house-senate-overview.jinja │ │ ├── landing.jinja │ │ ├── layouts │ │ │ ├── main.jinja │ │ │ ├── sidebar-page.jinja │ │ │ └── widgets.jinja │ │ ├── macros │ │ │ ├── breadcrumbs.jinja │ │ │ ├── bythenumbers.jinja │ │ │ ├── chart-committee-overviews.jinja │ │ │ ├── cycle-select.jinja │ │ │ ├── datatables.jinja │ │ │ ├── disclaimer.jinja │ │ │ ├── document.jinja │ │ │ ├── entity-pages.jinja │ │ │ ├── filters │ │ │ │ ├── checkbox.jinja │ │ │ │ ├── committee-types.jinja │ │ │ │ ├── contributor-states.jinja │ │ │ │ ├── date.jinja │ │ │ │ ├── districts.jinja │ │ │ │ ├── dropdown-json.jinja │ │ │ │ ├── election-filter.jinja │ │ │ │ ├── filing-frequency.jinja │ │ │ │ ├── ie-reports.jinja │ │ │ │ ├── keyword-proximity.jinja │ │ │ │ ├── office-sought.jinja │ │ │ │ ├── parties.jinja │ │ │ │ ├── range.jinja │ │ │ │ ├── report-type.jinja │ │ │ │ ├── states.jinja │ │ │ │ ├── support-oppose.jinja │ │ │ │ ├── text.jinja │ │ │ │ ├── typeahead-filter.jinja │ │ │ │ ├── version-status.jinja │ │ │ │ └── years.jinja │ │ │ ├── missing-transferred.jinja │ │ │ ├── missing.jinja │ │ │ ├── null.jinja │ │ │ ├── page-header.jinja │ │ │ ├── reaction-box.jinja │ │ │ ├── reporting-info.jinja │ │ │ ├── search.jinja │ │ │ ├── tables.jinja │ │ │ └── widgets.jinja │ │ ├── partials │ │ │ ├── allocated-federal-nonfederal-disbursements-filter.jinja │ │ │ ├── audit-filter.jinja │ │ │ ├── browse-data │ │ │ │ ├── bulk-data.jinja │ │ │ │ ├── candidates.jinja │ │ │ │ ├── committees.jinja │ │ │ │ ├── external.jinja │ │ │ │ ├── filings-reports.jinja │ │ │ │ ├── historical.jinja │ │ │ │ ├── loans-debts.jinja │ │ │ │ ├── raising.jinja │ │ │ │ └── spending.jinja │ │ │ ├── candidate │ │ │ │ ├── about-candidate.jinja │ │ │ │ ├── filings-tab.jinja │ │ │ │ ├── financial-summary.jinja │ │ │ │ ├── other-spending-tab.jinja │ │ │ │ ├── raising.jinja │ │ │ │ └── spending.jinja │ │ │ ├── candidates-filter.jinja │ │ │ ├── candidates-office-filter.jinja │ │ │ ├── committee-totals-house-senate.jinja │ │ │ ├── committee-totals-ie-only.jinja │ │ │ ├── committee-totals-pac-party.jinja │ │ │ ├── committee-totals-presidential.jinja │ │ │ ├── committee │ │ │ │ ├── about-committee.jinja │ │ │ │ ├── filings.jinja │ │ │ │ ├── financial-summary.jinja │ │ │ │ ├── raising.jinja │ │ │ │ └── spending.jinja │ │ │ ├── committees-filter.jinja │ │ │ ├── communication-costs-filter.jinja │ │ │ ├── datatable-modal.jinja │ │ │ ├── debts-filter.jinja │ │ │ ├── disbursements-filter.jinja │ │ │ ├── electioneering-communications-filter.jinja │ │ │ ├── elections │ │ │ │ ├── about-this-election-tab.jinja │ │ │ │ ├── election-data-and-compliance-tab.jinja │ │ │ │ ├── election-profile-cards.jinja │ │ │ │ ├── other-spending-tab.jinja │ │ │ │ └── sidebar-nav.jinja │ │ │ ├── filings-filter.jinja │ │ │ ├── filters.jinja │ │ │ ├── filters │ │ │ │ ├── active-candidates.jinja │ │ │ │ ├── audit-committee-types.jinja │ │ │ │ ├── efiling.jinja │ │ │ │ ├── form-type.jinja │ │ │ │ ├── primary-general.jinja │ │ │ │ ├── report-type.jinja │ │ │ │ └── unique-receipts.jinja │ │ │ ├── google-tag-manager-noscript.jinja │ │ │ ├── google-tag-manager-script.jinja │ │ │ ├── hero.jinja │ │ │ ├── house-senate-overview │ │ │ │ ├── section-contributions-across-time.jinja │ │ │ │ ├── section-summary.jinja │ │ │ │ └── section-totals-for-all-elections.jinja │ │ │ ├── independent-expenditures-filter.jinja │ │ │ ├── individual-contributions-filter.jinja │ │ │ ├── loading-tab.jinja │ │ │ ├── loans-filter.jinja │ │ │ ├── meta-tags-preconnects.jinja │ │ │ ├── meta-tags.jinja │ │ │ ├── national-party-account-disbursements-filter.jinja │ │ │ ├── national-party-account-receipts-filter.jinja │ │ │ ├── operating-expenditures-filter.jinja │ │ │ ├── pac-party-filter.jinja │ │ │ ├── party-coordinated-expenditures-filter.jinja │ │ │ ├── receipts-filter.jinja │ │ │ ├── reports-filter.jinja │ │ │ ├── rulemakings-filter.jinja │ │ │ ├── warnings.jinja │ │ │ └── widgets │ │ │ │ └── contributions-by-state.jinja │ │ ├── pres-finance-map.jinja │ │ ├── raising-bythenumbers.jinja │ │ ├── search-results.jinja │ │ ├── spending-bythenumbers.jinja │ │ └── widgets │ │ │ ├── aggregate-totals.jinja │ │ │ ├── contributions-by-state.jinja │ │ │ └── pres-finance-map.jinja │ ├── templatetags │ │ ├── __init__.py │ │ └── filters.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_candidate.py │ │ ├── test_committee.py │ │ ├── test_datatables.py │ │ ├── test_legal_search.py │ │ └── test_utils.py │ ├── urls.py │ ├── utils.py │ ├── views.py │ └── views_datatables.py ├── extend_admin │ └── wagtailadmin │ │ ├── base.html │ │ └── widgets │ │ └── chooser.html ├── fec │ ├── __init__.py │ ├── constants.py │ ├── context.py │ ├── draftail │ │ ├── anchor.py │ │ ├── glossary.py │ │ └── sansserif.py │ ├── forms.py │ ├── middleware.py │ ├── settings │ │ ├── __init__.py │ │ ├── base.py │ │ ├── dev.py │ │ ├── env.py │ │ └── production.py │ ├── slack.py │ ├── static │ │ ├── css │ │ │ └── customize-editor.css │ │ ├── fonts │ │ │ ├── fec-currencymono-bold.eot │ │ │ ├── fec-currencymono-bold.ttf │ │ │ ├── fec-currencymono-bold.woff │ │ │ ├── fec-currencymono-bold.woff2 │ │ │ ├── fec-currencymono-bolditalic.eot │ │ │ ├── fec-currencymono-bolditalic.ttf │ │ │ ├── fec-currencymono-bolditalic.woff │ │ │ ├── fec-currencymono-bolditalic.woff2 │ │ │ ├── fec-currencymono-italic.eot │ │ │ ├── fec-currencymono-italic.ttf │ │ │ ├── fec-currencymono-italic.woff │ │ │ ├── fec-currencymono-italic.woff2 │ │ │ ├── fec-currencymono-regular.eot │ │ │ ├── fec-currencymono-regular.ttf │ │ │ ├── fec-currencymono-regular.woff │ │ │ ├── fec-currencymono-regular.woff2 │ │ │ ├── gandhiserif-bold.eot │ │ │ ├── gandhiserif-bold.ttf │ │ │ ├── gandhiserif-bold.woff │ │ │ ├── gandhiserif-bold.woff2 │ │ │ ├── gandhiserif-bolditalic.eot │ │ │ ├── gandhiserif-bolditalic.ttf │ │ │ ├── gandhiserif-bolditalic.woff │ │ │ ├── gandhiserif-bolditalic.woff2 │ │ │ ├── gandhiserif-italic.eot │ │ │ ├── gandhiserif-italic.ttf │ │ │ ├── gandhiserif-italic.woff │ │ │ ├── gandhiserif-italic.woff2 │ │ │ ├── gandhiserif-regular.eot │ │ │ ├── gandhiserif-regular.ttf │ │ │ ├── gandhiserif-regular.woff │ │ │ ├── gandhiserif-regular.woff2 │ │ │ ├── karla-bold.eot │ │ │ ├── karla-bold.ttf │ │ │ ├── karla-bold.woff │ │ │ ├── karla-bold.woff2 │ │ │ ├── karla-regular.eot │ │ │ ├── karla-regular.ttf │ │ │ ├── karla-regular.woff │ │ │ └── karla-regular.woff2 │ │ ├── icons │ │ │ ├── icon-template.scss │ │ │ ├── input │ │ │ │ ├── all-files.svg │ │ │ │ ├── arrow-down-border.svg │ │ │ │ ├── arrow-down-circle.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-left-border.svg │ │ │ │ ├── arrow-left-circle.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-right-border.svg │ │ │ │ ├── arrow-right-circle.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── arrow-target.svg │ │ │ │ ├── arrow-up-border.svg │ │ │ │ ├── arrow-up-circle.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── bang-circle.svg │ │ │ │ ├── bang.svg │ │ │ │ ├── bluesky-circle.svg │ │ │ │ ├── book.svg │ │ │ │ ├── bulk.svg │ │ │ │ ├── cal-add.svg │ │ │ │ ├── calculator.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── candidate.svg │ │ │ │ ├── cfr.svg │ │ │ │ ├── check-circle-outline.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check.svg │ │ │ │ ├── checklist-2.svg │ │ │ │ ├── checklist.svg │ │ │ │ ├── clipboard-checklist.svg │ │ │ │ ├── clock-reverse.svg │ │ │ │ ├── committee-audit.svg │ │ │ │ ├── committee.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── dash.svg │ │ │ │ ├── data-flag.svg │ │ │ │ ├── decree.svg │ │ │ │ ├── direction-sign.svg │ │ │ │ ├── disbursement.svg │ │ │ │ ├── document.svg │ │ │ │ ├── download.svg │ │ │ │ ├── election.svg │ │ │ │ ├── example-document.svg │ │ │ │ ├── exclamation-bubble.svg │ │ │ │ ├── facebook-circle.svg │ │ │ │ ├── fax.svg │ │ │ │ ├── file-box.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── financial-document.svg │ │ │ │ ├── folder-with-person.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── github-circle.svg │ │ │ │ ├── graph-horizontal-ordered.svg │ │ │ │ ├── graph-horizontal-unordered.svg │ │ │ │ ├── graph.svg │ │ │ │ ├── grid.svg │ │ │ │ ├── hand-envelope.svg │ │ │ │ ├── hand-money.svg │ │ │ │ ├── individual-contributions.svg │ │ │ │ ├── info-circle-outline.svg │ │ │ │ ├── info-circle.svg │ │ │ │ ├── list.svg │ │ │ │ ├── magnifying-glass-arrow.svg │ │ │ │ ├── magnifying-glass.svg │ │ │ │ ├── mallet.svg │ │ │ │ ├── map-pin.svg │ │ │ │ ├── map-us-states.svg │ │ │ │ ├── menu.svg │ │ │ │ ├── minus-circle.svg │ │ │ │ ├── moving-envelope-circle.svg │ │ │ │ ├── moving-envelope.svg │ │ │ │ ├── notebook.svg │ │ │ │ ├── org-chart.svg │ │ │ │ ├── papers.svg │ │ │ │ ├── person-location.svg │ │ │ │ ├── piggy-bank.svg │ │ │ │ ├── play-button.svg │ │ │ │ ├── plus-circle 2.svg │ │ │ │ ├── plus-circle.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── point-down-circle.svg │ │ │ │ ├── pop-up.svg │ │ │ │ ├── question-bubble.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── scale.svg │ │ │ │ ├── share.svg │ │ │ │ ├── shield-scales.svg │ │ │ │ ├── shield.svg │ │ │ │ ├── signal.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── speaker.svg │ │ │ │ ├── stamp-circle.svg │ │ │ │ ├── star.svg │ │ │ │ ├── subsection-doc.svg │ │ │ │ ├── table.svg │ │ │ │ ├── telephone-circle.svg │ │ │ │ ├── timer.svg │ │ │ │ ├── training.svg │ │ │ │ ├── twitter-circle.svg │ │ │ │ ├── two-candidates.svg │ │ │ │ ├── updates.svg │ │ │ │ ├── usc.svg │ │ │ │ ├── x-circle.svg │ │ │ │ ├── x-twitter-circle.svg │ │ │ │ ├── x.svg │ │ │ │ └── youtube-circle.svg │ │ │ └── output │ │ │ │ ├── all-files.svg │ │ │ │ ├── arrow-down-border.svg │ │ │ │ ├── arrow-down-circle.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-left-border.svg │ │ │ │ ├── arrow-left-circle.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-right-border.svg │ │ │ │ ├── arrow-right-circle.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── arrow-target.svg │ │ │ │ ├── arrow-up-border.svg │ │ │ │ ├── arrow-up-circle.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── bang-circle.svg │ │ │ │ ├── bang.svg │ │ │ │ ├── bluesky-circle.svg │ │ │ │ ├── book.svg │ │ │ │ ├── bulk.svg │ │ │ │ ├── cal-add.svg │ │ │ │ ├── calculator.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── candidate.svg │ │ │ │ ├── cfr.svg │ │ │ │ ├── check-circle-outline.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check.svg │ │ │ │ ├── checklist-2.svg │ │ │ │ ├── checklist.svg │ │ │ │ ├── clipboard-checklist.svg │ │ │ │ ├── clock-reverse.svg │ │ │ │ ├── committee-audit.svg │ │ │ │ ├── committee.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── dash.svg │ │ │ │ ├── data-flag.svg │ │ │ │ ├── decree.svg │ │ │ │ ├── direction-sign.svg │ │ │ │ ├── disbursement.svg │ │ │ │ ├── document.svg │ │ │ │ ├── download.svg │ │ │ │ ├── election.svg │ │ │ │ ├── example-document.svg │ │ │ │ ├── exclamation-bubble.svg │ │ │ │ ├── facebook-circle.svg │ │ │ │ ├── fax.svg │ │ │ │ ├── file-box.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── financial-document.svg │ │ │ │ ├── folder-with-person.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── github-circle.svg │ │ │ │ ├── graph-horizontal-ordered.svg │ │ │ │ ├── graph-horizontal-unordered.svg │ │ │ │ ├── graph.svg │ │ │ │ ├── grid.svg │ │ │ │ ├── hand-envelope.svg │ │ │ │ ├── hand-money.svg │ │ │ │ ├── individual-contributions.svg │ │ │ │ ├── info-circle-outline.svg │ │ │ │ ├── info-circle.svg │ │ │ │ ├── list.svg │ │ │ │ ├── magnifying-glass-arrow.svg │ │ │ │ ├── magnifying-glass.svg │ │ │ │ ├── mallet.svg │ │ │ │ ├── map-pin.svg │ │ │ │ ├── map-us-states.svg │ │ │ │ ├── menu.svg │ │ │ │ ├── minus-circle.svg │ │ │ │ ├── moving-envelope-circle.svg │ │ │ │ ├── moving-envelope.svg │ │ │ │ ├── notebook.svg │ │ │ │ ├── org-chart.svg │ │ │ │ ├── papers.svg │ │ │ │ ├── person-location.svg │ │ │ │ ├── piggy-bank.svg │ │ │ │ ├── play-button.svg │ │ │ │ ├── plus-circle.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── point-down-circle.svg │ │ │ │ ├── pop-up.svg │ │ │ │ ├── question-bubble.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── scale.svg │ │ │ │ ├── share.svg │ │ │ │ ├── shield-scales.svg │ │ │ │ ├── shield.svg │ │ │ │ ├── signal.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── speaker.svg │ │ │ │ ├── stamp-circle.svg │ │ │ │ ├── star.svg │ │ │ │ ├── subsection-doc.svg │ │ │ │ ├── table.svg │ │ │ │ ├── telephone-circle.svg │ │ │ │ ├── timer.svg │ │ │ │ ├── training.svg │ │ │ │ ├── twitter-circle.svg │ │ │ │ ├── two-candidates.svg │ │ │ │ ├── updates.svg │ │ │ │ ├── usc.svg │ │ │ │ ├── x-circle.svg │ │ │ │ ├── x-twitter-circle.svg │ │ │ │ ├── x.svg │ │ │ │ └── youtube-circle.svg │ │ ├── img │ │ │ ├── Homepage-hero-image-flag.jpg │ │ │ ├── TV-Gray-Wall-Only-850.png │ │ │ ├── angle-arrow-down-primary.png │ │ │ ├── angle-arrow-down-primary.svg │ │ │ ├── angle-arrow-up-primary.png │ │ │ ├── angle-arrow-up-primary.svg │ │ │ ├── example-circle.svg │ │ │ ├── favicon │ │ │ │ ├── data │ │ │ │ │ ├── favicon-120x120.png │ │ │ │ │ ├── favicon-152x152.png │ │ │ │ │ ├── favicon-167x167.png │ │ │ │ │ ├── favicon-180x180.png │ │ │ │ │ └── favicon-192x192.png │ │ │ │ ├── favicon-16x16.png │ │ │ │ ├── favicon-32x32.png │ │ │ │ ├── favicon-full.svg │ │ │ │ ├── favicon-small.svg │ │ │ │ ├── favicon.ico │ │ │ │ ├── general │ │ │ │ │ ├── favicon-120x120.png │ │ │ │ │ ├── favicon-152x152.png │ │ │ │ │ ├── favicon-167x167.png │ │ │ │ │ ├── favicon-180x180.png │ │ │ │ │ ├── favicon-192x192.png │ │ │ │ │ ├── favicon-200x200.png │ │ │ │ │ ├── favicon-48x48.png │ │ │ │ │ └── favicon.svg │ │ │ │ ├── help │ │ │ │ │ ├── favicon-120x120.png │ │ │ │ │ ├── favicon-152x152.png │ │ │ │ │ ├── favicon-167x167.png │ │ │ │ │ ├── favicon-180x180.png │ │ │ │ │ └── favicon-192x192.png │ │ │ │ └── legal │ │ │ │ │ ├── favicon-120x120.png │ │ │ │ │ ├── favicon-152x152.png │ │ │ │ │ ├── favicon-167x167.png │ │ │ │ │ ├── favicon-180x180.png │ │ │ │ │ └── favicon-192x192.png │ │ │ ├── feature--candidate-support.jpg │ │ │ ├── feature--compare-candidates.jpg │ │ │ ├── feature--contributions-narrow.jpg │ │ │ ├── feature--contributions.jpg │ │ │ ├── feature--data.png │ │ │ ├── feature--dates.jpg │ │ │ ├── feature--filing.jpg │ │ │ ├── feature--forms.jpg │ │ │ ├── feature--legal.png │ │ │ ├── feature--reporting.png │ │ │ ├── feature--training.jpg │ │ │ ├── fec-office.jpg │ │ │ ├── financial-document-circle.svg │ │ │ ├── headshot--goodman.jpg │ │ │ ├── headshot--hunter.jpg │ │ │ ├── headshot--no-photo.jpg │ │ │ ├── headshot--petersen.jpg │ │ │ ├── headshot--walther.jpg │ │ │ ├── headshot--weintraub.jpg │ │ │ ├── hero-about.jpg │ │ │ ├── hero-data.jpg │ │ │ ├── hero-home.jpg │ │ │ ├── hero-legal.jpg │ │ │ ├── hero-oig.png │ │ │ ├── hero-press.jpg │ │ │ ├── hero-registration.jpg │ │ │ ├── i-bluesky--primary.png │ │ │ ├── i-bluesky--primary.svg │ │ │ ├── i-calendar--secondary-contrast.svg │ │ │ ├── i-calendar-circle.svg │ │ │ ├── i-complex--calendar.png │ │ │ ├── i-complex--calendar.svg │ │ │ ├── i-complex--data--gray-lightest.svg │ │ │ ├── i-complex--data.png │ │ │ ├── i-complex--data.svg │ │ │ ├── i-complex--legal--gray-lightest.svg │ │ │ ├── i-complex--legal.png │ │ │ ├── i-complex--legal.svg │ │ │ ├── i-complex--regreport--gray-lightest.svg │ │ │ ├── i-complex--regreport.png │ │ │ ├── i-complex--regreport.svg │ │ │ ├── i-document--secondary-contrast.svg │ │ │ ├── i-document-circle.svg │ │ │ ├── i-elections--neutral.svg │ │ │ ├── i-elections--primary-contrast.svg │ │ │ ├── i-elections--primary.png │ │ │ ├── i-elections--primary.svg │ │ │ ├── i-email--inverse.png │ │ │ ├── i-email--inverse.svg │ │ │ ├── i-email--primary.png │ │ │ ├── i-email--primary.svg │ │ │ ├── i-github--inverse.png │ │ │ ├── i-github--inverse.svg │ │ │ ├── i-github--primary.png │ │ │ ├── i-github--primary.svg │ │ │ ├── i-graph--primary-contrast.svg │ │ │ ├── i-mail--primary.png │ │ │ ├── i-mail--primary.svg │ │ │ ├── i-map--primary.svg │ │ │ ├── i-overviews--primary.svg │ │ │ ├── i-phone--primary.png │ │ │ ├── i-phone--primary.svg │ │ │ ├── i-table--neutral.svg │ │ │ ├── i-table--primary-contrast.svg │ │ │ ├── i-table--primary.svg │ │ │ ├── i-twitter--primary.png │ │ │ ├── i-twitter--primary.svg │ │ │ ├── i-x-twitter--primary.png │ │ │ ├── i-x-twitter--primary.svg │ │ │ ├── icon-dot-gov.svg │ │ │ ├── icon-https.svg │ │ │ ├── loading--primary.gif │ │ │ ├── loading-ellipsis-gray.gif │ │ │ ├── loading-ellipsis.gif │ │ │ ├── loading.gif │ │ │ ├── logo-oig-color.svg │ │ │ ├── map-chart-icon.svg │ │ │ ├── map-election-search-default.png │ │ │ ├── map-us-states-primary-contrast.svg │ │ │ ├── new-tv-bkgd-wide.png │ │ │ ├── print-logo.png │ │ │ ├── reaction-confusing.svg │ │ │ ├── reaction-informative.svg │ │ │ ├── reaction-not-interested.svg │ │ │ ├── seal--cropped.png │ │ │ ├── seal--cropped.svg │ │ │ ├── seal--inverse.png │ │ │ ├── seal--inverse.svg │ │ │ ├── seal.png │ │ │ ├── seal.svg │ │ │ ├── social │ │ │ │ ├── fec-data.png │ │ │ │ ├── fec-help.png │ │ │ │ ├── fec-legal.png │ │ │ │ ├── fec-logo.png │ │ │ │ ├── fec-microphone.png │ │ │ │ ├── fec-microphones.png │ │ │ │ ├── fec-pen.png │ │ │ │ └── fec-seal.png │ │ │ ├── thumbnail--ao-brochure.png │ │ │ ├── thumbnail--ao-statistics.png │ │ │ ├── thumbnail--audio.png │ │ │ ├── thumbnail--candidates.jpg │ │ │ ├── thumbnail--captions.png │ │ │ ├── thumbnail--citizens-guide-brochure.png │ │ │ ├── thumbnail--enforcement-process.png │ │ │ ├── thumbnail--feca.jpg │ │ │ ├── thumbnail--filing-a-complaint.png │ │ │ ├── thumbnail--nonconnected.jpg │ │ │ ├── thumbnail--orgs.jpg │ │ │ ├── thumbnail--parties.jpg │ │ │ ├── thumbnail--pdf-guide.png │ │ │ ├── thumbnail--video.png │ │ │ ├── tooltip-point.svg │ │ │ ├── us_flag_small.png │ │ │ ├── wordmark.png │ │ │ └── wordmark.svg │ │ ├── js │ │ │ ├── data-init.js │ │ │ ├── data │ │ │ │ ├── create_districts_topo.sh │ │ │ │ ├── districts.json │ │ │ │ ├── merge_shape_files.py │ │ │ │ ├── notes.md │ │ │ │ ├── state.json │ │ │ │ ├── stateDistricts.json │ │ │ │ ├── terms.json │ │ │ │ └── us-states-10m.json │ │ │ ├── draftail │ │ │ │ ├── Anchor.js │ │ │ │ ├── App.js │ │ │ │ ├── Glossary.js │ │ │ │ ├── SansSerif.js │ │ │ │ ├── components │ │ │ │ │ └── Modal.js │ │ │ │ └── utils.js │ │ │ ├── global.js │ │ │ ├── init.js │ │ │ ├── legal-search-ao.js │ │ │ ├── legal.js │ │ │ ├── modules │ │ │ │ ├── accessibility.js │ │ │ │ ├── analytics.js │ │ │ │ ├── audit-category-sub-category.js │ │ │ │ ├── audit_tags.js │ │ │ │ ├── calc-admin-fines-logic.js │ │ │ │ ├── calc-admin-fines-modal.js │ │ │ │ ├── calc-admin-fines.js │ │ │ │ ├── calendar-helpers.js │ │ │ │ ├── calendar-list-view.js │ │ │ │ ├── calendar-tooltip.js │ │ │ │ ├── calendar.js │ │ │ │ ├── column-helpers.js │ │ │ │ ├── columns.js │ │ │ │ ├── container-queries.js │ │ │ │ ├── cycle-select.js │ │ │ │ ├── data-map.js │ │ │ │ ├── decoders.js │ │ │ │ ├── download.js │ │ │ │ ├── dropdowns.js │ │ │ │ ├── election-form.js │ │ │ │ ├── election-lookup.js │ │ │ │ ├── election-map.js │ │ │ │ ├── election-search.js │ │ │ │ ├── election-summary.js │ │ │ │ ├── election-utils.js │ │ │ │ ├── events.js │ │ │ │ ├── fec-timeline.js │ │ │ │ ├── feedback.js │ │ │ │ ├── filings.js │ │ │ │ ├── filters-event.js │ │ │ │ ├── filters │ │ │ │ │ ├── checkbox-filter.js │ │ │ │ │ ├── date-filter.js │ │ │ │ │ ├── election-filter.js │ │ │ │ │ ├── filter-base.js │ │ │ │ │ ├── filter-control.js │ │ │ │ │ ├── filter-panel.js │ │ │ │ │ ├── filter-set.js │ │ │ │ │ ├── filter-tags.js │ │ │ │ │ ├── filter-typeahead.js │ │ │ │ │ ├── keyword-proximity-filter.js │ │ │ │ │ ├── multi-filter.js │ │ │ │ │ ├── range-filter.js │ │ │ │ │ ├── select-filter.js │ │ │ │ │ ├── text-filter.js │ │ │ │ │ ├── toggle-filter.js │ │ │ │ │ ├── typeahead-filter.js │ │ │ │ │ └── validate-date-filters.js │ │ │ │ ├── fips.js │ │ │ │ ├── form-nav.js │ │ │ │ ├── helpers.js │ │ │ │ ├── home-events.js │ │ │ │ ├── keyword-modal.js │ │ │ │ ├── line-chart-committees.js │ │ │ │ ├── line-chart.js │ │ │ │ ├── listeners.js │ │ │ │ ├── load-recaptcha.js │ │ │ │ ├── maps-event.js │ │ │ │ ├── maps.js │ │ │ │ ├── other-spending-totals.js │ │ │ │ ├── party-money-bars.js │ │ │ │ ├── performance.js │ │ │ │ ├── search.js │ │ │ │ ├── site-nav.js │ │ │ │ ├── skip-nav.js │ │ │ │ ├── statistical-summary-archive.js │ │ │ │ ├── table-columns.js │ │ │ │ ├── table-panels.js │ │ │ │ ├── table-switcher.js │ │ │ │ ├── tables.js │ │ │ │ ├── toc.js │ │ │ │ ├── toggle.js │ │ │ │ ├── top-entities.js │ │ │ │ ├── top-list.js │ │ │ │ ├── typeahead.js │ │ │ │ └── urls.js │ │ │ ├── pages │ │ │ │ ├── bythenumbers.js │ │ │ │ ├── calendar-page.js │ │ │ │ ├── candidate-single.js │ │ │ │ ├── committee-single.js │ │ │ │ ├── contact-form.js │ │ │ │ ├── data-browse-data.js │ │ │ │ ├── data-landing.js │ │ │ │ ├── datatable-allocated-federal-nonfederal-disbursements.js │ │ │ │ ├── datatable-audit.js │ │ │ │ ├── datatable-candidates-office.js │ │ │ │ ├── datatable-candidates.js │ │ │ │ ├── datatable-committees.js │ │ │ │ ├── datatable-communication-costs.js │ │ │ │ ├── datatable-debts.js │ │ │ │ ├── datatable-disbursements.js │ │ │ │ ├── datatable-electioneering-communications.js │ │ │ │ ├── datatable-filings.js │ │ │ │ ├── datatable-independent-expenditures.js │ │ │ │ ├── datatable-individual-contributions.js │ │ │ │ ├── datatable-loans.js │ │ │ │ ├── datatable-national-party-account-disbursements.js │ │ │ │ ├── datatable-national-party-account-receipts.js │ │ │ │ ├── datatable-operating-expenditures.js │ │ │ │ ├── datatable-pac-party.js │ │ │ │ ├── datatable-party-coordinated-expenditures.js │ │ │ │ ├── datatable-receipts.js │ │ │ │ ├── datatable-reports.js │ │ │ │ ├── datatable-rulemakings.js │ │ │ │ ├── election-lookup.js │ │ │ │ ├── elections.js │ │ │ │ ├── home.js │ │ │ │ ├── house-senate-overview-across-time.js │ │ │ │ ├── house-senate-overview-summary.js │ │ │ │ ├── house-senate-overview-totals.js │ │ │ │ ├── legal.js │ │ │ │ ├── reaction-box.js │ │ │ │ ├── reporting-dates-tables.js │ │ │ │ ├── statistical-summary-archive.js │ │ │ │ └── statistical-summary.js │ │ │ ├── templates │ │ │ │ ├── allocated-federal-nonfederal-disbursements.hbs │ │ │ │ ├── audit_tags.hbs │ │ │ │ ├── calendar │ │ │ │ │ ├── details.hbs │ │ │ │ │ ├── download.hbs │ │ │ │ │ ├── events.hbs │ │ │ │ │ ├── listToggles.hbs │ │ │ │ │ └── subscribe.hbs │ │ │ │ ├── candidateStateMap.hbs │ │ │ │ ├── candidates.hbs │ │ │ │ ├── committees.hbs │ │ │ │ ├── communication-costs.hbs │ │ │ │ ├── comparison.hbs │ │ │ │ ├── coverageEndDate.hbs │ │ │ │ ├── debts.hbs │ │ │ │ ├── disbursements.hbs │ │ │ │ ├── districts.hbs │ │ │ │ ├── download │ │ │ │ │ ├── container.hbs │ │ │ │ │ └── item.hbs │ │ │ │ ├── election-cycles.hbs │ │ │ │ ├── electionCycle.hbs │ │ │ │ ├── electionCycles.hbs │ │ │ │ ├── electionNoResults.hbs │ │ │ │ ├── electionOffices.hbs │ │ │ │ ├── electionResult.hbs │ │ │ │ ├── electionZipWarning.hbs │ │ │ │ ├── electioneering-communications.hbs │ │ │ │ ├── feedback.hbs │ │ │ │ ├── homepage │ │ │ │ │ └── events-and-deadlines.hbs │ │ │ │ ├── independent-expenditures.hbs │ │ │ │ ├── loans.hbs │ │ │ │ ├── national-party-account-disbursements.hbs │ │ │ │ ├── national-party-account-receipts.hbs │ │ │ │ ├── pac-party.hbs │ │ │ │ ├── party-coordinated-expenditures.hbs │ │ │ │ ├── receipts.hbs │ │ │ │ ├── reports │ │ │ │ │ ├── candidate.hbs │ │ │ │ │ ├── ie-only.hbs │ │ │ │ │ ├── pac.hbs │ │ │ │ │ └── reportType.hbs │ │ │ │ ├── tables │ │ │ │ │ ├── exportWidget.hbs │ │ │ │ │ ├── noData.hbs │ │ │ │ │ └── title.hbs │ │ │ │ ├── top-entity-row.hbs │ │ │ │ └── upcomingPresidential.hbs │ │ │ ├── vendor │ │ │ │ ├── beautify-html.js │ │ │ │ ├── jquery.htmlClean.min.js │ │ │ │ └── tablist.js │ │ │ └── widgets │ │ │ │ ├── aggregate-totals-box.js │ │ │ │ ├── aggregate-totals.js │ │ │ │ ├── contributions-by-state-box.js │ │ │ │ ├── contributions-by-state.js │ │ │ │ ├── pres-finance-map-box.js │ │ │ │ └── widget-vars.js │ │ └── scss │ │ │ ├── _fonts.scss │ │ │ ├── _functions.scss │ │ │ ├── _global-common.scss │ │ │ ├── _global.scss │ │ │ ├── _grid.scss │ │ │ ├── _icon-variables.scss │ │ │ ├── _variables.scss │ │ │ ├── base.scss │ │ │ ├── calendar.scss │ │ │ ├── common.scss │ │ │ ├── components │ │ │ ├── _accordions.scss │ │ │ ├── _agendas.scss │ │ │ ├── _articles.scss │ │ │ ├── _breadcrumbs.scss │ │ │ ├── _breakdowns.scss │ │ │ ├── _buttons.scss │ │ │ ├── _calc-admin-fines.scss │ │ │ ├── _calendar.scss │ │ │ ├── _callouts.scss │ │ │ ├── _candidate-page.scss │ │ │ ├── _cards.scss │ │ │ ├── _charts.scss │ │ │ ├── _committee-snapshot.scss │ │ │ ├── _contact-form.scss │ │ │ ├── _contact-items.scss │ │ │ ├── _cycle-select.scss │ │ │ ├── _data-container.scss │ │ │ ├── _data-landing-callouts.scss │ │ │ ├── _datatable-panel.scss │ │ │ ├── _datatables.scss │ │ │ ├── _date-grid.scss │ │ │ ├── _documents.scss │ │ │ ├── _downloads.scss │ │ │ ├── _dropdowns.scss │ │ │ ├── _entity-header.scss │ │ │ ├── _examples.scss │ │ │ ├── _fec-offices.scss │ │ │ ├── _fec-org-chart.scss │ │ │ ├── _feedback.scss │ │ │ ├── _figures.scss │ │ │ ├── _filters.scss │ │ │ ├── _footer.scss │ │ │ ├── _form-styles.scss │ │ │ ├── _glossary.scss │ │ │ ├── _headings.scss │ │ │ ├── _hero.scss │ │ │ ├── _icon-headings.scss │ │ │ ├── _icons.scss │ │ │ ├── _legal-search.scss │ │ │ ├── _list-styles.scss │ │ │ ├── _maps.scss │ │ │ ├── _mega-menu.scss │ │ │ ├── _messages.scss │ │ │ ├── _modals.scss │ │ │ ├── _nav.scss │ │ │ ├── _options.scss │ │ │ ├── _overlay.scss │ │ │ ├── _overviews.scss │ │ │ ├── _page-headers.scss │ │ │ ├── _pagination.scss │ │ │ ├── _posts.scss │ │ │ ├── _reaction-boxes.scss │ │ │ ├── _responsive-object.scss │ │ │ ├── _results-info.scss │ │ │ ├── _richtext.scss │ │ │ ├── _search-bar.scss │ │ │ ├── _search-controls.scss │ │ │ ├── _search-results.scss │ │ │ ├── _side-nav.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _site-header.scss │ │ │ ├── _table-styles.scss │ │ │ ├── _tags.scss │ │ │ ├── _toggles.scss │ │ │ ├── _tooltips.scss │ │ │ └── _type-styles.scss │ │ │ ├── data-landing.scss │ │ │ ├── datatables.scss │ │ │ ├── elections.scss │ │ │ ├── elements │ │ │ ├── _elements.scss │ │ │ ├── _forms.scss │ │ │ ├── _images.scss │ │ │ ├── _links.scss │ │ │ ├── _lists.scss │ │ │ ├── _tables.scss │ │ │ └── _typography.scss │ │ │ ├── entity.scss │ │ │ ├── fec-timeline.scss │ │ │ ├── home.scss │ │ │ ├── layout │ │ │ ├── _grid.scss │ │ │ ├── _layout.scss │ │ │ └── _slabs.scss │ │ │ ├── legal-common.scss │ │ │ ├── legal.scss │ │ │ ├── mixins │ │ │ ├── _icon-mixins.scss │ │ │ ├── _type-mixins.scss │ │ │ └── _utilities.scss │ │ │ ├── vendor │ │ │ ├── bourbon │ │ │ │ ├── _bourbon-deprecated-upcoming.scss │ │ │ │ ├── _bourbon.scss │ │ │ │ ├── addons │ │ │ │ │ ├── _border-color.scss │ │ │ │ │ ├── _border-radius.scss │ │ │ │ │ ├── _border-style.scss │ │ │ │ │ ├── _border-width.scss │ │ │ │ │ ├── _buttons.scss │ │ │ │ │ ├── _clearfix.scss │ │ │ │ │ ├── _ellipsis.scss │ │ │ │ │ ├── _font-stacks.scss │ │ │ │ │ ├── _hide-text.scss │ │ │ │ │ ├── _margin.scss │ │ │ │ │ ├── _padding.scss │ │ │ │ │ ├── _position.scss │ │ │ │ │ ├── _prefixer.scss │ │ │ │ │ ├── _retina-image.scss │ │ │ │ │ ├── _size.scss │ │ │ │ │ ├── _text-inputs.scss │ │ │ │ │ ├── _timing-functions.scss │ │ │ │ │ ├── _triangle.scss │ │ │ │ │ └── _word-wrap.scss │ │ │ │ ├── css3 │ │ │ │ │ ├── _animation.scss │ │ │ │ │ ├── _appearance.scss │ │ │ │ │ ├── _backface-visibility.scss │ │ │ │ │ ├── _background-image.scss │ │ │ │ │ ├── _background.scss │ │ │ │ │ ├── _border-image.scss │ │ │ │ │ ├── _calc.scss │ │ │ │ │ ├── _columns.scss │ │ │ │ │ ├── _filter.scss │ │ │ │ │ ├── _flex-box.scss │ │ │ │ │ ├── _font-face.scss │ │ │ │ │ ├── _font-feature-settings.scss │ │ │ │ │ ├── _hidpi-media-query.scss │ │ │ │ │ ├── _hyphens.scss │ │ │ │ │ ├── _image-rendering.scss │ │ │ │ │ ├── _keyframes.scss │ │ │ │ │ ├── _linear-gradient.scss │ │ │ │ │ ├── _perspective.scss │ │ │ │ │ ├── _placeholder.scss │ │ │ │ │ ├── _radial-gradient.scss │ │ │ │ │ ├── _selection.scss │ │ │ │ │ ├── _text-decoration.scss │ │ │ │ │ ├── _transform.scss │ │ │ │ │ ├── _transition.scss │ │ │ │ │ └── _user-select.scss │ │ │ │ ├── functions │ │ │ │ │ ├── _assign-inputs.scss │ │ │ │ │ ├── _contains-falsy.scss │ │ │ │ │ ├── _contains.scss │ │ │ │ │ ├── _is-length.scss │ │ │ │ │ ├── _is-light.scss │ │ │ │ │ ├── _is-number.scss │ │ │ │ │ ├── _is-size.scss │ │ │ │ │ ├── _modular-scale.scss │ │ │ │ │ ├── _px-to-em.scss │ │ │ │ │ ├── _px-to-rem.scss │ │ │ │ │ ├── _shade.scss │ │ │ │ │ ├── _strip-units.scss │ │ │ │ │ ├── _tint.scss │ │ │ │ │ ├── _transition-property-name.scss │ │ │ │ │ └── _unpack.scss │ │ │ │ ├── helpers │ │ │ │ │ ├── _convert-units.scss │ │ │ │ │ ├── _directional-values.scss │ │ │ │ │ ├── _font-source-declaration.scss │ │ │ │ │ ├── _gradient-positions-parser.scss │ │ │ │ │ ├── _linear-angle-parser.scss │ │ │ │ │ ├── _linear-gradient-parser.scss │ │ │ │ │ ├── _linear-positions-parser.scss │ │ │ │ │ ├── _linear-side-corner-parser.scss │ │ │ │ │ ├── _radial-arg-parser.scss │ │ │ │ │ ├── _radial-gradient-parser.scss │ │ │ │ │ ├── _radial-positions-parser.scss │ │ │ │ │ ├── _render-gradients.scss │ │ │ │ │ ├── _shape-size-stripper.scss │ │ │ │ │ └── _str-to-num.scss │ │ │ │ └── settings │ │ │ │ │ ├── _asset-pipeline.scss │ │ │ │ │ ├── _prefixer.scss │ │ │ │ │ └── _px-to-em.scss │ │ │ └── neat │ │ │ │ ├── _neat-helpers.scss │ │ │ │ ├── _neat.scss │ │ │ │ ├── functions │ │ │ │ ├── _new-breakpoint.scss │ │ │ │ └── _private.scss │ │ │ │ ├── grid │ │ │ │ ├── _box-sizing.scss │ │ │ │ ├── _direction-context.scss │ │ │ │ ├── _display-context.scss │ │ │ │ ├── _fill-parent.scss │ │ │ │ ├── _media.scss │ │ │ │ ├── _omega.scss │ │ │ │ ├── _outer-container.scss │ │ │ │ ├── _pad.scss │ │ │ │ ├── _private.scss │ │ │ │ ├── _row.scss │ │ │ │ ├── _shift.scss │ │ │ │ ├── _span-columns.scss │ │ │ │ ├── _to-deprecate.scss │ │ │ │ └── _visual-grid.scss │ │ │ │ └── settings │ │ │ │ ├── _disable-warnings.scss │ │ │ │ ├── _grid.scss │ │ │ │ └── _visual-grid.scss │ │ │ └── widgets │ │ │ ├── aggregate-totals.scss │ │ │ ├── contributions-by-state.scss │ │ │ ├── house-senate-overview.scss │ │ │ ├── party-money-bars.scss │ │ │ └── pres-finance-map.scss │ ├── templates │ │ ├── 404.html │ │ ├── 500-status.html │ │ ├── 500.html │ │ ├── 503.html │ │ ├── base.html │ │ ├── code.json │ │ ├── data.json │ │ ├── home_base.html │ │ ├── long_page.html │ │ ├── partials │ │ │ ├── author-groups.html │ │ │ ├── author-list.html │ │ │ ├── body-blocks.html │ │ │ ├── breadcrumbs.html │ │ │ ├── disclaimer.html │ │ │ ├── env-banner.html │ │ │ ├── footer-navigation.html │ │ │ ├── glossary.html │ │ │ ├── google-tag-manager-noscript.html │ │ │ ├── google-tag-manager-script.html │ │ │ ├── meeting.html │ │ │ ├── meta-tags-preconnects.html │ │ │ ├── meta-tags-preloads.html │ │ │ ├── meta-tags.html │ │ │ ├── navigation │ │ │ │ ├── nav-about.html │ │ │ │ ├── nav-data.html │ │ │ │ ├── nav-help.html │ │ │ │ ├── nav-legal.html │ │ │ │ └── navigation.html │ │ │ ├── search-hero.html │ │ │ ├── update.html │ │ │ └── usa-banner.html │ │ ├── robots.txt │ │ ├── robots_prod.txt │ │ └── uaa_client │ │ │ └── login_error.html │ ├── tests │ │ ├── .eslintrc │ │ ├── __init__.py │ │ ├── fixtures │ │ │ ├── context.js │ │ │ ├── election-offices.js │ │ │ └── house-results.js │ │ ├── js │ │ │ ├── analyst-lookup.js │ │ │ ├── analytics.js │ │ │ ├── babel.config.json │ │ │ ├── calc-admin-fines.js │ │ │ ├── calendar.js │ │ │ ├── checkbox-filter.js │ │ │ ├── column-helpers.js │ │ │ ├── contact-form.js │ │ │ ├── cycle-select.js │ │ │ ├── date-filter.js │ │ │ ├── download.js │ │ │ ├── draftail │ │ │ │ ├── anchor.js │ │ │ │ ├── glossary.js │ │ │ │ ├── sansserif.js │ │ │ │ └── setup.js │ │ │ ├── dropdowns.js │ │ │ ├── election-filter.js │ │ │ ├── election-search.js │ │ │ ├── election-utils.js │ │ │ ├── feedback.js │ │ │ ├── filter-base.js │ │ │ ├── filter-panel.js │ │ │ ├── filter-set.js │ │ │ ├── filter-tags.js │ │ │ ├── helpers.js │ │ │ ├── line-chart.js │ │ │ ├── listeners.js │ │ │ ├── multi-filter.js │ │ │ ├── radform-validate.js │ │ │ ├── select-filter.js │ │ │ ├── setup.js │ │ │ ├── site-nav.js │ │ │ ├── skip-nav.js │ │ │ ├── statistical-summary-archive.js │ │ │ ├── table-switcher.js │ │ │ ├── tables.js │ │ │ ├── tablist.js │ │ │ ├── text-filter.js │ │ │ ├── toc.js │ │ │ ├── toggle-filter.js │ │ │ ├── top-entities-breakdown.js │ │ │ ├── typeahead-filter.js │ │ │ └── urls.js │ │ ├── test_api_key.py │ │ ├── test_form.py │ │ ├── test_robots.py │ │ └── test_static_files.py │ ├── urls.py │ ├── utils.py │ ├── wagtail_hooks.py │ ├── wagtail_npm_dependencies │ │ ├── ace-builds │ │ └── jquery │ └── wsgi.py ├── gulpfile.js ├── home │ ├── __init__.py │ ├── blocks.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_create_homepage.py │ │ ├── 0003_auto_20150819_0342.py │ │ ├── 0004_checklistpage.py │ │ ├── 0005_auto_20150819_0517.py │ │ ├── 0006_auto_20150819_0546.py │ │ ├── 0007_auto_20150901_0442.py │ │ ├── 0008_auto_20150917_1906.py │ │ ├── 0009_contactpage.py │ │ ├── 0010_calendarpage.py │ │ ├── 0011_ssfchecklistpage.py │ │ ├── 0012_partychecklistpage.py │ │ ├── 0013_auto_20160427_2133.py │ │ ├── 0014_nonconnectedchecklistpage.py │ │ ├── 0015_custompage_content.py │ │ ├── 0016_auto_20160714_2359.py │ │ ├── 0017_auto_20160823_1504.py │ │ ├── 0018_record_digest_press_release.py │ │ ├── 0019_auto_20160907_2152.py │ │ ├── 0019_auto_20160908_2113.py │ │ ├── 0020_auto_20160909_0139.py │ │ ├── 0021_merge.py │ │ ├── 0022_auto_20160921_2230.py │ │ ├── 0022_auto_20160923_0004.py │ │ ├── 0023_remove_presslandingpage_feed_intro.py │ │ ├── 0024_presslandingpage_feed_intro.py │ │ ├── 0025_auto_20161006_1415.py │ │ ├── 0025_merge.py │ │ ├── 0026_auto_20161004_1620.py │ │ ├── 0027_auto_20161004_1620.py │ │ ├── 0028_merge.py │ │ ├── 0029_auto_20161107_0304.py │ │ ├── 0030_pressreleasepage_formatted_title.py │ │ ├── 0031_auto_20161201_2123.py │ │ ├── 0032_auto_20161201_2124.py │ │ ├── 0033_auto_20161201_2126.py │ │ ├── 0034_auto_20161221_1920.py │ │ ├── 0034_pressreleasepage_homepage_pin.py │ │ ├── 0035_pressreleasepage_homepage_hide.py │ │ ├── 0035_recordpage_monthly_issue.py │ │ ├── 0036_auto_20161216_0202.py │ │ ├── 0036_auto_20161221_2007.py │ │ ├── 0037_auto_20161216_0222.py │ │ ├── 0037_recordpage_monthly_issue_url.py │ │ ├── 0038_aboutlandingpage.py │ │ ├── 0038_merge_20161223_1820.py │ │ ├── 0038_resourcepage.py │ │ ├── 0039_aboutlandingpage_hero.py │ │ ├── 0039_legalresourceslanding.py │ │ ├── 0040_aboutlandingpage_mission_intro.py │ │ ├── 0040_auto_20161228_2356.py │ │ ├── 0041_auto_20161227_1524.py │ │ ├── 0041_enforcementpage.py │ │ ├── 0042_auto_20161227_1526.py │ │ ├── 0042_auto_20161229_2001.py │ │ ├── 0043_auto_20161227_1538.py │ │ ├── 0043_merge_20161230_0122.py │ │ ├── 0044_aboutlandingpage_option_blocks.py │ │ ├── 0044_auto_20170105_0006.py │ │ ├── 0045_merge_20170105_0036.py │ │ ├── 0046_auto_20170105_0038.py │ │ ├── 0047_auto_20170105_0044.py │ │ ├── 0048_auto_20170105_0049.py │ │ ├── 0049_auto_20170105_0052.py │ │ ├── 0050_auto_20170105_0055.py │ │ ├── 0051_commissionerpage.py │ │ ├── 0052_auto_20170111_2205.py │ │ ├── 0053_serviceslandingpage.py │ │ ├── 0054_auto_20170118_2104.py │ │ ├── 0055_auto_20170123_2232.py │ │ ├── 0055_tipsfortreasurerspage.py │ │ ├── 0056_merge_20170127_1735.py │ │ ├── 0057_auto_20170202_0237.py │ │ ├── 0058_auto_20170210_2136.py │ │ ├── 0058_documentfeedpage_documentpage.py │ │ ├── 0059_auto_20170209_0151.py │ │ ├── 0060_auto_20170209_2030.py │ │ ├── 0061_merge_20170210_2230.py │ │ ├── 0062_auto_20170214_2207.py │ │ ├── 0063_auto_20170214_2207.py │ │ ├── 0064_auto_20170215_2153.py │ │ ├── 0065_auto_20170221_0345.py │ │ ├── 0066_remove_documentpage_file_name.py │ │ ├── 0067_agendapage.py │ │ ├── 0067_documentpage_year_only.py │ │ ├── 0068_merge_20170310_0002.py │ │ ├── 0069_auto_20170316_0006.py │ │ ├── 0069_auto_20170318_0005.py │ │ ├── 0070_merge_20170322_1940.py │ │ ├── 0071_agendapage_imported_html.py │ │ ├── 0072_auto_20170324_0544.py │ │ ├── 0073_auto_20170329_2112.py │ │ ├── 0073_auto_20170330_1840.py │ │ ├── 0073_auto_20170330_1915.py │ │ ├── 0074_auto_20170330_2222.py │ │ ├── 0074_merge_20170330_2316.py │ │ ├── 0075_auto_20170330_2354.py │ │ ├── 0075_merge_20170331_0608.py │ │ ├── 0076_merge_20170331_1633.py │ │ ├── 0077_auto_20170331_1711.py │ │ ├── 0078_auto_20170404_2137.py │ │ ├── 0079_auto_20170414_0021.py │ │ ├── 0079_auto_20170420_0238.py │ │ ├── 0080_auto_20170420_1702.py │ │ ├── 0081_auto_20170501_2216.py │ │ ├── 0081_genericupdate.py │ │ ├── 0082_merge_20170504_2212.py │ │ ├── 0082_merge_20170505_0025.py │ │ ├── 0083_auto_20170504_2215.py │ │ ├── 0083_auto_20170506_0059.py │ │ ├── 0084_merge_20170509_0021.py │ │ ├── 0085_auto_20170510_1928.py │ │ ├── 0086_auto_20170519_1726.py │ │ ├── 0087_meetingpage_homepage_hide.py │ │ ├── 0088_auto_20170802_2329.py │ │ ├── 0088_folder.py │ │ ├── 0089_auto_20170810_2215.py │ │ ├── 0090_auto_20170811_1840.py │ │ ├── 0091_merge_20170811_2035.py │ │ ├── 0091_merge_20170814_0055.py │ │ ├── 0092_auto_20170814_0109.py │ │ ├── 0093_merge_20170814_2229.py │ │ ├── 0094_auto_20170829_1640.py │ │ ├── 0095_auto_20170831_2013.py │ │ ├── 0095_meetingpage_sunshine_act_doc_upld.py │ │ ├── 0096_merge_20170907_2031.py │ │ ├── 0097_auto_20170925_1952.py │ │ ├── 0097_auto_20170929_2329.py │ │ ├── 0098_auto_20170930_0054.py │ │ ├── 0099_merge_20171109_1546.py │ │ ├── 0100_auto_20180126_1444.py │ │ ├── 0101_auto_20180531_1615.py │ │ ├── 0102_auto_20180718_0132.py │ │ ├── 0103_auto_20180726_1409.py │ │ ├── 0104_auto_20181202_1431.py │ │ ├── 0105_auto_20191003_0006.py │ │ ├── 0106_auto_20191101_1759.py │ │ ├── 0107_auto_20191213_1031.py │ │ ├── 0108_fullwidthpage_citations.py │ │ ├── 0109_auto_20200219_1316.py │ │ ├── 0110_auto_20200930_2200.py │ │ ├── 0111_oiglandingpage.py │ │ ├── 0112_auto_20210112_1100.py │ │ ├── 0113_auto_20210316_1226.py │ │ ├── 0114_auto_20210430_1346.py │ │ ├── 0115_auto_20210506_2326.py │ │ ├── 0116_auto_20210818_1041.py │ │ ├── 0117_auto_20210907_1026.py │ │ ├── 0118_auto_20211007_1004.py │ │ ├── 0119_auto_20211013_1228.py │ │ ├── 0120_auto_20211201_1130.py │ │ ├── 0121_auto_20211206_1255.py │ │ ├── 0122_auto_20220302_2114.py │ │ ├── 0122_auto_20220303_1357.py │ │ ├── 0123_merge_20220308_1116.py │ │ ├── 0124_auto_20220706_0036.py │ │ ├── 0125_officepage.py │ │ ├── 0126_auto_20230123_1608.py │ │ ├── 0127_auto_20230123_1927.py │ │ ├── 0128_merge_0125_officepage_0126_auto_20230123_1927.py │ │ ├── 0129_reportingdatestable.py │ │ ├── 0130_alter_reportingdatestable_reporting_dates_table.py │ │ ├── 0131_auto_20230905_2038.py │ │ ├── 0132_auto_20231130_1233.py │ │ ├── 0133_alter_recordpagetag_tag.py │ │ ├── 0134_embedsnippet_banner_icon_alter_resourcepage_intro.py │ │ ├── 0135_alter_resourcepage_sections.py │ │ ├── 0136_alter_embedsnippet_banner_icon_and_more.py │ │ ├── 0137_commissionerpage_picture_download.py │ │ ├── 0138_alter_reportingdatestable_reporting_dates_table.py │ │ ├── 0139_commissionerpage_commissioner_bluesky_and_more.py │ │ ├── 0140_alter_embedsnippet_banner_icon_and_more.py │ │ ├── 0141_fectimelinepage.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── blocks │ │ │ ├── adr_search.html │ │ │ ├── af_search.html │ │ │ ├── audit.html │ │ │ ├── button.html │ │ │ ├── careers.html │ │ │ ├── commissioners.html │ │ │ ├── contact-info.html │ │ │ ├── custom_table.html │ │ │ ├── disabled-page-links.html │ │ │ ├── document-list.html │ │ │ ├── embed-info-message.html │ │ │ ├── embed-table.html │ │ │ ├── example-forms.html │ │ │ ├── example-image.html │ │ │ ├── example-paragraph.html │ │ │ ├── mur_search.html │ │ │ ├── page-links.html │ │ │ ├── related-media.html │ │ │ ├── reporting-dates-table-block.html │ │ │ ├── reporting-example-cards.html │ │ │ ├── section-aside.html │ │ │ ├── section-documents.html │ │ │ ├── section.html │ │ │ ├── simple-document-list.html │ │ │ └── simple-document.html │ │ ├── home │ │ │ ├── about_landing_page.html │ │ │ ├── alert_for_emergency_use_only.html │ │ │ ├── calendar.html │ │ │ ├── candidate-and-committee-services │ │ │ │ ├── guides.html │ │ │ │ └── services_landing_page.html │ │ │ ├── collection_page.html │ │ │ ├── commission_meetings.html │ │ │ ├── commissioner_page.html │ │ │ ├── commissioners.html │ │ │ ├── contact-form.html │ │ │ ├── contact_page.html │ │ │ ├── custom_page.html │ │ │ ├── document_feed_page.html │ │ │ ├── document_page.html │ │ │ ├── example_page.html │ │ │ ├── fec_timeline_page.html │ │ │ ├── feed_base.html │ │ │ ├── full_width_page.html │ │ │ ├── home_page.html │ │ │ ├── home_page_banner_announcement.html │ │ │ ├── latest_updates.html │ │ │ ├── legal │ │ │ │ └── legal_resources_landing.html │ │ │ ├── meeting_page.html │ │ │ ├── office_page.html │ │ │ ├── oig_landing_page.html │ │ │ ├── press_landing_page.html │ │ │ ├── reporting_dates_table.html │ │ │ ├── reports_landing_page.html │ │ │ ├── resource_page.html │ │ │ └── updates │ │ │ │ ├── digest_page.html │ │ │ │ ├── press_release_page.html │ │ │ │ ├── record_page.html │ │ │ │ └── tips_for_treasurers.html │ │ ├── partials │ │ │ ├── audit-search.html │ │ │ ├── commissioner.html │ │ │ ├── current-commissioners.html │ │ │ ├── document-feed.html │ │ │ ├── document.html │ │ │ ├── draft-home-page-banner-announcement.html │ │ │ ├── elections-lookup.html │ │ │ ├── home-page-banner-announcement.html │ │ │ ├── home-page-news.html │ │ │ ├── jobs.html │ │ │ ├── legal-keyword-modal.html │ │ │ ├── legal-news.html │ │ │ ├── oig-most-recent.html │ │ │ ├── press-feed.html │ │ │ ├── raising-spending.html │ │ │ ├── section-nav.html │ │ │ └── tips-for-treasurers.html │ │ └── purgecss-homepage │ │ │ ├── banners.html │ │ │ ├── commissioners.html │ │ │ ├── full.html │ │ │ ├── hero.html │ │ │ ├── navs.html │ │ │ ├── readme.txt │ │ │ └── toggled.html │ ├── templatetags │ │ ├── __init__.py │ │ ├── audit_search.py │ │ ├── author_groups.py │ │ ├── commissioners.py │ │ ├── document_feed.py │ │ ├── elections_lookup.py │ │ ├── filters.py │ │ ├── home_page.py │ │ ├── legal_news.py │ │ ├── oig_most_recent.py │ │ ├── open_jobs.py │ │ ├── tips_for_treasurers.py │ │ ├── top_entities.py │ │ └── updates.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_filters.py │ │ ├── test_pages.py │ │ ├── test_usajobs.py │ │ └── test_views.py │ ├── utils │ │ └── link_reroute.py │ ├── views.py │ └── wagtail_hooks.py ├── legal │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── templates │ │ ├── layouts │ │ │ ├── legal-doc-landing.jinja │ │ │ └── legal-doc-search-results.jinja │ │ ├── legal-admin_fine.jinja │ │ ├── legal-adr.jinja │ │ ├── legal-advisory-opinion.jinja │ │ ├── legal-advisory-opinions-landing.jinja │ │ ├── legal-archived-mur.jinja │ │ ├── legal-current-mur.jinja │ │ ├── legal-search-results-adrs.jinja │ │ ├── legal-search-results-advisory_opinions.jinja │ │ ├── legal-search-results-afs.jinja │ │ ├── legal-search-results-murs.jinja │ │ ├── legal-search-results-regulations.jinja │ │ ├── legal-search-results-statutes.jinja │ │ ├── legal-search-results.jinja │ │ ├── legal-statutes-landing.jinja │ │ ├── macros │ │ │ └── legal.jinja │ │ └── partials │ │ │ ├── legal-disclaimer.jinja │ │ │ ├── legal-keyword-modal.jinja │ │ │ ├── legal-pagination.jinja │ │ │ ├── legal-regulations-pagination.jinja │ │ │ ├── legal-search-results-adrs.jinja │ │ │ ├── legal-search-results-advisory-opinion.jinja │ │ │ ├── legal-search-results-afs.jinja │ │ │ ├── legal-search-results-mur.jinja │ │ │ ├── legal-search-results-regulation.jinja │ │ │ └── legal-search-results-statute.jinja │ ├── tests.py │ ├── urls.py │ └── views.py ├── manage.py ├── search │ ├── __init__.py │ ├── management │ │ └── data │ │ │ ├── sitemap_html.xml │ │ │ └── sitemap_pdf.xml │ ├── templates │ │ └── search │ │ │ ├── policy_guidance_search_page.html │ │ │ └── search.html │ ├── tests │ │ ├── __init__.py │ │ └── test_views.py │ └── views.py └── webpack.config.cjs ├── karma.conf.js ├── locust_helpers ├── helpers.py └── urls.py ├── locustfile.py ├── manifest_dev.yml ├── manifest_feature.yml ├── manifest_prod.yml ├── manifest_stage.yml ├── package-lock.json ├── package.json ├── pytest.ini ├── requirements-dev.txt ├── requirements.txt ├── runtime.txt └── tasks.py /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | omit=*migrations* 3 | source = . 4 | -------------------------------------------------------------------------------- /.cspell/custom-dictionary-workspace.txt: -------------------------------------------------------------------------------- 1 | # Custom Dictionary Words 2 | blockquote 3 | bythenumbers 4 | camelcase 5 | draftail 6 | Draftail 7 | labelledby 8 | wagtailcore 9 | wagtailimages 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | fec/fec/static/js/vendor/* 2 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | exclude = .git,__pycache__,dist,node_modules,fec/home/migrations 3 | max-line-length = 120 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Template to help guide feature requests 4 | title: Feature Request 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Thank you for your interest in helping improve the FEC CMS.** 11 | 12 | Below, you'll find questions to help us visualize your request. 13 | 14 | ### Summary 15 | 16 | _Briefly describe what you'd like to see changed and why._ 17 | 18 | ### Current Situation 19 | 20 | _What happens now?_ 21 | 22 | ### Use Case 23 | 24 | _Who would benefit from this requested feature?_ 25 | 26 | ### Misc 27 | 28 | _If you'd like to include anything else that may be of interest, do that here._ 29 | -------------------------------------------------------------------------------- /.hound.yml: -------------------------------------------------------------------------------- 1 | javascript: 2 | config_file: .eslintrc 3 | -------------------------------------------------------------------------------- /.jshintignore: -------------------------------------------------------------------------------- 1 | tests/react/** 2 | static/js/legal/** 3 | node_modules/** 4 | dist/** 5 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi": false, 3 | "bitwise": true, 4 | "browser": true, 5 | "camelcase": true, 6 | "curly": true, 7 | "esversion": 6, 8 | "expr": true, 9 | "forin": true, 10 | "immed": true, 11 | "latedef": "nofunc", 12 | "maxlen": 100, 13 | "newcap": true, 14 | "noarg": true, 15 | "node": true, 16 | "noempty": true, 17 | "nonew": false, 18 | "predef": [ 19 | "require", 20 | "module", 21 | "window", 22 | "document", 23 | "describe", 24 | "before", 25 | "beforeEach", 26 | "after", 27 | "afterEach", 28 | "it" 29 | ], 30 | "quotmark": true, 31 | "trailing": true, 32 | "undef": true, 33 | "unused": true 34 | } 35 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/pre-commit/pre-commit-hooks 3 | rev: v4.4.0 4 | hooks: 5 | - id: end-of-file-fixer 6 | 7 | - repo: https://github.com/PyCQA/flake8 8 | rev: 6.0.0 9 | hooks: 10 | - id: flake8 11 | args: [--max-line-length=120] 12 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore artifacts: 2 | build 3 | coverage 4 | icons 5 | *.cjs 6 | *.hbs 7 | *.html 8 | *.html 9 | *.jinja 10 | *.js 11 | *.json 12 | *.md 13 | *.yaml 14 | *.yml 15 | _icon-variables.scss 16 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } 4 | -------------------------------------------------------------------------------- /.puppeteerrc.cjs: -------------------------------------------------------------------------------- 1 | const {join} = require('path'); 2 | 3 | /** 4 | * @type {import("puppeteer").Configuration} 5 | */ 6 | module.exports = { 7 | // Changes the cache location for Puppeteer. 8 | cacheDirectory: join(__dirname, '.cache', 'puppeteer'), 9 | }; 10 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # Licensing and attribution 2 | 3 | This project includes a mix of the following: 4 | 5 | * Open source works that are not in the public domain 6 | * Open source work by the U.S. government that is in the public domain 7 | 8 | This project is covered by the FEC's [Default License](https://github.com/fecgov/FEC/blob/master/LICENSE.md). 9 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: bin/run.sh 2 | -------------------------------------------------------------------------------- /babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /bin/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set environment options to exit immediately if a non-zero status code 4 | # appears from a command or within a pipe 5 | set -o errexit 6 | set -o pipefail 7 | 8 | cd fec 9 | # Run migrations 10 | ./manage.py makemigrations 11 | ./manage.py migrate --noinput 12 | 13 | # Run application 14 | gunicorn -k gevent -w 2 fec.wsgi:application 15 | -------------------------------------------------------------------------------- /fec/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = true 3 | source = . 4 | -------------------------------------------------------------------------------- /fec/data/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/data/__init__.py -------------------------------------------------------------------------------- /fec/data/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin # noqa: F401 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /fec/data/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DataConfig(AppConfig): 5 | name = 'data' 6 | -------------------------------------------------------------------------------- /fec/data/jinja2.py: -------------------------------------------------------------------------------- 1 | import jinja2 2 | from compressor.contrib.jinja2ext import CompressorExtension 3 | 4 | 5 | def environment(**options): 6 | """Create a jinja2 environment with the CompressorExtension added in""" 7 | options['extensions'] += [CompressorExtension] 8 | options['autoescape'] = True # This was already True but we want to set it explicitly 9 | env = jinja2.Environment(**options) 10 | return env 11 | -------------------------------------------------------------------------------- /fec/data/templates/macros/document.jinja: -------------------------------------------------------------------------------- 1 | {% macro thumbnail(title, url, img="", size='', type="PDF") %} 2 |
3 | 4 | {{ title }} 5 | 6 | 7 | {{ title }} 8 | {% if size %} 9 | {% set metadata = [size, type] %} 10 | {% else %} 11 | {% set metadata = [type] %} 12 | {% endif %} 13 |
({{ ' '.join(metadata) }}) 14 |
15 |
16 | {% endmacro %} 17 | -------------------------------------------------------------------------------- /fec/data/templates/macros/filters/parties.jinja: -------------------------------------------------------------------------------- 1 | {% macro checkbox(id_suffix='', name='party') %} 2 | 3 | {% import 'macros/filters/checkbox.jinja' as checkbox %} 4 | 5 | {{ checkbox.checkbox_dropdown( 6 | name=name, 7 | label='Political party', 8 | selected=constants.parties, 9 | options=constants.parties_extended, 10 | ) }} 11 | 12 | {% endmacro %} 13 | -------------------------------------------------------------------------------- /fec/data/templates/macros/null.jinja: -------------------------------------------------------------------------------- 1 | {% macro null(value) %} 2 | {% if value is not none or value is not defined %} 3 | {{ value }} 4 | {% else %} 5 | None 6 | {% endif %} 7 | {% endmacro %} 8 | -------------------------------------------------------------------------------- /fec/data/templates/macros/widgets.jinja: -------------------------------------------------------------------------------- 1 | {% macro select__election_year(election_years, election_year, elementID, electionType = 'H') %} 2 | 3 | 13 | {% endmacro %} 14 | -------------------------------------------------------------------------------- /fec/data/templates/partials/browse-data/historical.jinja: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /fec/data/templates/partials/committee-totals-ie-only.jinja: -------------------------------------------------------------------------------- 1 | {% with committee=context() %} 2 | {% import 'macros/tables.jinja' as tables %} 3 | 4 | {{ tables.totals('Contributions received', totals.0.total_independent_contributions) }} 5 | {{ tables.totals('Independent expenditures', totals.0.total_independent_expenditures) }} 6 | 7 | {% endwith %} 8 | -------------------------------------------------------------------------------- /fec/data/templates/partials/filters/active-candidates.jinja: -------------------------------------------------------------------------------- 1 |
2 |
3 | Candidate status 4 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /fec/data/templates/partials/filters/form-type.jinja: -------------------------------------------------------------------------------- 1 | {% import 'macros/filters/checkbox.jinja' as checkbox %} 2 | 3 | {{ checkbox.checkbox_dropdown( 4 | 'id_suffix', 5 | 'form_type', 6 | 'Form Type', 7 | options=constants.form_types, 8 | ) }} 9 | -------------------------------------------------------------------------------- /fec/data/templates/partials/loading-tab.jinja: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | -------------------------------------------------------------------------------- /fec/data/templates/widgets/aggregate-totals.jinja: -------------------------------------------------------------------------------- 1 | {% extends 'layouts/widgets.jinja' %} 2 | {% import 'macros/page-header.jinja' as header %} 3 | 4 | {% block title %}{{ title }}{% endblock %} 5 | 6 | {% block css %} 7 | 8 | 14 | {% endblock %} 15 | 16 | {% block body %}{% endblock %} 17 | 18 | {% block scripts %} 19 | 20 | {% endblock %} 21 | -------------------------------------------------------------------------------- /fec/data/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/data/templatetags/__init__.py -------------------------------------------------------------------------------- /fec/data/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/data/tests/__init__.py -------------------------------------------------------------------------------- /fec/extend_admin/wagtailadmin/base.html: -------------------------------------------------------------------------------- 1 | {% overextends "wagtailadmin/base.html" %} 2 | 3 | {% block branding_logo %} 4 | Federal Election Commission 5 | {% endblock %} -------------------------------------------------------------------------------- /fec/extend_admin/wagtailadmin/widgets/chooser.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /fec/fec/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/__init__.py -------------------------------------------------------------------------------- /fec/fec/draftail/anchor.py: -------------------------------------------------------------------------------- 1 | from draftjs_exporter.dom import DOM 2 | from wagtail.admin.rich_text.converters.html_to_contentstate import InlineEntityElementHandler 3 | 4 | 5 | def anchor_entity_decorator(props): 6 | 7 | return DOM.create_element('span', { 8 | 'data-anchor': props['anchor'], 9 | 'id': props['anchor'], 10 | }, props['children']) 11 | 12 | 13 | class AnchorEntityElementHandler(InlineEntityElementHandler): 14 | mutability = 'IMMUTABLE' 15 | 16 | def get_attribute_data(self, attrs): 17 | return { 18 | 'anchor': attrs['data-anchor'], 19 | } 20 | -------------------------------------------------------------------------------- /fec/fec/settings/__init__.py: -------------------------------------------------------------------------------- 1 | from .dev import * # noqa F401 2 | -------------------------------------------------------------------------------- /fec/fec/settings/dev.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa: F403 2 | 3 | # These settings are for local development only. 4 | 5 | # SECURITY WARNING: don't run with debug turned on in production! 6 | DEBUG = True 7 | for t in TEMPLATES: # noqa: F405 8 | t.setdefault('OPTIONS', {}) 9 | t['OPTIONS']['debug'] = True 10 | 11 | EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 12 | 13 | try: 14 | from .local import * # noqa: F401, F403 15 | except ImportError: 16 | pass 17 | -------------------------------------------------------------------------------- /fec/fec/settings/env.py: -------------------------------------------------------------------------------- 1 | import cfenv 2 | 3 | env = cfenv.AppEnv() 4 | -------------------------------------------------------------------------------- /fec/fec/settings/production.py: -------------------------------------------------------------------------------- 1 | from .base import * # noqa: F401, F403 2 | from .env import env 3 | 4 | SECRET_KEY = env.get_credential('DJANGO_SECRET_KEY') 5 | 6 | # These settings are used for all public environments: 7 | # dev, stage, feature, and production 8 | 9 | DEBUG = False 10 | TEMPLATE_DEBUG = False 11 | 12 | SESSION_COOKIE_SECURE = True 13 | SESSION_COOKIE_HTTPONLY = True 14 | CSRF_COOKIE_SECURE = True 15 | CSRF_COOKIE_HTTPONLY = True 16 | 17 | ALLOWED_HOSTS = [ 18 | '.fec.gov', 19 | '.app.cloud.gov' 20 | ] 21 | 22 | try: 23 | from .local import * # noqa: F401, F403 24 | except ImportError: 25 | pass 26 | -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bold.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bold.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bold.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bold.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bolditalic.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bolditalic.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bolditalic.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-bolditalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-bolditalic.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-italic.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-italic.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-italic.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-italic.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-regular.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-regular.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-regular.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/fec-currencymono-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/fec-currencymono-regular.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bold.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bold.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bold.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bold.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bolditalic.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bolditalic.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bolditalic.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-bolditalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-bolditalic.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-italic.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-italic.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-italic.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-italic.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-regular.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-regular.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-regular.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/gandhiserif-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/gandhiserif-regular.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-bold.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-bold.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-bold.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-bold.woff2 -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-regular.eot -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-regular.ttf -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-regular.woff -------------------------------------------------------------------------------- /fec/fec/static/fonts/karla-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/fonts/karla-regular.woff2 -------------------------------------------------------------------------------- /fec/fec/static/icons/icon-template.scss: -------------------------------------------------------------------------------- 1 | // NOTE: Do note edit _icon-variables.scss directly; 2 | // It is generated by Gulp from fec/fec/static/icons/icon-template.scss 3 | // so make any necessary edits there. 4 | 5 | // Variables for all icons 6 | <% _.each(icons, function(svg) { %>$<%= svg.name %>: 'data:image/svg+xml;charset=utf8, <%= svg.content %>'; 7 | <% }); %> 8 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/arrow-down-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/arrow-left-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/arrow-right-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/arrow-up-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/bang-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/check-circle-outline.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/clock-reverse.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/direction-sign.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/file-box.svg: -------------------------------------------------------------------------------- 1 | file-box -------------------------------------------------------------------------------- /fec/fec/static/icons/input/grid.svg: -------------------------------------------------------------------------------- 1 | grid -------------------------------------------------------------------------------- /fec/fec/static/icons/input/info-circle-outline.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/info-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/mallet.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/moving-envelope-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/point-down-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | betaFEC_icons 3 | 4 | 5 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/question-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/input/shield.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | betaFEC_icons 10 | 11 | 12 | -------------------------------------------------------------------------------- /fec/fec/static/icons/input/telephone-circle.svg: -------------------------------------------------------------------------------- 1 | betaFEC_icons -------------------------------------------------------------------------------- /fec/fec/static/icons/output/all-files.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-down-border.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-down-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-left-border.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-left-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-right-border.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-right-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-target.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-up-border.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-up-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/bang-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/bang.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/bluesky-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/book.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/bulk.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/cal-add.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/check-circle-outline.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/check-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/clock-reverse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/dash.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/direction-sign.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/document.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/download.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/exclamation-bubble.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/facebook-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/file-box.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/folder-with-person.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/github-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/graph-horizontal-ordered.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/graph-horizontal-unordered.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/graph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/grid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/info-circle-outline.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/info-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/magnifying-glass-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/magnifying-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/mallet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/map-pin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/minus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/moving-envelope-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/notebook.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/org-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/papers.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/play-button.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/plus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/point-down-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/pop-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/question-bubble.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/question-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/scale.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/share.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/shield.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/signal.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/speaker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/table.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/telephone-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/updates.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/x-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/x-twitter-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/x.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/icons/output/youtube-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fec/fec/static/img/Homepage-hero-image-flag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/Homepage-hero-image-flag.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/TV-Gray-Wall-Only-850.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/TV-Gray-Wall-Only-850.png -------------------------------------------------------------------------------- /fec/fec/static/img/angle-arrow-down-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/angle-arrow-down-primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/angle-arrow-down-primary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/img/angle-arrow-up-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/angle-arrow-up-primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/angle-arrow-up-primary.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/data/favicon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/data/favicon-120x120.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/data/favicon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/data/favicon-152x152.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/data/favicon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/data/favicon-167x167.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/data/favicon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/data/favicon-180x180.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/data/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/data/favicon-192x192.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/favicon.ico -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-120x120.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-152x152.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-167x167.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-180x180.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-192x192.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-200x200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-200x200.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/general/favicon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/general/favicon-48x48.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/help/favicon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/help/favicon-120x120.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/help/favicon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/help/favicon-152x152.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/help/favicon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/help/favicon-167x167.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/help/favicon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/help/favicon-180x180.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/help/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/help/favicon-192x192.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/legal/favicon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/legal/favicon-120x120.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/legal/favicon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/legal/favicon-152x152.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/legal/favicon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/legal/favicon-167x167.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/legal/favicon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/legal/favicon-180x180.png -------------------------------------------------------------------------------- /fec/fec/static/img/favicon/legal/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/favicon/legal/favicon-192x192.png -------------------------------------------------------------------------------- /fec/fec/static/img/feature--candidate-support.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--candidate-support.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--compare-candidates.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--compare-candidates.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--contributions-narrow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--contributions-narrow.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--contributions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--contributions.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--data.png -------------------------------------------------------------------------------- /fec/fec/static/img/feature--dates.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--dates.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--filing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--filing.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--forms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--forms.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/feature--legal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--legal.png -------------------------------------------------------------------------------- /fec/fec/static/img/feature--reporting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--reporting.png -------------------------------------------------------------------------------- /fec/fec/static/img/feature--training.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/feature--training.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/fec-office.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/fec-office.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--goodman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--goodman.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--hunter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--hunter.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--no-photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--no-photo.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--petersen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--petersen.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--walther.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--walther.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/headshot--weintraub.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/headshot--weintraub.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-about.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-data.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-data.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-home.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-legal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-legal.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-oig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-oig.png -------------------------------------------------------------------------------- /fec/fec/static/img/hero-press.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-press.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/hero-registration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/hero-registration.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/i-bluesky--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-bluesky--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-complex--calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-complex--calendar.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-complex--data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-complex--data.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-complex--legal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-complex--legal.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-complex--regreport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-complex--regreport.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-elections--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-elections--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-email--inverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-email--inverse.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-email--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-email--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-github--inverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-github--inverse.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-github--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-github--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-mail--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-mail--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-phone--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-phone--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-twitter--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-twitter--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/i-x-twitter--primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/i-x-twitter--primary.png -------------------------------------------------------------------------------- /fec/fec/static/img/icon-dot-gov.svg: -------------------------------------------------------------------------------- 1 | dot gov icon -------------------------------------------------------------------------------- /fec/fec/static/img/icon-https.svg: -------------------------------------------------------------------------------- 1 | https icon -------------------------------------------------------------------------------- /fec/fec/static/img/loading--primary.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/loading--primary.gif -------------------------------------------------------------------------------- /fec/fec/static/img/loading-ellipsis-gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/loading-ellipsis-gray.gif -------------------------------------------------------------------------------- /fec/fec/static/img/loading-ellipsis.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/loading-ellipsis.gif -------------------------------------------------------------------------------- /fec/fec/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/loading.gif -------------------------------------------------------------------------------- /fec/fec/static/img/map-election-search-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/map-election-search-default.png -------------------------------------------------------------------------------- /fec/fec/static/img/new-tv-bkgd-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/new-tv-bkgd-wide.png -------------------------------------------------------------------------------- /fec/fec/static/img/print-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/print-logo.png -------------------------------------------------------------------------------- /fec/fec/static/img/seal--cropped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/seal--cropped.png -------------------------------------------------------------------------------- /fec/fec/static/img/seal--inverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/seal--inverse.png -------------------------------------------------------------------------------- /fec/fec/static/img/seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/seal.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-data.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-help.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-legal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-legal.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-logo.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-microphone.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-microphones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-microphones.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-pen.png -------------------------------------------------------------------------------- /fec/fec/static/img/social/fec-seal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/social/fec-seal.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--ao-brochure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--ao-brochure.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--ao-statistics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--ao-statistics.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--audio.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--candidates.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--candidates.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--captions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--captions.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--citizens-guide-brochure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--citizens-guide-brochure.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--enforcement-process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--enforcement-process.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--feca.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--feca.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--filing-a-complaint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--filing-a-complaint.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--nonconnected.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--nonconnected.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--orgs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--orgs.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--parties.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--parties.jpg -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--pdf-guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--pdf-guide.png -------------------------------------------------------------------------------- /fec/fec/static/img/thumbnail--video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/thumbnail--video.png -------------------------------------------------------------------------------- /fec/fec/static/img/us_flag_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/us_flag_small.png -------------------------------------------------------------------------------- /fec/fec/static/img/wordmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/static/img/wordmark.png -------------------------------------------------------------------------------- /fec/fec/static/js/draftail/App.js: -------------------------------------------------------------------------------- 1 | import { default as anchor } from './Anchor.js'; 2 | import { default as glossary } from './Glossary.js'; 3 | import { default as sansserif } from './SansSerif.js'; 4 | 5 | window.draftail.registerPlugin(anchor); 6 | window.draftail.registerPlugin(glossary); 7 | window.draftail.registerPlugin(sansserif); 8 | -------------------------------------------------------------------------------- /fec/fec/static/js/draftail/utils.js: -------------------------------------------------------------------------------- 1 | export function slugify(text) { 2 | return text 3 | .toString() 4 | .toLowerCase() 5 | .replace(/\s+/g, '-') 6 | .replace(/[^\w\-]+/g, '') 7 | .replace(/\-\-+/g, '-') 8 | .replace(/^-+/, '') 9 | .replace(/-+$/, ''); 10 | } 11 | -------------------------------------------------------------------------------- /fec/fec/static/js/modules/accessibility.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Utilities for setting or removing tabindex on all focusable elements 3 | * in a parent div. Useful for hiding elements off-canvas without setting 4 | * display:none, while still removing from the tab order 5 | */ 6 | 7 | export function removeTabindex($elm) { 8 | $elm.find('a, button, :input, [tabindex]').attr('tabindex', '-1'); 9 | } 10 | 11 | export function restoreTabindex($elm) { 12 | $elm.find('a, button, :input, [tabindex]').attr('tabindex', '0'); 13 | } 14 | -------------------------------------------------------------------------------- /fec/fec/static/js/modules/events.js: -------------------------------------------------------------------------------- 1 | 2 | const EventEmitter2 = require('eventemitter2'); 3 | // const emitter = EventEmitter2(); 4 | // window.events = window.events || new EventEmitter2(); 5 | 6 | export default function initEvents() { 7 | window.events = window.events || new EventEmitter2(); 8 | return window.events; 9 | } 10 | -------------------------------------------------------------------------------- /fec/fec/static/js/modules/listeners.js: -------------------------------------------------------------------------------- 1 | import { default as _toArray } from 'underscore/modules/toArray.js'; 2 | 3 | export default function Listeners() { 4 | this.listeners = []; 5 | } 6 | 7 | Listeners.prototype.on = function(elm) { 8 | var $elm = $(elm); 9 | var args = _toArray(arguments).slice(1); 10 | this.listeners = this._listeners || []; 11 | this.listeners.push({ $elm: $elm, args: args }); 12 | $elm.on.apply($elm, args); 13 | }; 14 | 15 | Listeners.prototype.clear = function() { 16 | this.listeners.forEach(function(listener) { 17 | var $elm = listener.$elm; 18 | var args = listener.args; 19 | $elm.off.apply($elm, args); 20 | }); 21 | }; 22 | -------------------------------------------------------------------------------- /fec/fec/static/js/pages/bythenumbers.js: -------------------------------------------------------------------------------- 1 | import { customEvent } from '../modules/analytics.js'; 2 | import { TopEntities } from '../modules/top-entities.js'; 3 | 4 | new TopEntities('.js-top-entities', window.context.type); 5 | 6 | $('.js-ga-event').each(function() { 7 | var eventName = $(this).data('ga-event'); 8 | $(this).on('click', function() { 9 | customEvent({ 10 | event: 'Widget Interaction', 11 | eventName: 'fecCustomEvent', 12 | eventCategory: 'Misc. events', 13 | eventAction: eventName, 14 | eventValue: 1 15 | }); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /fec/fec/static/js/pages/data-landing.js: -------------------------------------------------------------------------------- 1 | import { customEvent } from '../modules/analytics.js'; 2 | import ElectionLookup from '../modules/election-lookup.js'; 3 | 4 | $(function() { 5 | new ElectionLookup('#election-lookup', false); 6 | }); 7 | 8 | $('.js-ga-event').each(function() { 9 | var eventName = $(this).data('ga-event'); 10 | $(this).on('click', function() { 11 | customEvent({ 12 | eventName: 'fecCustomEvent', 13 | eventCategory: 'Misc. events', 14 | eventAction: eventName, 15 | eventValue: 1 16 | }); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /fec/fec/static/js/pages/election-lookup.js: -------------------------------------------------------------------------------- 1 | // var lookup = require('../modules/election-search'); 2 | import ElectionSearch from '../modules/election-search.js'; 3 | 4 | $(function() { 5 | new ElectionSearch('#election-lookup', true); 6 | }); 7 | -------------------------------------------------------------------------------- /fec/fec/static/js/pages/legal.js: -------------------------------------------------------------------------------- 1 | import FilterPanel from '../modules/filters/filter-panel.js'; 2 | import KeywordModal from '../modules/keyword-modal.js'; 3 | 4 | new FilterPanel(); 5 | 6 | if (document.querySelector('.js-keyword-modal')) { 7 | new KeywordModal(); 8 | } 9 | -------------------------------------------------------------------------------- /fec/fec/static/js/pages/statistical-summary-archive.js: -------------------------------------------------------------------------------- 1 | // TODO: is this still necessary? 2 | import StatisticalSummaryArchive from '../modules/statistical-summary-archive.js'; 3 | 4 | new StatisticalSummaryArchive(); 5 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/audit_tags.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/calendar/download.hbs: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/calendar/listToggles.hbs: -------------------------------------------------------------------------------- 1 |
2 | Sort by: 3 | 7 | | 8 | 12 |
13 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/calendar/subscribe.hbs: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/candidateStateMap.hbs: -------------------------------------------------------------------------------- 1 |
2 | 9 | 10 | 11 |
12 |
13 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/coverageEndDate.hbs: -------------------------------------------------------------------------------- 1 | {{#if coverage_end_date }} 2 | Coverage ending: {{ coverage_end_date }} 3 |
4 | {{#if url}} 5 | View all 6 | {{/if}} 7 | {{else}} 8 | No processed data this period. 9 | {{/if}} 10 | 11 | 12 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/districts.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{#if senate }} 3 | 4 | {{/if}} 5 | {{#if atLargeHouse }} 6 | 7 | {{/if}} 8 | {{#if districts }} 9 | 10 | {{#each this.districts }} 11 | 12 | {{/each}} 13 | 14 | {{/if}} 15 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/download/container.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | Your downloads 4 | 6 |
7 |
8 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/election-cycles.hbs: -------------------------------------------------------------------------------- 1 | {{#each this}} 2 | 17 | {{/each}} 18 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/electionCycle.hbs: -------------------------------------------------------------------------------- 1 | Time period: 2 | {{min}}–{{max}} 3 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/electionNoResults.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{#if this.zip}} 4 | We can't find any results for this ZIP code 5 | {{else}} 6 | We can't find any results for this location 7 | {{/if}} 8 |

9 |

Double-check that you entered it correctly, and if it still doesn't work, let us know:

10 | 14 |
15 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/electionOffices.hbs: -------------------------------------------------------------------------------- 1 | {{#each this}} 2 |
3 | 16 |
17 | {{/each}} 18 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/electionResult.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{#if district}} 4 | 5 | {{/if}} 6 | {{electionName}} 7 |

8 |
9 | {{electionType}}: 10 | {{electionDate}} 11 |
12 |
13 | Current candidates: 14 | Show all » 15 |
16 |
17 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/electionZipWarning.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

ZIP code {{zip}} includes multiple congressional districts with elections in {{cycle}}.

4 |

Find your district on house.gov.

5 |
6 |
7 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/homepage/events-and-deadlines.hbs: -------------------------------------------------------------------------------- 1 | {{#if startDate}} 2 | {{ startDate }} | 3 | {{#if url}}{{ summary }} 4 | {{else}} 5 | {{ summary }} 6 | {{/if}} 7 | {{else}} 8 | None scheduled. 9 | {{/if}} 10 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/tables/exportWidget.hbs: -------------------------------------------------------------------------------- 1 |
2 |

{{this.title}}

3 | {{#if this.export }} 4 |
5 | 7 |
8 | 12 |
13 |
14 | {{/if}} 15 |
16 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/tables/title.hbs: -------------------------------------------------------------------------------- 1 |
2 |

{{this.title}}

3 |
4 | -------------------------------------------------------------------------------- /fec/fec/static/js/templates/top-entity-row.hbs: -------------------------------------------------------------------------------- 1 |
2 |
{{ rank }} {{ name }} 3 | {{#if party_code}} 4 | {{ party_code }} 5 | {{/if}} 6 |
7 |
{{ amount }}
8 |
9 |
10 |
11 |
12 |
-------------------------------------------------------------------------------- /fec/fec/static/js/templates/upcomingPresidential.hbs: -------------------------------------------------------------------------------- 1 |
2 | You might also like: 3 |

4 | {{electionName}} 5 |

6 |
7 | {{electionType}}: 8 | {{electionDate}} 9 |
10 |
11 | Current candidates: 12 | Show all » 13 |
14 |
15 | -------------------------------------------------------------------------------- /fec/fec/static/scss/calendar.scss: -------------------------------------------------------------------------------- 1 | @import 'global-common'; 2 | 3 | @import 'components/accordions'; 4 | @import 'components/filters'; 5 | @import 'components/data-container'; 6 | @import 'components/calendar'; 7 | @import 'components/datatables'; 8 | @import 'components/dropdowns'; 9 | @import 'components/tags'; 10 | @import 'components/toggles'; 11 | @import 'components/tooltips'; 12 | @import 'components/type-styles'; 13 | -------------------------------------------------------------------------------- /fec/fec/static/scss/common.scss: -------------------------------------------------------------------------------- 1 | @import 'global-common'; 2 | -------------------------------------------------------------------------------- /fec/fec/static/scss/components/_breakdowns.scss: -------------------------------------------------------------------------------- 1 | // Raising and Spending breakdown 2 | // 3 | //
4 | // ... 5 | //
6 | // 7 | 8 | .breakdown-cycle { 9 | border-top: 4px solid $primary; 10 | padding: u(2rem 0); 11 | 12 | select { 13 | width: 100%; 14 | } 15 | } 16 | 17 | .breakdown__title { 18 | line-height: u(3.4rem); 19 | margin: 0; 20 | } 21 | 22 | .input__label-home { 23 | line-height: u(2.5rem); 24 | margin: 0; 25 | } 26 | .bar-container { 27 | margin-left: 0; 28 | background: $gray-lightest; 29 | } 30 | -------------------------------------------------------------------------------- /fec/fec/static/scss/components/_candidate-page.scss: -------------------------------------------------------------------------------- 1 | // Candidate page 2 | // 3 | // Specific styles for parts of the candidate page 4 | // 5 | 6 | @include media($lg) { 7 | .candidate__totals { 8 | @include span-columns(6); 9 | } 10 | 11 | .candidate__committees { 12 | @include span-columns(6); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /fec/fec/static/scss/components/_data-landing-callouts.scss: -------------------------------------------------------------------------------- 1 | // Data Landing Callouts 2 | // 3 | // Used on: 4 | // data landing page, callout width overrides 5 | // 6 | 7 | @include media($med) { 8 | .callout-holder .grid__item { 9 | width: 100%; // We want them full-width until we get to $lg 10 | } 11 | } 12 | @include media($lg) { 13 | .callout-holder .grid__item { 14 | width: 48.82117%; // borrowed from the grid__item definition in the framework 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fec/fec/static/scss/datatables.scss: -------------------------------------------------------------------------------- 1 | @import 'global-common'; 2 | 3 | @import 'components/accordions'; 4 | @import 'components/messages'; 5 | @import 'components/datatable-panel'; 6 | @import 'components/datatables'; 7 | @import 'components/results-info'; 8 | @import 'components/downloads'; 9 | @import 'components/data-container'; 10 | @import 'components/filters'; 11 | @import 'components/date-grid'; 12 | @import 'components/dropdowns'; 13 | @import 'components/tags'; 14 | @import 'components/toggles'; 15 | @import 'components/tooltips'; 16 | @import 'components/type-styles'; 17 | @import 'components/overlay'; 18 | @import 'components/pagination'; 19 | -------------------------------------------------------------------------------- /fec/fec/static/scss/elections.scss: -------------------------------------------------------------------------------- 1 | @import '../../../../node_modules/leaflet/dist/leaflet'; 2 | 3 | @import 'common'; 4 | @import 'components/agendas'; 5 | @import 'components/articles'; 6 | @import 'components/data-container'; 7 | @import 'components/datatables'; 8 | @import 'components/downloads'; 9 | @import 'components/fec-org-chart'; 10 | @import 'components/filters'; 11 | @import 'components/entity-header'; 12 | @import 'components/maps'; 13 | @import 'components/responsive-object'; 14 | @import 'components/results-info'; 15 | @import 'components/richtext'; 16 | -------------------------------------------------------------------------------- /fec/fec/static/scss/elements/_images.scss: -------------------------------------------------------------------------------- 1 | // Images and Figures 2 | 3 | img, 4 | picture { 5 | margin: 0; 6 | max-width: 100%; 7 | } 8 | 9 | figure { 10 | margin: 0; 11 | padding: 0; 12 | } 13 | -------------------------------------------------------------------------------- /fec/fec/static/scss/elements/_links.scss: -------------------------------------------------------------------------------- 1 | // Links 2 | // 3 | 4 | a { 5 | border-bottom: 1px dotted $primary; 6 | color: inherit; 7 | cursor: pointer; 8 | text-decoration: none; 9 | transition: color 0.1s linear; 10 | 11 | &:active, 12 | &:hover { 13 | border-bottom-color: $primary-contrast; 14 | } 15 | 16 | img { 17 | border: none; 18 | } 19 | 20 | &.no-decoration { 21 | border: none !important; 22 | padding: 0; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /fec/fec/static/scss/elements/_tables.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | // 3 | 4 | table { 5 | border-collapse: collapse; 6 | margin: 0; 7 | table-layout: fixed; 8 | width: 100%; 9 | @include font-feature-settings('kern', 'liga', 'tnum'); 10 | } 11 | 12 | th { 13 | font-weight: 600; 14 | padding: 0; 15 | text-align: left; 16 | } 17 | 18 | td { 19 | padding: 0; 20 | } 21 | 22 | tr, 23 | td, 24 | th { 25 | vertical-align: middle; 26 | } 27 | -------------------------------------------------------------------------------- /fec/fec/static/scss/entity.scss: -------------------------------------------------------------------------------- 1 | /* Used inside candidate-single and committee-single */ 2 | @import 'base'; 3 | 4 | @import 'common'; 5 | @import 'components/entity-header'; 6 | @import 'components/candidate-page'; 7 | @import 'components/data-container'; 8 | @import 'components/datatable-panel'; 9 | @import 'components/downloads'; 10 | @import 'components/datatables'; 11 | @import 'components/datatable-panel'; 12 | @import 'components/downloads'; 13 | @import 'components/table-styles'; 14 | @import 'components/results-info'; 15 | @import 'components/callouts'; 16 | @import 'components/committee-snapshot'; 17 | -------------------------------------------------------------------------------- /fec/fec/static/scss/legal-common.scss: -------------------------------------------------------------------------------- 1 | @import 'global'; 2 | 3 | @import 'common'; 4 | 5 | @import 'components/legal-search'; 6 | @import 'components/search-controls'; 7 | @import 'components/posts'; 8 | @import 'components/table-styles'; 9 | @import 'datatables'; 10 | @import 'components/entity-header'; 11 | -------------------------------------------------------------------------------- /fec/fec/static/scss/legal.scss: -------------------------------------------------------------------------------- 1 | @import 'global'; 2 | 3 | @import 'common'; 4 | @import 'datatables'; 5 | @import 'components/legal-search'; 6 | @import 'components/search-controls'; 7 | @import 'components/posts'; 8 | @import 'components/headings'; 9 | @import 'components/table-styles'; 10 | -------------------------------------------------------------------------------- /fec/fec/static/scss/mixins/_icon-mixins.scss: -------------------------------------------------------------------------------- 1 | // Icon mixins 2 | // 3 | 4 | @function str-replace($string, $search, $replace: '') { 5 | $index: str-index($string, $search); 6 | 7 | @if $index { 8 | @return str-slice($string, 1, $index - 1) + $replace + 9 | str-replace( 10 | str-slice($string, $index + str-length($search)), 11 | $search, 12 | $replace 13 | ); 14 | } 15 | 16 | @return $string; 17 | } 18 | 19 | @function svg-fill($svg, $color) { 20 | $fillColor: str-replace(#{$color}, '#', '%23'); 21 | @return str-replace($svg, '%3Csvg', '%3Csvg%20%20fill%3D%27#{$fillColor}%27'); 22 | } 23 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/addons/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Provides an easy way to include a clearfix for containing floats. 4 | /// 5 | /// @link http://cssmojo.com/latest_new_clearfix_so_far/ 6 | /// 7 | /// @example scss - Usage 8 | /// .element { 9 | /// @include clearfix; 10 | /// } 11 | /// 12 | /// @example css - CSS Output 13 | /// .element::after { 14 | /// clear: both; 15 | /// content: ""; 16 | /// display: table; 17 | /// } 18 | 19 | @mixin clearfix { 20 | &::after { 21 | clear: both; 22 | content: ''; 23 | display: table; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_appearance.scss: -------------------------------------------------------------------------------- 1 | @mixin appearance($value) { 2 | @include prefixer(appearance, $value, webkit moz ms o spec); 3 | } 4 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_backface-visibility.scss: -------------------------------------------------------------------------------- 1 | @mixin backface-visibility($visibility) { 2 | @include prefixer(backface-visibility, $visibility, webkit spec); 3 | } 4 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_calc.scss: -------------------------------------------------------------------------------- 1 | @mixin calc($property, $value) { 2 | #{$property}: -webkit-calc(#{$value}); 3 | #{$property}: calc(#{$value}); 4 | } 5 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_filter.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($function: none) { 2 | // [ 3 | @include prefixer(perspective, $depth, webkit moz spec); 4 | } 5 | 6 | @mixin perspective-origin($value: 50% 50%) { 7 | @include prefixer(perspective-origin, $value, webkit moz spec); 8 | } 9 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_placeholder.scss: -------------------------------------------------------------------------------- 1 | @mixin placeholder { 2 | $placeholders: ':-webkit-input' ':-moz' '-moz' '-ms-input'; 3 | @each $placeholder in $placeholders { 4 | &:#{$placeholder}-placeholder { 5 | @content; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_transform.scss: -------------------------------------------------------------------------------- 1 | @mixin transform($property: none) { 2 | // none | 3 | @include prefixer(transform, $property, webkit moz ms o spec); 4 | } 5 | 6 | @mixin transform-origin($axes: 50%) { 7 | // x-axis - left | center | right | length | % 8 | // y-axis - top | center | bottom | length | % 9 | // z-axis - length 10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec); 11 | } 12 | 13 | @mixin transform-style($style: flat) { 14 | @include prefixer(transform-style, $style, webkit moz ms o spec); 15 | } 16 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/css3/_user-select.scss: -------------------------------------------------------------------------------- 1 | @mixin user-select($value: none) { 2 | @include prefixer(user-select, $value, webkit moz ms spec); 3 | } 4 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_assign-inputs.scss: -------------------------------------------------------------------------------- 1 | @function assign-inputs($inputs, $pseudo: null) { 2 | $list: (); 3 | 4 | @each $input in $inputs { 5 | $input: unquote($input); 6 | $input: if($pseudo, $input + ':' + $pseudo, $input); 7 | $list: append($list, $input, comma); 8 | } 9 | 10 | @return $list; 11 | } 12 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_contains-falsy.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list does not contains a value. 4 | /// 5 | /// @access private 6 | /// 7 | /// @param {List} $list 8 | /// The list to check against. 9 | /// 10 | /// @return {Bool} 11 | 12 | @function contains-falsy($list) { 13 | @each $item in $list { 14 | @if not $item { 15 | @return true; 16 | } 17 | } 18 | 19 | @return false; 20 | } 21 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_contains.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks if a list contains a value(s). 4 | /// 5 | /// @access private 6 | /// 7 | /// @param {List} $list 8 | /// The list to check against. 9 | /// 10 | /// @param {List} $values 11 | /// A single value or list of values to check for. 12 | /// 13 | /// @example scss - Usage 14 | /// contains($list, $value) 15 | /// 16 | /// @return {Bool} 17 | 18 | @function contains($list, $values...) { 19 | @each $value in $values { 20 | @if type-of(index($list, $value)) != 'number' { 21 | @return false; 22 | } 23 | } 24 | 25 | @return true; 26 | } 27 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_is-length.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS length. 4 | /// 5 | /// @param {string} $value 6 | 7 | @function is-length($value) { 8 | @return type-of($value) != 'null' and 9 | ( 10 | str-slice($value + '', 1, 4) == 'calc' or 11 | index(auto inherit initial 0, $value) or 12 | (type-of($value) == 'number' and not(unitless($value))) 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_is-number.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid number. 4 | /// 5 | /// @param {number} $value 6 | /// 7 | /// @require {function} contains 8 | 9 | @function is-number($value) { 10 | @return contains( 11 | '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9, 12 | $value 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_is-size.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Checks for a valid CSS size. 4 | /// 5 | /// @param {string} $value 6 | /// 7 | /// @require {function} contains 8 | /// @require {function} is-length 9 | 10 | @function is-size($value) { 11 | @return is-length($value) or 12 | contains('fill' 'fit-content' 'min-content' 'max-content', $value); 13 | } 14 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to ems 2 | // eg. for a relational value of 12px write em(12) when the parent is 16px 3 | // if the parent is another value say 24px write em(12, 24) 4 | @use 'sass:math'; 5 | @function em($pxval, $base: $em-base) { 6 | @if not unitless($pxval) { 7 | $pxval: strip-units($pxval); 8 | } 9 | @if not unitless($base) { 10 | $base: strip-units($base); 11 | } 12 | @return math.div($pxval, $base) * 1em; 13 | } 14 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_px-to-rem.scss: -------------------------------------------------------------------------------- 1 | // Convert pixels to rems 2 | // eg. for a relational value of 12px write rem(12) 3 | // Assumes $em-base is the font-size of 4 | 5 | @use 'sass:math'; 6 | @function rem($pxval) { 7 | @if not unitless($pxval) { 8 | $pxval: strip-units($pxval); 9 | } 10 | 11 | $base: $em-base; 12 | @if not unitless($base) { 13 | $base: strip-units($base); 14 | } 15 | @return math.div($pxval, $base) * 1rem; 16 | } 17 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_shade.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with black. 4 | /// 5 | /// @param {Color} $color 6 | /// 7 | /// @param {number (Percentage)} $percent 8 | /// The amount of black to be mixed in. 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// background-color: shade(#ffbb52, 60%); 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element { 17 | /// background-color: #664a20; 18 | /// } 19 | /// 20 | /// @return {Color} 21 | 22 | @function shade($color, $percent) { 23 | @return mix(#000, $color, $percent); 24 | } 25 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_strip-units.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @use 'sass:math'; 3 | 4 | /// Strips the unit from a number. 5 | /// 6 | /// @param {number (With Unit)} $value 7 | /// 8 | /// @example scss - Usage 9 | /// $dimension: strip-units(10em); 10 | /// 11 | /// @example css - CSS Output 12 | /// $dimension: 10; 13 | /// 14 | /// @return {number (Unitless)} 15 | 16 | @function strip-units($value) { 17 | @return math.div($value, ($value * 0 + 1)); 18 | } 19 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/functions/_tint.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Mixes a color with white. 4 | /// 5 | /// @param {Color} $color 6 | /// 7 | /// @param {number (Percentage)} $percent 8 | /// The amount of white to be mixed in. 9 | /// 10 | /// @example scss - Usage 11 | /// .element { 12 | /// background-color: tint(#6ecaa6, 40%); 13 | /// } 14 | /// 15 | /// @example css - CSS Output 16 | /// .element { 17 | /// background-color: #a8dfc9; 18 | /// } 19 | /// 20 | /// @return {Color} 21 | 22 | @function tint($color, $percent) { 23 | @return mix(#fff, $color, $percent); 24 | } 25 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _gradient-positions-parser($gradient-type, $gradient-positions) { 2 | @if $gradient-positions and 3 | ($gradient-type == linear) and 4 | (type-of($gradient-positions) != color) 5 | { 6 | $gradient-positions: _linear-positions-parser($gradient-positions); 7 | } @else if 8 | $gradient-positions and 9 | ($gradient-type == radial) and 10 | (type-of($gradient-positions) != color) 11 | { 12 | $gradient-positions: _radial-positions-parser($gradient-positions); 13 | } 14 | @return $gradient-positions; 15 | } 16 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/helpers/_radial-positions-parser.scss: -------------------------------------------------------------------------------- 1 | @function _radial-positions-parser($gradient-pos) { 2 | $shape-size: nth($gradient-pos, 1); 3 | $pos: nth($gradient-pos, 2); 4 | $shape-size-spec: _shape-size-stripper($shape-size); 5 | 6 | $pre-spec: unquote(if($pos, '#{$pos}, ', null)) 7 | unquote(if($shape-size, '#{$shape-size},', null)); 8 | $pos-spec: if($pos, 'at #{$pos}', null); 9 | 10 | $spec: '#{$shape-size-spec} #{$pos-spec}'; 11 | 12 | // Add comma 13 | @if ($spec != ' ') { 14 | $spec: '#{$spec},'; 15 | } 16 | 17 | @return $pre-spec $spec; 18 | } 19 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/helpers/_shape-size-stripper.scss: -------------------------------------------------------------------------------- 1 | @function _shape-size-stripper($shape-size) { 2 | $shape-size-spec: null; 3 | @each $value in $shape-size { 4 | @if ($value == 'cover') or ($value == 'contain') { 5 | $value: null; 6 | } 7 | $shape-size-spec: '#{$shape-size-spec} #{$value}'; 8 | } 9 | @return $shape-size-spec; 10 | } 11 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/settings/_asset-pipeline.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it. 4 | /// 5 | /// @type Bool 6 | 7 | $asset-pipeline: false !default; 8 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/settings/_prefixer.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Global variables to enable or disable vendor prefixes 4 | 5 | $prefix-for-webkit: true !default; 6 | $prefix-for-mozilla: true !default; 7 | $prefix-for-microsoft: true !default; 8 | $prefix-for-opera: true !default; 9 | $prefix-for-spec: true !default; 10 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/bourbon/settings/_px-to-em.scss: -------------------------------------------------------------------------------- 1 | $em-base: 16px !default; 2 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/neat/_neat-helpers.scss: -------------------------------------------------------------------------------- 1 | // Functions 2 | @import 'functions/private'; 3 | @import 'functions/new-breakpoint'; 4 | 5 | // Settings 6 | @import 'settings/grid'; 7 | @import 'settings/visual-grid'; 8 | @import 'settings/disable-warnings'; 9 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/neat/_neat.scss: -------------------------------------------------------------------------------- 1 | // Neat 1.7.2 2 | // http://neat.bourbon.io 3 | // Copyright 2012-2015 thoughtbot, inc. 4 | // MIT License 5 | 6 | // Helpers 7 | @import 'neat-helpers'; 8 | 9 | // Grid 10 | @import 'grid/private'; 11 | @import 'grid/box-sizing'; 12 | @import 'grid/omega'; 13 | @import 'grid/outer-container'; 14 | @import 'grid/span-columns'; 15 | @import 'grid/row'; 16 | @import 'grid/shift'; 17 | @import 'grid/pad'; 18 | @import 'grid/fill-parent'; 19 | @import 'grid/media'; 20 | @import 'grid/to-deprecate'; 21 | @import 'grid/visual-grid'; 22 | @import 'grid/display-context'; 23 | @import 'grid/direction-context'; 24 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/neat/grid/_box-sizing.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @if $border-box-sizing == true { 4 | html { 5 | // http://bit.ly/1qk2tVR 6 | box-sizing: border-box; 7 | } 8 | 9 | * { 10 | &, 11 | &::after, 12 | &::before { 13 | box-sizing: inherit; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/neat/grid/_fill-parent.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Forces the element to fill its parent container. 4 | /// 5 | /// @example scss - Usage 6 | /// .element { 7 | /// @include fill-parent; 8 | /// } 9 | /// 10 | /// @example css - CSS Output 11 | /// .element { 12 | /// width: 100%; 13 | /// box-sizing: border-box; 14 | /// } 15 | 16 | @mixin fill-parent() { 17 | width: 100%; 18 | 19 | @if $border-box-sizing == false { 20 | box-sizing: border-box; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /fec/fec/static/scss/vendor/neat/settings/_disable-warnings.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag. 4 | /// 5 | /// @type Bool 6 | 7 | $disable-warnings: false !default; 8 | 9 | @mixin -neat-warn($message) { 10 | @if $disable-warnings == false { 11 | @warn "#{$message}"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /fec/fec/templates/partials/disclaimer.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /fec/fec/templates/partials/search-hero.html: -------------------------------------------------------------------------------- 1 | {% block content %} 2 | 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /fec/fec/templates/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /fec/fec/templates/uaa_client/login_error.html: -------------------------------------------------------------------------------- 1 |

Login Error

2 | {% if error_code == 'authenticate_failed' %} 3 |

4 | Either you don't have permission to log in to this system, or 5 | an error occurred when trying to log you in. 6 |

7 | {% else %} 8 |

Unfortunately, an error occurred when trying to log you in.

9 |

Error code: {{ error_code }}

10 | {% endif %} -------------------------------------------------------------------------------- /fec/fec/tests/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "../../../.eslintrc" 4 | ], 5 | "env": { 6 | "browser": true, 7 | "es6": true, 8 | "jquery": true, 9 | "mocha": true, 10 | "node": true 11 | }, 12 | "parser": "@babel/eslint-parser", 13 | "parserOptions": { 14 | "babelOptions": { 15 | "configFile": "./babel.config.json" 16 | } 17 | // "requireConfigFile": false, 18 | // "ecmaVersion": 2018, 19 | // "sourceType": "module" 20 | }, 21 | "rules": { 22 | "import/order": "off" 23 | } 24 | // "globals": { 25 | // "$": false 26 | // } 27 | } 28 | -------------------------------------------------------------------------------- /fec/fec/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/fec/tests/__init__.py -------------------------------------------------------------------------------- /fec/fec/tests/fixtures/context.js: -------------------------------------------------------------------------------- 1 | export default { 2 | election: { 3 | cycle: '2016', 4 | office: 'house', 5 | state: 'AZ', 6 | stateFull: 'Arizona', 7 | district: '09' 8 | }, 9 | timePeriod: '2015–2016' 10 | }; 11 | -------------------------------------------------------------------------------- /fec/fec/tests/js/analytics.js: -------------------------------------------------------------------------------- 1 | // TODO: Do we still need this test if we aren't calling sortQuery from anywhere else in the repo? 2 | 3 | import { expect } from 'chai'; 4 | import { sortQuery } from '../../static/js/modules/analytics.js'; 5 | 6 | describe('analytics', function() { 7 | it('sorts query parameters', function() { 8 | var query = { 9 | cycle: [2016, 2014], 10 | sort: 'name' 11 | }; 12 | expect(sortQuery(query)).to.equal( 13 | 'cycle=2014&cycle=2016&sort=name' 14 | ); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /fec/fec/tests/js/babel.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /fec/fec/tests/js/draftail/setup.js: -------------------------------------------------------------------------------- 1 | import Enzyme from 'enzyme'; 2 | import Adapter from 'enzyme-adapter-react-16'; 3 | 4 | Enzyme.configure({ adapter: new Adapter() }); 5 | -------------------------------------------------------------------------------- /fec/fec/utils.py: -------------------------------------------------------------------------------- 1 | """Custom SASS compiler that fixes paths for relative includes. 2 | From https://github.com/django-compressor/django-compressor/issues/226. 3 | """ 4 | from compressor.filters.css_default import CssAbsoluteFilter 5 | from django_libsass import SassCompiler 6 | 7 | 8 | class PatchedSCSSCompiler(SassCompiler): 9 | def input(self, **kwargs): 10 | content = super(PatchedSCSSCompiler, self).input(**kwargs) 11 | kwargs.setdefault('filename', self.filename) 12 | return CssAbsoluteFilter(content).input(**kwargs) 13 | -------------------------------------------------------------------------------- /fec/fec/wagtail_npm_dependencies/ace-builds: -------------------------------------------------------------------------------- 1 | ../../../node_modules/ace-builds/ -------------------------------------------------------------------------------- /fec/fec/wagtail_npm_dependencies/jquery: -------------------------------------------------------------------------------- 1 | ../../../node_modules/jquery -------------------------------------------------------------------------------- /fec/fec/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for fec project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'fec.settings.production') 12 | 13 | from django.core.wsgi import get_wsgi_application # noqa: E402 14 | 15 | from fec.settings.env import env # noqa E402 16 | 17 | application = get_wsgi_application() 18 | -------------------------------------------------------------------------------- /fec/home/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/home/__init__.py -------------------------------------------------------------------------------- /fec/home/migrations/0021_merge.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-09-09 23:23 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0019_auto_20160907_2152'), 12 | ('home', '0020_auto_20160909_0139'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0023_remove_presslandingpage_feed_intro.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-09-29 22:20 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0022_auto_20160923_0004'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RemoveField( 16 | model_name='presslandingpage', 17 | name='feed_intro', 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /fec/home/migrations/0025_merge.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-10-04 16:19 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0022_auto_20160921_2230'), 12 | ('home', '0024_presslandingpage_feed_intro'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0026_auto_20161004_1620.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-10-04 16:20 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0025_merge'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RemoveField( 16 | model_name='presslandingpage', 17 | name='digest_intro', 18 | ), 19 | migrations.RemoveField( 20 | model_name='presslandingpage', 21 | name='release_intro', 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /fec/home/migrations/0028_merge.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.10 on 2016-10-06 17:23 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0025_auto_20161006_1415'), 12 | ('home', '0027_auto_20161004_1620'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0030_pressreleasepage_formatted_title.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-12-01 19:20 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0029_auto_20161107_0304'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='pressreleasepage', 17 | name='formatted_title', 18 | field=models.CharField(blank=True, help_text='Use if you need italics in the title', max_length=255, null=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0031_auto_20161201_2123.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-12-01 21:23 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0030_pressreleasepage_formatted_title'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='pressreleasepage', 17 | old_name='formatted_title', 18 | new_name='rich_title', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0032_auto_20161201_2124.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-12-01 21:24 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0031_auto_20161201_2123'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='pressreleasepage', 17 | old_name='rich_title', 18 | new_name='formatted_title', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0033_auto_20161201_2126.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.9.9 on 2016-12-01 21:26 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0032_auto_20161201_2124'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='pressreleasepage', 17 | name='formatted_title', 18 | field=models.CharField(blank=True, default='', help_text='Use if you need italics in the title. e.g. Italicized words', max_length=255, null=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0034_pressreleasepage_homepage_pin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-16 01:36 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0033_auto_20161201_2126'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='pressreleasepage', 17 | name='homepage_pin', 18 | field=models.BooleanField(default=False), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0035_pressreleasepage_homepage_hide.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-16 01:37 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0034_pressreleasepage_homepage_pin'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='pressreleasepage', 17 | name='homepage_hide', 18 | field=models.BooleanField(default=False), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0035_recordpage_monthly_issue.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-21 19:23 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0034_auto_20161221_1920'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='recordpage', 17 | name='monthly_issue', 18 | field=models.CharField(blank=True, default='', max_length=255), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0037_recordpage_monthly_issue_url.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-23 15:54 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0036_auto_20161221_2007'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='recordpage', 17 | name='monthly_issue_url', 18 | field=models.CharField(blank=True, default='', max_length=255), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0038_merge_20161223_1820.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-23 18:20 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0037_recordpage_monthly_issue_url'), 12 | ('home', '0037_auto_20161216_0222'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0042_auto_20161227_1526.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-27 15:26 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0041_auto_20161227_1524'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='aboutlandingpage', 17 | old_name='org_intro', 18 | new_name='leadership_intro', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0042_auto_20161229_2001.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-29 20:01 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0041_enforcementpage'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameModel( 16 | old_name='LegalResourcesLanding', 17 | new_name='LegalResourcesLandingPage', 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /fec/home/migrations/0043_auto_20161227_1538.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-27 15:38 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0042_auto_20161227_1526'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameField( 16 | model_name='aboutlandingpage', 17 | old_name='org_report_intro', 18 | new_name='reports_intro', 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0043_merge_20161230_0122.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2016-12-30 01:22 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0038_merge_20161223_1820'), 12 | ('home', '0042_auto_20161229_2001'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0045_merge_20170105_0036.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-01-05 00:36 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0044_auto_20170105_0006'), 12 | ('home', '0044_aboutlandingpage_option_blocks'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0048_auto_20170105_0049.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-01-05 00:49 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0047_auto_20170105_0044'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='resourcepage', 17 | name='intro', 18 | field=models.CharField(max_length=1000, null=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0049_auto_20170105_0052.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-01-05 00:52 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | import wagtail.blocks 7 | import wagtail.fields 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | dependencies = [ 13 | ('home', '0048_auto_20170105_0049'), 14 | ] 15 | 16 | operations = [ 17 | migrations.AlterField( 18 | model_name='resourcepage', 19 | name='intro', 20 | field=wagtail.fields.StreamField((('body', wagtail.blocks.RichTextBlock()),), null=True), 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /fec/home/migrations/0050_auto_20170105_0055.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-01-05 00:55 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | import wagtail.blocks 7 | import wagtail.fields 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | dependencies = [ 13 | ('home', '0049_auto_20170105_0052'), 14 | ] 15 | 16 | operations = [ 17 | migrations.AlterField( 18 | model_name='resourcepage', 19 | name='intro', 20 | field=wagtail.fields.StreamField((('paragraph', wagtail.blocks.RichTextBlock()),), null=True), 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /fec/home/migrations/0056_merge_20170127_1735.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-01-27 17:35 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0055_tipsfortreasurerspage'), 12 | ('home', '0055_auto_20170123_2232'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0059_auto_20170209_0151.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-02-09 01:51 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0058_documentfeedpage_documentpage'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='documentpage', 17 | name='size', 18 | field=models.CharField(blank=True, max_length=255, null=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0061_merge_20170210_2230.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-02-10 22:30 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0060_auto_20170209_2030'), 12 | ('home', '0058_auto_20170210_2136'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0066_remove_documentpage_file_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-02-24 15:03 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0065_auto_20170221_0345'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RemoveField( 16 | model_name='documentpage', 17 | name='file_name', 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /fec/home/migrations/0067_documentpage_year_only.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-03-07 23:20 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0066_remove_documentpage_file_name'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='documentpage', 17 | name='year_only', 18 | field=models.BooleanField(default=False), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0068_merge_20170310_0002.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-03-10 00:02 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0067_documentpage_year_only'), 12 | ('home', '0067_agendapage'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0070_merge_20170322_1940.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-03-22 19:40 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0069_auto_20170316_0006'), 12 | ('home', '0069_auto_20170318_0005'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0071_agendapage_imported_html.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.6 on 2017-03-23 00:59 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | import wagtail.blocks 7 | import wagtail.fields 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | dependencies = [ 13 | ('home', '0070_merge_20170322_1940'), 14 | ] 15 | 16 | operations = [ 17 | migrations.AddField( 18 | model_name='agendapage', 19 | name='imported_html', 20 | field=wagtail.fields.StreamField((('html_block', wagtail.blocks.RawHTMLBlock()),), blank=True, null=True), 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /fec/home/migrations/0074_merge_20170330_2316.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-03-30 23:16 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0073_auto_20170330_1915'), 12 | ('home', '0073_auto_20170330_1840'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0075_merge_20170331_0608.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.5 on 2017-03-31 06:08 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0073_auto_20170329_2112'), 12 | ('home', '0074_auto_20170330_2222'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0076_merge_20170331_1633.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-03-31 16:33 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0074_merge_20170330_2316'), 12 | ('home', '0075_auto_20170330_2354'), 13 | ('home', '0075_merge_20170331_0608'), 14 | ] 15 | 16 | operations = [ 17 | ] 18 | -------------------------------------------------------------------------------- /fec/home/migrations/0082_merge_20170504_2212.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.6 on 2017-05-04 22:12 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0081_genericupdate'), 12 | ('home', '0081_auto_20170501_2216'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0082_merge_20170505_0025.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-05-05 00:25 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0079_auto_20170414_0021'), 12 | ('home', '0081_genericupdate'), 13 | ('home', '0081_auto_20170501_2216'), 14 | ] 15 | 16 | operations = [ 17 | ] 18 | -------------------------------------------------------------------------------- /fec/home/migrations/0084_merge_20170509_0021.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-05-09 00:21 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0083_auto_20170506_0059'), 12 | ('home', '0083_auto_20170504_2215'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0085_auto_20170510_1928.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-05-10 19:28 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0084_merge_20170509_0021'), 12 | ] 13 | 14 | operations = [ 15 | migrations.RenameModel( 16 | old_name='AgendaPage', 17 | new_name='MeetingPage', 18 | ), 19 | ] 20 | -------------------------------------------------------------------------------- /fec/home/migrations/0087_meetingpage_homepage_hide.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-05-19 21:38 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0086_auto_20170519_1726'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AddField( 16 | model_name='meetingpage', 17 | name='homepage_hide', 18 | field=models.BooleanField(default=False), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /fec/home/migrations/0091_merge_20170811_2035.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-08-11 20:35 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0090_auto_20170811_1840'), 12 | ('home', '0088_folder'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0091_merge_20170814_0055.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-08-14 00:55 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0088_folder'), 12 | ('home', '0090_auto_20170811_1840'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0093_merge_20170814_2229.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-08-14 22:29 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0092_auto_20170814_0109'), 12 | ('home', '0091_merge_20170811_2035'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0094_auto_20170829_1640.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Generated by Django 1.10.7 on 2017-08-25 10:52 4 | 5 | from __future__ import unicode_literals 6 | 7 | from django.db import migrations 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | dependencies = [ 13 | 14 | ('home', '0093_merge_20170814_2229'), 15 | ('home', '0091_merge_20170814_0055'), 16 | ] 17 | 18 | operations = [ 19 | migrations.RemoveField( 20 | model_name='folder', 21 | name='page_ptr', 22 | ), 23 | migrations.DeleteModel( 24 | name='Folder', 25 | ), 26 | ] 27 | -------------------------------------------------------------------------------- /fec/home/migrations/0096_merge_20170907_2031.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.7 on 2017-09-07 20:31 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0095_auto_20170831_2013'), 12 | ('home', '0095_meetingpage_sunshine_act_doc_upld'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0097_auto_20170929_2329.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.8 on 2017-09-25 19:52 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | from django.db import migrations, models 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | dependencies = [ 13 | ('wagtailforms', '0003_capitalizeverbose'), 14 | ('wagtailcore', '0032_add_bulk_delete_page_permission'), 15 | ('wagtailredirects', '0005_capitalizeverbose'), 16 | ('wagtailsearchpromotions', '0002_capitalizeverbose'), 17 | ('home', '0096_merge_20170907_2031'), 18 | ] 19 | 20 | operations = [ 21 | ] -------------------------------------------------------------------------------- /fec/home/migrations/0099_merge_20171109_1546.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.10.4 on 2017-11-09 20:46 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('home', '0097_auto_20170925_1952'), 12 | ('home', '0098_auto_20170930_0054'), 13 | ] 14 | 15 | operations = [ 16 | ] 17 | -------------------------------------------------------------------------------- /fec/home/migrations/0123_merge_20220308_1116.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.1.14 on 2022-03-08 16:16 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('home', '0122_auto_20220303_1357'), 10 | ('home', '0122_auto_20220302_2114'), 11 | ] 12 | 13 | operations = [ 14 | ] 15 | -------------------------------------------------------------------------------- /fec/home/migrations/0128_merge_0125_officepage_0126_auto_20230123_1927.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 3.2.18 on 2023-05-03 15:34 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('home', '0125_officepage'), 10 | ('home', '0127_auto_20230123_1927'), 11 | ] 12 | 13 | operations = [ 14 | ] 15 | -------------------------------------------------------------------------------- /fec/home/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/home/migrations/__init__.py -------------------------------------------------------------------------------- /fec/home/templates/blocks/audit.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load audit_search %} 3 | 4 | {% search_audits %} 5 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/button.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 | {% if self.internal_page %} 4 | {{ self.text }} 5 | {% else %} 6 | {{ self.text }} 7 | {% endif %} 8 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/careers.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load open_jobs %} 3 | 4 | {% get_jobs %} -------------------------------------------------------------------------------- /fec/home/templates/blocks/commissioners.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load commissioners %} 3 | 4 |
5 |

Current

6 | {% current_commissioners '2' %} 7 |
8 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/custom_table.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 | {% for block in self.custom_table %} 4 | 5 | {% if block.block_type == "title" %} 6 |

{{ block }}

7 | 8 | {% elif block.block_type == "table_intro" %} 9 |
{{ block }}
10 | 11 | {% elif block.block_type == "table" %} 12 |
{{ block }}
13 | 14 | {% elif block.block_type == "footnote" %} 15 |
{{ block }}
16 | 17 | {% endif %} 18 | 19 | {% endfor %} 20 | 21 | 22 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/disabled-page-links.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 |

4 | {{ self }} 5 |

6 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/document-list.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load filters %} 3 | 4 |
5 | {% for block in self %} 6 |
7 |

{{ block.title }}

8 | {% if block.document %} 9 |

{{ block.document.title}} | {{ block.document.url | get_file_type }}

10 | {% elif block.external_document %} 11 |

{{ block.title }} | {{ block.external_document | get_file_type }}

12 | {% endif %} 13 |
14 | {% endfor %} 15 |
16 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/embed-info-message.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 |
3 | {{ self.text | richtext}} 4 |
5 | 6 | 7 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/embed-table.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 | 4 |
5 | 6 | {{ self.text | richtext}} 7 |
8 | 9 | 10 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/example-forms.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load wagtailimages_tags %} 3 | 4 |

{{ self.title }}

5 |
6 | {% for block in self.forms %} 7 | 13 | {% endfor %} 14 |
15 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/example-image.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load wagtailimages_tags %} 3 | 4 | {% if self.title %} 5 |

{{ self.title }}

6 | {% endif %} 7 | 8 |
9 | {% image self.image original class="example__image"%} 10 |
{{ self.caption }}
11 |
12 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/example-paragraph.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 |

{{ self.title }}

4 |
5 |
{{ self.paragraph }}
6 |
7 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/page-links.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 |

4 | {{ self }} 5 |

6 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/related-media.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load wagtailimages_tags %} 3 | {% load static %} 4 | 5 |
6 |
7 | {% for blocks in self.media %} 8 | {% with blocks.value as blocks %} 9 | {% for block in blocks %} 10 |
11 | {% image block.image original %} 12 | {{ block.media_type }} 13 |

{{ block.text }}

14 |
15 | {% endfor %} 16 | {% endwith %} 17 | {% endfor %} 18 |
19 |
20 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/reporting-dates-table-block.html: -------------------------------------------------------------------------------- 1 | {% load table_block_tags %} 2 | {% load wagtailcore_tags %} 3 | 4 | 5 | {% for row in self.table.data %} 6 | {% if forloop.first %} 7 | 8 | {% for cell in row %} 9 | 10 | {% endfor %} 11 | 12 | {% else %} 13 | 14 | {% for cell in row %} 15 | 16 | {% endfor %} 17 | 18 | {% endif %} 19 | {% endfor %} 20 |
{{ cell | safe }}
{{ cell | safe }}
21 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/section-documents.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load wagtailimages_tags %} 3 | 4 |
5 | {% for block in self %} 6 | 14 | {% endfor %} 15 |
16 | -------------------------------------------------------------------------------- /fec/home/templates/blocks/simple-document-list.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load filters %} 3 | 4 | {% for block in self %} 5 | 6 | {{ block.title}} | {{ block.document.url | get_file_type}} 7 | 8 | {% endfor %} -------------------------------------------------------------------------------- /fec/home/templates/blocks/simple-document.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | {% load filters %} 3 | 4 | 5 |

6 | {{ self.title}} | {{ self.document.url | get_file_type}} 7 |

8 | -------------------------------------------------------------------------------- /fec/home/templates/partials/document-feed.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This partial is used by the document_feed inclusion tag in document_feed.py 3 | {% endcomment %} 4 | 5 | {% for document in documents %} 6 | {% include 'partials/document.html' with document=document category=category%} 7 | {% endfor %} 8 | -------------------------------------------------------------------------------- /fec/home/templates/partials/home-page-news.html: -------------------------------------------------------------------------------- 1 | {% load filters %} 2 |
    3 | {% for update in updates %} 4 |
  • 5 | {% if update.homepage_pin == True %} 6 |

    Featured

    7 | {% endif %} 8 |
    9 | {{ update.get_update_type }} 10 |
    11 | {% formatted_title update %} 12 |
  • 13 | {% endfor %} 14 |
15 | -------------------------------------------------------------------------------- /fec/home/templates/partials/legal-news.html: -------------------------------------------------------------------------------- 1 | {% load filters %} 2 | -------------------------------------------------------------------------------- /fec/home/templates/partials/oig-most-recent.html: -------------------------------------------------------------------------------- 1 | {% load filters %} 2 | {# List to display the most recent OIG report items #} 3 |
    4 | {% for item in oig_most_recent %} 5 |
  • 6 | {% formatted_title item %} 7 | 8 |
  • 9 | {% endfor %} 10 |
11 | -------------------------------------------------------------------------------- /fec/home/templates/partials/press-feed.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | This partial is used by the press_updates inclusion tag in updates.py 3 | {% endcomment %} 4 | 5 | {% for update in updates %} 6 | {% include 'partials/update.html' with update=update show_tag=False%} 7 | {% endfor %} 8 | -------------------------------------------------------------------------------- /fec/home/templates/partials/tips-for-treasurers.html: -------------------------------------------------------------------------------- 1 | {% load filters %} 2 |
    3 | {% for tip in tips_for_treasurers %} 4 |
  • 5 | {% formatted_title tip %} 6 | {{ tip.date|date:'F j, Y' }} 7 |
  • 8 | {% endfor %} 9 |
10 | -------------------------------------------------------------------------------- /fec/home/templates/purgecss-homepage/hero.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |
7 |
8 |

Protecting the integrity of the campaign finance process

9 | More about the FEC 10 |
11 |
12 |
13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /fec/home/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/home/templatetags/__init__.py -------------------------------------------------------------------------------- /fec/home/templatetags/audit_search.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from data import constants 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.inclusion_tag('partials/audit-search.html') 8 | def search_audits(): 9 | findings = [item for item in constants.audit_primary_categories_options] 10 | return {'findings': findings} 11 | -------------------------------------------------------------------------------- /fec/home/templatetags/author_groups.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from home.models import Author 3 | 4 | register = template.Library() 5 | 6 | """" 7 | Inside author-list.html, the this templatetag is called with an argument wich maps to 8 | the group var. - In template: {% author_group first_author.author.name %}) 9 | The group var then maps to an author_group of the same name in the Author model. 10 | """ 11 | 12 | 13 | @register.inclusion_tag('partials/author-groups.html') 14 | def author_group(group): 15 | authors = Author.objects.filter(author_group__exact=group) 16 | return { 17 | 'authors': authors, 18 | } 19 | -------------------------------------------------------------------------------- /fec/home/templatetags/elections_lookup.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from data import constants 3 | 4 | from django.conf import settings 5 | from data import utils 6 | 7 | register = template.Library() 8 | 9 | 10 | @register.inclusion_tag('partials/elections-lookup.html') 11 | def elections_lookup(request): 12 | 13 | cycle = constants.DEFAULT_ELECTION_YEAR 14 | cycles = utils.get_cycles(cycle + 4) 15 | FEATURES = settings.FEATURES 16 | states = constants.states 17 | 18 | return {'parent': 'data', 'cycles': cycles, 'cycle': cycle, 'states': states, 'FEATURES': FEATURES} 19 | -------------------------------------------------------------------------------- /fec/home/templatetags/legal_news.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from home.models import RecordPage 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.inclusion_tag('partials/legal-news.html') 8 | def legal_news_feed(): 9 | 10 | records = RecordPage.objects.live().filter(homepage_hide=False, homepage_pin=False).order_by('-date')[:4] 11 | 12 | return { 13 | 'records': records 14 | } 15 | -------------------------------------------------------------------------------- /fec/home/templatetags/tips_for_treasurers.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from home.models import TipsForTreasurersPage 3 | 4 | register = template.Library() 5 | 6 | 7 | @register.inclusion_tag('partials/tips-for-treasurers.html') 8 | def tips_for_treasurers_feed(): 9 | # get one of each update type (not featured) 10 | 11 | tips_for_treasurers = TipsForTreasurersPage.objects.live().order_by('-date')[:4] 12 | 13 | return { 14 | 'tips_for_treasurers': tips_for_treasurers 15 | } 16 | -------------------------------------------------------------------------------- /fec/home/templatetags/updates.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | from home.models import DigestPage 3 | from home.models import PressReleasePage 4 | 5 | register = template.Library() 6 | 7 | 8 | @register.inclusion_tag('partials/press-feed.html') 9 | def press_releases(): 10 | press_releases = PressReleasePage.objects.live().order_by('-date')[:3] 11 | return {'updates': press_releases} 12 | 13 | 14 | @register.inclusion_tag('partials/press-feed.html') 15 | def weekly_digests(): 16 | digests = DigestPage.objects.live().order_by('-date')[:3] 17 | return {'updates': digests} 18 | -------------------------------------------------------------------------------- /fec/home/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/home/tests/__init__.py -------------------------------------------------------------------------------- /fec/legal/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/legal/__init__.py -------------------------------------------------------------------------------- /fec/legal/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin # noqa: F401 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /fec/legal/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class LegalConfig(AppConfig): 5 | name = 'legal' 6 | -------------------------------------------------------------------------------- /fec/legal/templates/partials/legal-disclaimer.jinja: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /fec/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fec.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /fec/search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/search/__init__.py -------------------------------------------------------------------------------- /fec/search/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fecgov/fec-cms/c37a1f9d1c4403cd31b945625114f4b3abecea45/fec/search/tests/__init__.py -------------------------------------------------------------------------------- /manifest_dev.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: cms 4 | instances: 1 5 | memory: 512M 6 | disk_quota: 1G 7 | stack: cflinuxfs4 8 | buildpacks: 9 | - python_buildpack 10 | routes: 11 | - route: fec-dev-cms.apps.internal 12 | services: 13 | - cms-creds-dev 14 | - fec-creds-dev 15 | - fec-dev-cms 16 | - content-s3 17 | env: 18 | DISABLE_COLLECTSTATIC: 1 19 | DJANGO_SETTINGS_MODULE: fec.settings.production 20 | FEC_API_URL: "https://fec-dev-api.app.cloud.gov" 21 | FEC_APP_URL: "/data" 22 | FEC_CMS_DEBUG: false 23 | FEC_CMS_ENVIRONMENT: dev 24 | -------------------------------------------------------------------------------- /manifest_prod.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: cms 4 | instances: 6 5 | memory: 1.5G 6 | disk_quota: 1G 7 | stack: cflinuxfs4 8 | buildpacks: 9 | - python_buildpack 10 | routes: 11 | - route: fec-prod-cms.apps.internal 12 | services: 13 | - cms-creds-prod 14 | - fec-creds-prod 15 | - fec-cms-prod 16 | - content-s3 17 | env: 18 | DISABLE_COLLECTSTATIC: 1 19 | DJANGO_SETTINGS_MODULE: fec.settings.production 20 | FEC_API_URL: "https://api.open.fec.gov" 21 | FEC_APP_URL: "/data" 22 | FEC_CMS_DEBUG: false 23 | FEC_CMS_ENVIRONMENT: prod 24 | -------------------------------------------------------------------------------- /manifest_stage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | applications: 3 | - name: cms 4 | instances: 1 5 | memory: 512M 6 | disk_quota: 1G 7 | stack: cflinuxfs4 8 | buildpacks: 9 | - python_buildpack 10 | routes: 11 | - route: fec-stage-cms.apps.internal 12 | services: 13 | - cms-creds-stage 14 | - fec-creds-stage 15 | - fec-stage-cms 16 | - content-s3 17 | env: 18 | DISABLE_COLLECTSTATIC: 1 19 | DJANGO_SETTINGS_MODULE: fec.settings.production 20 | FEC_API_URL: https://api-stage.open.fec.gov 21 | FEC_APP_URL: '/data' 22 | FEC_CMS_DEBUG: false 23 | FEC_CMS_ENVIRONMENT: stage 24 | -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- 1 | # The flake8 settings here are used by `/pytest` and `/pytest --linting` 2 | 3 | [pytest] 4 | addopts = --cov=fec fec --cov-report term-missing -ra 5 | DJANGO_SETTINGS_MODULE = fec.settings.dev 6 | 7 | norecursedirs = migrations wagtail_npm_dependencies static 8 | # norecursedirs are to keep pytest linting from checking 9 | # auto-generated code and code that isn't ours 10 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | locust==2.29.1 2 | -------------------------------------------------------------------------------- /runtime.txt: -------------------------------------------------------------------------------- 1 | python-3.11.x 2 | --------------------------------------------------------------------------------