# -*- coding: utf-8 -*- from django.db import models from django.utils.encoding import smart_unicode from djangofr.documentation.utils import restify from djangofr.contributors.models import Contributor from djangofr.tagging.fields import TagField from djangofr.tagging.models import Tag class Documentation(models.Model): title = models.CharField('Titre', max_length=100, unique=True) slug = models.SlugField('Adresse', help_text='Conserver celle du site officiel.') version = models.DecimalField('Version', max_digits=4, decimal_places=2) revision = models.PositiveIntegerField('Révision') contributors = models.ManyToManyField(Contributor, verbose_name='Contributeurs') summary = models.TextField('Description', help_text='En HTML, dans un

') content = models.TextField('Contenu', help_text='Syntaxe ReST uniquement') toc_html = models.TextField('Menu HTML', blank=True) content_html = models.TextField('Contenu HTML', blank=True) order = models.SmallIntegerField('Ordre d\'apparition sur l\'index') related_tags = TagField(help_text='Tags séparés par des virgules ou des espaces') class Admin: list_display = ('title', 'version', 'revision', 'order') list_filter = ('contributors',) search_fields = ('title', 'content', 'summary') def __unicode__(self): return self.title def get_absolute_url(self): return '/documentation/%s/' % self.slug def save(self): #deal with ReSTification toc_html, content_html = restify(self.content) self.toc_html, self.content_html = smart_unicode(toc_html), smart_unicode(content_html) super(Documentation, self).save() # Call the "real" save() method. def _get_tags(self): return Tag.objects.get_for_object(self) def _set_tags(self, tag_list): return Tag.objects.update_tags(self, tag_list) tags = property(_get_tags, _set_tags)