]> git.0d.be Git - django-panik-combo.git/blobdiff - panikombo/forms.py
add additional "and_tags" field to auto selection, for ANDing criterias
[django-panik-combo.git] / panikombo / forms.py
index ed3991a8dd4b858bfd8c2eafa561403b990ff992..8cb67c53d02aa3ab4036b6678dcaee6793a400f1 100644 (file)
@@ -1,9 +1,13 @@
+import json
+
 from django import forms
-from django_select2.widgets import HeavySelect2Widget, convert_to_js_string_arr
+from django_select2.widgets import HeavySelect2Widget
+from taggit.forms import TagWidget
 
 from emissions.models import SoundFile, Episode
 
-from .models import SoundCell, EpisodeCell
+from .models import (SoundCell, EpisodeCell, EpisodeAutoSelectionCell,
+        NewsItemAutoSelectionCell, Topik)
 from .views import soundfiles, episodes
 
 class SoundFileWidget(HeavySelect2Widget):
@@ -14,7 +18,7 @@ class SoundFileWidget(HeavySelect2Widget):
                     soundfile.episode.title,
                     soundfile.title or soundfile.id)
         texts = [fmt(soundfile) for soundfile in queryset.select_related()]
-        return convert_to_js_string_arr(texts)
+        return json.dumps(texts)
 
 
 class SoundCellForm(forms.ModelForm):
@@ -33,7 +37,7 @@ class EpisodeWidget(HeavySelect2Widget):
         def fmt(episode):
             return '%s - %s' % (episode.emission.title, episode.title)
         texts = [fmt(episode) for episode in queryset.select_related()]
-        return convert_to_js_string_arr(texts)
+        return json.dumps(texts)
 
 
 class EpisodeCellForm(forms.ModelForm):
@@ -44,3 +48,23 @@ class EpisodeCellForm(forms.ModelForm):
     def __init__(self, *args, **kwargs):
         super(EpisodeCellForm, self).__init__(*args, **kwargs)
         self.fields['episode'].widget = EpisodeWidget(data_view=episodes)
+
+
+class EpisodeAutoSelectionCellForm(forms.ModelForm):
+    class Meta:
+        model = EpisodeAutoSelectionCell
+        fields = ('title', 'tags', 'and_tags', 'category', 'period')
+        widgets = {'tags': TagWidget()}
+
+
+class NewsItemAutoSelectionCellForm(forms.ModelForm):
+    class Meta:
+        model = NewsItemAutoSelectionCell
+        fields = ('title', 'tags', 'and_tags', 'category', 'future')
+        widgets = {'tags': TagWidget()}
+
+
+class TopikEditForm(forms.ModelForm):
+    class Meta:
+        model = Topik
+        fields = ('image',)