From 32bd426999ade39129c4b998a6ed581d2c3d5fd8 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Wed, 31 Mar 2021 11:04:20 -0700 Subject: [PATCH] Fixes shelf remote ids --- bookwyrm/models/shelf.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bookwyrm/models/shelf.py b/bookwyrm/models/shelf.py index 515bb1610..3209da5d9 100644 --- a/bookwyrm/models/shelf.py +++ b/bookwyrm/models/shelf.py @@ -37,9 +37,13 @@ class Shelf(OrderedCollectionMixin, BookWyrmModel): """ set the identifier """ super().save(*args, **kwargs) if not self.identifier: - slug = re.sub(r"[^\w]", "", self.name).lower() - self.identifier = "%s-%d" % (slug, self.id) - super().save(*args, **kwargs) + self.identifier = self.get_identifier() + super().save(*args, **kwargs, broadcast=False) + + def get_identifier(self): + """ custom-shelf-123 for the url """ + slug = re.sub(r"[^\w]", "", self.name).lower() + return "{:s}-{:d}".format(slug, self.id) @property def collection_queryset(self): @@ -49,7 +53,8 @@ class Shelf(OrderedCollectionMixin, BookWyrmModel): def get_remote_id(self): """ shelf identifier instead of id """ base_path = self.user.remote_id - return "%s/books/%s" % (base_path, self.identifier) + identifier = self.identifier or self.get_identifier() + return "%s/books/%s" % (base_path, identifier) class Meta: """ user/shelf unqiueness """