forked from beba/foerderbarometer
replaced format_html with mark_safe where no formatting is applied
This commit is contained in:
parent
edd0eb2205
commit
fe50d9b465
|
|
@ -2,6 +2,7 @@ from django.conf import settings
|
|||
from django.forms import ModelForm, DateField, ChoiceField, RadioSelect, BooleanField
|
||||
from django.contrib.admin.widgets import AdminDateWidget
|
||||
from django.utils.html import format_html
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
from .models import Project, Volunteer, ConcreteVolunteer, Extern, ConcreteExtern, IFG, Library, TYPE_CHOICES,\
|
||||
HonoraryCertificate, Travel, Email, Literature, List,\
|
||||
|
|
@ -56,8 +57,8 @@ class InternForm(FdbForm):
|
|||
exclude = ('granted', 'granted_date', 'survey_mail_send', 'survey_mail_date', 'mail_state')
|
||||
|
||||
|
||||
HOTEL_CHOICES = {'TRUE': format_html('Hotelzimmer benötigt'),
|
||||
'FALSE': format_html('Kein Hotelzimmer benötigt')
|
||||
HOTEL_CHOICES = {'TRUE': mark_safe('Hotelzimmer benötigt'),
|
||||
'FALSE': mark_safe('Kein Hotelzimmer benötigt')
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -148,8 +149,8 @@ class LiteratureForm(CheckForm):
|
|||
class Media:
|
||||
js = ('dropdown/js/literature.js',)
|
||||
|
||||
ADULT_CHOICES = {'TRUE': format_html('Ich bin volljährig.'),
|
||||
'FALSE': format_html('Ich bin noch nicht volljährig.')
|
||||
ADULT_CHOICES = {'TRUE': mark_safe('Ich bin volljährig.'),
|
||||
'FALSE': mark_safe('Ich bin noch nicht volljährig.')
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
from datetime import date
|
||||
|
||||
from django.db import models
|
||||
from django.utils.html import format_html
|
||||
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
EMAIL_STATES = {'NONE': 'noch keine Mail versendet',
|
||||
'INF': 'die Benachrichtigung zur Projektabschlussmail wurde versendet',
|
||||
|
|
@ -13,7 +12,7 @@ class Volunteer(models.Model):
|
|||
realname = models.CharField(max_length=200, null=True, verbose_name="Realname",
|
||||
help_text="Bitte gib deinen Vornamen und deinen Nachnamen ein.", default='')
|
||||
email = models.EmailField(max_length=200, null=True, verbose_name='E-Mail-Adresse',
|
||||
help_text=format_html('Bitte gib deine E-Mail-Adresse ein, damit dich<br>Wikimedia Deutschland bei Rückfragen oder für<br>die Zusage kontaktieren kann.'))
|
||||
help_text=mark_safe('Bitte gib deine E-Mail-Adresse ein, damit dich<br>Wikimedia Deutschland bei Rückfragen oder für<br>die Zusage kontaktieren kann.'))
|
||||
|
||||
# the following Fields are not supposed to be edited by users
|
||||
|
||||
|
|
@ -40,7 +39,7 @@ class Extern(Volunteer):
|
|||
''' abstract basis class for all data entered by extern volunteers '''
|
||||
|
||||
username = models.CharField(max_length=200, null=True, verbose_name='Benutzer_innenname',
|
||||
help_text=format_html("Wikimedia Benutzer_innenname"))
|
||||
help_text=mark_safe("Wikimedia Benutzer_innenname"))
|
||||
|
||||
# the following Fields are not supposed to be edited by users
|
||||
service_id = models.CharField(max_length=15, null=True, blank=True)
|
||||
|
|
@ -188,8 +187,8 @@ TRANSPORT_CHOICES = {'BAHN': 'Bahn',
|
|||
PAYEDBY_CHOICES = {'WMDE': 'WMDE',
|
||||
'REQU': 'Antragstellender Mensch'}
|
||||
|
||||
HOTEL_CHOICES = {'TRUE': format_html('Hotelzimmer benötigt'),
|
||||
'FALSE': format_html('Kein Hotelzimmer benötigt')
|
||||
HOTEL_CHOICES = {'TRUE': mark_safe('Hotelzimmer benötigt'),
|
||||
'FALSE': mark_safe('Kein Hotelzimmer benötigt')
|
||||
}
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
|
@ -244,15 +243,15 @@ class Grant(Extern):
|
|||
abstract = True
|
||||
|
||||
|
||||
TYPE_CHOICES = {'BIB': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Bibliotheksstipendium" target="_blank" rel="noopener">Bibliotheksstipendium</a>'),
|
||||
'ELIT': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#eLiteraturstipendium" target="_blank" rel="noopener">eLiteraturstipendium</a>'),
|
||||
'MAIL': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#E-Mail-Adressen" target="_blank" rel="noopener">E-Mail-Adresse</a>'),
|
||||
'IFG': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Gebührenerstattungen_für_Behördenanfragen" target="_blank" rel="noopener">Kostenübernahme IFG-Anfrage</a>'),
|
||||
'LIT': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Literaturstipendium" target="_blank" rel="noopener">Literaturstipendium</a>'),
|
||||
'LIST': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Mailinglisten" target="_blank" rel="noopener">Mailingliste</a>'),
|
||||
'TRAV': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:F%C3%B6rderung/Reisekostenerstattungen" target="_blank" rel="noopener">Reisekosten</a>'),
|
||||
'SOFT': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Software-Stipendien" target="_blank" rel="noopener">Softwarestipendium</a>'),
|
||||
'VIS': format_html('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Visitenkarten" target="_blank" rel="noopener">Visitenkarten</a>'),
|
||||
TYPE_CHOICES = {'BIB': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Bibliotheksstipendium" target="_blank" rel="noopener">Bibliotheksstipendium</a>'),
|
||||
'ELIT': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#eLiteraturstipendium" target="_blank" rel="noopener">eLiteraturstipendium</a>'),
|
||||
'MAIL': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#E-Mail-Adressen" target="_blank" rel="noopener">E-Mail-Adresse</a>'),
|
||||
'IFG': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Gebührenerstattungen_für_Behördenanfragen" target="_blank" rel="noopener">Kostenübernahme IFG-Anfrage</a>'),
|
||||
'LIT': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Zugang_zu_Fachliteratur#Literaturstipendium" target="_blank" rel="noopener">Literaturstipendium</a>'),
|
||||
'LIST': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Mailinglisten" target="_blank" rel="noopener">Mailingliste</a>'),
|
||||
'TRAV': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:F%C3%B6rderung/Reisekostenerstattungen" target="_blank" rel="noopener">Reisekosten</a>'),
|
||||
'SOFT': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/Software-Stipendien" target="_blank" rel="noopener">Softwarestipendium</a>'),
|
||||
'VIS': mark_safe('<a href="https://de.wikipedia.org/wiki/Wikipedia:Förderung/E-Mail-Adressen_und_Visitenkarten#Visitenkarten" target="_blank" rel="noopener">Visitenkarten</a>'),
|
||||
}
|
||||
|
||||
# same model is used for Library, ELitStip and Software!
|
||||
|
|
@ -270,21 +269,21 @@ class Library(Grant):
|
|||
return self.library
|
||||
|
||||
|
||||
SELFBUY_CHOICES = {'TRUE': format_html('Ich möchte das Werk selbst kaufen und per Kostenerstattung bei Wikimedia Deutschland abrechnen.'),
|
||||
'FALSE': format_html('Ich möchte, dass Wikimedia Deutschland das Werk für mich kauft'),
|
||||
SELFBUY_CHOICES = {'TRUE': mark_safe('Ich möchte das Werk selbst kaufen und per Kostenerstattung bei Wikimedia Deutschland abrechnen.'),
|
||||
'FALSE': mark_safe('Ich möchte, dass Wikimedia Deutschland das Werk für mich kauft'),
|
||||
}
|
||||
|
||||
|
||||
class Literature(Grant):
|
||||
info = models.CharField(max_length=500, verbose_name='Informationen zum Werk',
|
||||
help_text=format_html("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, ...)"))
|
||||
source = models.CharField(max_length=200, verbose_name='Bezugsquelle',
|
||||
help_text="Bitte gib an, wo du das Werk kaufen möchtest.")
|
||||
selfbuy = models.CharField( max_length=10, verbose_name='Selbstkauf?', choices=SELFBUY_CHOICES.items(), default='TRUE')
|
||||
selfbuy_give_data = models.BooleanField(verbose_name=format_html('Datenweitergabe erlauben'), help_text=format_html('Ich stimme der Weitergabe meiner Daten (Name, Postadresse) an den von mir angegebenen Anbieter/Dienstleister zu.'))
|
||||
selfbuy_give_data = models.BooleanField(verbose_name=mark_safe('Datenweitergabe erlauben'), help_text=mark_safe('Ich stimme der Weitergabe meiner Daten (Name, Postadresse) an den von mir angegebenen Anbieter/Dienstleister zu.'))
|
||||
selfbuy_data = models.TextField(max_length=1000, verbose_name='Persönliche Daten sowie Adresse', default='',\
|
||||
help_text=format_html("Bitte gib hier alle persönlichen Daten an, die wir benötigen, um das Werk<br>\
|
||||
help_text=mark_safe("Bitte gib hier alle persönlichen Daten an, die wir benötigen, um das Werk<br>\
|
||||
für dich zu kaufen und es dir anschließend zu schicken (z.B. Vorname Nachname, Anschrift, <br>\
|
||||
Telefonnummer, E-Mail-Adresse usw.). Trenne die einzelnen Angaben durch Zeilenumbrüche."))
|
||||
intern_notes = models.TextField(max_length=1000, blank=True, verbose_name="interne Anmerkungen")
|
||||
|
|
@ -315,15 +314,15 @@ MAIL_CHOICES = {'REALNAME': 'Vorname.Nachname',
|
|||
'USERNAME': 'Username',
|
||||
'OTHER': 'Sonstiges:'}
|
||||
|
||||
ADULT_CHOICES = {'TRUE': format_html('Ich bin volljährig.'),
|
||||
'FALSE': format_html('Ich bin noch nicht volljährig.')
|
||||
ADULT_CHOICES = {'TRUE': mark_safe('Ich bin volljährig.'),
|
||||
'FALSE': mark_safe('Ich bin noch nicht volljährig.')
|
||||
}
|
||||
|
||||
class Email(Domain):
|
||||
address = models.CharField(max_length=50,
|
||||
choices=MAIL_CHOICES.items(),
|
||||
default='USERNAME', verbose_name='Adressbestandteil',
|
||||
help_text=format_html("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."))
|
||||
|
||||
other = models.CharField(max_length=50,blank=True,null=True, verbose_name="Sonstiges")
|
||||
adult = models.CharField( max_length=10, verbose_name='Volljährigkeit', choices=ADULT_CHOICES.items(), default='FALSE')
|
||||
|
|
@ -332,7 +331,7 @@ class Email(Domain):
|
|||
class List(Domain):
|
||||
address = models.CharField(max_length=50, default='NO_ADDRESS',
|
||||
verbose_name="Adressbestandteil für Projektmailingliste",
|
||||
help_text=format_html("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."))
|
||||
intern_notes = models.TextField(max_length=1000, blank=True, verbose_name="interne Anmerkungen")
|
||||
|
||||
PROJECT_CHOICE = {'PEDIA': 'Wikipedia',
|
||||
|
|
@ -354,7 +353,7 @@ class BusinessCard(Extern):
|
|||
help_text='Für welches Wikimedia-Projekt möchtest Du Visitenkarten?')
|
||||
|
||||
data = models.TextField(max_length=1000, verbose_name='Persönliche Daten für die Visitenkarten', default='',
|
||||
help_text=format_html("Bitte gib hier alle persönlichen Daten an, und zwar genau so,<br>\
|
||||
help_text=mark_safe("Bitte gib hier alle persönlichen Daten an, und zwar genau so,<br>\
|
||||
wie sie (auch in der entsprechenden Reihenfolge) auf den Visitenkarten stehen sollen<br>\
|
||||
(z.B. Vorname Nachname, Benutzer:/Benutzerin:, Benutzer-/-innenname, Anschrift,<br>\
|
||||
Telefonnummer, E-Mail-Adresse usw.). Trenne die einzelnen Angaben durch Zeilenumbrüche.<br>\
|
||||
|
|
@ -363,12 +362,12 @@ class BusinessCard(Extern):
|
|||
Adresse, die du ebenfalls beantragen kannst, sofern du nicht bereits eine besitzt."))
|
||||
variant = models.CharField(max_length=5, choices=BC_VARIANT.items(),
|
||||
default='NOPIC', verbose_name='Variante',
|
||||
help_text=format_html('so sehen die Varianten aus: <a href="https://upload.wikimedia.org/wikipedia/commons/c/cd/Muster_Visitenkarten_WMDE_2018.jpg">\
|
||||
help_text=mark_safe('so sehen die Varianten aus: <a href="https://upload.wikimedia.org/wikipedia/commons/c/cd/Muster_Visitenkarten_WMDE_2018.jpg">\
|
||||
mit Bild</a> <a href="https://upload.wikimedia.org/wikipedia/commons/d/d3/Muster_Visitenkarte_WMDE.png">ohne Bild</a>' ))
|
||||
|
||||
url_of_pic = models.CharField(max_length=200, verbose_name='Url des Bildes', default='', help_text="Bitte gib die Wikimedia-Commons-URL des Bildes an.")
|
||||
|
||||
sent_to = models.TextField(max_length=1000, verbose_name='Versandadresse',
|
||||
default='', help_text="Bitte gib den Namen und die vollständige Adresse ein, an welche die Visitenkarten geschickt werden sollen.")
|
||||
send_data_to_print = models.BooleanField(default=False, verbose_name=format_html('Datenweitergabe erlauben'), help_text=format_html('Hiermit erlaube ich die Weitergabe meiner Daten (Name, Postadresse) an den von Wikimedia<br> Deutschland ausgewählten Dienstleister (z. B. <a href="wir-machen-druck.de">wir-machen-druck.de</a>) zum Zwecke des direkten <br> Versands der Druckerzeugnisse an mich.'))
|
||||
send_data_to_print = models.BooleanField(default=False, verbose_name=mark_safe('Datenweitergabe erlauben'), help_text=mark_safe('Hiermit erlaube ich die Weitergabe meiner Daten (Name, Postadresse) an den von Wikimedia<br> Deutschland ausgewählten Dienstleister (z. B. <a href="wir-machen-druck.de">wir-machen-druck.de</a>) zum Zwecke des direkten <br> Versands der Druckerzeugnisse an mich.'))
|
||||
intern_notes = models.TextField(max_length=1000, blank=True, verbose_name="interne Anmerkungen")
|
||||
|
|
|
|||
|
|
@ -2,18 +2,14 @@ from datetime import date
|
|||
from smtplib import SMTPException
|
||||
|
||||
from django.shortcuts import render
|
||||
from django.forms import modelformset_factory
|
||||
from django.http import HttpResponse
|
||||
from django.utils.safestring import mark_safe
|
||||
from formtools.wizard.views import CookieWizardView
|
||||
from django.core.mail import send_mail, BadHeaderError, EmailMultiAlternatives
|
||||
from django.conf import settings
|
||||
from django.core.mail import BadHeaderError, EmailMultiAlternatives
|
||||
from django.template.loader import get_template
|
||||
from django.template import Context
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from .forms import ProjectForm, ExternForm, LibraryForm, IFGForm, LiteratureForm,\
|
||||
HonoraryCertificateForm, InternForm, TravelForm, EmailForm,\
|
||||
|
|
@ -102,7 +98,7 @@ class InternView(LoginRequiredMixin, CookieWizardView): # pragma: no cover
|
|||
self.choice = choice
|
||||
else:
|
||||
form = super().get_form(step, data, files)
|
||||
form.fields['realname'].help_text = format_html("Vor- und Zuname (Realname), Wer hat das Projekt beantragt?<br>\
|
||||
form.fields['realname'].help_text = mark_safe("Vor- und Zuname (Realname), Wer hat das Projekt beantragt?<br>\
|
||||
Wer ist Hauptansprechperson? Bei WMDE-MAs immer „(WMDE)“,<br>\
|
||||
bei externen Partnern „(PART)“ hinzufügen.")
|
||||
return form
|
||||
|
|
@ -144,18 +140,18 @@ class InternView(LoginRequiredMixin, CookieWizardView): # pragma: no cover
|
|||
|
||||
# these where used as labels in the second form TYPE_CHOICES is used for the first form and the
|
||||
# text above the second form. only used for BIB, SOFT, ELIT in the moment
|
||||
LABEL_CHOICES = {'BIB': format_html('Bibliothek'),
|
||||
'ELIT': format_html('Datenbank/Online-Ressource'),
|
||||
'MAIL': format_html('E-Mail-Adresse'),
|
||||
'IFG': format_html('Kostenübernahme IFG-Anfrage'),
|
||||
'LIT': format_html('Literaturstipendium'),
|
||||
'LIST': format_html('Mailingliste'),
|
||||
'TRAV': format_html('Reisekosten'),
|
||||
'SOFT': format_html('Software'),
|
||||
'VIS': format_html('Visitenkarten'),
|
||||
LABEL_CHOICES = {'BIB': mark_safe('Bibliothek'),
|
||||
'ELIT': mark_safe('Datenbank/Online-Ressource'),
|
||||
'MAIL': mark_safe('E-Mail-Adresse'),
|
||||
'IFG': mark_safe('Kostenübernahme IFG-Anfrage'),
|
||||
'LIT': mark_safe('Literaturstipendium'),
|
||||
'LIST': mark_safe('Mailingliste'),
|
||||
'TRAV': mark_safe('Reisekosten'),
|
||||
'SOFT': mark_safe('Software'),
|
||||
'VIS': mark_safe('Visitenkarten'),
|
||||
}
|
||||
|
||||
HELP_CHOICES = {'BIB': format_html("In welchem Zeitraum möchtest du recherchieren oder<br>wie lange ist der Bibliotheksausweis gültig?"),
|
||||
HELP_CHOICES = {'BIB': mark_safe("In welchem Zeitraum möchtest du recherchieren oder<br>wie lange ist der Bibliotheksausweis gültig?"),
|
||||
'ELIT': "Wie lange gilt der Zugang?",
|
||||
'SOFT': "Wie lange gilt die Lizenz?",
|
||||
}
|
||||
|
|
@ -180,7 +176,7 @@ class ExternView(CookieWizardView):
|
|||
print(f'choice detection in ExternView: {TYPE_CHOICES[choice]}')
|
||||
if choice == 'IFG':
|
||||
form = IFGForm(data)
|
||||
form.fields['notes'].help_text = format_html("Bitte gib an, wie die gewonnenen Informationen den<br>Wikimedia-Projekten zugute kommen sollen.")
|
||||
form.fields['notes'].help_text = mark_safe("Bitte gib an, wie die gewonnenen Informationen den<br>Wikimedia-Projekten zugute kommen sollen.")
|
||||
elif choice in ('BIB', 'SOFT', 'ELIT'):
|
||||
form = LibraryForm(data)
|
||||
form.fields['library'].label = LABEL_CHOICES[choice]
|
||||
|
|
@ -188,7 +184,7 @@ class ExternView(CookieWizardView):
|
|||
form.fields['duration'].help_text = HELP_CHOICES[choice]
|
||||
elif choice == 'MAIL':
|
||||
form = EmailForm(data)
|
||||
form.fields['domain'].help_text = format_html("Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailadresse beantragen?")
|
||||
form.fields['domain'].help_text = mark_safe("Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailadresse beantragen?")
|
||||
elif choice == 'LIT':
|
||||
form = LiteratureForm(data)
|
||||
form.fields['notes'].help_text = "Bitte gib an, wofür du die Literatur verwenden möchtest."
|
||||
|
|
@ -196,7 +192,7 @@ class ExternView(CookieWizardView):
|
|||
form = BusinessCardForm(data)
|
||||
elif choice == 'LIST':
|
||||
form = ListForm(data)
|
||||
form.fields['domain'].help_text = format_html("Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailingliste beantragen?")
|
||||
form.fields['domain'].help_text = mark_safe("Mit welcher Domain, bzw. für welches Wikimedia-Projekt,<br>möchtest du eine Mailingliste beantragen?")
|
||||
elif choice == 'TRAV':
|
||||
form = TravelForm(data)
|
||||
else: # pragma: no cover
|
||||
|
|
|
|||
Loading…
Reference in New Issue