]> git.parisson.com Git - mezzo.git/commitdiff
Fix Brief autocomplete form
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 17 Aug 2016 18:07:01 +0000 (20:07 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 17 Aug 2016 18:07:01 +0000 (20:07 +0200)
app/organization/magazine/admin.py
app/organization/magazine/forms.py [new file with mode: 0644]
app/organization/magazine/models.py
app/organization/magazine/urls.py
app/organization/magazine/views.py
app/scripts/app.sh

index b1dd75623e826e5f18d7287d84cd72163dbb1065..fe2d6a7d719e8aeb0d87cee71050321fa72998dc 100644 (file)
@@ -4,7 +4,8 @@ from copy import deepcopy
 from mezzanine.core.admin import *
 from mezzanine.pages.admin import PageAdmin
 #from orderable.admin import OrderableTabularInline #OrderableAdmin,
-from organization.magazine.models import Article, Brief, Topic, ArticleImage, BriefForm
+from organization.magazine.models import Article, Brief, Topic, ArticleImage
+from organization.magazine.forms import BriefForm
 
 
 class ArticleImageInline(TabularDynamicInlineAdmin):
diff --git a/app/organization/magazine/forms.py b/app/organization/magazine/forms.py
new file mode 100644 (file)
index 0000000..4388d2b
--- /dev/null
@@ -0,0 +1,28 @@
+from dal import autocomplete
+
+import dal_queryset_sequence
+import dal_select2_queryset_sequence
+
+from organization.magazine.models import Article, Topic, Brief
+
+
+class BriefForm(autocomplete.FutureModelForm):
+
+    # selected_object = forms.ModelChoiceField(
+    #     queryset=ContentType.objects.all(),
+    #     widget=autocomplete.ModelSelect2(url='object-autocomplete')
+    # )
+
+    content_object = dal_queryset_sequence.fields.QuerySetSequenceModelField(
+        queryset=autocomplete.QuerySetSequence(
+            Article.objects.all(),
+            Topic.objects.all(),
+            # ContentType.objects.all(),
+        ),
+        required=False,
+        widget=dal_select2_queryset_sequence.widgets.QuerySetSequenceSelect2('object-autocomplete'),
+    )
+
+    class Meta:
+        model = Brief
+        fields = ('__all__')
index aa388d007cef3982ca9db3a8dcc1e2ebe3c95c0e..8bcc131426046416aeb57dd3d6622f8423dbe989 100644 (file)
@@ -6,7 +6,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.models import ContentType
 from django.utils.translation import ugettext_lazy as _
 from django.core.urlresolvers import reverse, reverse_lazy
-from dal import autocomplete
+
 from mezzanine.core.models import RichText, Displayable, Slugged
 from mezzanine.pages.models import Page
 from mezzanine.blog.models import BlogPost
@@ -82,27 +82,6 @@ class Brief(Displayable, RichText): #Orderable
 #         model = Brief
 #         fields = ('__all__')
 
-class BriefForm(autocomplete.FutureModelForm):
-
-    selected_object = forms.ModelChoiceField(
-        queryset=ContentType.objects.all(),
-        widget=autocomplete.ModelSelect2(url='object-autocomplete')
-    )
-
-    # content_object = autocomplete.QuerySetSequenceModelField(
-    #     queryset=autocomplete.QuerySetSequence(
-    #         #Article.objects.all(),
-    #         #Topic.objects.all(),
-    #         #ContentType.objects.all(),
-    #     ),
-    #     required=False,
-    #     widget=autocomplete.QuerySetSequenceSelect2('object-autocomplete'),
-    # )
-
-    class Meta:
-        model = Brief
-        fields = ('__all__')
-
 
 class Topic(Page, RichText):
     """Topic for magazine menu"""
index effc824c6060e33050481f23ebabf644bde007e1..4f188b6781b5bb64cde0a4ec856596e853bb8fa5 100644 (file)
@@ -15,9 +15,5 @@ urlpatterns = [
     url("^article/$", ArticleListView.as_view(), name="magazine-article-list"),
     url("^article/detail/(?P<slug>.*)%s$" % _slash, ArticleDetailView.as_view(), name="magazine-article-detail"),
     url("^topic/detail/(?P<slug>.*)%s$" % _slash, TopicDetailView.as_view(), name='topic-detail'),
-    url(
-        r'^object-autocomplete/$',
-        ObjectAutocomplete.as_view(),
-        name='object-autocomplete',
-    ),
+    url("^object-autocomplete/$", ObjectAutocomplete.as_view(), name='object-autocomplete'),
 ]
index cfb0326e42542157f639df4ecaeb62c7ab9c57aa..a5763f85935d1194329b68416fb150cf3f491090 100644 (file)
@@ -15,6 +15,8 @@ from organization.team.models import Department
 from organization.core.views import SlugMixin
 from django.template.defaultfilters import slugify
 
+from dal import autocomplete
+from dal_select2_queryset_sequence.views import Select2QuerySetSequenceView
 
 class ArticleDetailView(SlugMixin, DetailView):
 
@@ -83,7 +85,8 @@ class TopicDetailView(SlugMixin, DetailView):
         context = super(TopicDetailView, self).get_context_data(**kwargs)
         return context
 
-class ObjectAutocomplete(autocomplete.Select2QuerySetView):
+
+class ObjectAutocomplete(Select2QuerySetSequenceView):
     def get_queryset(self):
 
         #qs = chain(Topic.objects.all(), Article.objects.all())
@@ -91,13 +94,12 @@ class ObjectAutocomplete(autocomplete.Select2QuerySetView):
         articles = Article.objects.all()
         topics = Topic.objects.all()
 
-
         if self.q:
             #qs = qs.filter(name__istartswith=self.q)
             articles = articles.filter(name__icontains=self.q)
             topics = topics.filter(name__icontains=self.q)
 
-        qs = QuerySetSequence(articles, topics)
+        qs = autocomplete.QuerySetSequence(articles, topics)
 
         if self.q:
             # This would apply the filter on all the querysets
@@ -106,5 +108,5 @@ class ObjectAutocomplete(autocomplete.Select2QuerySetView):
         # This will limit each queryset so that they show an equal number
         # of results.
         qs = self.mixup_querysets(qs)
-        print(qs)
+        print(qs)
         return qs
index 3a9d01ba41bce2fe6e74a63da0c53153d77b50bf..96d6ad6f179e5d4f845a6f49d7a7c0d103829011 100644 (file)
@@ -22,6 +22,8 @@ patterns='*.js;*.css;*.jpg;*.jpeg;*.gif;*.png;*.svg;*.ttf;*.eot;*.woff;*.woff2'
 # pip install -U https://forge.ircam.fr/p/django-eve/source/download/dev/
 # pip install -U https://github.com/stephenmcd/grappelli-safe/archive/dynamic_stacked.zip
 # pip install django-querysetsequence
+pip install django-autocomplete-light django-querysetsequence
+/usr/bin/yes | pip uninstall django-orderable
 
 chown -R $uid:$gid $media