Example #1
0
    def render(self, **kwargs):
        """render a file field and the file preview
        """
        html = Base.render(self, **kwargs)
        value = self.field.value
        if value:
            html += self.render_readonly()

            # add the old value for objects not yet stored
            old_value = "%s--old" % self.name
            html += h.hidden_field(old_value, value=value)
        return html
Example #2
0
    def deserialize(self):
        if self._path:
            return self._path
        data = Base.deserialize(self)
        if self._data is not None and self._filename:
            filename = normalized_basename(self._filename)
            self._path = self.relative_path(filename)
            filepath = os.path.join(self.storage_path, self._path.replace("/", os.sep))
            dirname = os.path.dirname(filepath)
            if not os.path.isdir(dirname):
                os.makedirs(dirname)
            fd = open(filepath, "wb")
            fd.write(data)
            fd.close()
            return self._path

        # get value from old_value if needed
        old_value = "%s--old" % self.name
        checkbox_name = "%s--remove" % self.name
        if not data and not self.params.has_key(checkbox_name) and self.params.has_key(old_value):
            return self.params[old_value]
        return data is not None and data or ""
Example #3
0
 def __init__(self, *args, **kwargs):
     if not self.storage_path or not os.path.isdir(self.storage_path):
         raise ValueError("storage_path must be set to a valid path. Got %r" % self.storage_path)
     Base.__init__(self, *args, **kwargs)
     self._path = None