{"sha":"063e3e3089475cc5d4ac86816e3ce048146520c4","node_id":"MDY6Q29tbWl0MTc2NDUwOTc6MDYzZTNlMzA4OTQ3NWNjNWQ0YWM4NjgxNmUzY2UwNDgxNDY1MjBjNA==","commit":{"author":{"name":"palewire","email":"ben.welsh@gmail.com","date":"2014-09-30T19:04:33Z"},"committer":{"name":"palewire","email":"ben.welsh@gmail.com","date":"2014-09-30T19:04:33Z"},"message":"Cycle totals on committee detail page","tree":{"sha":"2b7078a9595bab2b6b6b9dee58712ba9638f1b3d","url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/git/trees/2b7078a9595bab2b6b6b9dee58712ba9638f1b3d"},"url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/git/commits/063e3e3089475cc5d4ac86816e3ce048146520c4","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/commits/063e3e3089475cc5d4ac86816e3ce048146520c4","html_url":"https://github.com/palewire/django-calaccess-campaign-browser/commit/063e3e3089475cc5d4ac86816e3ce048146520c4","comments_url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/commits/063e3e3089475cc5d4ac86816e3ce048146520c4/comments","author":{"login":"palewire","id":9993,"node_id":"MDQ6VXNlcjk5OTM=","avatar_url":"https://avatars.githubusercontent.com/u/9993?v=4","gravatar_id":"","url":"https://api.github.com/users/palewire","html_url":"https://github.com/palewire","followers_url":"https://api.github.com/users/palewire/followers","following_url":"https://api.github.com/users/palewire/following{/other_user}","gists_url":"https://api.github.com/users/palewire/gists{/gist_id}","starred_url":"https://api.github.com/users/palewire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palewire/subscriptions","organizations_url":"https://api.github.com/users/palewire/orgs","repos_url":"https://api.github.com/users/palewire/repos","events_url":"https://api.github.com/users/palewire/events{/privacy}","received_events_url":"https://api.github.com/users/palewire/received_events","type":"User","site_admin":false},"committer":{"login":"palewire","id":9993,"node_id":"MDQ6VXNlcjk5OTM=","avatar_url":"https://avatars.githubusercontent.com/u/9993?v=4","gravatar_id":"","url":"https://api.github.com/users/palewire","html_url":"https://github.com/palewire","followers_url":"https://api.github.com/users/palewire/followers","following_url":"https://api.github.com/users/palewire/following{/other_user}","gists_url":"https://api.github.com/users/palewire/gists{/gist_id}","starred_url":"https://api.github.com/users/palewire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palewire/subscriptions","organizations_url":"https://api.github.com/users/palewire/orgs","repos_url":"https://api.github.com/users/palewire/repos","events_url":"https://api.github.com/users/palewire/events{/privacy}","received_events_url":"https://api.github.com/users/palewire/received_events","type":"User","site_admin":false},"parents":[{"sha":"88b99f36320813139ff93e83d9e460681df3ac11","url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/commits/88b99f36320813139ff93e83d9e460681df3ac11","html_url":"https://github.com/palewire/django-calaccess-campaign-browser/commit/88b99f36320813139ff93e83d9e460681df3ac11"}],"stats":{"total":79,"additions":73,"deletions":6},"files":[{"sha":"08c8aa52a22e66519f40055cfddf18d4cac3ca7d","filename":"calaccess_campaign_browser/models.py","status":"modified","additions":28,"deletions":0,"changes":28,"blob_url":"https://github.com/palewire/django-calaccess-campaign-browser/blob/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Fmodels.py","raw_url":"https://github.com/palewire/django-calaccess-campaign-browser/raw/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Fmodels.py","contents_url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/contents/calaccess_campaign_browser%2Fmodels.py?ref=063e3e3089475cc5d4ac86816e3ce048146520c4","patch":"@@ -138,6 +138,20 @@ def total_contributions_by_year(self):\n d[f.period.start_date.year] = f.summary.total_contributions\n return sorted(d.items(), key=lambda x:x[0], reverse=True)\n \n+ @property\n+ def total_contributions_by_cycle(self):\n+ d = {}\n+ for f in self.real_filings:\n+ if not f.summary:\n+ continue\n+ if not f.summary.total_contributions:\n+ continue\n+ try:\n+ d[f.cycle.name] += f.summary.total_contributions\n+ except KeyError:\n+ d[f.cycle.name] = f.summary.total_contributions\n+ return sorted(d.items(), key=lambda x:x[0], reverse=True)\n+\n @property\n def total_expenditures(self):\n summaries = [f.summary for f in self.real_filings]\n@@ -146,6 +160,20 @@ def total_expenditures(self):\n s.total_expenditures for s in summaries if s.total_expenditures\n ])\n \n+ @property\n+ def total_expenditures_by_cycle(self):\n+ d = {}\n+ for f in self.real_filings:\n+ if not f.summary:\n+ continue\n+ if not f.summary.total_expenditures:\n+ continue\n+ try:\n+ d[f.cycle.name] += f.summary.total_expenditures\n+ except KeyError:\n+ d[f.cycle.name] = f.summary.total_expenditures\n+ return sorted(d.items(), key=lambda x:x[0], reverse=True)\n+\n @property\n def total_expenditures_by_year(self):\n d = {}"},{"sha":"b1267447446fcde9b211193607f65b6fff130b68","filename":"calaccess_campaign_browser/templates/calaccess_campaign_browser/committee_detail.html","status":"modified","additions":41,"deletions":0,"changes":41,"blob_url":"https://github.com/palewire/django-calaccess-campaign-browser/blob/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Ftemplates%2Fcalaccess_campaign_browser%2Fcommittee_detail.html","raw_url":"https://github.com/palewire/django-calaccess-campaign-browser/raw/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Ftemplates%2Fcalaccess_campaign_browser%2Fcommittee_detail.html","contents_url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/contents/calaccess_campaign_browser%2Ftemplates%2Fcalaccess_campaign_browser%2Fcommittee_detail.html?ref=063e3e3089475cc5d4ac86816e3ce048146520c4","patch":"@@ -32,6 +32,47 @@
Summary
\n \n \n \n+\n+
\n+
Contributions by cycle
\n+
\n+ \n+ \n+ Year | \n+ Total | \n+
\n+ \n+ \n+ {% for year, total in committee.total_contributions_by_cycle %}\n+ \n+ {{ year }} | \n+ ${{ total|floatformat:0|intcomma }} | \n+
\n+ {% endfor %}\n+ \n+
\n+
\n+
\n+
Expenditures by cycle
\n+
\n+ \n+ \n+ Year | \n+ Total | \n+
\n+ \n+ \n+ {% for year, total in committee.total_expenditures_by_cycle %}\n+ \n+ {{ year }} | \n+ ${{ total|floatformat:0|intcomma }} | \n+
\n+ {% endfor %}\n+ \n+
\n+
\n+
\n+\n \n
\n
Contributions by year
"},{"sha":"15e5c53ebf2aed72998d341b9a8539b1c1f9a239","filename":"calaccess_campaign_browser/views/__init__.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/palewire/django-calaccess-campaign-browser/blob/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Fviews%2F__init__.py","raw_url":"https://github.com/palewire/django-calaccess-campaign-browser/raw/063e3e3089475cc5d4ac86816e3ce048146520c4/calaccess_campaign_browser%2Fviews%2F__init__.py","contents_url":"https://api.github.com/repos/palewire/django-calaccess-campaign-browser/contents/calaccess_campaign_browser%2Fviews%2F__init__.py?ref=063e3e3089475cc5d4ac86816e3ce048146520c4","patch":"@@ -83,18 +83,16 @@ def get_context_data(self, **kwargs):\n context['filing_set_count'] = filing_qs.count()\n \n # Contributions\n- contribs_qs = Contribution.real.filter(\n- committee=self.object,\n- ).order_by('-amount')\n- context['contribution_set_short'] = contribs_qs[:25]\n+ contribs_qs = Contribution.real.filter(committee=self.object)\n+ context['contribution_set_short'] = contribs_qs.order_by('-amount')[:25]\n context['contribution_set_count'] = contribs_qs.count()\n \n # Expenditures\n expends_qs = Expenditure.objects.filter(\n committee=self.object,\n dupe=False\n- ).order_by('-amount')\n- context['expenditure_set_short'] = expends_qs[:25]\n+ )\n+ context['expenditure_set_short'] = expends_qs.order_by('-amount')[:25]\n context['expenditure_set_count'] = expends_qs.count()\n \n # Close out"}]}