Added metadata to the model for seo stuff

This commit is contained in:
Corey Oordt 2010-04-22 14:31:38 -04:00
parent 0b27adc2a5
commit 031c32854c
4 changed files with 48 additions and 1 deletions

View file

@ -36,6 +36,12 @@ class CategoryAdminForm(forms.ModelForm):
self.cleaned_data['slug'] = slugify(self.cleaned_data['name'])
return self.cleaned_data['slug']
def clean_alternate_title(self):
if self.instance is None or not self.cleaned_data['alternate_title']:
return self.cleaned_data['name']
else:
return self.cleaned_data['alternate_title']
def clean(self):
super(CategoryAdminForm, self).clean()
@ -65,6 +71,19 @@ class CategoryAdmin(TreeEditor, admin.ModelAdmin):
list_display = ('__unicode__',)
search_fields = (('name',))
prepopulated_fields = {'slug': ('name',)}
fieldsets = (
(None, {
'fields': ('parent', 'name')
}),
('Meta Data', {
'fields': ('alternate_title', 'description', 'meta_keywords', 'meta_extra'),
'classes': ('collapse',),
}),
('Advanced', {
'fields': ('order', 'slug'),
'classes': ('collapse',),
}),
)
admin.site.register(Category, CategoryAdmin)

View file

@ -0,0 +1,6 @@
BEGIN;
ALTER TABLE "categories_category" ADD COLUMN "alternate_title" varchar(100);
ALTER TABLE "categories_category" ADD COLUMN "meta_keywords" varchar(255);
ALTER TABLE "categories_category" ADD COLUMN "meta_extra" text;
ALTER TABLE "categories_category" ALTER COLUMN "description" TYPE text;
COMMIT;

View file

@ -0,0 +1,6 @@
BEGIN;
ALTER TABLE "categories_category" DROP COLUMN "alternate_title" varchar(100);
ALTER TABLE "categories_category" DROP COLUMN "meta_keywords" varchar(255);
ALTER TABLE "categories_category" DROP COLUMN "meta_extra" text;
ALTER TABLE "categories_category" ALTER COLUMN "description" TYPE varchar(255);
COMMIT;

View file

@ -13,9 +13,25 @@ class Category(models.Model):
help_text="Leave this blank for an Category Tree",
verbose_name='Parent')
name = models.CharField(max_length=100)
description = models.CharField(blank=True, null=True, max_length=255)
order = models.IntegerField(blank=True, null=True)
slug = models.SlugField()
alternate_title = models.CharField(
blank=True,
default="",
max_length=100,
help_text="An alternative title to use on pages with this category."
)
description = models.TextField(blank=True, null=True)
meta_keywords = models.CharField(
blank=True,
default="",
max_length=255,
help_text="Comma-separated keywords for search engines.")
meta_extra = models.TextField(
blank=True,
default="",
help_text="(Advanced) Any additional HTML to be placed verbatim in the <head>")
def get_absolute_url(self):
"""Return a path"""