diff --git a/bookwyrm/forms.py b/bookwyrm/forms.py index ff35a9486..a20fadcb3 100644 --- a/bookwyrm/forms.py +++ b/bookwyrm/forms.py @@ -407,7 +407,7 @@ class InviteRequestForm(CustomForm): class Meta: model = models.InviteRequest - fields = ["email"] + fields = ["email", "answer"] class CreateInviteForm(CustomForm): diff --git a/bookwyrm/migrations/0145_auto_20220313_2206.py b/bookwyrm/migrations/0145_auto_20220313_2206.py new file mode 100644 index 000000000..8d06ca8b2 --- /dev/null +++ b/bookwyrm/migrations/0145_auto_20220313_2206.py @@ -0,0 +1,30 @@ +# Generated by Django 3.2.12 on 2022-03-13 22:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0144_alter_announcement_display_type"), + ] + + operations = [ + migrations.AddField( + model_name="inviterequest", + name="answer", + field=models.TextField(blank=True, max_length=50, null=True), + ), + migrations.AddField( + model_name="sitesettings", + name="invite_question_text", + field=models.CharField( + blank=True, default="What is your favourite book?", max_length=255 + ), + ), + migrations.AddField( + model_name="sitesettings", + name="invite_request_question", + field=models.BooleanField(default=False), + ), + ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index c6c53f765..e939da20f 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -48,8 +48,12 @@ class SiteSettings(models.Model): # registration allow_registration = models.BooleanField(default=False) allow_invite_requests = models.BooleanField(default=True) + invite_request_question = models.BooleanField(default=False) require_confirm_email = models.BooleanField(default=True) + invite_question_text = models.CharField( + max_length=255, blank=True, default="What is your favourite book?" + ) # images logo = models.ImageField(upload_to="logos/", null=True, blank=True) logo_small = models.ImageField(upload_to="logos/", null=True, blank=True) @@ -99,11 +103,13 @@ class SiteSettings(models.Model): return urljoin(STATIC_FULL_URL, default_path) def save(self, *args, **kwargs): - """if require_confirm_email is disabled, make sure no users are pending""" + """if require_confirm_email is disabled, make sure no users are pending, if enabled, make sure invite_question_text is not empty""" if not self.require_confirm_email: User.objects.filter(is_active=False, deactivation_reason="pending").update( is_active=True, deactivation_reason=None ) + if not self.invite_question_text: + self.invite_question_text = "What is your favourite book?" super().save(*args, **kwargs) @@ -149,6 +155,7 @@ class InviteRequest(BookWyrmModel): invite = models.ForeignKey( SiteInvite, on_delete=models.SET_NULL, null=True, blank=True ) + answer = models.TextField(max_length=50, unique=False, null=True, blank=True) invite_sent = models.BooleanField(default=False) ignored = models.BooleanField(default=False) diff --git a/bookwyrm/templates/landing/layout.html b/bookwyrm/templates/landing/layout.html index 6d69cafc2..bf0a6b2a1 100644 --- a/bookwyrm/templates/landing/layout.html +++ b/bookwyrm/templates/landing/layout.html @@ -70,6 +70,14 @@ {% include 'snippets/form_errors.html' with errors_list=request_form.email.errors id="desc_request_email" %} + {% if site.invite_request_question %} +
+ + + {% include 'snippets/form_errors.html' with errors_list=request_form.answer.errors id="desc_answer_register" %} +
+ {% endif %} + {% endif %} diff --git a/bookwyrm/templates/settings/invites/manage_invite_requests.html b/bookwyrm/templates/settings/invites/manage_invite_requests.html index fb7c0b1fb..bdd60099a 100644 --- a/bookwyrm/templates/settings/invites/manage_invite_requests.html +++ b/bookwyrm/templates/settings/invites/manage_invite_requests.html @@ -40,6 +40,9 @@ {% include 'snippets/table-sort-header.html' with field="invite__invitees__created_date" sort=sort text=text %} {% trans "Email" %} + {% if site.invite_request_question %} + {% trans "Answer" %} + {% endif %} {% trans "Status" as text %} {% include 'snippets/table-sort-header.html' with field="invite__times_used" sort=sort text=text %} @@ -54,6 +57,9 @@ {{ req.created_date | naturaltime }} {{ req.invite.invitees.first.created_date | naturaltime }} {{ req.email }} + {% if site.invite_request_question %} + {{ req.answer }} + {% endif %} {% if req.invite.times_used %} {% trans "Accepted" %} diff --git a/bookwyrm/templates/settings/site.html b/bookwyrm/templates/settings/site.html index 4d9dbe400..d55514b55 100644 --- a/bookwyrm/templates/settings/site.html +++ b/bookwyrm/templates/settings/site.html @@ -145,6 +145,18 @@ {% trans "Allow invite requests" %} +
+ +
+
+ +