My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from django.contrib import admin
from django.conf import settings
from django.utils.html import strip_tags
from django.utils.text import truncate_html_words

from pagelets import models as pagelets
if 'treenav' in settings.INSTALLED_APPS:
from treenav.admin import GenericMenuItemInline
else:
GenericMenuItemInline = None


class InlinePageletAdmin(admin.StackedInline):
model = pagelets.InlinePagelet
extra = 1
fk_name = 'page'
fieldsets = (
(None, {
'fields': ('type', 'content')
}),
('Style and Placement', {
'classes': ('collapse',),
'fields': ('css_classes', ('area', 'order')),
}),
)


class SharedPageletAdmin(admin.StackedInline):
model = pagelets.SharedPagelet
extra = 1
fk_name = 'page'
fieldsets = (
(None, {
'fields': ('pagelet', ('area', 'order'))
}),
)


class InlinePageAttachmentAdmin(admin.StackedInline):
model = pagelets.PageAttachment
extra = 1
fieldsets = (
(None, {
'fields': (('name', 'order'), 'file')
}),
)


class PageAdmin(admin.ModelAdmin):
list_display = (
'title',
'modified_by',
'last_changed',
'created_by',
'creation_date',
)
search_fields = ('title',)
list_filter = ('modified_by',)
prepopulated_fields = {'slug': ('title',)}
inlines = [InlinePageletAdmin, SharedPageletAdmin,
InlinePageAttachmentAdmin]
shown_fields = ['title', 'slug']
if 'tagging' in settings.INSTALLED_APPS:
shown_fields.append('tags')
optional_fields = ['description', ('meta_keywords', 'meta_robots')]
if getattr(settings, 'PAGELET_BASE_TEMPLATES', None):
optional_fields.insert(0, 'base_template')
fieldsets = (
(None, {
'fields': shown_fields,
}),
('Optional Information', {
'classes': ('collapse',),
'fields': optional_fields,
}),
)
if GenericMenuItemInline:
inlines.insert(0, GenericMenuItemInline)

def save_model(self, request, obj, form, change):
if not obj.id:
obj.created_by = request.user
obj.modified_by = request.user
obj.save()

def save_formset(self, request, form, formset, change):
pagelets = formset.save(commit=False)
for pagelet in pagelets:
pagelet.created_by = request.user
pagelet.modified_by = request.user
pagelet.save()
formset.save_m2m()
admin.site.register(pagelets.Page, PageAdmin)


class PageletAdmin(admin.ModelAdmin):
list_display = (
'id',
'slug',
'type',
'modified_by',
'last_changed',
'created_by',
'creation_date',
'content_preview',
)
search_fields = ('slug', 'content',)
list_filter = ('type', 'modified_by', 'last_changed', 'creation_date')

def content_preview(self, obj):
return strip_tags(truncate_html_words(obj.content, 5))
content_preview.short_description = 'content preview'

def save_model(self, request, obj, form, change):
if not obj.id:
obj.created_by = request.user
obj.modified_by = request.user
obj.save()
admin.site.register(pagelets.Pagelet, PageletAdmin)

Change log

r78 by tobias.mcnulty on Jun 3, 2010   Diff
add tags to page admin if tagging app is
installed
Go to: 
Project members, sign in to write a code review

Older revisions

r77 by tobias.mcnulty on May 27, 2010   Diff
check INSTALLED_APPS for tagging and
treenav instead of doing conditional
import
r76 by tobias.mcnulty on May 27, 2010   Diff
prepopulate the page slug from the
title in the admin; strip html from
the pagelet content preview
r73 by tobias.mcnulty on May 26, 2010   Diff
allow pagelets to be placed in
different content areas on pages.  add
"shared pagelets" that can manifest on
multiple pages at the same time.
All revisions of this file

File info

Size: 3365 bytes, 119 lines
Powered by Google Project Hosting