self.fields[self.date_field].required = False
-class TitledAdmin(EntityAdmin):
+class BlogAdmin(EntityAdmin):
prepopulated_fields = {'slug': ('title',)}
list_display = ('title', 'slug')
-class BlogAdmin(TitledAdmin):
- pass
-
-
-class BlogEntryAdmin(TitledAdmin, AddTagAdmin):
+class BlogEntryAdmin(AddTagAdmin):
form = DelayedDateForm
filter_horizontal = ['tags']
list_filter = ['author', 'blog']
})
)
related_lookup_fields = {'fk': raw_id_fields}
+ prepopulated_fields = {'slug': ('title',)}
class BlogViewAdmin(EntityAdmin):
related_lookup_fields = {'fk': raw_id_fields}
-class NewsletterAdmin(TitledAdmin):
- pass
+class NewsletterAdmin(EntityAdmin):
+ prepopulated_fields = {'slug': ('title',)}
+ list_display = ('title', 'slug')
-class NewsletterArticleAdmin(TitledAdmin, AddTagAdmin):
+class NewsletterArticleAdmin(AddTagAdmin):
form = DelayedDateForm
filter_horizontal = ('tags', 'authors')
list_filter = ('newsletter',)
})
)
actions = ['make_issue']
+ prepopulated_fields = {'slug': ('title',)}
def author_names(self, obj):
return ', '.join([author.get_full_name() for author in obj.authors.all()])
make_issue.short_description = u"Create issue from selected %(verbose_name_plural)s"
-class NewsletterIssueAdmin(TitledAdmin):
- filter_horizontal = TitledAdmin.filter_horizontal + ('articles',)
+class NewsletterIssueAdmin(EntityAdmin):
+ filter_horizontal = ('articles',)
+ prepopulated_fields = {'slug': ('title',)}
+ list_display = ('title', 'slug')
class NewsletterViewAdmin(EntityAdmin):
from philo.contrib.penfield.middleware import http_not_acceptable
from philo.contrib.penfield.validators import validate_pagination_count
from philo.exceptions import ViewCanNotProvideSubpath
-from philo.models import Tag, Titled, Entity, MultiView, Page, register_value_model, TemplateField, Template
+from philo.models import Tag, Entity, MultiView, Page, register_value_model, TemplateField, Template
from philo.utils import paginate
try:
abstract=True
-class Blog(Entity, Titled):
+class Blog(Entity):
+ title = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255)
+
+ def __unicode__(self):
+ return self.title
+
@property
def entry_tags(self):
""" Returns a QuerySet of Tags that are used on any entries in this blog. """
register_value_model(Blog)
-class BlogEntry(Entity, Titled):
+class BlogEntry(Entity):
+ title = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255)
blog = models.ForeignKey(Blog, related_name='entries', blank=True, null=True)
author = models.ForeignKey(getattr(settings, 'PHILO_PERSON_MODULE', 'auth.User'), related_name='blogentries')
date = models.DateTimeField(default=None)
self.date = datetime.now()
super(BlogEntry, self).save(*args, **kwargs)
+ def __unicode__(self):
+ return self.title
+
class Meta:
ordering = ['-date']
verbose_name_plural = "blog entries"
return [tag.name for tag in item.tags.all()]
-class Newsletter(Entity, Titled):
- pass
+class Newsletter(Entity):
+ title = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255)
+
+ def __unicode__(self):
+ return self.title
register_value_model(Newsletter)
-class NewsletterArticle(Entity, Titled):
+class NewsletterArticle(Entity):
+ title = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255)
newsletter = models.ForeignKey(Newsletter, related_name='articles')
authors = models.ManyToManyField(getattr(settings, 'PHILO_PERSON_MODULE', 'auth.User'), related_name='newsletterarticles')
date = models.DateTimeField(default=None)
self.date = datetime.now()
super(NewsletterArticle, self).save(*args, **kwargs)
+ def __unicode__(self):
+ return self.title
+
class Meta:
get_latest_by = 'date'
ordering = ['-date']
register_value_model(NewsletterArticle)
-class NewsletterIssue(Entity, Titled):
+class NewsletterIssue(Entity):
+ title = models.CharField(max_length=255)
+ slug = models.SlugField(max_length=255)
newsletter = models.ForeignKey(Newsletter, related_name='issues')
numbering = models.CharField(max_length=50, help_text='For example, 04.02 for volume 4, issue 2.')
articles = models.ManyToManyField(NewsletterArticle, related_name='issues')
+ def __unicode__(self):
+ return self.title
+
class Meta:
ordering = ['-numbering']
unique_together = (('newsletter', 'numbering'),)