summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activities/views/compose.py31
-rw-r--r--activities/views/timelines.py36
2 files changed, 21 insertions, 46 deletions
diff --git a/activities/views/compose.py b/activities/views/compose.py
index 08b54ab..e9092f7 100644
--- a/activities/views/compose.py
+++ b/activities/views/compose.py
@@ -30,19 +30,6 @@ class Compose(FormView):
"autofocus": "autofocus",
"maxlength": Config.lazy_system_value("post_length"),
"placeholder": "What's on your mind?",
- "_": f"""
- on load or input
- set characters to my.value.trim().length
- put { Config.system.post_length } - characters into #character-counter
-
- if characters > { Config.system.post_length } then
- set #character-counter's style.color to 'var(--color-text-error)'
- add [@disabled=] to #post-button
- else
- set #character-counter's style.color to ''
- remove @disabled from #post-button
- end
- """,
},
)
)
@@ -67,6 +54,24 @@ class Compose(FormView):
)
reply_to = forms.CharField(widget=forms.HiddenInput(), required=False)
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.fields["text"].widget.attrs[
+ "_"
+ ] = f"""
+ on load or input
+ set characters to my.value.trim().length
+ put {Config.system.post_length} - characters into #character-counter
+
+ if characters > {Config.system.post_length} then
+ set #character-counter's style.color to 'var(--color-text-error)'
+ add [@disabled=] to #post-button
+ else
+ set #character-counter's style.color to ''
+ remove @disabled from #post-button
+ end
+ """
+
def clean_text(self):
text = self.cleaned_data.get("text")
if not text:
diff --git a/activities/views/timelines.py b/activities/views/timelines.py
index bcc6e7f..a562520 100644
--- a/activities/views/timelines.py
+++ b/activities/views/timelines.py
@@ -1,4 +1,3 @@
-from django import forms
from django.shortcuts import get_object_or_404, redirect
from django.template.defaultfilters import linebreaks_filter
from django.utils.decorators import method_decorator
@@ -6,46 +5,17 @@ from django.views.generic import FormView, ListView
from activities.models import Hashtag, Post, PostInteraction, TimelineEvent
from core.decorators import cache_page
-from core.models import Config
from users.decorators import identity_required
+from .compose import Compose
+
@method_decorator(identity_required, name="dispatch")
class Home(FormView):
template_name = "activities/home.html"
- class form_class(forms.Form):
- text = forms.CharField(
- widget=forms.Textarea(
- attrs={
- "placeholder": "What's on your mind?",
- "_": f"""
- on load or input
- set characters to my.value.trim().length
- put { Config.system.post_length } - characters into #character-counter
-
- if characters > { Config.system.post_length } then
- set #character-counter's style.color to 'var(--color-text-error)'
- add [@disabled=] to #post-button
- else
- set #character-counter's style.color to ''
- remove @disabled from #post-button
- end
- """,
- },
- )
- )
- content_warning = forms.CharField(
- required=False,
- label=Config.lazy_system_value("content_warning_text"),
- widget=forms.TextInput(
- attrs={
- "class": "hidden",
- "placeholder": Config.lazy_system_value("content_warning_text"),
- },
- ),
- )
+ form_class = Compose.form_class
def get_context_data(self):
context = super().get_context_data()