Merge pull request #834 from mouse-reeve/custom-shelf-identifier-fix

Fixes shelf remote ids
This commit is contained in:
Mouse Reeve 2021-03-31 11:26:42 -07:00 committed by GitHub
commit c29382ba92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 """