Skip to content

Commit

Permalink
allow for nominationless elections (refferendums)
Browse files Browse the repository at this point in the history
  • Loading branch information
ewdurbin committed Jun 22, 2021
1 parent b06f1f0 commit a8c9688
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 9 deletions.
21 changes: 13 additions & 8 deletions nominations/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def __str__(self):
nominations_open_at = models.DateTimeField(blank=True, null=True)
nominations_close_at = models.DateTimeField(blank=True, null=True)
description = MarkupField(
escape_html=True, markup_type="markdown", blank=False, null=True
escape_html=False, markup_type="markdown", blank=False, null=True
)

slug = models.SlugField(max_length=255, blank=True, null=True)
Expand All @@ -51,13 +51,18 @@ def nominations_complete(self):

@property
def status(self):
if not self.nominations_open:
if self.nominations_open_at > datetime.datetime.now(datetime.timezone.utc):
return "Nominations Not Yet Open"

return "Nominations Closed"

return "Nominations Open"
if self.nominations_open_at is not None and self.nominations_close_at is not None:
if not self.nominations_open:
if self.nominations_open_at > datetime.datetime.now(datetime.timezone.utc):
return "Nominations Not Yet Open"

return "Nominations Closed"

return "Nominations Open"
else:
if self.date >= datetime.date.today():
return "Commenced"
return "Voting Not Yet Begun"

def save(self, *args, **kwargs):
self.slug = slugify(self.name)
Expand Down
1 change: 1 addition & 0 deletions nominations/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
app_name = "nominations"
urlpatterns = [
url(r"^elections/$", views.ElectionsList.as_view(), name="elections_list"),
url(r"^election/(?P<election>[-\w]+)/$", views.ElectionDetail.as_view(), name="election_detail"),
url(
r"^elections/(?P<election>[-\w]+)/nominees/$",
views.NomineeList.as_view(),
Expand Down
16 changes: 16 additions & 0 deletions nominations/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,22 @@ class ElectionsList(ListView):
model = Election


class ElectionDetail(DetailView):
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data()
return self.render_to_response(context)

def get_object(self):
election = Election.objects.get(slug=self.kwargs["election"])
self.election = election
return election

def get_context_data(self, **kwargs):
context = {"election": self.election}
return context


class NominationMixin:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
Expand Down
41 changes: 41 additions & 0 deletions templates/nominations/election_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{% extends "psf/default.html" %}
{% load boxes %}
{% load tz %}

{% block page_title %}Elections | {{ SITE_INFO.site_name }}{% endblock %}

{% block content_attributes %}with-left-sidebar{% endblock %}


{% block content %}
<h1>{{ election.name }}</h1>
<div class="row">
<div style="margin-left: 1em;">{{ election.description }}</div>
<br>
<ul>
{% timezone "UTC" %}
{% if election.nominations_open %}
<li>Election begins: {{ election.date }}</li>
{% if election.nominations_open_at and election.nominations_close_at %}
<li><a href="{% url 'nominations:nomination_create' election=election.slug %}">Submit a nomination</a></li>
<li>Nominations Opened: {{ election.nominations_open_at|date:"r" }}</li>
<li>Nominations Close: {{ election.nominations_close_at|date:"r" }}</li>
{% endif %}
{% else %}
{% if election.status == "Commenced" %}
<li>Election began: {{ election.date }}</li>
{% elif election.nominations_complete %}
<li><a href="{% url 'nominations:nominees_list' election=election.slug %}">View nominations</a></li>
<li>Election began: {{ election.date }}</li>
<li>Nominations Opened: {{ election.nominations_open_at|date:"r" }}</li>
<li>Nominations Closed: {{ election.nominations_close_at|date:"r" }}</li>
{% else %}
<li>Election begins: {{ election.date }}</li>
<li>Nominations Open: {{ election.nominations_open_at|date:"r" }}</li>
<li>Nominations Close: {{ election.nominations_close_at|date:"r" }}</li>
{% endif %}
{% endif %}
</ul>
{% endtimezone %}
</div>
{% endblock content %}
4 changes: 3 additions & 1 deletion templates/nominations/election_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ <h2>{{ status }}</h2>
<li>Nominations Opened: {{ election.nominations_open_at|date:"r" }}</li>
<li>Nominations Close: {{ election.nominations_close_at|date:"r" }}</li>
{% else %}
{% if election.nominations_complete %}
{% if election.status == "Commenced" %}
<li>Election began: {{ election.date }}</li>
{% elif election.nominations_complete %}
<li><a href="{% url 'nominations:nominees_list' election=election.slug %}">View nominations</a></li>
<li>Election began: {{ election.date }}</li>
<li>Nominations Opened: {{ election.nominations_open_at|date:"r" }}</li>
Expand Down

0 comments on commit a8c9688

Please sign in to comment.