Skip to content
Snippets Groups Projects
Select Git revision
  • b45a79bfb62419e4cf728875db5ea1c573e71e4b
  • master default protected
2 results

Products.pm

Blame
  • forms.py 3.92 KiB
    # -*- coding: utf-8 -*-
    """
    Forms for Helios
    """
    
    from django import forms
    from django.conf import settings
    
    from .fields import SplitDateTimeField
    from .models import Election
    from .widgets import SplitSelectDateTimeWidget
    
    
    class ElectionForm(forms.Form):
      short_name = forms.SlugField(max_length=40, help_text=u'bez mezer, bude použita jako část URL vašeho hlasování, např. kf-msk-20-2018-zmena-rozpoctu', label=u"Zkratka")
      name = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':60}), help_text=u'plný název vašeho hlasování, např. KF MSK 20/2018 Změna rozpočtu', label=u"Název")
      description = forms.CharField(max_length=32000, widget=forms.Textarea(attrs={'cols': 70, 'wrap': 'soft'}), required=False, label=u"Popis")
      election_type = forms.ChoiceField(label=u"Typ", choices = Election.ELECTION_TYPES)
      use_voter_aliases = forms.BooleanField(required=False, initial=False, help_text=u'zvolíte-li tuto možnost, na stránce pro sledování hlasovacích lístků budou jména voličů nahrazena aliasy, např. "V12"', label=u"Použít aliasy voličů")
      #use_advanced_audit_features = forms.BooleanField(required=False, initial=True, help_text='disable this only if you want a simple election with reduced security but a simpler user interface')
      randomize_answer_order = forms.BooleanField(required=False, initial=False, help_text=u'zvolte, pokud chcete, aby se každému voliči zobrazovaly odpovědi na otázky v náhodně zvoleném pořadí', label=u"Odpovědi v náhodném pořadí")
      private_p = forms.BooleanField(required=False, initial=False, label=u"Soukromé?", help_text=u'Soukromé hlasování je viditelné jen pro registrované voliče.')
      help_email = forms.CharField(required=False, initial="", label=u"E-mail pro nápovědu", help_text=u'e-mailová adresa, na kterou se budou voliči obracet s žádostmi o pomoc.')
      voting_starts_at = SplitDateTimeField(help_text = u'datum a čas zahájení hlasování; v UTC, takže oproti časovému pásmu ČR je menší o 1 hodinu v zimním, resp. o 2 hodiny v letním čase',
                                       widget=SplitSelectDateTimeWidget, required=False, label=u"Hlasování začíná v")
      voting_ends_at = SplitDateTimeField(help_text = u'datum a čas ukončení hlasování; v UTC, takže oproti časovému pásmu ČR je menší o 1 v zimním, resp. o 2 hodiny v letním čase',
                                       widget=SplitSelectDateTimeWidget, required=False, label=u"Hlasování končí v")
    
      if settings.ALLOW_ELECTION_INFO_URL:
        election_info_url = forms.CharField(required=False, initial="", label=u"URL pro stažení informací o hlasování", help_text=u"URL dokumentu ve formátu PDF, obsahujícího doplňkové informace k hlasování, např. životopisy a profily kandidátů")
    
      pass
    
    class ElectionTimeExtensionForm(forms.Form):
      voting_extended_until = SplitDateTimeField(help_text = u'datum a čas prodlouženého ukončení hlasování; v UTC',
                                       widget=SplitSelectDateTimeWidget, required=False, label=u"Hlasování prodlouženo do")
    
    class EmailVotersForm(forms.Form):
      subject = forms.CharField(max_length=80)
      body = forms.CharField(max_length=4000, widget=forms.Textarea)
      send_to = forms.ChoiceField(label=u"Poslat", initial="all", choices= [('all', u'všem voličům'), ('voted', u'voličům, kteří již odevzdali lístek'), ('not-voted', u'voličům, kteří ještě neodevzdali lístek')])
    
    class TallyNotificationEmailForm(forms.Form):
      subject = forms.CharField(max_length=80)
      body = forms.CharField(max_length=2000, widget=forms.Textarea, required=False)
      send_to = forms.ChoiceField(label=u"Poslat", choices= [('all', u'všem voličům'), ('voted', u'jen voličům, kteří odevzdali lístek'), ('none', u'nikomu -- jste si tím jist?')])
    
    class VoterPasswordForm(forms.Form):
      voter_id = forms.CharField(max_length=50, label=u"ID voliče")
      password = forms.CharField(widget=forms.PasswordInput(), max_length=100)