SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 5fd7bd3e authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Add permalink and detail page for NewsItem

parent 53074f71
No related branches found
No related tags found
No related merge requests found
......@@ -60,7 +60,7 @@ class NewsItem(models.Model):
return self.date.strftime("%Y-%m-%d") + ", " + self.headline
def get_absolute_url(self):
return reverse("news:news") + "#news_" + str(self.id)
return reverse("news:newsitem_detail", kwargs={"pk": self.id})
class NewsLetterNewsItemsTable(models.Model):
......
<div class="p-3 mb-3 bg-light news-item scipost-bar" id="news_{{ news.id }}">
<h3 class="title">{{ news.headline }}</h3>
<h5 class="sub-title">{{ news.date|date:'j F Y' }}</h5>
<h5 class="sub-title">{{ news.date|date:'j F Y' }}&emsp;<a href="{{ news.get_absolute_url }}">{% include 'bi/link.html' %}</a></h5>
{% if news.image %}
<div class="row">
<div class="col-sm-3 col-lg-2">
......
{% extends 'news/base.html' %}
{% load bootstrap %}
{% block pagetitle %}: News Item{% endblock pagetitle %}
{% block breadcrumb_items %}
{{ block.super }}
<span class="breadcrumb-item">{{ object.headline|truncatechars:20 }}</span>
{% endblock %}
{% block content %}
<div class="row">
<div class="col-12">
<h1 class="highlight">News Item</h1>
{% include 'news/news_card_content.html' with news=object %}
</div>
</div>
{% endblock content %}
......@@ -36,6 +36,11 @@ urlpatterns = [
name="newsletter_delete",
),
path("newsitem/add/", views.NewsItemCreateView.as_view(), name="newsitem_create"),
path(
"newsitem/<int:pk>/",
views.NewsItemDetailView.as_view(),
name="newsitem_detail",
),
path(
"newsitem/<int:pk>/update/",
views.NewsItemUpdateView.as_view(),
......
......@@ -6,6 +6,7 @@ from django.contrib import messages
from django.urls import reverse_lazy
from django.shortcuts import get_object_or_404, render, redirect
from django.views.generic.base import TemplateView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.views.generic.list import ListView
......@@ -117,6 +118,10 @@ class NewsItemCreateView(PermissionsMixin, CreateView):
success_url = reverse_lazy("news:news")
class NewsItemDetailView(DetailView):
model = NewsItem
class NewsItemUpdateView(PermissionsMixin, UpdateView):
"""
Update a NewsItem.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment