2013-05-18 10:57:01 +00:00
|
|
|
# Import your custom models
|
2013-05-19 13:32:51 +00:00
|
|
|
from django.contrib.auth.models import Group, User
|
2013-06-14 13:58:27 +00:00
|
|
|
from django.contrib import messages
|
2013-05-31 15:38:34 +00:00
|
|
|
|
2013-05-19 13:32:51 +00:00
|
|
|
from rest_framework.relations import PrimaryKeyRelatedField
|
2013-05-18 10:57:01 +00:00
|
|
|
|
2013-05-18 13:43:44 +00:00
|
|
|
import djadmin2
|
2013-06-14 13:58:27 +00:00
|
|
|
from djadmin2.actions import DeleteSelectedAction
|
2013-06-01 16:02:01 +00:00
|
|
|
from djadmin2.forms import UserCreationForm, UserChangeForm
|
2013-05-19 13:32:51 +00:00
|
|
|
from djadmin2.apiviews import Admin2APISerializer
|
|
|
|
|
|
2013-06-14 13:58:27 +00:00
|
|
|
from .actions import CustomPublishAction
|
2013-05-31 15:38:34 +00:00
|
|
|
from .models import Post, Comment
|
|
|
|
|
|
2013-05-19 13:32:51 +00:00
|
|
|
|
|
|
|
|
class GroupSerializer(Admin2APISerializer):
|
|
|
|
|
permissions = PrimaryKeyRelatedField(many=True)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = Group
|
|
|
|
|
|
|
|
|
|
|
2013-05-31 06:57:25 +00:00
|
|
|
class GroupAdmin2(djadmin2.ModelAdmin2):
|
2013-05-19 13:32:51 +00:00
|
|
|
api_serializer_class = GroupSerializer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserSerializer(Admin2APISerializer):
|
|
|
|
|
user_permissions = PrimaryKeyRelatedField(many=True)
|
|
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
|
model = User
|
|
|
|
|
exclude = ('passwords',)
|
2013-05-18 14:59:06 +00:00
|
|
|
|
|
|
|
|
|
2013-05-31 06:57:25 +00:00
|
|
|
class CommentInline(djadmin2.Admin2Inline):
|
2013-05-19 09:21:25 +00:00
|
|
|
model = Comment
|
|
|
|
|
|
|
|
|
|
|
2013-06-14 13:58:27 +00:00
|
|
|
def unpublish_items(request, queryset):
|
|
|
|
|
queryset.update(published=False)
|
|
|
|
|
messages.add_message(request, messages.INFO, u'Items unpublished')
|
|
|
|
|
|
|
|
|
|
unpublish_items.description = 'Unpublish selected items'
|
|
|
|
|
|
|
|
|
|
|
2013-05-31 06:57:25 +00:00
|
|
|
class PostAdmin(djadmin2.ModelAdmin2):
|
2013-06-14 13:58:27 +00:00
|
|
|
list_actions = [DeleteSelectedAction, CustomPublishAction, unpublish_items]
|
2013-05-19 09:21:25 +00:00
|
|
|
inlines = [CommentInline]
|
2013-06-06 21:25:36 +00:00
|
|
|
search_fields = ('title', '^body')
|
|
|
|
|
|
2013-06-14 13:58:27 +00:00
|
|
|
|
2013-06-06 21:25:36 +00:00
|
|
|
class CommentAdmin(djadmin2.ModelAdmin2):
|
|
|
|
|
search_fields = ('body', '=post__title')
|
2013-05-19 09:21:25 +00:00
|
|
|
|
|
|
|
|
|
2013-05-31 06:57:25 +00:00
|
|
|
class UserAdmin2(djadmin2.ModelAdmin2):
|
2013-05-18 14:59:06 +00:00
|
|
|
create_form_class = UserCreationForm
|
|
|
|
|
update_form_class = UserChangeForm
|
2013-06-06 21:25:36 +00:00
|
|
|
search_fields = ('username', 'groups__name')
|
2013-05-18 14:59:06 +00:00
|
|
|
|
2013-05-19 13:32:51 +00:00
|
|
|
api_serializer_class = UserSerializer
|
|
|
|
|
|
2013-05-18 13:43:44 +00:00
|
|
|
|
|
|
|
|
# Register each model with the admin
|
2013-05-19 09:21:25 +00:00
|
|
|
djadmin2.default.register(Post, PostAdmin)
|
2013-06-06 21:25:36 +00:00
|
|
|
djadmin2.default.register(Comment, CommentAdmin)
|
2013-05-19 08:09:12 +00:00
|
|
|
djadmin2.default.register(User, UserAdmin2)
|
2013-05-19 13:32:51 +00:00
|
|
|
djadmin2.default.register(Group, GroupAdmin2)
|