diff --git a/apps/nominations/admin.py b/apps/nominations/admin.py new file mode 100644 index 0000000..aeffbcd --- /dev/null +++ b/apps/nominations/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from .models import Nomination + +admin.site.register(Nomination) \ No newline at end of file diff --git a/apps/nominations/forms.py b/apps/nominations/forms.py new file mode 100644 index 0000000..a86aab2 --- /dev/null +++ b/apps/nominations/forms.py @@ -0,0 +1,40 @@ +from django import forms +from django.forms import ModelForm +from django.utils.translation import gettext_lazy as _ +from .models import Nomination + +class NominationForm(ModelForm): + class Meta: + model = Nomination + fields = ['nominated', 'reasons_nomination', 'name', 'email', 'sk', 'dg', 'pep', 'ccc'] + labels = { + 'nominated': _("Nominiert wird"), + 'reasons_nomination': _("Grund der Nominierung"), + 'name': _("Ihr Name/Pseudonym *"), + 'email': _("Ihre E-Mail-Adresse *"), + 'sk': _("Stiftung für Konsumentenschutz"), + 'dg': _("Digitale Gesellschaft"), + 'pep': _("p≡p Foundation"), + 'ccc': _("Chaos Computer Club Schweiz (CCC-CH)"), + } + help_texts = { + 'nominated': _("Name, Adresse, Tel. Nr, Webseite etc."), + 'reasons_nomination': _("Begründung; welcher Personenkreis ist von den Eingriffen/der Kontrolle besonders betroffen; Quellen, Presseartikel, Dokumente, URLs"), + 'name': _("* Angabe freiwillig"), + 'email': _("* Angabe freiwillig"), + 'sk': _("Bitte tragen Sie mich in Ihren Newsletter ein:"), + } + + def clean(self): + cleaned_data = super(NominationForm, self).clean() + email = cleaned_data.get('email') + if email == '' or email == None: + sk = cleaned_data.get('sk') + dg = cleaned_data.get('dg') + pep = cleaned_data.get('pep') + ccc = cleaned_data.get('ccc') + + if sk or dg or pep or ccc: + raise forms.ValidationError(str(_('Bitte geben Sie eine gültige E-Mail-Adresse an, wenn Sie einen Newsletter abonnieren möchten.'))) + + return cleaned_data \ No newline at end of file diff --git a/apps/nominations/migrations/0001_initial.py b/apps/nominations/migrations/0001_initial.py new file mode 100644 index 0000000..b032622 --- /dev/null +++ b/apps/nominations/migrations/0001_initial.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-02-22 10:06 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Nomination', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(blank=True, max_length=255, null=True)), + ('email', models.EmailField(blank=True, max_length=255, null=True)), + ('nominated', models.CharField(max_length=255)), + ('reasons_nomination', models.TextField()), + ('sk', models.BooleanField(default=False)), + ('dg', models.BooleanField(default=False)), + ('pep', models.BooleanField(default=False)), + ('ccc', models.BooleanField(default=False)), + ], + ), + ] diff --git a/apps/nominations/migrations/__init__.py b/apps/nominations/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/apps/nominations/models.py b/apps/nominations/models.py new file mode 100644 index 0000000..c20ad1a --- /dev/null +++ b/apps/nominations/models.py @@ -0,0 +1,15 @@ +from django.db import models +from django.utils.translation import ugettext, ugettext_lazy as _ + +class Nomination(models.Model): + name = models.CharField(max_length=255, blank=True, null=True) + email = models.EmailField(max_length=255, blank=True, null=True) + nominated = models.CharField(max_length=255) + reasons_nomination = models.TextField() + sk = models.BooleanField(default=False) + dg = models.BooleanField(default=False) + pep = models.BooleanField(default=False) + ccc = models.BooleanField(default=False) + + def __str__(self): + return self.nominated diff --git a/apps/nominations/templates/pages/nominierungen.html b/apps/nominations/templates/pages/nominierungen.html index 87f368e..9b38b1a 100644 --- a/apps/nominations/templates/pages/nominierungen.html +++ b/apps/nominations/templates/pages/nominierungen.html @@ -1,5 +1,5 @@ {% extends "pages/richtextpage.html" %} -{% load i18n mezzanine_tags pages_tags %} +{% load i18n mezzanine_tags pages_tags form_filters %} {% block main %} @@ -20,81 +20,41 @@