diff --git a/brutaldon/forms.py b/brutaldon/forms.py index d115fa8..0bcc7fe 100644 --- a/brutaldon/forms.py +++ b/brutaldon/forms.py @@ -1,6 +1,7 @@ from django import forms -PRIVACY_CHOICES = (('public', 'Public'), +PRIVACY_CHOICES = (('default', 'Default'), + ('public', 'Public'), ('unlisted', 'Unlisted'), ('private', 'Private'), ('direct', 'Direct')) @@ -29,7 +30,8 @@ class PostForm(forms.Form): """def status_post(self, status, in_reply_to_id=None, media_ids=None, sensitive=False, visibility=None, spoiler_text=None):""" status = forms.CharField(label="Toot", max_length=500, widget=forms.Textarea) - visibility = forms.ChoiceField(label="Toot visibility", choices=PRIVACY_CHOICES) + visibility = forms.ChoiceField(label="Toot visibility", choices=PRIVACY_CHOICES, + required=False) spoiler_text = forms.CharField(label="CW or Subject", max_length=500, required=False) media_file_1 = forms.FileField(label = "Media attachment 1", diff --git a/brutaldon/settings.py b/brutaldon/settings.py index 1a444a0..ad3d69f 100644 --- a/brutaldon/settings.py +++ b/brutaldon/settings.py @@ -131,3 +131,7 @@ SANITIZER_ALLOWED_ATTRIBUTES = ['href', 'src'] # File upload settings. # Important: media will not work if you change this. FILE_UPLOAD_HANDLERS = ["django.core.files.uploadhandler.TemporaryFileUploadHandler"] + +# Session serialization +# Important: whatever you choose has to be able to serialize DateTime, so not JSON. +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' diff --git a/brutaldon/templates/main/post_minimal_partial.html b/brutaldon/templates/main/post_minimal_partial.html new file mode 100644 index 0000000..321f585 --- /dev/null +++ b/brutaldon/templates/main/post_minimal_partial.html @@ -0,0 +1,27 @@ +{% load widget_tweaks %} +
+ {% csrf_token %} + +
+ +
+ {% render_field form.status class+="textarea is-primary" rows="4" %} +
+
+ +
+ {{ form.errors }} +
+ +
+
+ +
+
+
+ + Complete toot form (media, etc) + +
+
diff --git a/brutaldon/templates/main/timeline.html b/brutaldon/templates/main/timeline.html index ab9a290..0479bfc 100644 --- a/brutaldon/templates/main/timeline.html +++ b/brutaldon/templates/main/timeline.html @@ -9,7 +9,7 @@ {% if form %}

Post

- {% include "main/post_partial.html" %} + {% include "main/post_minimal_partial.html" %}
{% endif %} diff --git a/brutaldon/views.py b/brutaldon/views.py index 9b43395..7a96664 100644 --- a/brutaldon/views.py +++ b/brutaldon/views.py @@ -57,7 +57,7 @@ def timeline(request, timeline='home', timeline_name='Home', max_id=None, since_ except NotLoggedInException: return redirect(login) data = mastodon.timeline(timeline, limit=100, max_id=max_id, since_id=since_id) - form = PostForm() + form = PostForm(initial={'visibility': request.session['user'].source.privacy}) try: prev = data[0]._pagination_prev if len(mastodon.timeline(since_id=prev['since_id'])) == 0: @@ -153,7 +153,7 @@ def oauth_callback(request): scopes=['read', 'write', 'follow']) request.session['access_token'] = access_token user = mastodon.account_verify_credentials() - request.session['user'] = user.acct + request.session['user'] = user return redirect(home) @@ -207,7 +207,7 @@ def old_login(request): account.save() request.session['username'] = username user = mastodon.account_verify_credentials() - request.session['user'] = user.acct + request.session['user'] = user return redirect(home) except: @@ -269,7 +269,7 @@ def settings(request): @never_cache def toot(request): if request.method == 'GET': - form = PostForm() + form = PostForm(initial={'visibility': request.session['user'].source.privacy}) return render(request, 'main/post.html', {'form': form, 'fullbrutalism': fullbrutalism_p(request)}) @@ -288,6 +288,8 @@ def toot(request): description=request.POST.get('media_text_' +str(index), None))) + if form.cleaned_data['visibility'] == '': + form.cleaned_data['visibility'] = request.session['user'].source.privacy mastodon.status_post(status=form.cleaned_data['status'], visibility=form.cleaned_data['visibility'], spoiler_text=form.cleaned_data['spoiler_text'],