diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-03-14 18:48:00 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-03-14 18:48:00 +0100 |
commit | 054fdbdf7a1e5106725b8b5a36db99242cfa65c1 (patch) | |
tree | 1633b26e884feb1f29afedbb80cef7a6ecbdba2d /chimere/models.py | |
parent | 8a5ba2650678ec22107a1a0a10650b6e0cc14683 (diff) | |
parent | d02ec4246813eb0787bf3ab54af1af9ce32bd376 (diff) | |
download | Chimère-054fdbdf7a1e5106725b8b5a36db99242cfa65c1.tar.bz2 Chimère-054fdbdf7a1e5106725b8b5a36db99242cfa65c1.zip |
Merge branch 'master' into saclay
Conflicts:
chimere/locale/fr/LC_MESSAGES/django.po
chimere/static/chimere/css/styles.css
chimere/static/chimere/js/jquery.chimere.js
chimere/templates/chimere/detail.html
chimere/templatetags/chimere_tags.py
chimere/utils.py
chimere/views.py
example_project/settings.py
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 42 |
1 files changed, 31 insertions, 11 deletions
diff --git a/chimere/models.py b/chimere/models.py index a059b35..90cb06a 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -331,6 +331,10 @@ class Importer(models.Model): zipped = models.BooleanField(_(u"Zipped file"), default=False) overwrite = models.BooleanField(_(u"Overwrite existing data"), default=False) + get_description = models.BooleanField(_(u"Get description from source"), + default=False) + default_description = models.TextField(_(u"Default description"), + blank=True, null=True) origin = models.CharField(_(u"Origin"), max_length=100, blank=True, null=True) license = models.CharField(_(u"License"), max_length=100, @@ -425,6 +429,13 @@ class GeographicItem(models.Model): self.import_key = new_keys self.save() + def has_modified(self): + if (self.ref_item and self.ref_item != self) \ + or self.__class__.objects.filter(ref_item=self + ).exclude(pk=self.pk).count(): + return True + return False + @classmethod def properties(cls): return [pm for pm in PropertyModel.objects.filter(available=True)] @@ -505,7 +516,10 @@ class Marker(GeographicItem): @property def date(self): - if settings.CHIMERE_DAYS_BEFORE_EVENT: + if settings.CHIMERE_DAYS_BEFORE_EVENT and self.start_date: + today = datetime.date.today() + if self.end_date and self.start_date < today: + return self.end_date return self.start_date @property @@ -629,11 +643,14 @@ class Marker(GeographicItem): def default_category(self): # Should we select only available ones ? # Should we catch if not exists ? - return self.categories.all()[0] + cats = self.categories + if cats.count(): + return cats.all()[0] def get_absolute_url(self, area_name=''): - parameters = 'current_feature=%d&checked_categories=%s' % (self.id, - self.default_category.pk) + parameters = 'current_feature=%d' % self.id + if self.default_category: + parameters += '&checked_categories=%s' % self.default_category.pk urn = TinyUrl.getUrnByParameters(parameters) area_name = area_name + '/' if area_name else '' url = reverse('chimere:tiny', args=[area_name, urn]) @@ -890,7 +907,7 @@ def picturefile_post_save(sender, **kwargs): basename, format = os.path.splitext(filetail) basename = defaultfilters.slugify(basename) basename = re.sub(r'-','_', basename) - miniature = basename + '_thumb' + format + miniature = basename + '_thumb.jpg' filename = file.path miniature_filename = os.path.join(filehead, miniature) try: @@ -910,10 +927,12 @@ def picturefile_post_save(sender, **kwargs): image.thumbnail([image_x, image_y], Image.ANTIALIAS) temp_image = open(miniature_filename, 'w') + if image.mode != "RGB": + image = image.convert('RGB') try: - image.save(temp_image, image.format, quality=90, optimize=1) + image.save(temp_image, 'JPEG', quality=90, optimize=1) except: - image.save(temp_image, image.format, quality=90) + image.save(temp_image, 'JPEG', quality=90) short_name = miniature_filename[len(settings.MEDIA_ROOT):] picturefile.thumbnailfile = short_name @@ -1396,8 +1415,8 @@ def area_post_save(sender, **kwargs): perm = Permission.objects.filter(codename=mnemo) lbl = "Can change " + area.name if not perm.count(): - content_type = ContentType.objects.get(app_label="chimere", - model="area") + content_type, created = ContentType.objects.get_or_create( + app_label="chimere", model="area") perm = Permission(name=lbl, content_type_id=content_type.id, codename=mnemo) perm.save() @@ -1424,7 +1443,8 @@ def area_post_save(sender, **kwargs): ('chimere', 'multimediafile'), ('chimere', 'picturefile'), ('chimere', 'routefile')): - ct = ContentType.objects.get(app_label=app_label, model=model) + ct, created = ContentType.objects.get_or_create(app_label=app_label, + model=model) for p in Permission.objects.filter(content_type=ct).all(): group.permissions.add(p) |