From b36c2f944e2f732312c7600fdd6c87d61f2d66e5 Mon Sep 17 00:00:00 2001 From: bkfox Date: Thu, 20 Aug 2015 16:42:43 +0200 Subject: [PATCH] update theming for admin (tmp) --- programs/admin.py | 21 ++++--------- programs/autocomplete_light_registry.py | 40 ------------------------- programs/models.py | 26 ++++++++-------- templates/admin/base_site.html | 22 ++++++++++++-- 4 files changed, 39 insertions(+), 70 deletions(-) delete mode 100644 programs/autocomplete_light_registry.py diff --git a/programs/admin.py b/programs/admin.py index 57e8ad5..955c8ec 100755 --- a/programs/admin.py +++ b/programs/admin.py @@ -4,7 +4,7 @@ from django.contrib import admin from django.forms import Textarea from django.db import models -import autocomplete_light as al +# import autocomplete_light as al from programs.models import * @@ -52,19 +52,7 @@ class MetadataAdmin (admin.ModelAdmin): obj.save() - class PublicationAdmin (MetadataAdmin): - form = al.modelform_factory( - Episode - , fields = '__all__' - # , autocomplete_fields = ['tracks'] - ) - - - formfield_overrides = { - models.TextField: {'widget': Textarea(attrs={'style':'width:calc(100% - 12px);'})}, - } - fieldsets = copy.deepcopy(MetadataAdmin.fieldsets) list_display = ('id', 'title', 'date', 'private') @@ -100,8 +88,6 @@ class ProgramAdmin (PublicationAdmin): fieldsets[1][1]['fields'] += ['email', 'url'] - - class EpisodeAdmin (PublicationAdmin): fieldsets = copy.deepcopy(PublicationAdmin.fieldsets) #inlines = [ SoundInline ] @@ -111,7 +97,10 @@ class EpisodeAdmin (PublicationAdmin): fieldsets[0][1]['fields'] += ['tracks'] fieldsets[0][1]['fields'] += ['sounds'] - + raw_id_fields = ('tracks', 'sounds') + autocomplete_lookup_fields = { + 'm2m': ['tracks', 'sounds'], + } admin.site.register(Track) admin.site.register(Sound, SoundAdmin) diff --git a/programs/autocomplete_light_registry.py b/programs/autocomplete_light_registry.py deleted file mode 100644 index ad15825..0000000 --- a/programs/autocomplete_light_registry.py +++ /dev/null @@ -1,40 +0,0 @@ -import autocomplete_light.shortcuts as al -from programs.models import * - - -class SoundAutocomplete(al.AutocompleteModelBase): - search_fields = ['title', 'file'] - model = Sound - -al.register(SoundAutocomplete) - - -class TrackAutocomplete(al.AutocompleteModelBase): - search_fields = ['artist', 'title'] - model = Track - -al.register(TrackAutocomplete) - - -class ArticleAutocomplete(al.AutocompleteModelBase): - search_fields = ['title', 'subtitle'] - model = Article - -al.register(ArticleAutocomplete) - - -class ProgramAutocomplete(al.AutocompleteModelBase): - search_fields = ['title', 'subtitle'] - model = Program - -al.register(ProgramAutocomplete) - - -class EpisodeAutocomplete(al.AutocompleteModelBase): - search_fields = ['title', 'subtitle'] - model = Episode - -al.register(EpisodeAutocomplete) - - - diff --git a/programs/models.py b/programs/models.py index 71acb6b..d2f402d 100755 --- a/programs/models.py +++ b/programs/models.py @@ -12,7 +12,6 @@ from django.utils.html import strip_tags # extensions from taggit.managers import TaggableManager -from sortedm2m.fields import SortedManyToManyField import programs.settings as settings @@ -113,12 +112,6 @@ class Metadata (Model): , default = False , help_text = _('publication is private') ) - # FIXME: add a field to specify if the element should be listed or not - meta = models.TextField( - _('meta') - , blank = True - , null = True - ) tags = TaggableManager( _('tags') , blank = True @@ -234,8 +227,13 @@ class Track (Model): tags = TaggableManager( blank = True ) + @staticmethod + def autocomplete_search_fields(): + return ("artist__icontains", 'title__icontains') + + def __str__(self): - return ' '.join([self.title, _('by'), self.artist, + return ' '.join([self.artist, ':', self.title, (self.version and ('(' + self.version + ')') or '') ]) @@ -313,8 +311,13 @@ class Sound (Metadata): super(Sound, self).save(*args, **kwargs) + @staticmethod + def autocomplete_search_fields(): + return ("id__iexact", "path__icontains", 'title__icontains') + + def __str__ (self): - return str(self.id) + ': ' + self.path + return '/'.join(self.path.split('/')[-3:]) class Meta: @@ -564,7 +567,6 @@ class Program (Publication): verbose_name_plural = _('Programs') - class Episode (Publication): # Note: # We do not especially need a duration here, because even if an @@ -579,12 +581,12 @@ class Episode (Publication): , verbose_name = _('parent') , help_text = _('parent program') ) - tracks = SortedManyToManyField( + tracks = models.ManyToManyField( Track , blank = True , verbose_name = _('tracks') ) - sounds = SortedManyToManyField( + sounds = models.ManyToManyField( Sound , blank = True , verbose_name = _('sounds') diff --git a/templates/admin/base_site.html b/templates/admin/base_site.html index b4d8cbd..a040f36 100644 --- a/templates/admin/base_site.html +++ b/templates/admin/base_site.html @@ -1,7 +1,25 @@ {% extends "admin/base.html" %} {% block extrahead %} - - {% include 'autocomplete_light/static.html' %} + + {% endblock %}