1212
1313from django .contrib .contenttypes .models import ContentType
1414try :
15- from django .utils .encoding import force_text
15+ from django .utils .encoding import force_text
1616except ImportError :
1717 from django .utils .encoding import force_unicode as force_text
1818from django .utils .text import capfirst
2424 from django .contrib .admin .options import IS_POPUP_VAR
2525from django .core .exceptions import ObjectDoesNotExist
2626
27- JS_PATH = getattr (settings , 'GENERICADMIN_JS' , 'genericadmin/js/' )
27+ JS_PATH = getattr (settings , 'GENERICADMIN_JS' , 'genericadmin/js/' )
2828
2929class BaseGenericModelAdmin (object ):
3030 class Media :
@@ -34,26 +34,26 @@ class Media:
3434 generic_fk_fields = []
3535 content_type_blacklist = []
3636 content_type_whitelist = []
37-
37+
3838 def __init__ (self , model , admin_site ):
3939 try :
4040 media = list (self .Media .js )
4141 except :
4242 media = []
4343 media .append (JS_PATH + 'genericadmin.js' )
4444 self .Media .js = tuple (media )
45-
45+
4646 self .content_type_whitelist = [s .lower () for s in self .content_type_whitelist ]
47- self .content_type_blacklist = [s .lower () for s in self .content_type_blacklist ]
48-
47+ self .content_type_blacklist = [s .lower () for s in self .content_type_blacklist ]
48+
4949 super (BaseGenericModelAdmin , self ).__init__ (model , admin_site )
5050
5151 def get_generic_field_list (self , request , prefix = '' ):
5252 if hasattr (self , 'ct_field' ) and hasattr (self , 'ct_fk_field' ):
5353 exclude = [self .ct_field , self .ct_fk_field ]
5454 else :
5555 exclude = []
56-
56+
5757 field_list = []
5858 if hasattr (self , 'generic_fk_fields' ) and self .generic_fk_fields :
5959 for fields in self .generic_fk_fields :
@@ -62,19 +62,19 @@ def get_generic_field_list(self, request, prefix=''):
6262 fields ['inline' ] = prefix != ''
6363 fields ['prefix' ] = prefix
6464 field_list .append (fields )
65- else :
65+ else :
6666 for field in self .model ._meta .virtual_fields :
6767 if isinstance (field , GenericForeignKey ) and \
6868 field .ct_field not in exclude and field .fk_field not in exclude :
6969 field_list .append ({
70- 'ct_field' : field .ct_field ,
70+ 'ct_field' : field .ct_field ,
7171 'fk_field' : field .fk_field ,
7272 'inline' : prefix != '' ,
7373 'prefix' : prefix ,
7474 })
75-
75+
7676 if hasattr (self , 'inlines' ) and len (self .inlines ) > 0 :
77- for FormSet , inline in zip (self .get_formsets (request ), self .get_inline_instances (request )):
77+ for FormSet , inline in zip (self .get_formsets_with_inlines (request ), self .get_inline_instances (request )):
7878 if hasattr (inline , 'get_generic_field_list' ):
7979 prefix = FormSet .get_default_prefix ()
8080 field_list = field_list + inline .get_generic_field_list (request , prefix )
@@ -86,13 +86,13 @@ def wrap(view):
8686 def wrapper (* args , ** kwargs ):
8787 return self .admin_site .admin_view (view )(* args , ** kwargs )
8888 return update_wrapper (wrapper , view )
89-
89+
9090 custom_urls = [
9191 url (r'^obj-data/$' , wrap (self .generic_lookup ), name = 'admin_genericadmin_obj_lookup' ),
9292 url (r'^genericadmin-init/$' , wrap (self .genericadmin_js_init ), name = 'admin_genericadmin_init' ),
9393 ]
9494 return custom_urls + super (BaseGenericModelAdmin , self ).get_urls ()
95-
95+
9696 def genericadmin_js_init (self , request ):
9797 if request .method == 'GET' :
9898 obj_dict = {}
@@ -105,7 +105,7 @@ def genericadmin_js_init(self, request):
105105 obj_dict [c .id ] = (val , params )
106106 elif val not in self .content_type_blacklist :
107107 obj_dict [c .id ] = (val , params )
108-
108+
109109 data = {
110110 'url_array' : obj_dict ,
111111 'fields' : self .get_generic_field_list (request ),
@@ -114,15 +114,15 @@ def genericadmin_js_init(self, request):
114114 resp = json .dumps (data , ensure_ascii = False )
115115 return HttpResponse (resp , content_type = 'application/json' )
116116 return HttpResponseNotAllowed (['GET' ])
117-
117+
118118 def generic_lookup (self , request ):
119119 if request .method != 'GET' :
120120 return HttpResponseNotAllowed (['GET' ])
121-
121+
122122 if 'content_type' in request .GET and 'object_id' in request .GET :
123123 content_type_id = request .GET ['content_type' ]
124124 object_id = request .GET ['object_id' ]
125-
125+
126126 obj_dict = {
127127 'content_type_id' : content_type_id ,
128128 'object_id' : object_id ,
@@ -136,20 +136,20 @@ def generic_lookup(self, request):
136136 obj_dict ["object_text" ] = capfirst (force_text (obj ))
137137 except ObjectDoesNotExist :
138138 raise Http404
139-
139+
140140 resp = json .dumps (obj_dict , ensure_ascii = False )
141141 else :
142142 resp = ''
143143 return HttpResponse (resp , content_type = 'application/json' )
144-
144+
145145
146146
147147class GenericAdminModelAdmin (BaseGenericModelAdmin , admin .ModelAdmin ):
148148 """Model admin for generic relations. """
149149
150150
151151class GenericTabularInline (BaseGenericModelAdmin , GenericTabularInline ):
152- """Model admin for generic tabular inlines. """
152+ """Model admin for generic tabular inlines. """
153153
154154
155155class GenericStackedInline (BaseGenericModelAdmin , GenericStackedInline ):
0 commit comments