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):
--- /dev/null
+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__')
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
# 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"""
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'),
]
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):
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())
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
# 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
# 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