diff --git a/frontend/src/style/misago/post-feed.less b/frontend/src/style/misago/post-feed.less index bab3755a14..6ecb0c77e9 100644 --- a/frontend/src/style/misago/post-feed.less +++ b/frontend/src/style/misago/post-feed.less @@ -637,7 +637,7 @@ span.post-feed-item-hidden-post-poster { } // Thread update -.post-feed-item-thread-update { +.post-feed-item-thread-event { display: grid; grid-template-columns: auto 1fr; gap: ceil(@grid-gutter-width / 2); @@ -645,14 +645,14 @@ span.post-feed-item-hidden-post-poster { padding: @line-height-computed 0; } -.post-feed-item-thread-update-post-bit { +.post-feed-item-thread-event-post-bit { display: grid; grid-template-columns: 24px 24px; gap: ceil(@grid-gutter-width / 2); justify-content: end; } -.post-feed-item-thread-update-icon { +.post-feed-item-thread-event-icon { display: flex; align-items: center; justify-content: center; @@ -660,10 +660,10 @@ span.post-feed-item-hidden-post-poster { width: 24px; height: 24px; - background-color: @thread-update-icon-bg; + background-color: @thread-event-icon-bg; border-radius: @border-radius-small; - color: @thread-update-icon-color; + color: @thread-event-icon-color; svg { width: 18px; @@ -671,7 +671,7 @@ span.post-feed-item-hidden-post-poster { } } -.post-feed-item-thread-update-actor-avatar-link { +.post-feed-item-thread-event-actor-avatar-link { display: block; overflow: hidden; @@ -686,12 +686,12 @@ span.post-feed-item-hidden-post-poster { } } -.post-feed-item-thread-update-details-top { +.post-feed-item-thread-event-details-top { padding-top: 2px; } -.post-feed-item-thread-update-description { - color: @thread-update-description-color; +.post-feed-item-thread-event-description { + color: @thread-event-description-color; a:link, a:active, @@ -699,7 +699,7 @@ span.post-feed-item-hidden-post-poster { a:hover, a:focus, em { - color: @thread-update-context-color; + color: @thread-event-context-color; font-style: normal; font-weight: bold; } @@ -710,39 +710,39 @@ span.post-feed-item-hidden-post-poster { } } -.post-feed-item-thread-update-separator { +.post-feed-item-thread-event-separator { display: inline-block; padding: 0 4px; - color: @thread-update-separator-color; + color: @thread-event-separator-color; } -.post-feed-item-thread-update-timestamp { - color: @thread-update-timestamp-color; +.post-feed-item-thread-event-timestamp { + color: @thread-event-timestamp-color; } -.post-feed-item-thread-update-timestamp-full { +.post-feed-item-thread-event-timestamp-full { display: none; } -.post-feed-item-thread-update-hidden-label { +.post-feed-item-thread-event-hidden-label { display: inline-block; padding: 1px 5px; - background-color: @thread-update-hidden-label-bg; + background-color: @thread-event-hidden-label-bg; border-radius: @border-radius-small; - color: @thread-update-hidden-label-color; + color: @thread-event-hidden-label-color; font-size: @font-size-small; } -.post-feed-item-thread-update-details-bottom { +.post-feed-item-thread-event-details-bottom { display: flex; gap: ceil(@grid-gutter-width / 2); margin-top: ceil(@line-height-computed / 2); } -.post-feed-item-thread-update-btn { +.post-feed-item-thread-event-btn { &, &:active, &:hover, @@ -757,46 +757,46 @@ span.post-feed-item-hidden-post-poster { } & { - color: @thread-update-btn-color; + color: @thread-event-btn-color; } &:hover { - color: @thread-update-btn-hover-color; + color: @thread-event-btn-hover-color; text-decoration: underline; } &:active { - color: @thread-update-btn-active-color; + color: @thread-event-btn-active-color; text-decoration: underline; } } @media screen and (min-width: @screen-md-min) { - .post-feed-item-thread-update { + .post-feed-item-thread-event { grid-template-columns: @post-side-width 1fr; align-items: center; } - .post-feed-item-thread-update-details { + .post-feed-item-thread-event-details { display: grid; grid-template-columns: 1fr auto; gap: ceil(@grid-gutter-width / 2); align-items: center; } - .post-feed-item-thread-update-details-top { + .post-feed-item-thread-event-details-top { padding-top: 0; } - .post-feed-item-thread-update-timestamp-short { + .post-feed-item-thread-event-timestamp-short { display: none; } - .post-feed-item-thread-update-timestamp-full { + .post-feed-item-thread-event-timestamp-full { display: inline; } - .post-feed-item-thread-update-details-bottom { + .post-feed-item-thread-event-details-bottom { margin-top: 0; } } diff --git a/frontend/src/style/misago/variables.less b/frontend/src/style/misago/variables.less index e1b7c528ad..1ca648e235 100644 --- a/frontend/src/style/misago/variables.less +++ b/frontend/src/style/misago/variables.less @@ -379,20 +379,20 @@ @post-avatar-size: 100px; -@thread-update-icon-bg: @gray-lighter; -@thread-update-icon-color: @gray-dark; +@thread-event-icon-bg: @gray-lighter; +@thread-event-icon-color: @gray-dark; -@thread-update-description-color: @gray-dark; -@thread-update-context-color: #000; -@thread-update-separator-color: @gray-light; -@thread-update-timestamp-color: @gray; +@thread-event-description-color: @gray-dark; +@thread-event-context-color: #000; +@thread-event-separator-color: @gray-light; +@thread-event-timestamp-color: @gray; -@thread-update-hidden-label-bg: @gray-light; -@thread-update-hidden-label-color: #fff; +@thread-event-hidden-label-bg: @gray-light; +@thread-event-hidden-label-color: #fff; -@thread-update-btn-color: @gray; -@thread-update-btn-hover-color: @gray-darker; -@thread-update-btn-active-color: @gray-darker; +@thread-event-btn-color: @gray; +@thread-event-btn-hover-color: @gray-darker; +@thread-event-btn-active-color: @gray-darker; //== User profile header diff --git a/misago/conf/admin/forms/content.py b/misago/conf/admin/forms/content.py index d23de17265..c3f955ec0e 100644 --- a/misago/conf/admin/forms/content.py +++ b/misago/conf/admin/forms/content.py @@ -45,7 +45,7 @@ class ContentSettingsForm(SettingsForm): "threads_lists_polling", "posts_per_page", "posts_per_page_orphans", - "thread_updates_per_page", + "thread_events_per_page", ] flood_control = forms.IntegerField( @@ -178,10 +178,10 @@ class ContentSettingsForm(SettingsForm): min_value=0, ) - thread_updates_per_page = forms.IntegerField( + thread_events_per_page = forms.IntegerField( label=pgettext_lazy( "admin content settings form", - "Maximum number of thread updates shown on a single page", + "Maximum number of thread events shown on a single page", ), help_text=pgettext_lazy( "admin content settings form", diff --git a/misago/conf/migrations/0019_add_thread_updates_settings.py b/misago/conf/migrations/0019_add_thread_updates_settings.py index 3df674ee49..83fa4c6847 100644 --- a/misago/conf/migrations/0019_add_thread_updates_settings.py +++ b/misago/conf/migrations/0019_add_thread_updates_settings.py @@ -12,7 +12,7 @@ class Migration(migrations.Migration): operations = [ CreateSetting( - setting="thread_updates_per_page", + setting="thread_events_per_page", python_type="int", dry_value=30, ), diff --git a/misago/privatethreads/tests/test_private_thread_detail_view_updates.py b/misago/privatethreads/tests/test_private_thread_detail_view_updates.py index 494fbf0aa0..aad37dc5cc 100644 --- a/misago/privatethreads/tests/test_private_thread_detail_view_updates.py +++ b/misago/privatethreads/tests/test_private_thread_detail_view_updates.py @@ -12,10 +12,10 @@ ) -def test_private_thread_detail_view_doesnt_show_thread_update_to_user_if_thread_flag_is_not_set( +def test_private_thread_detail_view_doesnt_show_thread_event_to_user_if_thread_flag_is_not_set( user_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) response = user_client.get( reverse( @@ -27,13 +27,13 @@ def test_private_thread_detail_view_doesnt_show_thread_update_to_user_if_thread_ ) ) assert_contains(response, other_user_private_thread.title) - assert_not_contains(response, f"UPDATE [{thread_update.id}]") + assert_not_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_thread_update_to_user_if_thread_flag_is_set( +def test_private_thread_detail_view_shows_thread_event_to_user_if_thread_flag_is_set( user_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -48,10 +48,10 @@ def test_private_thread_detail_view_shows_thread_update_to_user_if_thread_flag_i ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_thread_update_to_private_threads_moderator( +def test_private_thread_detail_view_shows_thread_event_to_private_threads_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -60,7 +60,7 @@ def test_private_thread_detail_view_shows_thread_update_to_private_threads_moder private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -75,13 +75,13 @@ def test_private_thread_detail_view_shows_thread_update_to_private_threads_moder ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_thread_update_to_global_moderator( +def test_private_thread_detail_view_shows_thread_event_to_global_moderator( moderator_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -96,13 +96,13 @@ def test_private_thread_detail_view_shows_thread_update_to_global_moderator( ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_deleted_user_thread_update_to_user( +def test_private_thread_detail_view_shows_deleted_user_thread_event_to_user( user_client, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, "DeletedUser") + thread_event = create_test_thread_event(other_user_private_thread, "DeletedUser") other_user_private_thread.has_events = True other_user_private_thread.save() @@ -117,10 +117,10 @@ def test_private_thread_detail_view_shows_deleted_user_thread_update_to_user( ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_deleted_user_thread_update_to_private_threads_moderator( +def test_private_thread_detail_view_shows_deleted_user_thread_event_to_private_threads_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -129,7 +129,7 @@ def test_private_thread_detail_view_shows_deleted_user_thread_update_to_private_ private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, "DeletedUser") + thread_event = create_test_thread_event(other_user_private_thread, "DeletedUser") other_user_private_thread.has_events = True other_user_private_thread.save() @@ -144,13 +144,13 @@ def test_private_thread_detail_view_shows_deleted_user_thread_update_to_private_ ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_deleted_user_thread_update_to_global_moderator( +def test_private_thread_detail_view_shows_deleted_user_thread_event_to_global_moderator( moderator_client, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, "DeletedUser") + thread_event = create_test_thread_event(other_user_private_thread, "DeletedUser") other_user_private_thread.has_events = True other_user_private_thread.save() @@ -165,15 +165,15 @@ def test_private_thread_detail_view_shows_deleted_user_thread_update_to_global_m ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_doesnt_show_hidden_thread_update_to_user( +def test_private_thread_detail_view_doesnt_show_hidden_thread_event_to_user( user_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) - thread_update.is_hidden = True - thread_update.save() + thread_event = create_test_thread_event(other_user_private_thread, user) + thread_event.is_hidden = True + thread_event.save() other_user_private_thread.has_events = True other_user_private_thread.save() @@ -188,10 +188,10 @@ def test_private_thread_detail_view_doesnt_show_hidden_thread_update_to_user( ) ) assert_contains(response, other_user_private_thread.title) - assert_not_contains(response, f"UPDATE [{thread_update.id}]") + assert_not_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_hidden_thread_update_to_category_moderator( +def test_private_thread_detail_view_shows_hidden_thread_event_to_category_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -200,9 +200,9 @@ def test_private_thread_detail_view_shows_hidden_thread_update_to_category_moder private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, user) - thread_update.is_hidden = True - thread_update.save() + thread_event = create_test_thread_event(other_user_private_thread, user) + thread_event.is_hidden = True + thread_event.save() other_user_private_thread.has_events = True other_user_private_thread.save() @@ -217,15 +217,15 @@ def test_private_thread_detail_view_shows_hidden_thread_update_to_category_moder ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_shows_hidden_thread_update_to_global_moderator( +def test_private_thread_detail_view_shows_hidden_thread_event_to_global_moderator( moderator_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) - thread_update.is_hidden = True - thread_update.save() + thread_event = create_test_thread_event(other_user_private_thread, user) + thread_event.is_hidden = True + thread_event.save() other_user_private_thread.has_events = True other_user_private_thread.save() @@ -240,13 +240,13 @@ def test_private_thread_detail_view_shows_hidden_thread_update_to_global_moderat ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") -def test_private_thread_detail_view_doesnt_show_hide_thread_update_button_to_user( +def test_private_thread_detail_view_doesnt_show_hide_thread_event_button_to_user( user_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -261,7 +261,7 @@ def test_private_thread_detail_view_doesnt_show_hide_thread_update_button_to_use ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_not_contains( response, reverse( @@ -269,13 +269,13 @@ def test_private_thread_detail_view_doesnt_show_hide_thread_update_button_to_use kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_hide_thread_update_button_to_private_threads_moderator( +def test_private_thread_detail_view_shows_hide_thread_event_button_to_private_threads_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -284,7 +284,7 @@ def test_private_thread_detail_view_shows_hide_thread_update_button_to_private_t private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -299,7 +299,7 @@ def test_private_thread_detail_view_shows_hide_thread_update_button_to_private_t ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -307,16 +307,16 @@ def test_private_thread_detail_view_shows_hide_thread_update_button_to_private_t kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_hide_thread_update_button_to_global_moderator( +def test_private_thread_detail_view_shows_hide_thread_event_button_to_global_moderator( moderator_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -331,7 +331,7 @@ def test_private_thread_detail_view_shows_hide_thread_update_button_to_global_mo ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -339,13 +339,13 @@ def test_private_thread_detail_view_shows_hide_thread_update_button_to_global_mo kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_unhide_thread_update_button_to_category_moderator( +def test_private_thread_detail_view_shows_unhide_thread_event_button_to_category_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -354,9 +354,9 @@ def test_private_thread_detail_view_shows_unhide_thread_update_button_to_categor private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, user) - thread_update.is_hidden = True - thread_update.save() + thread_event = create_test_thread_event(other_user_private_thread, user) + thread_event.is_hidden = True + thread_event.save() other_user_private_thread.has_events = True other_user_private_thread.save() @@ -371,7 +371,7 @@ def test_private_thread_detail_view_shows_unhide_thread_update_button_to_categor ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -379,18 +379,18 @@ def test_private_thread_detail_view_shows_unhide_thread_update_button_to_categor kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_unhide_thread_update_button_to_global_moderator( +def test_private_thread_detail_view_shows_unhide_thread_event_button_to_global_moderator( moderator_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) - thread_update.is_hidden = True - thread_update.save() + thread_event = create_test_thread_event(other_user_private_thread, user) + thread_event.is_hidden = True + thread_event.save() other_user_private_thread.has_events = True other_user_private_thread.save() @@ -405,7 +405,7 @@ def test_private_thread_detail_view_shows_unhide_thread_update_button_to_global_ ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -413,16 +413,16 @@ def test_private_thread_detail_view_shows_unhide_thread_update_button_to_global_ kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_doesnt_show_delete_thread_update_button_to_user( +def test_private_thread_detail_view_doesnt_show_delete_thread_event_button_to_user( user_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -437,7 +437,7 @@ def test_private_thread_detail_view_doesnt_show_delete_thread_update_button_to_u ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_not_contains( response, reverse( @@ -445,13 +445,13 @@ def test_private_thread_detail_view_doesnt_show_delete_thread_update_button_to_u kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_delete_thread_update_button_to_category_moderator( +def test_private_thread_detail_view_shows_delete_thread_event_button_to_category_moderator( user_client, user, other_user_private_thread ): Moderator.objects.create( @@ -460,7 +460,7 @@ def test_private_thread_detail_view_shows_delete_thread_update_button_to_categor private_threads=True, ) - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -475,7 +475,7 @@ def test_private_thread_detail_view_shows_delete_thread_update_button_to_categor ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -483,16 +483,16 @@ def test_private_thread_detail_view_shows_delete_thread_update_button_to_categor kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) -def test_private_thread_detail_view_shows_delete_thread_update_button_to_global_moderator( +def test_private_thread_detail_view_shows_delete_thread_event_button_to_global_moderator( moderator_client, user, other_user_private_thread ): - thread_update = create_test_thread_event(other_user_private_thread, user) + thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -507,7 +507,7 @@ def test_private_thread_detail_view_shows_delete_thread_update_button_to_global_ ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"UPDATE [{thread_update.id}]") + assert_contains(response, f"UPDATE [{thread_event.id}]") assert_contains( response, reverse( @@ -515,24 +515,24 @@ def test_private_thread_detail_view_shows_delete_thread_update_button_to_global_ kwargs={ "thread_id": other_user_private_thread.id, "slug": other_user_private_thread.slug, - "thread_event_id": thread_update.id, + "thread_event_id": thread_event.id, }, ), ) @override_dynamic_settings( - thread_updates_per_page=4, posts_per_page=5, posts_per_page_orphans=1 + thread_events_per_page=4, posts_per_page=5, posts_per_page_orphans=1 ) -def test_private_thread_detail_view_shows_thread_updates_on_first_page( +def test_private_thread_detail_view_shows_thread_events_on_first_page( thread_reply_factory, user_client, user, other_user_private_thread ): - first_page_thread_update = create_test_thread_event(other_user_private_thread, user) + first_page_thread_event = create_test_thread_event(other_user_private_thread, user) for _ in range(6): thread_reply_factory(other_user_private_thread) - last_page_thread_update = create_test_thread_event(other_user_private_thread, user) + last_page_thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -547,32 +547,30 @@ def test_private_thread_detail_view_shows_thread_updates_on_first_page( ) ) assert_contains(response, other_user_private_thread.title) - assert_contains(response, f"[{first_page_thread_update.id}]") - assert_not_contains(response, f"[{last_page_thread_update.id}]") + assert_contains(response, f"[{first_page_thread_event.id}]") + assert_not_contains(response, f"[{last_page_thread_event.id}]") @override_dynamic_settings( - thread_updates_per_page=4, posts_per_page=5, posts_per_page_orphans=1 + thread_events_per_page=4, posts_per_page=5, posts_per_page_orphans=1 ) -def test_private_thread_detail_view_shows_thread_updates_on_second_page( +def test_private_thread_detail_view_shows_thread_events_on_second_page( thread_reply_factory, user_client, user, other_user_private_thread ): for _ in range(4): thread_reply_factory(other_user_private_thread) - first_page_thread_update = create_test_thread_event(other_user_private_thread, user) + first_page_thread_event = create_test_thread_event(other_user_private_thread, user) for _ in range(5): thread_reply_factory(other_user_private_thread) - second_page_thread_update = create_test_thread_event( - other_user_private_thread, user - ) + second_page_thread_event = create_test_thread_event(other_user_private_thread, user) for _ in range(2): thread_reply_factory(other_user_private_thread) - last_page_thread_update = create_test_thread_event(other_user_private_thread, user) + last_page_thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -588,26 +586,26 @@ def test_private_thread_detail_view_shows_thread_updates_on_second_page( ) ) assert_contains(response, other_user_private_thread.title) - assert_not_contains(response, f"[{first_page_thread_update.id}]") - assert_contains(response, f"[{second_page_thread_update.id}]") - assert_not_contains(response, f"[{last_page_thread_update.id}]") + assert_not_contains(response, f"[{first_page_thread_event.id}]") + assert_contains(response, f"[{second_page_thread_event.id}]") + assert_not_contains(response, f"[{last_page_thread_event.id}]") @override_dynamic_settings( - thread_updates_per_page=4, posts_per_page=5, posts_per_page_orphans=1 + thread_events_per_page=4, posts_per_page=5, posts_per_page_orphans=1 ) -def test_private_thread_detail_view_shows_thread_updates_on_last_page( +def test_private_thread_detail_view_shows_thread_events_on_last_page( thread_reply_factory, user_client, user, other_user_private_thread ): for _ in range(4): thread_reply_factory(other_user_private_thread) - first_page_thread_update = create_test_thread_event(other_user_private_thread, user) + first_page_thread_event = create_test_thread_event(other_user_private_thread, user) for _ in range(2): thread_reply_factory(other_user_private_thread) - last_page_thread_update = create_test_thread_event(other_user_private_thread, user) + last_page_thread_event = create_test_thread_event(other_user_private_thread, user) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -623,17 +621,17 @@ def test_private_thread_detail_view_shows_thread_updates_on_last_page( ) ) assert_contains(response, other_user_private_thread.title) - assert_not_contains(response, f"[{first_page_thread_update.id}]") - assert_contains(response, f"[{last_page_thread_update.id}]") + assert_not_contains(response, f"[{first_page_thread_event.id}]") + assert_contains(response, f"[{last_page_thread_event.id}]") -@override_dynamic_settings(thread_updates_per_page=4) -def test_private_thread_detail_view_limits_displayed_thread_updates_count( +@override_dynamic_settings(thread_events_per_page=4) +def test_private_thread_detail_view_limits_displayed_thread_events_count( user_client, user, other_user_private_thread ): - thread_updates = [] + thread_events = [] for _ in range(5): - thread_updates.append(create_test_thread_event(other_user_private_thread, user)) + thread_events.append(create_test_thread_event(other_user_private_thread, user)) other_user_private_thread.has_events = True other_user_private_thread.save() @@ -648,12 +646,12 @@ def test_private_thread_detail_view_limits_displayed_thread_updates_count( ) ) assert_contains(response, other_user_private_thread.title) - assert_not_contains(response, f"[{thread_updates[0].id}]") - assert_contains(response, f"[{thread_updates[1].id}]") - assert_contains(response, f"[{thread_updates[-1].id}]") + assert_not_contains(response, f"[{thread_events[0].id}]") + assert_contains(response, f"[{thread_events[1].id}]") + assert_contains(response, f"[{thread_events[-1].id}]") -def test_private_thread_detail_view_displays_thread_update_with_other_category_context( +def test_private_thread_detail_view_displays_thread_event_with_other_category_context( user_client, members_group, user, other_user_private_thread, other_category ): CategoryGroupPermission.objects.create( @@ -686,7 +684,7 @@ def test_private_thread_detail_view_displays_thread_update_with_other_category_c assert_contains(response, other_category.get_absolute_url()) -def test_private_thread_detail_view_displays_thread_update_with_inaccessible_other_category_context( +def test_private_thread_detail_view_displays_thread_event_with_inaccessible_other_category_context( user_client, user, other_user_private_thread, other_category ): CategoryGroupPermission.objects.filter(category=other_category).delete() @@ -710,7 +708,7 @@ def test_private_thread_detail_view_displays_thread_update_with_inaccessible_oth assert_not_contains(response, other_category.get_absolute_url()) -def test_private_thread_detail_view_displays_thread_update_with_other_thread_context( +def test_private_thread_detail_view_displays_thread_event_with_other_thread_context( user_client, user, other_user_private_thread, other_thread ): create_split_posts_from_thread_event( @@ -740,7 +738,7 @@ def test_private_thread_detail_view_displays_thread_update_with_other_thread_con ) -def test_private_thread_detail_view_displays_thread_update_with_inaccessible_other_thread_context( +def test_private_thread_detail_view_displays_thread_event_with_inaccessible_other_thread_context( user_client, user, other_user_private_thread, other_thread ): create_split_posts_from_thread_event( @@ -773,7 +771,7 @@ def test_private_thread_detail_view_displays_thread_update_with_inaccessible_oth ) -def test_private_thread_detail_view_displays_thread_update_with_user_context( +def test_private_thread_detail_view_displays_thread_event_with_user_context( user_client, user, other_user, other_user_private_thread ): create_added_member_thread_event(other_user_private_thread, other_user, user) diff --git a/misago/templates/misago/admin/conf/content_settings.html b/misago/templates/misago/admin/conf/content_settings.html index 851e0672a7..83c1c3080b 100644 --- a/misago/templates/misago/admin/conf/content_settings.html +++ b/misago/templates/misago/admin/conf/content_settings.html @@ -99,9 +99,9 @@
- {% translate "Thread updates" context "admin content settings form" %} + {% translate "Thread events" context "admin content settings form" %} - {% form_row form.thread_updates_per_page %} + {% form_row form.thread_events_per_page %}
diff --git a/misago/templates/misago/moderation_thread/result.html b/misago/templates/misago/moderation_thread/result.html index cdb4fb3683..49c6d13141 100644 --- a/misago/templates/misago/moderation_thread/result.html +++ b/misago/templates/misago/moderation_thread/result.html @@ -28,9 +28,9 @@ {% endwith %} {% endif %} -{% if thread_updates %} +{% if thread_events %}
- {% includecomponents thread_updates %} + {% includecomponents thread_events %}
{% endif %} diff --git a/misago/templates/misago/post_feed/thread_event.html b/misago/templates/misago/post_feed/thread_event.html index a9b74c16ea..8c685394cf 100644 --- a/misago/templates/misago/post_feed/thread_event.html +++ b/misago/templates/misago/post_feed/thread_event.html @@ -1,24 +1,24 @@ {% load i18n misago_avatars misago_formats %}
- -
-
+ +
+
-
+
{% include icon %}
-
+
{% if actor %} @@ -32,26 +32,26 @@ > {% else %} - + {{ actor_name }} {% endif %}
-
-
- {{ description|safe }} - +
+
+ {{ description|safe }} + {{ thread_event.created_at|date_relative }} {% if thread_event.is_hidden %} - - {% translate "Hidden" context "thread update hidden label" %} + + {% translate "Hidden" context "thread event hidden label" %} {% endif %}
{% if moderation %} -
+
{% if hide_url %}
{% csrf_token %} - -
{% endif %} @@ -88,9 +88,9 @@ hx-swap="none" > {% csrf_token %} - - {% endif %} @@ -98,7 +98,7 @@
{% endif %} -
{% endif %} diff --git a/misago/templates/misago/private_thread_members/htmx.html b/misago/templates/misago/private_thread_members/htmx.html index ab4170b0a1..3c0b87e860 100644 --- a/misago/templates/misago/private_thread_members/htmx.html +++ b/misago/templates/misago/private_thread_members/htmx.html @@ -6,8 +6,8 @@ {% include template_name %}
-{% if thread_updates %} +{% if thread_events %}
- {% includecomponents thread_updates %} + {% includecomponents thread_events %}
{% endif %} diff --git a/misago/templates/misago/thread_events/confirm_delete.html b/misago/templates/misago/thread_events/confirm_delete.html index 35c5256aa7..a2cfd3187a 100644 --- a/misago/templates/misago/thread_events/confirm_delete.html +++ b/misago/templates/misago/thread_events/confirm_delete.html @@ -2,7 +2,7 @@ {% load i18n misago_component %} -{% block title %}{% translate "Delete thread update" context "confirm delete thread update" %} | {{ thread.title }} | {{ block.super }}{% endblock %} +{% block title %}{% translate "Delete thread event" context "confirm delete thread event" %} | {{ thread.title }} | {{ block.super }}{% endblock %} {% block content %} @@ -18,21 +18,21 @@

- {% translate "Delete thread update" context "confirm delete thread update" %} + {% translate "Delete thread event" context "confirm delete thread event" %}

- {% translate "Are you sure you want to delete this thread event?" context "thread update delete confirmation" %} + {% translate "Are you sure you want to delete this thread event?" context "thread event delete confirmation" %}
- {% translate "This action cannot be undone." context "thread update delete confirmation" %} + {% translate "This action cannot be undone." context "thread event delete confirmation" %}
diff --git a/misago/threads/tests/test_thread_detail_view_updates.py b/misago/threads/tests/test_thread_detail_view_updates.py index cfb76a0ebf..e51864f6b8 100644 --- a/misago/threads/tests/test_thread_detail_view_updates.py +++ b/misago/threads/tests/test_thread_detail_view_updates.py @@ -644,7 +644,7 @@ def test_thread_detail_view_shows_thread_events_on_last_page( assert_contains(response, f"[{last_page_thread_event.id}]") -@override_dynamic_settings(thread_updates_per_page=4) +@override_dynamic_settings(thread_events_per_page=4) def test_thread_detail_view_limits_displayed_thread_events_count(client, user, thread): thread_events = [] for _ in range(5): diff --git a/misago/threads/views/detail.py b/misago/threads/views/detail.py index fbde49bef9..bbed6d4dad 100644 --- a/misago/threads/views/detail.py +++ b/misago/threads/views/detail.py @@ -193,7 +193,7 @@ def handle_thread_moderation( if thread_events := result.thread_events: post_feed = self.get_post_feed(request, thread, [], thread_events) post_feed.set_animated_thread_events( - [update.id for update in thread_events] + [thread_event.id for thread_event in thread_events] ) context_data[("thread_events")] = post_feed.get_context_data()["items"] @@ -761,7 +761,7 @@ def get_thread_updates( queryset = queryset.filter( created_at__lt=page.next_page_first_item.posted_at ) - return list(reversed(queryset[: request.settings.thread_updates_per_page])) + return list(reversed(queryset[: request.settings.thread_events_per_page])) def get_reply_context_data(self, request: HttpRequest, thread: Thread) -> dict: try: