__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" from django import forms from .models import NewsLetter, NewsItem, NewsLetterNewsItemsTable class NewsLetterForm(forms.ModelForm): class Meta: model = NewsLetter fields = ['date', 'intro', 'closing', 'published'] class NewsItemForm(forms.ModelForm): class Meta: model = NewsItem fields = ['date', 'headline', 'blurb_short', 'blurb', 'image', 'css_class', 'followup_link', 'followup_link_text', 'published', 'on_homepage'] class NewsLetterNewsItemsTableForm(forms.ModelForm): class Meta: model = NewsLetterNewsItemsTable fields = ['newsitem'] class NewsLetterNewsItemsTableFormSet(forms.BaseModelFormSet): def save(self, *args, **kwargs): objects = super().save(*args, **kwargs) for form in self.ordered_forms: form.instance.order = form.cleaned_data['ORDER'] form.instance.save() return objects NewsLetterNewsItemsOrderingFormSet = forms.modelformset_factory( NewsLetterNewsItemsTable, fields=(), can_order=True, extra=0, formset=NewsLetterNewsItemsTableFormSet)