aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/mixin.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/mixin.py')
-rw-r--r--mediagoblin/db/mixin.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py
index 88df1f6b..ab6de230 100644
--- a/mediagoblin/db/mixin.py
+++ b/mediagoblin/db/mixin.py
@@ -196,6 +196,25 @@ class MediaEntryMixin(GenerateSlugMixin):
media=self.slug_or_id,
**extra_args)
+ def get_public_id(self, request):
+ """ Returns the public_id of the MediaEntry
+
+ If the MediaEntry has no public ID one will be produced from the
+ current request.
+ """
+ if self.public_id is None:
+ self.public_id = request.urlgen(
+ "mediagoblin.api.object",
+ object_type=self.object_type,
+ id=self.id,
+ qualified=True
+ )
+ # We need to ensure this ID is reused once we've given it out.
+ self.save()
+
+ return self.public_id
+
+
@property
def thumb_url(self):
"""Return the thumbnail URL (for usage in templates)