from django.db import models from tagging.fields import TagField from django.core.paginator import Paginator, InvalidPage, EmptyPage from app.models import ItfModel class BestPractice(ItfModel): title = models.CharField(max_length=512) story = models.TextField() guideline = models.TextField(blank=True) law = models.TextField(blank=True) theatre = models.TextField(blank=True, help_text="Spotlight on Theatre text") quick_howto = models.TextField(blank=True) tags = TagField(blank=True, help_text="Enter as many tags as you like, separated by commas.") category = models.ForeignKey("BestPracticeCategory") fts_fields = ['title', 'story', 'guideline', 'law', 'theatre', 'quick_howto'] fk_filters = ['category'] sort_fields = ['title'] def __unicode__(self): return self.title def info_dict(self): return { 'title': self.title, 'story': self.story, 'guideline': self.guideline, 'law': self.law, 'theatre': self.theatre, 'quick_howto': self.quick_howto, 'category': self.category.name, 'category_id': self.category.id } def list_dict(self): return { 'id': self.id, 'title': self.title, 'category': self.category.name, } def preview_dict(self): return { 'id': self.id, 'title': self.title, 'category': self.category.name, 'quick_howto': self.quick_howto, 'guideline': self.guideline } class BestPracticeCategory(models.Model): name = models.CharField(max_length=256) description = models.TextField(blank=True) def __unicode__(self): return self.name class BestPracticeLink(models.Model): url = models.URLField() text = models.TextField(blank=True) bestpractice = models.ForeignKey(BestPractice) def __unicode__(self): return self.url class BestPracticeImage(models.Model): image = models.ImageField(upload_to='upload/images/bestpractices/') caption = models.CharField(max_length=512, blank=True) bestpractice = models.ForeignKey(BestPractice) def __unicode__(self): return self.caption