mirror of
https://github.com/ae-utbm/sith.git
synced 2026-10-04 01:44:15 +00:00
display the date of next happening in NewsDetailView
This commit is contained in:
1 parent
796ef72fa1
commit
a5440e3166
3 files changed
+48
-5
No files matched your search
@@ -39,12 +39,18 @@
|
|||||||
<a href="{{ news.club.get_absolute_url() }}">{{ news.club }}</a>
|
<a href="{{ news.club.get_absolute_url() }}">{{ news.club }}</a>
|
||||||
</div>
|
</div>
|
||||||
<h4>{{ news.title }}</h4>
|
<h4>{{ news.title }}</h4>
|
||||||
|
{% if date %}
|
||||||
<p class="date">
|
<p class="date">
|
||||||
<time datetime="{{ date.start_date.isoformat(timespec="seconds") }}">{{ date.start_date|localtime|date(DATETIME_FORMAT) }}
|
<time datetime="{{ date.start_date.isoformat(timespec="seconds") }}">
|
||||||
{{ date.start_date|localtime|time(DATETIME_FORMAT) }}</time> -
|
{{ date.start_date|localtime|date(DATETIME_FORMAT) }}
|
||||||
<time datetime="{{ date.end_date.isoformat(timespec="seconds") }}">{{ date.end_date|localtime|date(DATETIME_FORMAT) }}
|
{{ date.start_date|localtime|time(DATETIME_FORMAT) }}
|
||||||
{{ date.end_date|localtime|time(DATETIME_FORMAT) }}</time>
|
</time> -
|
||||||
|
<time datetime="{{ date.end_date.isoformat(timespec="seconds") }}">
|
||||||
|
{{ date.end_date|localtime|date(DATETIME_FORMAT) }}
|
||||||
|
{{ date.end_date|localtime|time(DATETIME_FORMAT) }}
|
||||||
|
</time>
|
||||||
</p>
|
</p>
|
||||||
|
{% endif %}
|
||||||
<div class="news_content">
|
<div class="news_content">
|
||||||
<div><em>{{ news.summary|markdown }}</em></div>
|
<div><em>{{ news.summary|markdown }}</em></div>
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ from django.utils import html
|
|||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
from model_bakery import baker
|
from model_bakery import baker
|
||||||
|
from model_bakery.recipe import Recipe
|
||||||
from pytest_django.asserts import assertNumQueries, assertRedirects
|
from pytest_django.asserts import assertNumQueries, assertRedirects
|
||||||
|
|
||||||
from club.models import Club, ClubRole, Membership
|
from club.models import Club, ClubRole, Membership
|
||||||
@@ -362,3 +363,37 @@ def test_moderate_poster(client: Client, referer: str | None):
|
|||||||
poster.refresh_from_db()
|
poster.refresh_from_db()
|
||||||
assert poster.is_moderated
|
assert poster.is_moderated
|
||||||
assert poster.moderator == user
|
assert poster.moderator == user
|
||||||
|
|
||||||
|
|
||||||
|
class TestNewsDetail(TestCase):
|
||||||
|
@classmethod
|
||||||
|
def setUpTestData(cls) -> None:
|
||||||
|
cls.news = baker.make(News, is_published=True)
|
||||||
|
cls.user = subscriber_user.make()
|
||||||
|
cls.url = reverse("com:news_detail", kwargs={"news_id": cls.news.id})
|
||||||
|
|
||||||
|
def test_page_ok(self):
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
res = self.client.get(self.url)
|
||||||
|
assert res.status_code == 200
|
||||||
|
|
||||||
|
def test_displayed_date(self):
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
n = now()
|
||||||
|
date_recipe = Recipe(NewsDate, news=self.news)
|
||||||
|
date_recipe.make(
|
||||||
|
start_date=n - timedelta(days=1, hours=6), end_date=n - timedelta(days=1)
|
||||||
|
)
|
||||||
|
date_recipe.make(
|
||||||
|
start_date=n - timedelta(hours=6), end_date=n + timedelta(hours=1)
|
||||||
|
)
|
||||||
|
expected = date_recipe.make( # we expect the next happening date.
|
||||||
|
start_date=n + timedelta(days=1), end_date=n + timedelta(days=1, hours=1)
|
||||||
|
)
|
||||||
|
date_recipe.make(
|
||||||
|
start_date=n + timedelta(days=2), end_date=n + timedelta(days=2, hours=1)
|
||||||
|
)
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
res = self.client.get(self.url)
|
||||||
|
assert res.status_code == 200
|
||||||
|
assert res.context_data["date"] == expected
|
||||||
+3
-1
@@ -301,7 +301,9 @@ class NewsDetailView(CanViewMixin, DetailView):
|
|||||||
queryset = News.objects.select_related("club", "author", "moderator")
|
queryset = News.objects.select_related("club", "author", "moderator")
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
return super().get_context_data(**kwargs) | {"date": self.object.dates.first()}
|
return super().get_context_data(**kwargs) | {
|
||||||
|
"date": self.object.dates.filter(start_date__gt=now()).first()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class NewsFeed(Feed):
|
class NewsFeed(Feed):
|
||||||
|
|||||||
Reference in new issue
Block a user