- model = Chunk
- fields = ['title', 'slug', 'gallery_start', 'user', 'stage']
- exclude = ['number']
-
- def __init__(self, *args, **kwargs):
- super(ChunkForm, self).__init__(*args, **kwargs)
- self.fields['gallery_start'].widget.attrs={'class': 'number-input'}
- self.fields['slug'].widget.attrs={'class': 'autoslug'}
- self.fields['title'].widget.attrs={'class': 'autoslug-source'}
-
- def clean_slug(self):
- slug = self.cleaned_data['slug']
- try:
- chunk = Chunk.objects.get(book=self.instance.book, slug=slug)
- except Chunk.DoesNotExist:
- return slug
- if chunk == self.instance:
- return slug
- raise forms.ValidationError(_('Chunk with this slug already exists'))
-
-
-class ChunkAddForm(ChunkForm):
- """
- Form used for adding a chunk to a document.
- """
-
- def clean_slug(self):
- slug = self.cleaned_data['slug']
- try:
- user = Chunk.objects.get(book=self.instance.book, slug=slug)
- except Chunk.DoesNotExist:
- return slug
- raise forms.ValidationError(_('Chunk with this slug already exists'))
-
-
-class BookAppendForm(forms.Form):
- """
- Form for appending a book to another book.
- It means moving all chunks from book A to book B and deleting A.
- """
- append_to = forms.ModelChoiceField(queryset=Book.objects.all(),
- label=_("Append to"))
-
- def __init__(self, book, *args, **kwargs):
- ret = super(BookAppendForm, self).__init__(*args, **kwargs)
- self.fields['append_to'].queryset = Book.objects.exclude(pk=book.pk)
- return ret