Commit d7f54165 authored by jocelyn's avatar jocelyn

Ajouté la possibilité d'avoir un ouvrage collectif sans qu'il y ait plusieurs...

Ajouté la possibilité d'avoir un ouvrage collectif sans qu'il y ait plusieurs auteurs au sein du site.

BEGIN;
CREATE TABLE "articles_article_tmp" (    "id" integer NOT NULL PRIMARY KEY,
    "titre" varchar(200) NOT NULL,
    "auteur_id" integer NOT NULL REFERENCES "auth_user" ("id"),
    "slug" varchar(50) NOT NULL,
    "pub_date" datetime NOT NULL,
    "highlight" bool NOT NULL,
    "chapeau" text NOT NULL,
    "categorie" varchar(1),
    "mini_illustration" varchar(100),
    "accroche" text NOT NULL,
    "texte" text NOT NULL,
    "collectif" bool NOT NULL
);

INSERT INTO articles_article_tmp (id,titre,auteur_id,slug,pub_date, highlight,chapeau, categorie, mini_illustration,accroche,texte) SELECT *,0 FROM articles_article;

DROP TABLE articles_article;

ALTER TABLE articles_article_tmp RENAME TO articles_article;

COMMIT;




git-svn-id: svn://marvin.crapouillou.net/lettravox/trunk@70 7fa04f7f-7541-4a08-844f-dcbc5afaef51
parent 3900d2c2
......@@ -41,7 +41,7 @@ class ArticleAdmin(admin.ModelAdmin):
form = ArticleAdminForm
list_display = ('titre','pub_date', 'highlight', 'categorie')
fieldsets = (
(None, {'fields': ('titre', 'pub_date', 'categorie', 'concerne')}),
(None, {'fields': ('titre', 'pub_date', 'categorie', 'concerne', 'collectif')}),
('Méta-données', {'fields':
('chapeau', 'accroche',
'highlight',
......
......@@ -8,6 +8,7 @@ from django.contrib import auth
from django.utils._threading_local import local
from django.utils.safestring import mark_safe
from django.template import Template, Context
from django.db.models import Q
from tagging.fields import TagField
from slughifi import slugify
......@@ -32,6 +33,7 @@ class Article(models.Model):
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")
collectif = models.BooleanField('Œuvre collective')
mini_illustration = models.ImageField(
upload_to="news-images",
blank=True,
......@@ -73,7 +75,9 @@ class Article(models.Model):
def is_publication(self):
return self.categorie == 'P'
def is_collective(self):
return (self.concerne.count() > 1) or self.collectif
# Équipement pour les Auteurs
......@@ -81,7 +85,7 @@ auth.models.User.ouvrages_papier = lambda s:\
Article.objects.annotate(num_auteurs=models.Count('concerne')).filter(concerne=s,categorie='P')
auth.models.User.ouvrages_papier_auteur = lambda s:\
s.ouvrages_papier().filter(num_auteurs=1)
s.ouvrages_papier().filter(num_auteurs=1).filter(collectif=False)
auth.models.User.ouvrages_papier_co_auteur = lambda s:\
s.ouvrages_papier().filter(num_auteurs__gt=1)
s.ouvrages_papier().filter(Q(num_auteurs__gt=1) | Q(collectif=True))
......@@ -14,19 +14,21 @@
{% if object.categorie == "P" and object.concerne %}
<p><em>
{% if concerne|length_is:"1" %}
{% if object.is_collective %}
{% 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 %}
{% else %}
{% with auteur=object.concerne.first %}
Auteur: <a href="/auteur/{{auteur.username}}">{{ auteur|affiche_nom }}</a>
{% endwith %}
{% endif %}
<em></p>
{% endif %}
......
......@@ -68,7 +68,7 @@
{% endwith %}
{% with co_ouvrages=object.ouvrages_papier_co_auteur %}
<p style="clear:both">
… et été publiée dans {{co_ouvrages|length}} autre{{co_ouvrages|pluralize}} ouvrage{{co_ouvrages|pluralize}}:
… et a été publiée dans {{co_ouvrages|length}} autre{{co_ouvrages|pluralize}} ouvrage{{co_ouvrages|pluralize}} :
</p>
{% for ouvrage in co_ouvrages %}
......
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