Commit 518dae9c authored by jocelyn's avatar jocelyn

concerne #30

- Ajout d'une sorte d'articles particuliers pour les publications papier
- Ajout de l'information comme quoi une publication concerne N auteurs.
- Ajout d'une entrée de menu pour les publications papier
- Renommage « Publications » -> « Textes en ligne » 


git-svn-id: svn://marvin.crapouillou.net/lettravox/trunk@62 7fa04f7f-7541-4a08-844f-dcbc5afaef51
parent 0352e982
# -*- coding: utf-8 -*-
from django.contrib import admin
from articles.models import *
import os
from django.contrib import admin
from django.core.files import File
from django import forms
from django.db import models
from django.utils.html import strip_tags
from articles.models import *
class ArticleAdminForm(forms.ModelForm):
class Meta:
model = Article
......@@ -36,9 +39,9 @@ class ArticleAdminForm(forms.ModelForm):
class ArticleAdmin(admin.ModelAdmin):
form = ArticleAdminForm
list_display = ('titre','pub_date', 'highlight')
list_display = ('titre','pub_date', 'highlight', 'categorie')
fieldsets = (
(None, {'fields': ('titre', 'pub_date')}),
(None, {'fields': ('titre', 'pub_date', 'categorie', 'concerne')}),
('Méta-données', {'fields':
('chapeau', 'accroche',
'highlight',
......@@ -46,6 +49,11 @@ class ArticleAdmin(admin.ModelAdmin):
('Corps de l\'article', {'fields': ('texte',)})
)
formfield_overrides = {
models.ManyToManyField: {'widget': forms.CheckboxSelectMultiple},
}
def save_model(self, request, obj, form, change):
# Si l'objet est nouveau, on définit son auteur
# automatiquement.
......
......@@ -20,13 +20,18 @@ class Article(models.Model):
""" Contient un texte publié, sa description, sa source Tex, sa
représentation html & pdf, ses métadonnées et ses commentaires
"""
CATEGORIES = (("P","Publications papier"), ("E", "Évènements"))
titre = models.CharField(max_length=200)
auteur = models.ForeignKey(auth.models.User, blank=True)
slug = models.SlugField()
pub_date = models.DateTimeField('Date de publication',default=datetime.now)
highlight = models.BooleanField('Mis en valeur dans le ruban',default=False)
chapeau = models.TextField("Chapeau", max_length=1500, blank=True)
categorie = models.CharField(choices=CATEGORIES,blank=True, max_length=1,null=True)
concerne = models.ManyToManyField(
auth.models.User, blank=True, null=True,related_name="intervient_dans",
help_text="ex: pour une parution papier, les auteur-e-s")
mini_illustration = models.ImageField(
upload_to="news-images",
blank=True,
......@@ -66,3 +71,5 @@ class Article(models.Model):
def get_absolute_url(self):
return "/actu/%s/" % self.slug
{% extends "base.html" %}
{% load lvtags %}
{% block titre %}
......@@ -7,7 +8,6 @@
</div>
<h2 class="titreart" style="clear: none">{{ object.titre }}</h2>
{% endblock %}
{% block contenu %}
......@@ -17,5 +17,25 @@
{% endautoescape %}
</div>
{% if object.categorie == "P" and object.concerne %}
<p><em>
{% if concerne|length_is:"1" %}
{% with auteur=object.concerne.first %}
Auteur: <a href="/auteur/{{auteur.username}}">{{ auteur|affiche_nom }}</a>
{% endwith %}
{% else %}
Sont publiées dans cet ouvrage :
{% for auteur in object.concerne.all %}
{% if not forloop.first %},{% endif %}
<a href="/auteur/{{auteur.username}}">{{ auteur|affiche_nom }}</a>
{% endfor %}
{% endif %}
<em></p>
{% endif %}
{% endblock %}
......@@ -3,7 +3,7 @@
{% load lvtags %}
{% block titre %}
<h2>Actualités…</h2>
<h2>{% firstof categorie "Actualités…" %}</h2>
{% endblock %}
{% block contenu %}
......@@ -23,7 +23,7 @@
<p>{{ article.chapeau }}</p>
<div class="cl">&nbsp;</div>
<p class="plus">Lire la suite…</p>
<p class="plus">Lire la suite{% if article.categorie == "P" %}/Acheter{% endif %}</p>
</a>
</div>
{% endfor %}
......
......@@ -33,7 +33,8 @@
<ul id="topbar">
{% block topbar %}
<li><a href="/">Accueil</a></li>
<li><a href="/textes/">Publications</a></li>
<li><a href="/textes/">Textes en ligne</a></li>
<li><a href="/publications-papier/">Publications papier</a></li>
<li><a href="/auteurs">Les auteurs</a></li>
<li><a href="/amis/">Liens</a></li>
<li><a href="/apropos/">A propos</a></li>
......
......@@ -94,9 +94,12 @@ urlpatterns += patterns('',
## Actus
#
urlpatterns += patterns('django.views',
(r'^publications-papier/$','generic.list_detail.object_list',
{'queryset' : articles.models.Article.objects.filter(categorie='P'),
'extra_context' : {'categorie': 'Publications papier'}}),
(r'^actu/(?P<slug>[-\w]+)/?$','generic.list_detail.object_detail',
{'queryset' : articles.models.Article.objects.all(),
'slug_field':'slug'}),
(r'^actu/$','generic.list_detail.object_list',
{'queryset' : articles.models.Article.objects.all()})
{'queryset' : articles.models.Article.objects.all()}),
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment