Guest User

Untitled

a guest
Jun 20th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. class SomeArchetypeWithImages(...):
  2. def __bobo_traverse__(self, REQUEST, name):
  3. if name in self.image_field_ids:
  4. field = self.getField(name)
  5. image = field.getScale(self)
  6. else:
  7. # decode request
  8. parts = name.split('_')
  9. field_name = '_'.join(parts[:-1])
  10. scale = len(parts) > 1 and parts[-1] or None
  11.  
  12. if field_name in self.image_field_ids:
  13. field = self.getField(field_name)
  14. image = field.getScale(self, scale=scale)
  15.  
  16. if scale in field.sizes and not image:
  17. try:
  18. state = self._p_changed
  19. except (ConflictError, KeyboardInterrupt):
  20. raise
  21. except:
  22. state = 0
  23.  
  24. # as unrestricted user ...
  25. old = security.loginAsUnrestrictedUser()
  26. try:
  27. # recreate (all!) scales
  28. logging.warn(
  29. 'Recreating scales for: %s.' % \
  30. self.absolute_url(1))
  31. field.removeScales(self)
  32. field.createScales(self)
  33. finally:
  34. security.loginAsUser(old)
  35.  
  36. if state is None:
  37. self._p_deactivate()
  38.  
  39. # try again
  40. image = field.getScale(self, scale=scale)
  41.  
  42. else:
  43. image = None
  44.  
  45. if image is not None and not isinstance(image, basestring):
  46. return image
  47.  
  48. return folder.ATFolder.__bobo_traverse__(self, REQUEST, name)
Add Comment
Please, Sign In to add comment