forked from beba/foerderbarometer
add terms_accepted field to Email, List, Literature and BusinessCard via mixin
This commit is contained in:
parent
0839439671
commit
f4698c3894
|
|
@ -5,9 +5,19 @@ from django.utils.html import format_html
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
|
||||||
EMAIL_STATES = {'NONE': 'noch keine Mail versendet',
|
EMAIL_STATES = {'NONE': 'noch keine Mail versendet',
|
||||||
'INF': 'die Benachrichtigung zur Projektabschlussmail wurde versendet',
|
'INF': 'die Benachrichtigung zur Projektabschlussmail wurde versendet',
|
||||||
'CLOSE': 'die Projektabschlussmail wurde versendet',
|
'CLOSE': 'die Projektabschlussmail wurde versendet',
|
||||||
'END': 'alle automatischen Mails, auch surveyMail, wurden versendet'}
|
'END': 'alle automatischen Mails, auch surveyMail, wurden versendet'}
|
||||||
|
|
||||||
|
|
||||||
|
class TermsConsentMixin(models.Model):
|
||||||
|
"""Abstract mixin to add a terms_accepted field for documenting user consent."""
|
||||||
|
|
||||||
|
terms_accepted = models.BooleanField(default=False, verbose_name="Nutzungsbedingungen zugestimmt")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
|
||||||
class Volunteer(models.Model):
|
class Volunteer(models.Model):
|
||||||
realname = models.CharField(max_length=200, null=True, verbose_name="Realname",
|
realname = models.CharField(max_length=200, null=True, verbose_name="Realname",
|
||||||
|
|
@ -323,7 +333,7 @@ SELFBUY_CHOICES = {'TRUE': mark_safe('Ich möchte das Werk selbst kaufen und per
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Literature(Grant):
|
class Literature(TermsConsentMixin, Grant):
|
||||||
info = models.CharField(max_length=500, verbose_name='Informationen zum Werk',
|
info = models.CharField(max_length=500, verbose_name='Informationen zum Werk',
|
||||||
help_text=mark_safe("Bitte gib alle Informationen zum benötigten Werk an,<br>\
|
help_text=mark_safe("Bitte gib alle Informationen zum benötigten Werk an,<br>\
|
||||||
die eine eindeutige Identifizierung ermöglichen (Autor, Titel, Verlag, ISBN, ...)"))
|
die eine eindeutige Identifizierung ermöglichen (Autor, Titel, Verlag, ISBN, ...)"))
|
||||||
|
|
@ -367,7 +377,7 @@ ADULT_CHOICES = {'TRUE': mark_safe('Ich bin volljährig.'),
|
||||||
'FALSE': mark_safe('Ich bin noch nicht volljährig.')
|
'FALSE': mark_safe('Ich bin noch nicht volljährig.')
|
||||||
}
|
}
|
||||||
|
|
||||||
class Email(Domain):
|
class Email(TermsConsentMixin, Domain):
|
||||||
address = models.CharField(max_length=50,
|
address = models.CharField(max_length=50,
|
||||||
choices=MAIL_CHOICES.items(),
|
choices=MAIL_CHOICES.items(),
|
||||||
default='USERNAME', verbose_name='Adressbestandteil',
|
default='USERNAME', verbose_name='Adressbestandteil',
|
||||||
|
|
@ -377,7 +387,7 @@ class Email(Domain):
|
||||||
adult = models.CharField( max_length=10, verbose_name='Volljährigkeit', choices=ADULT_CHOICES.items(), default='FALSE')
|
adult = models.CharField( max_length=10, verbose_name='Volljährigkeit', choices=ADULT_CHOICES.items(), default='FALSE')
|
||||||
intern_notes = models.TextField(max_length=1000, blank=True, verbose_name="interne Anmerkungen")
|
intern_notes = models.TextField(max_length=1000, blank=True, verbose_name="interne Anmerkungen")
|
||||||
|
|
||||||
class List(Domain):
|
class List(TermsConsentMixin, Domain):
|
||||||
address = models.CharField(max_length=50, default='NO_ADDRESS',
|
address = models.CharField(max_length=50, default='NO_ADDRESS',
|
||||||
verbose_name="Adressbestandteil für Projektmailingliste",
|
verbose_name="Adressbestandteil für Projektmailingliste",
|
||||||
help_text=mark_safe("Bitte gib hier den gewünschten Adressbestandteil an,<br>der sich vor der Domain befinden soll."))
|
help_text=mark_safe("Bitte gib hier den gewünschten Adressbestandteil an,<br>der sich vor der Domain befinden soll."))
|
||||||
|
|
@ -396,7 +406,7 @@ PROJECT_CHOICE = {'PEDIA': 'Wikipedia',
|
||||||
BC_VARIANT = {'PIC': 'mit Bild',
|
BC_VARIANT = {'PIC': 'mit Bild',
|
||||||
'NOPIC': 'ohne Bild'}
|
'NOPIC': 'ohne Bild'}
|
||||||
|
|
||||||
class BusinessCard(Extern):
|
class BusinessCard(TermsConsentMixin, Extern):
|
||||||
project = models.CharField(max_length=20, choices=PROJECT_CHOICE.items(),
|
project = models.CharField(max_length=20, choices=PROJECT_CHOICE.items(),
|
||||||
default='PEDIA', verbose_name='Wikimedia-Projekt',
|
default='PEDIA', verbose_name='Wikimedia-Projekt',
|
||||||
help_text='Für welches Wikimedia-Projekt möchtest Du Visitenkarten?')
|
help_text='Für welches Wikimedia-Projekt möchtest Du Visitenkarten?')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue