Compare commits
No commits in common. "e9efe8ba773171286dd6e64d6221a44da50f8520" and "5484b89e3a56491118e0f3528d69eb0f0c4da238" have entirely different histories.
e9efe8ba77
...
5484b89e3a
|
|
@ -50,10 +50,10 @@ class NewsItem(models.Model):
|
||||||
get_user_model(), on_delete=models.CASCADE, related_name="news_items"
|
get_user_model(), on_delete=models.CASCADE, related_name="news_items"
|
||||||
)
|
)
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self):
|
||||||
if not self.slug:
|
if not self.slug:
|
||||||
self.slug = slugify(self.title)
|
self.slug = slugify(self.title)
|
||||||
return super(NewsItem, self).save(*args, **kwargs)
|
return super(NewsItem, self).save()
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return reverse_lazy("news:detail", args=[self.category.slug, self.slug])
|
return reverse_lazy("news:detail", args=[self.category.slug, self.slug])
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<div>
|
|
||||||
<h1>News Item</h1>
|
|
||||||
<form method="post">
|
|
||||||
{% csrf_token %}
|
|
||||||
{{ form.as_p }}
|
|
||||||
<input type="submit" value="Create Item">
|
|
||||||
<a href="{% url 'dashboard:dashboard' %}">Cancel</a>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
from .views import (CategoryList, NewsItemCreate, NewsItemDetail, NewsItemList,
|
from .views import (CategoryList, NewsItemDetail, NewsItemList,
|
||||||
NewsItemRedirectView, TagList)
|
NewsItemRedirectView, TagList)
|
||||||
|
|
||||||
app_name = "news"
|
app_name = "news"
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("", NewsItemList.as_view(), name="list"),
|
path("", NewsItemList.as_view(), name="list"),
|
||||||
path("add-news/", NewsItemCreate.as_view(), name="add_news"),
|
|
||||||
path("categories/", CategoryList.as_view(), name="categories"),
|
path("categories/", CategoryList.as_view(), name="categories"),
|
||||||
path("categories/<slug:category>/", NewsItemList.as_view(), name="list_category"),
|
path("categories/<slug:category>/", NewsItemList.as_view(), name="list_category"),
|
||||||
path("tags/", TagList.as_view(), name="tags"),
|
path("tags/", TagList.as_view(), name="tags"),
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.urls import reverse_lazy
|
from django.views.generic import DetailView, ListView, RedirectView
|
||||||
from django.utils.decorators import method_decorator
|
|
||||||
from django.views.generic import (CreateView, DetailView, ListView,
|
|
||||||
RedirectView, UpdateView)
|
|
||||||
|
|
||||||
from .models import Category, NewsItem
|
from .models import Category, NewsItem
|
||||||
|
|
||||||
|
|
@ -12,27 +8,6 @@ class CategoryList(ListView):
|
||||||
model = Category
|
model = Category
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(login_required, name="dispatch")
|
|
||||||
class NewsItemCreate(CreateView):
|
|
||||||
model = NewsItem
|
|
||||||
fields = [
|
|
||||||
"title",
|
|
||||||
"category",
|
|
||||||
"body",
|
|
||||||
"origin_text",
|
|
||||||
"origin_link",
|
|
||||||
"header_img",
|
|
||||||
"tags",
|
|
||||||
"is_published",
|
|
||||||
"is_featured",
|
|
||||||
]
|
|
||||||
success_url = reverse_lazy("dashboard:dashboard")
|
|
||||||
|
|
||||||
def form_valid(self, form):
|
|
||||||
form.instance.owner = self.request.user
|
|
||||||
return super().form_valid(form)
|
|
||||||
|
|
||||||
|
|
||||||
class NewsItemDetail(DetailView):
|
class NewsItemDetail(DetailView):
|
||||||
model = NewsItem
|
model = NewsItem
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue