#277 throw an error, in the invalid-field or the votecast-field is lower -2
This commit is contained in:
parent
1889cff68b
commit
f8a1c58fff
@ -12,9 +12,10 @@
|
|||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
from projector.api import register_slidemodel
|
from openslides.projector.api import register_slidemodel
|
||||||
from projector.models import SlideMixin
|
from openslides.projector.models import SlideMixin
|
||||||
from utils.translation_ext import ugettext as _
|
from openslides.utils.translation_ext import ugettext as _ # TODO
|
||||||
|
from openslides.utils.modelfields import MinMaxIntegerField
|
||||||
|
|
||||||
|
|
||||||
class BaseOption(models.Model):
|
class BaseOption(models.Model):
|
||||||
@ -34,7 +35,7 @@ class TextOption(BaseOption):
|
|||||||
class Vote(models.Model):
|
class Vote(models.Model):
|
||||||
option = models.ForeignKey(BaseOption)
|
option = models.ForeignKey(BaseOption)
|
||||||
#profile = models.ForeignKey(Profile) # TODO: we need a person+ here
|
#profile = models.ForeignKey(Profile) # TODO: we need a person+ here
|
||||||
weight = models.IntegerField(default=1, null=True)
|
weight = models.IntegerField(default=1, null=True) # Use MinMaxIntegerField
|
||||||
value = models.CharField(max_length=255, null=True)
|
value = models.CharField(max_length=255, null=True)
|
||||||
|
|
||||||
def get_weight(self, raw=False):
|
def get_weight(self, raw=False):
|
||||||
@ -50,7 +51,7 @@ class Vote(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class CountVotesCast(models.Model):
|
class CountVotesCast(models.Model):
|
||||||
votescast = models.IntegerField(null=True, blank=True, verbose_name=_("Votes cast"))
|
votescast = MinMaxIntegerField(null=True, blank=True, min_value=-2, verbose_name=_("Votes cast"))
|
||||||
|
|
||||||
def append_pollform_fields(self, fields):
|
def append_pollform_fields(self, fields):
|
||||||
fields.append('votescast')
|
fields.append('votescast')
|
||||||
@ -63,7 +64,7 @@ class CountVotesCast(models.Model):
|
|||||||
|
|
||||||
|
|
||||||
class CountInvalid(models.Model):
|
class CountInvalid(models.Model):
|
||||||
votesinvalid = models.IntegerField(null=True, blank=True, verbose_name=_("Votes invalid"))
|
votesinvalid = MinMaxIntegerField(null=True, blank=True, min_value=-2, verbose_name=_("Votes invalid"))
|
||||||
|
|
||||||
def append_pollform_fields(self, fields):
|
def append_pollform_fields(self, fields):
|
||||||
fields.append('votesinvalid')
|
fields.append('votesinvalid')
|
||||||
|
23
openslides/utils/modelfields.py
Normal file
23
openslides/utils/modelfields.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
openslides.utils.modelfields
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Modelfields for OpenSlides
|
||||||
|
|
||||||
|
:copyright: 2011, 2012 by OpenSlides team, see AUTHORS.
|
||||||
|
:license: GNU GPL, see LICENSE for more details.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class MinMaxIntegerField(models.IntegerField):
|
||||||
|
def __init__(self, min_value=None, max_value=None, *args, **kwargs):
|
||||||
|
self.min_value, self.max_value = min_value, max_value
|
||||||
|
super(MinMaxIntegerField, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def formfield(self, **kwargs):
|
||||||
|
defaults = {'min_value': self.min_value, 'max_value' : self.max_value}
|
||||||
|
defaults.update(kwargs)
|
||||||
|
return super(MinMaxIntegerField, self).formfield(**defaults)
|
Loading…
Reference in New Issue
Block a user