Add user default privacy setting to the privacy_select and user preferences

This commit is contained in:
Ilona Brand 2021-02-13 19:42:25 -06:00
parent 7b749d6476
commit 73c30e8c9a
5 changed files with 34 additions and 6 deletions

View file

@ -103,7 +103,7 @@ class EditUserForm(CustomForm):
class Meta:
model = models.User
fields = [
'avatar', 'name', 'email', 'summary', 'manually_approves_followers'
'avatar', 'name', 'email', 'summary', 'manually_approves_followers', 'default_post_privacy'
]
help_texts = {f: None for f in fields}

View file

@ -0,0 +1,18 @@
# Generated by Django 3.0.7 on 2021-02-14 00:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('bookwyrm', '0045_auto_20210210_2114'),
]
operations = [
migrations.AddField(
model_name='user',
name='default_post_privacy',
field=models.CharField(choices=[('public', 'Public'), ('unlisted', 'Unlisted'), ('followers', 'Followers'), ('direct', 'Direct')], default='public', max_length=255),
),
]

View file

@ -22,7 +22,6 @@ from .base_model import BookWyrmModel
from .federated_server import FederatedServer
from . import fields, Review
class User(OrderedCollectionPageMixin, AbstractUser):
''' a user who wants to read books '''
username = fields.UsernameField()
@ -91,6 +90,11 @@ class User(OrderedCollectionPageMixin, AbstractUser):
through_fields=('user', 'status'),
related_name='favorite_statuses'
)
default_post_privacy = models.CharField(
max_length=255,
default='public',
choices=fields.PrivacyLevels.choices
)
remote_id = fields.RemoteIdField(
null=True, unique=True, activitypub_field='id')
created_date = models.DateTimeField(auto_now_add=True)

View file

@ -43,6 +43,12 @@ Edit Profile
{{ form.manually_approves_followers }}
</label>
</div>
<div class="block">
<label class="label" for="id_default_post_privacy">
Default post privacy:
{{form.default_post_privacy}}
</label>
</div>
<button class="button is-primary" type="submit">Save</button>
</form>
{% endblock %}

View file

@ -5,16 +5,16 @@
<label class="is-sr-only" for="privacy-{{ uuid }}">Post privacy</label>
{% endif %}
<select name="privacy" id="privacy-{{ uuid }}">
<option value="public" {% if not current or current == 'public' %}selected{% endif %}>
<option value="public" {% if user.default_post_privacy == 'public' or current == 'public' %}selected{% endif %}>
Public
</option>
<option value="unlisted" {% if current == 'unlisted' %}selected{% endif %}>
<option value="unlisted" {% if user.default_post_privacy == 'unlisted' or current == 'unlisted' %}selected{% endif %}>
Unlisted
</option>
<option value="followers" {% if current == 'followers' %}selected{% endif %}>
<option value="followers" {% if user.default_post_privacy == 'followers' or current == 'followers' %}selected{% endif %}>
Followers
</option>
<option value="direct" {% if current == 'direct' %}selected{% endif %}>
<option value="direct" {% if user.default_post_privacy == 'direct' or current == 'direct' %}selected{% endif %}>
Private
</option>
</select>