Skip to content

Commit

Permalink
Add election date to tables
Browse files Browse the repository at this point in the history
  • Loading branch information
VirginiaDooley committed Feb 20, 2024
1 parent 114bf68 commit 97e50ff
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 35 deletions.
2 changes: 2 additions & 0 deletions ynr/apps/cached_counts/templates/attention_needed.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ <h2>Posts needing most attention</h2>
<th>Election</th>
<th>Post Name</th>
<th>Number of Candidates</th>
<th>Election Date</th>
</thead>
<tbody>
{% for ballot in post_counts %}
<tr {% if ballot.count == 0 %}class="no_known"{% endif %}>
<td>{{ ballot.election.name }}</td>
<td><a href="{{ ballot.get_absolute_url }}">{{ ballot.post.short_label }}</a></td>
<td>{{ ballot.count }}</td>
<td>{{ ballot.election.election_date }}</td>
</tr>
{% endfor %}
</tbody>
Expand Down
2 changes: 2 additions & 0 deletions ynr/apps/cached_counts/templates/constituency_counts.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ <h2>
<thead>
<th>Post Name</th>
<th>Number of Candidates</th>
<th>Election Date</th>
</thead>
<tbody>
{% for ballot in post_counts %}
<tr {% if ballot.count == 0 %}class="no_known"{% endif%}>
<td><a href="{{ ballot.get_absolute_url }}">{{ ballot.post.label }}</a></td>
<td>{{ ballot.count }}</td>
<td>{{ election_data.election_date }}</td>
</tr>
{% endfor %}
</tbody>
Expand Down
2 changes: 2 additions & 0 deletions ynr/apps/cached_counts/templates/party_counts.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ <h2>Number of known {{ election_data.name }} candidates per party</h2>
<thead>
<th>Party Name</th>
<th>Number of Candidates</th>
<th>Election Date</th>
</thead>
<tbody>
{% for pc in party_counts %}
Expand All @@ -17,6 +18,7 @@ <h2>Number of known {{ election_data.name }} candidates per party</h2>
<td><a href="{% url 'candidates_by_election_for_party' election=election party_id=pc.ec_id %}">{{ pc.name }}</a></td>
{% endif %}
<td>{{ pc.count}}</td>
<td>{{ election_data.election_date }}
</tr>
{% endfor %}
</tbody>
Expand Down
93 changes: 58 additions & 35 deletions ynr/apps/cached_counts/tests/test_cached_counts.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import json
import re

import people.tests.factories
from candidates.tests import factories
Expand Down Expand Up @@ -148,45 +149,52 @@ def test_attention_needed_page(self):
tuple(td.decode() for td in row.find_all("td"))
for row in response.html.find_all("tr")
]
self.assertEqual(
rows,
[
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.65913.2015-05-07/">Camberwell and Peckham</a></td>',
"<td>0</td>",
),
(
"<td>Maidstone local election</td>",
'<td><a href="/elections/local.maidstone.DIW:E05005004.2016-05-05/">Shepway South Ward</a></td>',
"<td>0</td>",
),
(
"<td>Senedd Cymru elections (Constituencies)</td>",
'<td><a href="/elections/senedd.c.aberavon.2021-05-06/">Aberavon</a></td>',
"<td>0</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.14420.2015-05-07/">Edinburgh North and Leith</a></td>',
"<td>3</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.65808.2015-05-07/">Dulwich and West Norwood</a></td>',
"<td>5</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.14419.2015-05-07/">Edinburgh East</a></td>',
"<td>10</td>",
),
],
)

expected_response = [
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.65913.2015-05-07/">Camberwell and Peckham</a></td>',
"<td>0</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
"<td>Maidstone local election</td>",
'<td><a href="/elections/local.maidstone.DIW:E05005004.2016-05-05/">Shepway South Ward</a></td>',
"<td>0</td>",
"<td>5 May 2016</td>",
),
(
"<td>Senedd Cymru elections (Constituencies)</td>",
'<td><a href="/elections/senedd.c.aberavon.2021-05-06/">Aberavon</a></td>',
"<td>0</td>",
"<td>6 May 2021</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.14420.2015-05-07/">Edinburgh North and Leith</a></td>',
"<td>3</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.65808.2015-05-07/">Dulwich and West Norwood</a></td>',
"<td>5</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
"<td>2015 General Election</td>",
'<td><a href="/elections/parl.14419.2015-05-07/">Edinburgh East</a></td>',
"<td>10</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
]

self.assertEqual(rows, expected_response)

def test_post_counts_page(self):
response = self.app.get("/numbers/election/parl.2015-05-07/posts")
self.assertEqual(response.status_code, 200)

rows = [
tuple(td.decode() for td in row.find_all("td"))
for row in response.html.find_all("tr")
Expand All @@ -197,51 +205,66 @@ def test_post_counts_page(self):
(
'<td><a href="/elections/parl.14419.2015-05-07/">Member of Parliament for Edinburgh East</a></td>',
"<td>10</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/elections/parl.65808.2015-05-07/">Member of Parliament for Dulwich and West Norwood</a></td>',
"<td>5</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/elections/parl.14420.2015-05-07/">Member of Parliament for Edinburgh North and Leith</a></td>',
"<td>3</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/elections/parl.65913.2015-05-07/">Member of Parliament for Camberwell and Peckham</a></td>',
"<td>0</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
],
)

def test_party_counts_page(self):
response = self.app.get("/numbers/election/parl.2015-05-07/parties")
self.assertEqual(response.status_code, 200)

rows = [
tuple(td.decode() for td in row.find_all("td"))
for row in response.html.find_all("tr")
]

rows = [
tuple(re.sub(r"\s*\n\s*", "", cell) for cell in row) for row in rows
]

self.assertEqual(
rows,
[
(
'<td><a href="/parties/PP63/elections/parl.2015-05-07/">Green Party</a></td>',
"<td>4</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/parties/PP53/elections/parl.2015-05-07/">Labour Party</a></td>',
"<td>4</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/parties/PP90/elections/parl.2015-05-07/">Liberal Democrats</a></td>',
"<td>4</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/parties/PP52/elections/parl.2015-05-07/">Conservative Party</a></td>',
"<td>3</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
(
'<td><a href="/parties/PP39/elections/parl.2015-05-07/">Sinn F\xe9in</a></td>',
"<td>3</td>",
f"<td>{self.election.election_date.strftime('%-d %B %Y')}</td>",
),
],
)

0 comments on commit 97e50ff

Please sign in to comment.