mirror of
https://github.com/jazzband/django-admin2.git
synced 2026-03-17 06:30:25 +00:00
merge
This commit is contained in:
parent
4908a9675e
commit
038313c81c
8 changed files with 66 additions and 42 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -55,3 +55,7 @@ logfile
|
|||
|
||||
# vim swap files
|
||||
*.sw[o-z]
|
||||
|
||||
# Sublime Text
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
|
|
|
|||
47
djadmin2/admin2.py
Normal file
47
djadmin2/admin2.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.sites.models import Site
|
||||
|
||||
|
||||
from rest_framework.relations import PrimaryKeyRelatedField
|
||||
|
||||
import djadmin2
|
||||
from djadmin2.forms import UserCreationForm, UserChangeForm
|
||||
from djadmin2.apiviews import Admin2APISerializer
|
||||
|
||||
|
||||
class GroupSerializer(Admin2APISerializer):
|
||||
permissions = PrimaryKeyRelatedField(many=True)
|
||||
|
||||
class Meta:
|
||||
model = Group
|
||||
|
||||
|
||||
class GroupAdmin2(djadmin2.ModelAdmin2):
|
||||
api_serializer_class = GroupSerializer
|
||||
|
||||
|
||||
class UserSerializer(Admin2APISerializer):
|
||||
user_permissions = PrimaryKeyRelatedField(many=True)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
exclude = ('passwords',)
|
||||
|
||||
|
||||
class UserAdmin2(djadmin2.ModelAdmin2):
|
||||
create_form_class = UserCreationForm
|
||||
update_form_class = UserChangeForm
|
||||
search_fields = ('username', 'groups__name')
|
||||
|
||||
api_serializer_class = UserSerializer
|
||||
|
||||
|
||||
class SiteAdmin2(djadmin2.ModelAdmin2):
|
||||
list_display = ('domain', 'name')
|
||||
search_fields = ('domain', 'name')
|
||||
|
||||
|
||||
# Register each model with the admin
|
||||
djadmin2.default.register(User, UserAdmin2)
|
||||
djadmin2.default.register(Group, GroupAdmin2)
|
||||
djadmin2.default.register(Site, SiteAdmin2)
|
||||
|
|
@ -22,10 +22,10 @@ _WIDGET_COMMON_ARGUMENTS = ('attrs',)
|
|||
|
||||
|
||||
def _copy_attributes(original, new_widget, attributes):
|
||||
for attr in attributes:
|
||||
original_value = getattr(original, attr)
|
||||
original_value = deepcopy(original_value)
|
||||
setattr(new_widget, attr, original_value)
|
||||
for attr in attributes:
|
||||
original_value = getattr(original, attr)
|
||||
original_value = deepcopy(original_value)
|
||||
setattr(new_widget, attr, original_value)
|
||||
|
||||
|
||||
def _create_widget(widget_class, copy_attributes=(), init_arguments=()):
|
||||
|
|
|
|||
|
|
@ -4,3 +4,4 @@ from test_utils import *
|
|||
from test_views import *
|
||||
from test_core import *
|
||||
from test_actions import *
|
||||
from test_auth_admin import *
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from django.test.client import RequestFactory
|
|||
import floppyforms
|
||||
|
||||
import djadmin2
|
||||
from blog.admin2 import UserAdmin2
|
||||
from ..admin2 import UserAdmin2
|
||||
|
||||
|
||||
class UserAdminTest(TestCase):
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
from django.db import models
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.sites.models import Site
|
||||
|
||||
import djadmin2
|
||||
from ..types import ModelAdmin2
|
||||
from ..core import Admin2
|
||||
|
||||
|
|
@ -33,3 +36,8 @@ class Admin2Test(TestCase):
|
|||
def test_get_urls(self):
|
||||
self.admin2.register(Thing)
|
||||
self.assertEquals(8, len(self.admin2.get_urls()))
|
||||
|
||||
def test_default_entries(self):
|
||||
expected_default_models = (User, Group, Site)
|
||||
for model in expected_default_models:
|
||||
self.assertTrue(isinstance(djadmin2.default.registry[model], ModelAdmin2))
|
||||
|
|
|
|||
|
|
@ -1,38 +1,13 @@
|
|||
# Import your custom models
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib import messages
|
||||
|
||||
from rest_framework.relations import PrimaryKeyRelatedField
|
||||
|
||||
import djadmin2
|
||||
from djadmin2.actions import DeleteSelectedAction
|
||||
from djadmin2.forms import UserCreationForm, UserChangeForm
|
||||
from djadmin2.apiviews import Admin2APISerializer
|
||||
|
||||
|
||||
# Import your custom models
|
||||
from .actions import CustomPublishAction
|
||||
from .models import Post, Comment
|
||||
|
||||
|
||||
class GroupSerializer(Admin2APISerializer):
|
||||
permissions = PrimaryKeyRelatedField(many=True)
|
||||
|
||||
class Meta:
|
||||
model = Group
|
||||
|
||||
|
||||
class GroupAdmin2(djadmin2.ModelAdmin2):
|
||||
api_serializer_class = GroupSerializer
|
||||
|
||||
|
||||
class UserSerializer(Admin2APISerializer):
|
||||
user_permissions = PrimaryKeyRelatedField(many=True)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
exclude = ('passwords',)
|
||||
|
||||
|
||||
class CommentInline(djadmin2.Admin2Inline):
|
||||
model = Comment
|
||||
|
||||
|
|
@ -56,16 +31,6 @@ class CommentAdmin(djadmin2.ModelAdmin2):
|
|||
list_filter = ['post', ]
|
||||
|
||||
|
||||
class UserAdmin2(djadmin2.ModelAdmin2):
|
||||
create_form_class = UserCreationForm
|
||||
update_form_class = UserChangeForm
|
||||
search_fields = ('username', 'groups__name')
|
||||
|
||||
api_serializer_class = UserSerializer
|
||||
|
||||
|
||||
# Register each model with the admin
|
||||
djadmin2.default.register(Post, PostAdmin)
|
||||
djadmin2.default.register(Comment, CommentAdmin)
|
||||
djadmin2.default.register(User, UserAdmin2)
|
||||
djadmin2.default.register(Group, GroupAdmin2)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
from test_auth_admin import *
|
||||
from test_apiviews import *
|
||||
from test_builtin_api_resources import *
|
||||
from test_permissions import *
|
||||
|
|
|
|||
Loading…
Reference in a new issue