LORDCHANNEL2.0/Film/forms.py

60 lines
2.9 KiB
Python

from django import forms
from .models import Commento,SegnalazioneFilm,Film
from utils.profanity_filter import profanity_words
from django.core.validators import ValidationError
class CreaFilm(forms.ModelForm):
class Meta:
model = Film
exclude = ['creato_in_data','aggiornato_in_data','slug','visualizzazioni','preferito','guarda_dopo']
widgets = {
'titolo' : forms.TextInput(attrs={'class' : 'form__input','placeholder': 'Titolo'}),
'immagine_poster' : forms.FileInput(attrs={'id':'form__img-upload','name':'form__img-upload'}),
'immagine_background' : forms.FileInput(attrs={'id':'form__imgbackground-upload','name':'form__imgbackground-upload'}),
'descrizione' : forms.Textarea(attrs={'class' : 'form__textarea', 'placeholder': 'Descrizione','id': 'text'}),
'genere' : forms.SelectMultiple(attrs={'class':'js-example-basic-multiple','id':'genere'}),
'qualità_video' : forms.TextInput(attrs={'class' : 'form__input','placeholder': 'Qualitá Video'}),
'età_consigliata' : forms.TextInput(attrs={'class' : 'form__input','placeholder': 'Etá Consigliata'}),
'lingua' : forms.Select(attrs={'class':' js-example-basic-single select2-hidden-accessible','id':'lingua'}),
'data_uscita' : forms.TextInput(attrs={'class' : 'form__input','placeholder': 'Data Uscita'}),
'durata' : forms.TextInput(attrs={'class' : 'form__input','placeholder': 'Durata In min'}),
'streaming_url' : forms.URLInput(attrs={'class' : 'form__input','placeholder': 'Streaming URL'}),
'voto' : forms.NumberInput(attrs={'class' : 'form__input','placeholder': 'Voto'})
}
labels = {
'immagine_poster' : "Carica Immagine Copertina (270x400)"
}
class CommentiForms(forms.ModelForm):
class Meta:
model = Commento
fields = ['commento']
widgets = {
'commento' : forms.Textarea(attrs={'class': 'form__textarea','id':'text'})
}
def clean_commento(self):
super().clean()
dati = self.cleaned_data["commento"]
print(f" Hai scritto la parola : {dati}")
lista_parole_offensive = profanity_words()
for s in lista_parole_offensive:
if s in dati:
raise ValidationError("Il Contenuto Inserito viola le norme del sito! ")
return dati
class SegnalazioneFilmForm(forms.ModelForm):
class Meta:
model = SegnalazioneFilm
exclude = ['film']
widgets = {
'descrizione_problema' : forms.Textarea(attrs={'class': 'form__textarea','id':'text'}),
'problema_video' : forms.Select(attrs={'class':' js-example-basic-single select2-hidden-accessible','id':'segnalaproblema'})
}
labels = {
'descrizione_problema': '',
'problema_video' : ''
}