from django import forms from wagtail.admin.forms import WagtailAdminPageForm from wagtail.core.models.collections import Collection from wagtail.core.models.sites import Site from .jekyll_import import perform_import class JekyllImportForm(WagtailAdminPageForm): article_root_page_id = ( forms.IntegerField() ) # TODO resolve circular import and make ModelChoiceField collection = forms.ModelChoiceField(queryset=Collection.objects.all()) dry_run = forms.BooleanField(initial=True) jekyll_repo_url = forms.URLField() site = forms.ModelChoiceField(queryset=Site.objects.all()) # def clean(self): # cleaned_data = super().clean() # return super().clean() def save(self, commit=True): perform_import( article_root_page_id=self.cleaned_data["article_root_page_id"], collection=self.cleaned_data["article_root_page_id"], path=self.cleaned_data["jekyll_repo_url"], ) return super().save(commit=commit)