Skip to content
Snippets Groups Projects
Verified Commit 3ae05161 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Allow more flexible retrieval of image paths.

parent 3a88c4b0
No related branches found
No related tags found
No related merge requests found
......@@ -42,25 +42,37 @@ class TeckidsLdapMixin(object):
return objects
def get_image_url(self, field='jpeg_photo', fallback=None):
if getattr(self, field):
entry_dir = os.path.join(settings.MEDIA_ROOT, 'ticdesk', 'ldap', md5(self.dn.encode("utf-8")).hexdigest())
if not os.path.isdir(entry_dir):
os.makedirs(entry_dir)
def get_image_rel(self, field='jpeg_photo', fallback=None):
entry_dir = os.path.join(settings.MEDIA_ROOT, 'ticdesk', 'ldap', md5(self.dn.encode("utf-8")).hexdigest())
if not os.path.isdir(entry_dir):
os.makedirs(entry_dir)
filename = '%s.jpg' % os.path.join(entry_dir, md5(field.encode("utf-8")).hexdigest())
with open(filename, 'wb') as image_file:
image_file.write(getattr(self, field))
filename = '%s.jpg' % os.path.join(entry_dir, md5(field.encode("utf-8")).hexdigest())
return '%s%s/%s/%s/%s.jpg' % (settings.MEDIA_URL, 'ticdesk', 'ldap', md5(self.dn.encode("utf-8")).hexdigest(), md5(field.encode("utf-8")).hexdigest())
if not getattr(self, field):
else:
if fallback is None:
fallback = '%s%s' % (settings.STATIC_URL, 'people.jpg')
return fallback
fallback = '%s%s' % (settings.STATIC_ROOT, 'people.jpg')
with open(filename, 'wb') as image_file, open(fallback, 'rb') as fallback_file:
image_file.write(fallback_file.read())
return '%s/%s/%s/%s.jpg' % ('ticdesk', 'ldap', md5(self.dn.encode("utf-8")).hexdigest(), md5(field.encode("utf-8")).hexdigest())
def get_image_url(self, field='jpeg_photo', fallback=None):
return '%s%s' % (settings.MEDIA_URL, self.get_image_rel(field, fallback))
def get_image_path(self, field='jpeg_photo', fallback=None):
return '%s%s' % (settings.MEDIA_ROOT, self.get_image_rel(field, fallback))
def __getattr__(self, attr):
if attr.endswith('__url'):
return self.get_image_url(attr[:-5])
elif attr.endswith('__path'):
return self.get_image_path(attr[:-6])
elif attr.endswith('__rel'):
return self.get_image_rel(attr[:-5])
class TeckidsGroup(ldapdb.models.Model, TeckidsLdapMixin):
class Meta:
......
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