15
15
from django .utils .text import capfirst
16
16
from django .utils .translation import ugettext as _
17
17
18
- USER_NATURAL_KEY = tuple (
19
- key .lower () for key in settings .AUTH_USER_MODEL .split ('.' , 1 ))
18
+ USER_NATURAL_KEY = tuple (key .lower () for key in settings .AUTH_USER_MODEL .split ("." , 1 ))
20
19
21
- SIMPLE_HISTORY_EDIT = getattr (settings , ' SIMPLE_HISTORY_EDIT' , False )
20
+ SIMPLE_HISTORY_EDIT = getattr (settings , " SIMPLE_HISTORY_EDIT" , False )
22
21
23
22
24
23
class SimpleHistoryAdmin (admin .ModelAdmin ):
@@ -32,9 +31,11 @@ def get_urls(self):
32
31
opts = self .model ._meta
33
32
info = opts .app_label , opts .model_name
34
33
history_urls = [
35
- url ("^([^/]+)/history/([^/]+)/$" ,
34
+ url (
35
+ "^([^/]+)/history/([^/]+)/$" ,
36
36
admin_site .admin_view (self .history_form_view ),
37
- name = '%s_%s_simple_history' % info ),
37
+ name = "%s_%s_simple_history" % info ,
38
+ )
38
39
]
39
40
return history_urls + urls
40
41
@@ -54,7 +55,7 @@ def history_view(self, request, object_id, extra_context=None):
54
55
obj = self .get_queryset (request ).get (** {pk_name : object_id })
55
56
except model .DoesNotExist :
56
57
try :
57
- obj = action_list .latest (' history_date' ).instance
58
+ obj = action_list .latest (" history_date" ).instance
58
59
except action_list .model .DoesNotExist :
59
60
raise http .Http404
60
61
@@ -66,57 +67,55 @@ def history_view(self, request, object_id, extra_context=None):
66
67
value_for_entry = getattr (self , history_list_entry , None )
67
68
if value_for_entry and callable (value_for_entry ):
68
69
for list_entry in action_list :
69
- setattr (list_entry , history_list_entry ,
70
- value_for_entry (list_entry ))
70
+ setattr (list_entry , history_list_entry , value_for_entry (list_entry ))
71
71
72
- content_type = ContentType .objects .get_by_natural_key (
73
- * USER_NATURAL_KEY )
74
- admin_user_view = 'admin:%s_%s_change' % (content_type .app_label ,
75
- content_type .model )
72
+ content_type = ContentType .objects .get_by_natural_key (* USER_NATURAL_KEY )
73
+ admin_user_view = "admin:%s_%s_change" % (
74
+ content_type .app_label ,
75
+ content_type .model ,
76
+ )
76
77
context = {
77
- ' title' : _ (' Change history: %s' ) % force_text (obj ),
78
- ' action_list' : action_list ,
79
- ' module_name' : capfirst (force_text (opts .verbose_name_plural )),
80
- ' object' : obj ,
81
- ' root_path' : getattr (self .admin_site , ' root_path' , None ),
82
- ' app_label' : app_label ,
83
- ' opts' : opts ,
84
- ' admin_user_view' : admin_user_view ,
85
- ' history_list_display' : history_list_display ,
78
+ " title" : _ (" Change history: %s" ) % force_text (obj ),
79
+ " action_list" : action_list ,
80
+ " module_name" : capfirst (force_text (opts .verbose_name_plural )),
81
+ " object" : obj ,
82
+ " root_path" : getattr (self .admin_site , " root_path" , None ),
83
+ " app_label" : app_label ,
84
+ " opts" : opts ,
85
+ " admin_user_view" : admin_user_view ,
86
+ " history_list_display" : history_list_display ,
86
87
}
87
88
context .update (self .admin_site .each_context (request ))
88
89
context .update (extra_context or {})
89
90
extra_kwargs = {}
90
- return render (request , self .object_history_template , context ,
91
- ** extra_kwargs )
91
+ return render (request , self .object_history_template , context , ** extra_kwargs )
92
92
93
93
def response_change (self , request , obj ):
94
- if ' _change_history' in request .POST and SIMPLE_HISTORY_EDIT :
94
+ if " _change_history" in request .POST and SIMPLE_HISTORY_EDIT :
95
95
verbose_name = obj ._meta .verbose_name
96
96
97
97
msg = _ ('The %(name)s "%(obj)s" was changed successfully.' ) % {
98
- ' name' : force_text (verbose_name ),
99
- ' obj' : force_text (obj )
98
+ " name" : force_text (verbose_name ),
99
+ " obj" : force_text (obj ),
100
100
}
101
101
102
102
self .message_user (
103
- request , "%s - %s" % (msg , _ ("You may edit it again below" )))
103
+ request , "%s - %s" % (msg , _ ("You may edit it again below" ))
104
+ )
104
105
105
106
return http .HttpResponseRedirect (request .path )
106
107
else :
107
- return super (SimpleHistoryAdmin , self ).response_change (
108
- request , obj )
108
+ return super (SimpleHistoryAdmin , self ).response_change (request , obj )
109
109
110
110
def history_form_view (self , request , object_id , version_id ):
111
111
request .current_app = self .admin_site .name
112
112
original_opts = self .model ._meta
113
113
model = getattr (
114
- self .model ,
115
- self .model ._meta .simple_history_manager_attribute ).model
116
- obj = get_object_or_404 (model , ** {
117
- original_opts .pk .attname : object_id ,
118
- 'history_id' : version_id ,
119
- }).instance
114
+ self .model , self .model ._meta .simple_history_manager_attribute
115
+ ).model
116
+ obj = get_object_or_404 (
117
+ model , ** {original_opts .pk .attname : object_id , "history_id" : version_id }
118
+ ).instance
120
119
obj ._state .adding = False
121
120
122
121
if not self .has_change_permission (request , obj ):
@@ -127,21 +126,23 @@ def history_form_view(self, request, object_id, version_id):
127
126
else :
128
127
change_history = False
129
128
130
- if ' _change_history' in request .POST and SIMPLE_HISTORY_EDIT :
129
+ if " _change_history" in request .POST and SIMPLE_HISTORY_EDIT :
131
130
obj = obj .history .get (pk = version_id ).instance
132
131
133
132
formsets = []
134
133
form_class = self .get_form (request , obj )
135
- if request .method == ' POST' :
134
+ if request .method == " POST" :
136
135
form = form_class (request .POST , request .FILES , instance = obj )
137
136
if form .is_valid ():
138
137
new_object = self .save_form (request , form , change = True )
139
138
self .save_model (request , new_object , form , change = True )
140
139
form .save_m2m ()
141
140
142
- self .log_change (request , new_object ,
143
- self .construct_change_message (
144
- request , form , formsets ))
141
+ self .log_change (
142
+ request ,
143
+ new_object ,
144
+ self .construct_change_message (request , form , formsets ),
145
+ )
145
146
return self .response_change (request , new_object )
146
147
147
148
else :
@@ -158,42 +159,39 @@ def history_form_view(self, request, object_id, version_id):
158
159
model_name = original_opts .model_name
159
160
url_triplet = self .admin_site .name , original_opts .app_label , model_name
160
161
context = {
161
- 'title' : _ ('Revert %s' ) % force_text (obj ),
162
- 'adminform' : admin_form ,
163
- 'object_id' : object_id ,
164
- 'original' : obj ,
165
- 'is_popup' : False ,
166
- 'media' : mark_safe (self .media + admin_form .media ),
167
- 'errors' : helpers .AdminErrorList (form , formsets ),
168
- 'app_label' : original_opts .app_label ,
169
- 'original_opts' : original_opts ,
170
- 'changelist_url' : reverse ('%s:%s_%s_changelist' % url_triplet ),
171
- 'change_url' : reverse ('%s:%s_%s_change' % url_triplet ,
172
- args = (obj .pk ,)),
173
- 'history_url' : reverse ('%s:%s_%s_history' % url_triplet ,
174
- args = (obj .pk ,)),
175
- 'change_history' : change_history ,
176
-
162
+ "title" : _ ("Revert %s" ) % force_text (obj ),
163
+ "adminform" : admin_form ,
164
+ "object_id" : object_id ,
165
+ "original" : obj ,
166
+ "is_popup" : False ,
167
+ "media" : mark_safe (self .media + admin_form .media ),
168
+ "errors" : helpers .AdminErrorList (form , formsets ),
169
+ "app_label" : original_opts .app_label ,
170
+ "original_opts" : original_opts ,
171
+ "changelist_url" : reverse ("%s:%s_%s_changelist" % url_triplet ),
172
+ "change_url" : reverse ("%s:%s_%s_change" % url_triplet , args = (obj .pk ,)),
173
+ "history_url" : reverse ("%s:%s_%s_history" % url_triplet , args = (obj .pk ,)),
174
+ "change_history" : change_history ,
177
175
# Context variables copied from render_change_form
178
- 'add' : False ,
179
- 'change' : True ,
180
- 'has_add_permission' : self .has_add_permission (request ),
181
- 'has_change_permission' : self .has_change_permission (request , obj ),
182
- 'has_delete_permission' : self .has_delete_permission (request , obj ),
183
- 'has_file_field' : True ,
184
- 'has_absolute_url' : False ,
185
- 'form_url' : '' ,
186
- 'opts' : model ._meta ,
187
- 'content_type_id' : ContentType .objects .get_for_model (
188
- self .model ).id ,
189
- 'save_as' : self .save_as ,
190
- 'save_on_top' : self .save_on_top ,
191
- 'root_path' : getattr (self .admin_site , 'root_path' , None ),
176
+ "add" : False ,
177
+ "change" : True ,
178
+ "has_add_permission" : self .has_add_permission (request ),
179
+ "has_change_permission" : self .has_change_permission (request , obj ),
180
+ "has_delete_permission" : self .has_delete_permission (request , obj ),
181
+ "has_file_field" : True ,
182
+ "has_absolute_url" : False ,
183
+ "form_url" : "" ,
184
+ "opts" : model ._meta ,
185
+ "content_type_id" : ContentType .objects .get_for_model (self .model ).id ,
186
+ "save_as" : self .save_as ,
187
+ "save_on_top" : self .save_on_top ,
188
+ "root_path" : getattr (self .admin_site , "root_path" , None ),
192
189
}
193
190
context .update (self .admin_site .each_context (request ))
194
191
extra_kwargs = {}
195
- return render (request , self .object_history_form_template , context ,
196
- ** extra_kwargs )
192
+ return render (
193
+ request , self .object_history_form_template , context , ** extra_kwargs
194
+ )
197
195
198
196
def save_model (self , request , obj , form , change ):
199
197
"""Set special model attribute to user for reference after save"""
0 commit comments