from django import forms from crispy_forms.helper import FormHelper from crispy_forms.layout import Submit from . import models, fields class BaseForm(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.helper = self.get_form_helper() def get_form_helper(self): helper = FormHelper(self) helper.add_input(Submit('submit', 'Submit', css_class='button is-link')) return helper class ProjectForm(forms.ModelForm, BaseForm): class Meta: model = models.Project fields = ['name', 'description', 'event_date'] widgets = { 'event_date': forms.DateTimeInput(attrs={'type': 'date'}) } class ResourceForm(forms.ModelForm, BaseForm): class Meta: model = models.Resource fields = ['name', 'media_type', 'description', 'file'] def get_form_helper(self): helper = super().get_form_helper() helper[3].wrap(fields.BulmaFileUpload) return helper class CodeForm(BaseForm): code = forms.CharField(max_length=14, widget=forms.TextInput(attrs={'placeholder': 'xxx-xxx-xxx', 'inputmode': 'numeric'})) passphrase = forms.CharField(max_length=32) class ResourceUploadForm(forms.Form): pass # file = S3UploadField()