Added user notification about ballots closed automatically when creating a new ballot.
- Legacy-Id: 14471
This commit is contained in:
parent
4488fd82a4
commit
97206c6eeb
|
@ -342,7 +342,7 @@ class DocumentInfo(models.Model):
|
||||||
# If that assumption is violated, they will only expose the most recently created ballot
|
# If that assumption is violated, they will only expose the most recently created ballot
|
||||||
def ballot_open(self, ballot_type_slug):
|
def ballot_open(self, ballot_type_slug):
|
||||||
e = self.latest_event(BallotDocEvent, ballot_type__slug=ballot_type_slug)
|
e = self.latest_event(BallotDocEvent, ballot_type__slug=ballot_type_slug)
|
||||||
return e and not e.type == "closed_ballot"
|
return e if e and not e.type == "closed_ballot" else None
|
||||||
|
|
||||||
def latest_ballot(self):
|
def latest_ballot(self):
|
||||||
"""Returns the most recently created ballot"""
|
"""Returns the most recently created ballot"""
|
||||||
|
|
|
@ -176,8 +176,10 @@ def needed_ballot_positions(doc, active_positions):
|
||||||
|
|
||||||
return " ".join(answer)
|
return " ".join(answer)
|
||||||
|
|
||||||
def create_ballot(doc, by, ballot_slug, time=None):
|
def create_ballot(request, doc, by, ballot_slug, time=None):
|
||||||
close_open_ballots(doc, by)
|
closed = close_open_ballots(doc, by)
|
||||||
|
for e in closed:
|
||||||
|
messages.warning(request, "Closed earlier open ballot created %s on '%s' for %s" % (e.time.strftime('%Y-%m-%d %H:%M'), e.ballot_type, e.doc.name, ))
|
||||||
if time:
|
if time:
|
||||||
e = BallotDocEvent(type="created_ballot", by=by, doc=doc, rev=doc.rev, time=time)
|
e = BallotDocEvent(type="created_ballot", by=by, doc=doc, rev=doc.rev, time=time)
|
||||||
else:
|
else:
|
||||||
|
@ -203,15 +205,21 @@ def create_ballot_if_not_open(request, doc, by, ballot_slug, time=None):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def close_ballot(doc, by, ballot_slug):
|
def close_ballot(doc, by, ballot_slug):
|
||||||
if doc.ballot_open(ballot_slug):
|
b = doc.ballot_open(ballot_slug)
|
||||||
|
if b:
|
||||||
e = BallotDocEvent(type="closed_ballot", doc=doc, rev=doc.rev, by=by)
|
e = BallotDocEvent(type="closed_ballot", doc=doc, rev=doc.rev, by=by)
|
||||||
e.ballot_type = BallotType.objects.get(doc_type=doc.type,slug=ballot_slug)
|
e.ballot_type = BallotType.objects.get(doc_type=doc.type,slug=ballot_slug)
|
||||||
e.desc = 'Closed "%s" ballot' % e.ballot_type.name
|
e.desc = 'Closed "%s" ballot' % e.ballot_type.name
|
||||||
e.save()
|
e.save()
|
||||||
|
return b
|
||||||
|
|
||||||
def close_open_ballots(doc, by):
|
def close_open_ballots(doc, by):
|
||||||
|
closed = []
|
||||||
for t in BallotType.objects.filter(doc_type=doc.type_id):
|
for t in BallotType.objects.filter(doc_type=doc.type_id):
|
||||||
close_ballot(doc, by, t.slug )
|
e = close_ballot(doc, by, t.slug )
|
||||||
|
if e:
|
||||||
|
closed.append(e)
|
||||||
|
return closed
|
||||||
|
|
||||||
def get_chartering_type(doc):
|
def get_chartering_type(doc):
|
||||||
chartering = ""
|
chartering = ""
|
||||||
|
|
|
@ -152,16 +152,16 @@ def change_state(request, name, option=None):
|
||||||
|
|
||||||
if charter_state.slug == "intrev" and group.type_id == "wg":
|
if charter_state.slug == "intrev" and group.type_id == "wg":
|
||||||
if request.POST.get("ballot_wo_extern"):
|
if request.POST.get("ballot_wo_extern"):
|
||||||
create_ballot(charter, by, "r-wo-ext")
|
create_ballot(request, charter, by, "r-wo-ext")
|
||||||
else:
|
else:
|
||||||
create_ballot(charter, by, "r-extrev")
|
create_ballot(request, charter, by, "r-extrev")
|
||||||
(e1, e2) = default_review_text(group, charter, by)
|
(e1, e2) = default_review_text(group, charter, by)
|
||||||
e1.save()
|
e1.save()
|
||||||
e2.save()
|
e2.save()
|
||||||
e = default_action_text(group, charter, by)
|
e = default_action_text(group, charter, by)
|
||||||
e.save()
|
e.save()
|
||||||
elif charter_state.slug in ["extrev","iesgrev"]:
|
elif charter_state.slug in ["extrev","iesgrev"]:
|
||||||
create_ballot(charter, by, "approve")
|
create_ballot(request, charter, by, "approve")
|
||||||
elif charter_state.slug == "approved":
|
elif charter_state.slug == "approved":
|
||||||
change_group_state_after_charter_approval(group, by)
|
change_group_state_after_charter_approval(group, by)
|
||||||
fix_charter_revision_after_approval(charter, by)
|
fix_charter_revision_after_approval(charter, by)
|
||||||
|
|
Loading…
Reference in a new issue