1
0
Fork 0

Minimal news app

This commit is contained in:
Shgck 2016-02-02 18:28:58 +01:00
parent 6ed705c0f5
commit e684ac24e9
15 changed files with 142 additions and 19 deletions

View file

@ -1,12 +1,4 @@
"""
Django settings for idre project.
For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""
""" Django settings for idre project. """
import os
@ -33,7 +25,8 @@ INSTALLED_APPS = (
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"label"
"label",
"news"
)
MIDDLEWARE_CLASSES = (

View file

@ -5,16 +5,18 @@ from django.contrib import admin
import idre.settings
import idre.views
import label.urls
import news.urls
admin.autodiscover()
urlpatterns = [
url(r"^$", idre.views.home, name = "home")
] + label.urls.urlpatterns + [
url(r"^admin/", include(admin.site.urls))
]
urlpatterns = (
[ url(r"^(?:about/)?$", idre.views.about_view, name = "about") ] +
label.urls.urlpatterns +
news.urls.urlpatterns +
[ url(r"^admin/", include(admin.site.urls)) ]
)
if idre.settings.DEBUG:
urlpatterns += static(

View file

@ -1,5 +1,5 @@
from django.shortcuts import render
def home(request):
return render(request, "idre/home.html")
def about_view(request):
return render(request, "about.html")

0
news/__init__.py Normal file
View file

6
news/admin.py Normal file
View file

@ -0,0 +1,6 @@
from django.contrib import admin
from news.models import Article
admin.site.register(Article)

5
news/apps.py Normal file
View file

@ -0,0 +1,5 @@
from django.apps import AppConfig
class NewsConfig(AppConfig):
name = "news"

View file

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-02-01 19:25
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Article',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=256)),
('content', models.TextField(help_text='Markdown formatting supported')),
('author', models.CharField(max_length=64)),
('date', models.DateField()),
],
options={
'ordering': ('date',),
},
),
]

View file

15
news/models.py Normal file
View file

@ -0,0 +1,15 @@
from django.db import models
ARTICLE_CONTENT_HINT = "Markdown formatting supported"
class Article(models.Model):
""" News article. """
title = models.CharField(max_length = 256)
content = models.TextField(help_text = ARTICLE_CONTENT_HINT)
author = models.CharField(max_length = 64)
date = models.DateField()
class Meta(object):
ordering = ("date",)

View file

@ -0,0 +1,29 @@
{% extends "base.html" %}
{% load static %}
{% block stylesheets %}
<link rel="stylesheet" href="{% static 'css/news.css' %}" />
{% endblock %}
{% block content %}
<section id="news">
{% for article in articles %}
<article>
<p class="article_header">
<span class="title">{{ article.title }}</span>
<span class="author">{{ article.author }}</span>,
<span class="date">{{ article.date }}</span>
</p>
{% autoescape off %}
{{ article.content }}
{% endautoescape %}
</article>
{% if not forloop.last %}<hr />{% endif %}
{% endfor %}
</section>
{% endblock %}

8
news/urls.py Normal file
View file

@ -0,0 +1,8 @@
from django.conf.urls import url
import news.views
urlpatterns = [
url(r"^news/$", news.views.articles_view, name = "news"),
]

12
news/views.py Normal file
View file

@ -0,0 +1,12 @@
from django.shortcuts import render
import markdown
from news.models import Article
def articles_view(request):
articles = Article.objects.all().order_by("date").reverse()
for article in articles:
article.content = markdown.markdown(article.content)
context = { "articles": articles }
return render(request, "news/news.html", context)

22
static/css/news.css Normal file
View file

@ -0,0 +1,22 @@
#news article .title {
font-size: 1.2em;
font-weight: bold;
}
#news article .author,
#news article .date {
font-style: oblique;
}
#news hr {
border-color: #929292 -moz-use-text-color -moz-use-text-color;
border-right: 0px none;
border-style: solid none none;
border-width: 1px 0px 0px;
margin-bottom: 20px;
margin-top: 20px;
-moz-border-bottom-colors: none;
-moz-border-left-colors: none;
-moz-border-right-colors: none;
-moz-border-top-colors: none;
}

View file

@ -23,8 +23,10 @@
</header>
<nav>
<a href="/news/">news</a> |
<a href="/artists/">artists</a> |
<a href="/releases/">releases</a>
<a href="/releases/">releases</a> |
<a href="/about/">about</a>
</nav>
<section id="content">