update theming for admin (tmp)

This commit is contained in:
bkfox 2015-08-20 16:42:43 +02:00
parent 2ebf4a416d
commit b36c2f944e
4 changed files with 39 additions and 70 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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')

View File

@ -1,7 +1,25 @@
{% extends "admin/base.html" %}
{% block extrahead %}
<!-- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.js" type="text/javascript"></script> -->
{% include 'autocomplete_light/static.html' %}
<style>
.grp-autocomplete-wrapper-m2m:focus, .grp-autocomplete-wrapper-m2m.grp-state-focus,
.grp-autocomplete-wrapper-m2m {
background: rgba(255, 255, 255, 0.2);
border: none;
box-shadow: none;
}
.grp-autocomplete-wrapper-m2m ul.grp-repr li.grp-search {
background-color: #FDFDFD;
border: 1px solid #CCC;
}
.grp-autocomplete-wrapper-m2m ul.grp-repr li {
float: none;
display: block;
}
</style>
{% endblock %}