from django import forms from crispy_forms.helper import FormHelper from crispy_forms.layout import Submit, HTML, Div from crispy_bulma.layout import FormGroup 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')) #helper.layout.subm append(HTML('Cancel')) #print(helper.layout) helper.layout.append(FormGroup( Submit('submit', 'Save', css_class="button is-primary"), HTML('{% if view.cancel_url %}
{% endif %}') )) return helper class ProjectForm(forms.ModelForm, BaseForm): class Meta: model = models.Project fields = ['name', 'description', 'modules', 'event_date'] #widgets = { # 'event_date': forms.DateTimeInput(attrs={'type': 'date'}) #} modules = forms.MultipleChoiceField(choices=[ (x, x.title()) for x in models.settings.POLYPHONIC_MODULES ], widget=forms.CheckboxSelectMultiple, required=False) 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 WikiForm(forms.ModelForm, BaseForm): class Meta: model = models.WikiPage fields = ['title', 'markdown'] 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()