easy_thumbnails.models: 41 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/easy_thumbnails/models.py

Stats: 0 executed, 37 missed, 4 excluded, 23 ignored

  1. from django.db import models
  2. from easy_thumbnails import utils, signal_handlers
  3. class FileManager(models.Manager):
  4. def get_file(self, storage, name, create=False, update_modified=None,
  5. check_cache_miss=False, **kwargs):
  6. kwargs.update(dict(storage_hash=utils.get_storage_hash(storage),
  7. name=name))
  8. if create:
  9. if update_modified:
  10. defaults = kwargs.setdefault('defaults', {})
  11. defaults['modified'] = update_modified
  12. object, created = self.get_or_create(**kwargs)
  13. else:
  14. created = False
  15. kwargs.pop('defaults', None)
  16. try:
  17. object = self.get(**kwargs)
  18. except self.model.DoesNotExist:
  19. if check_cache_miss and storage.exists(name):
  20. # File already in storage, update cache
  21. object = self.create(**kwargs)
  22. created = True
  23. else:
  24. return
  25. if update_modified and object and not created:
  26. if object.modified != update_modified:
  27. self.filter(pk=object.pk).update(modified=update_modified)
  28. return object
  29. class File(models.Model):
  30. storage_hash = models.CharField(max_length=40, db_index=True)
  31. name = models.CharField(max_length=255, db_index=True)
  32. modified = models.DateTimeField(default=utils.now)
  33. objects = FileManager()
  34. class Meta:
  35. abstract = True
  36. unique_together = (('storage_hash', 'name'),)
  37. def __unicode__(self):
  38. return self.name
  39. class Source(File):
  40. pass
  41. class Thumbnail(File):
  42. source = models.ForeignKey(Source, related_name='thumbnails')
  43. class Meta:
  44. unique_together = (('storage_hash', 'name', 'source'),)
  45. models.signals.pre_save.connect(signal_handlers.find_uncommitted_filefields)
  46. models.signals.post_save.connect(signal_handlers.signal_committed_filefields)