Conversion_Kitchen_Code/kitchen_counter/scriptAudit/forms.py

48 lines
2.0 KiB
Python
Raw Permalink Normal View History

2024-04-27 09:33:09 +00:00
from django import forms
from centralisedFileSystem.models import ScreenPlay
from django.core.validators import FileExtensionValidator
LANG_CHOICES =(
("en", "English"),
("en", "Other"),
)
class AuditForm(forms.Form):
screenplay_name = forms.CharField(label='Screenplay name', max_length=30,required=True)
author_name = forms.CharField(label='Author', max_length=30, required= True)
script_file = forms.FileField(required=True,validators=[FileExtensionValidator(allowed_extensions=['pdf','docx','txt','fdx'],message="Only PDF, DOCX, FDX, or TXT files are allowed!")])
language = forms.ChoiceField(label=' Language',choices=LANG_CHOICES,required=True)
def clean(self):
cleaned_data = super().clean()
screenplay_name = cleaned_data.get('screenplay_name')
author_name = cleaned_data.get('author_name')
language = cleaned_data.get('language')
script_file = cleaned_data.get('script_file')
if str(author_name).isdigit():
self.add_error('author_name',"Author name can't be digit's only")
if not screenplay_name:
self.add_error('screenplay_name', "ScreenPlay name is required")
if not author_name:
self.add_error('author_name', "Author name is required")
if not language:
self.add_error('language', "Language is required")
if not script_file:
self.add_error('script_file', "")
if ScreenPlay.objects.filter(name=screenplay_name).exists():
self.add_error('screenplay_name', "Screenplay name already exists")
return cleaned_data
def non_field_errors(self):
error_messages = self.errors.get('__all__', self.error_class())
if self.errors.get('screenplay_name') and self.errors.get('author_name') and self.errors.get('script_file') and self.errors.get('language'):
error_messages.clear() # Clear non-field errors if all fields have errors
return error_messages