diff options
Diffstat (limited to 'sugar_network/db/resource.py')
-rw-r--r-- | sugar_network/db/resource.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/sugar_network/db/resource.py b/sugar_network/db/resource.py index 7209c49..0e7217d 100644 --- a/sugar_network/db/resource.py +++ b/sugar_network/db/resource.py @@ -14,7 +14,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. from sugar_network import toolkit -from sugar_network.db.metadata import StoredProperty, indexed_property +from sugar_network.db.metadata import indexed_property +from sugar_network.db.metadata import StoredProperty, BlobProperty from sugar_network.toolkit.router import Blob, ACL @@ -73,6 +74,17 @@ class Resource(object): }) return result + @author.setter + def author(self, value): + if type(value) not in (list, tuple): + return value + result = {} + for order, author in enumerate(value): + user = author.pop('guid') + author['order'] = order + result[user] = author + return result + @indexed_property(prefix='RL', typecast=[], default=[]) def layer(self, value): return value @@ -81,6 +93,15 @@ class Resource(object): def tags(self, value): return value + def path(self, prop=None): + if not prop: + return self._record.path() + if prop in self.metadata and \ + isinstance(self.metadata[prop], BlobProperty): + return self._record.blob_path(prop) + else: + return self._record.path(prop) + def get(self, prop, accept_language=None): """Get document's property value. |