From 45d229d712f36704d39a7a1af5b1f19523466d10 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Fri, 2 Apr 2021 07:35:56 -0700 Subject: [PATCH] Makes outbox an optional field on the user table --- bookwyrm/activitypub/person.py | 2 +- .../migrations/0061_auto_20210402_1435.py | 24 +++++++++++++++++++ bookwyrm/models/user.py | 4 ++-- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 bookwyrm/migrations/0061_auto_20210402_1435.py diff --git a/bookwyrm/activitypub/person.py b/bookwyrm/activitypub/person.py index dafd19107..ed2ae80b2 100644 --- a/bookwyrm/activitypub/person.py +++ b/bookwyrm/activitypub/person.py @@ -21,9 +21,9 @@ class Person(ActivityObject): preferredUsername: str inbox: str - outbox: str followers: str publicKey: PublicKey + outbox: str = None endpoints: Dict = None name: str = None summary: str = None diff --git a/bookwyrm/migrations/0061_auto_20210402_1435.py b/bookwyrm/migrations/0061_auto_20210402_1435.py new file mode 100644 index 000000000..a6899aa35 --- /dev/null +++ b/bookwyrm/migrations/0061_auto_20210402_1435.py @@ -0,0 +1,24 @@ +# Generated by Django 3.1.6 on 2021-04-02 14:35 + +import bookwyrm.models.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0060_siteinvite_invitees"), + ] + + operations = [ + migrations.AlterField( + model_name="user", + name="outbox", + field=bookwyrm.models.fields.RemoteIdField( + max_length=255, + null=True, + unique=True, + validators=[bookwyrm.models.fields.validate_remote_id], + ), + ), + ] diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index f951ee45a..33dedc9ef 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -50,7 +50,7 @@ class User(OrderedCollectionPageMixin, AbstractUser): null=True, blank=True, ) - outbox = fields.RemoteIdField(unique=True) + outbox = fields.RemoteIdField(unique=True, null=True) summary = fields.HtmlField(null=True, blank=True) local = models.BooleanField(default=False) bookwyrm_user = fields.BooleanField(default=True) @@ -360,7 +360,7 @@ def set_remote_server(user_id): actor_parts = urlparse(user.remote_id) user.federated_server = get_or_create_remote_server(actor_parts.netloc) user.save(broadcast=False) - if user.bookwyrm_user: + if user.bookwyrm_user and user.outbox: get_remote_reviews.delay(user.outbox)