Improve deletion and add ordering on roles

This commit is contained in:
2017-12-02 19:02:05 +01:00
parent 625b5132c4
commit 2f3b481037
6 changed files with 175 additions and 94 deletions

View File

@ -1,4 +1,5 @@
from django.db import models
from ordered_model.models import OrderedModel
from django.utils.translation import ugettext_lazy as _
from django.utils import timezone
@ -81,10 +82,15 @@ class Election(models.Model):
results[role.title] = role.results(total_vote)
return results
def delete(self):
for election_list in self.election_lists.all():
election_list.delete()
super(Election, self).delete()
# Permissions
class Role(models.Model):
class Role(OrderedModel):
"""
This class allows to create a new role avaliable for a candidature
"""
@ -149,6 +155,10 @@ class Candidature(models.Model):
program = models.TextField(_('description'), null=True, blank=True)
election_list = models.ForeignKey(ElectionList, related_name='candidatures', verbose_name=_('election list'))
def delete(self):
for vote in self.votes.all():
vote.delete()
def can_be_edited_by(self, user):
return (user == self.user) or user.can_edit(self.role.election)