Skip to content
Snippets Groups Projects
Commit b99f2cab authored by Yannik Ammann's avatar Yannik Ammann
Browse files

admin view, file management, display of html tags

added new admin view for faviconImg, with filter for set favicon
when object gets deleted file gets deleted, when favicon is changed all 'sub' favicons change
default size for all favicons added
parent 5799efdc
No related branches found
No related tags found
No related merge requests found
......@@ -14,10 +14,12 @@ class FaviconImgAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(FaviconImgAdmin, self).queryset(request)
isFavicon = Favicon.objects.filter(isFavicon = True)
#if not isFavicon:
# return qs
if not len(isFavicon) == 1:
for n in Favicon.objects.all():
n.isFavicon = False
return qs
return qs
isFavicon = isFavicon[0]
return qs.filter(faviconFK = isFavicon)
......
......@@ -3,7 +3,6 @@ from django.db import models
from django.conf import settings
from PIL import Image
import StringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
......@@ -18,6 +17,9 @@ config = {
config = getattr(settings, 'FAVICON_CONFIG', config)
def pre_delete_image(sender, instance, **kwargs):
instance.del_image()
@python_2_unicode_compatible
class Favicon(models.Model):
......@@ -44,12 +46,20 @@ class Favicon(models.Model):
def get_absolute_url(self):
return "%s" % self.faviconImage.name
def del_image(self):
self.faviconImage.delete()
def get_favicon(self, size, rel, update=False):
"""
get or create a favicon for size, rel(attr) and uploaded favicon
optional:
update=True
"""
fav, _ = FaviconImg.objects.get_or_create(
faviconFK=self, size=size, rel=rel)
if update and fav.faviconImage:
fav.faviconImage.delete()
if (self.faviconImage and not fav.faviconImage):
fav.del_image()
if self.faviconImage and not fav.faviconImage:
tmp = Image.open(self.faviconImage.path)
tmp.thumbnail((size, size), Image.ANTIALIAS)
......@@ -64,18 +74,18 @@ class Favicon(models.Model):
return fav
def save(self, *args, **kwargs):
print 'testtesttest'
update = False
orig = Favicon.objects.get(pk=self.pk)
if orig.faviconImage is not self.faviconImage:
orig.del_image()
update = True
if self.isFavicon:
for n in Favicon.objects.exclude(pk=self.pk):
n.isFavicon = False
n.save()
super(Favicon, self).save(*args, **kwargs)
orig = Favicon.objects.get(pk=self.pk)
update = True
#if self.faviconImage.name is not orig.faviconImage.name:
# update = True
#print '%s , -------------------- upadte --------' % (update,)
if self.faviconImage:
for rel in config:
......@@ -83,9 +93,8 @@ class Favicon(models.Model):
self.get_favicon(size=size,rel=rel, update=update)
#if self.faviconImage:
# for n in sizes:
# self.get_favicon(n,update=update)
#make sure default favicon is set
self.get_favicon(size=32, rel='shortcut icon')
class FaviconImg(models.Model):
......@@ -93,3 +102,14 @@ class FaviconImg(models.Model):
size = models.IntegerField()
rel = models.CharField(max_length=250, null=True)
faviconImage = models.ImageField(upload_to='favicon')
def del_image(self):
self.faviconImage.delete()
from django.db.models import signals
from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
signals.pre_delete.connect(pre_delete_image, sender=Favicon)
signals.pre_delete.connect(pre_delete_image, sender=FaviconImg)
......@@ -42,6 +42,7 @@ def placeFavicon(context):
#html += '<link rel="shortcut icon" href="http://%s/favicon.ico"/>' % (request.get_host(),)
#html += '<link rel="shortcut icon" href="http://%s/favicon.ico"/>'
'''
for rel in config:
for size in sorted(config[rel], reverse=True)[:-1]:
n = fav.get_favicon(size=size, rel=rel)
......@@ -51,5 +52,15 @@ def placeFavicon(context):
n = fav.get_favicon(size=size, rel=rel)
html += '<link rel="%s" size ="any" href="%s%s"/>' % (
n.rel, media_url, n.faviconImage.name)
'''
for rel in config:
for size in sorted(config[rel], reverse=True):
n = fav.get_favicon(size=size, rel=rel)
html += '<link rel="%s" size ="%sx%s" href="%s%s"/>' % (
n.rel, n.size, n.size, media_url, n.faviconImage.name)
default_fav = fav.get_favicon(size=32, rel='shortcut icon')
html += '<link rel="%s" size ="%sx%s" href="%s%s"/>' % (
default_fav.rel, default_fav.size, default_fav.size, media_url, default_fav.faviconImage.name)
return html
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment