TandoorRecipes/cookbook/forms.py
2018-05-25 16:49:10 +02:00

82 lines
2.4 KiB
Python

from django.utils.translation import gettext as _
from django import forms
from .models import *
from django.forms import widgets
class MultiSelectWidget(widgets.SelectMultiple):
class Media:
js = ('custom/js/form_multiselect.js',)
class EmojiWidget(forms.TextInput):
class Media:
js = ('custom/js/form_emoji.js',)
class EditRecipeForm(forms.ModelForm):
class Meta:
model = Recipe
fields = ('name', 'category', 'keywords', 'path', 'storage')
labels = {
'name': _('Name'),
'category': _('Category'),
'keywords': _('Keywords'),
'path': _('Path'),
}
widgets = {'keywords': MultiSelectWidget}
class CategoryForm(forms.ModelForm):
class Meta:
model = Category
fields = ('name', 'icon', 'description')
widgets = {'icon': EmojiWidget}
class KeywordForm(forms.ModelForm):
class Meta:
model = Keyword
fields = ('name', 'icon', 'description')
widgets = {'icon': EmojiWidget}
class StorageForm(forms.ModelForm):
username = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password'}), required=False)
password = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password', 'type': 'password'}), required=False)
token = forms.CharField(widget=forms.TextInput(attrs={'autocomplete': 'new-password', 'type': 'password'}), required=False)
class Meta:
model = Storage
fields = ('name', 'method', 'username', 'password', 'token', 'url')
class SyncForm(forms.ModelForm):
class Meta:
model = Sync
fields = ('storage', 'path')
class BatchEditForm(forms.Form):
search = forms.CharField(label=_('Search String'))
category = forms.ModelChoiceField(queryset=Category.objects.all().order_by('id'), required=False)
keywords = forms.ModelMultipleChoiceField(queryset=Keyword.objects.all().order_by('id'), required=False)
class Media:
js = ('custom/js/form_multiselect.js',)
class ImportRecipeForm(forms.ModelForm):
class Meta:
model = Recipe
fields = ('name', 'category', 'keywords', 'path')
labels = {
'name': _('Name'),
'category': _('Category'),
'keywords': _('Keywords'),
'path': _('Path'),
}
widgets = {'keywords': MultiSelectWidget}