File: admin.py

package info (click to toggle)
django-polymorphic 0.6-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 436 kB
  • ctags: 586
  • sloc: python: 2,208; makefile: 142
file content (88 lines) | stat: -rw-r--r-- 2,474 bytes parent folder | download
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
from django.contrib import admin
from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter
from pexp.models import *


class ProjectChildAdmin(PolymorphicChildModelAdmin):
    base_model = Project

    # On purpose, only have the shared fields here.
    # The fields of the derived model should still be displayed.
    base_fieldsets = (
        ("Base fields", {
            'fields': ('topic',)
        }),
    )

class ProjectAdmin(PolymorphicParentModelAdmin):
    base_model = Project
    list_filter = (PolymorphicChildModelFilter,)
    child_models = (
        (Project, ProjectChildAdmin),
        (ArtProject, ProjectChildAdmin),
        (ResearchProject, ProjectChildAdmin),
    )

admin.site.register(Project, ProjectAdmin)



class ModelAChildAdmin(PolymorphicChildModelAdmin):
    base_model = ModelA

class ModelAAdmin(PolymorphicParentModelAdmin):
    base_model = ModelA
    list_filter = (PolymorphicChildModelFilter,)
    child_models = (
        (ModelA, ModelAChildAdmin),
        (ModelB, ModelAChildAdmin),
        (ModelC, ModelAChildAdmin),
    )

admin.site.register(ModelA, ModelAAdmin)


if 'Model2A' in globals():
    class Model2AChildAdmin(PolymorphicChildModelAdmin):
        base_model = Model2A

    class Model2AAdmin(PolymorphicParentModelAdmin):
        base_model = Model2A
        list_filter = (PolymorphicChildModelFilter,)
        child_models = (
            (Model2A, Model2AChildAdmin),
            (Model2B, Model2AChildAdmin),
            (Model2C, Model2AChildAdmin),
        )

    admin.site.register(Model2A, Model2AAdmin)


if 'UUIDModelA' in globals():
    class UUIDModelAChildAdmin(PolymorphicChildModelAdmin):
        base_model = UUIDModelA

    class UUIDModelAAdmin(PolymorphicParentModelAdmin):
        base_model = UUIDModelA
        list_filter = (PolymorphicChildModelFilter,)
        child_models = (
            (UUIDModelA, UUIDModelAChildAdmin),
            (UUIDModelB, UUIDModelAChildAdmin),
            (UUIDModelC, UUIDModelAChildAdmin),
        )

    admin.site.register(UUIDModelA, UUIDModelAAdmin)


class ProxyChildAdmin(PolymorphicChildModelAdmin):
    base_model = ProxyBase

class ProxyAdmin(PolymorphicParentModelAdmin):
    base_model = ProxyBase
    list_filter = (PolymorphicChildModelFilter,)
    child_models = (
        (ProxyA, ProxyChildAdmin),
        (ProxyB, ProxyChildAdmin),
    )

admin.site.register(ProxyBase, ProxyAdmin)