Skip to content

Commit 1ca167c

Browse files
committed
Merge pull request #134 from treyhunner/code-quality
Some cleanup
2 parents bb65c1c + 4e14fb5 commit 1ca167c

File tree

6 files changed

+30
-48
lines changed

6 files changed

+30
-48
lines changed

runtests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def main():
5252
django.setup()
5353
try:
5454
from django.test.runner import DiscoverRunner
55-
except:
55+
except ImportError:
5656
from django.test.simple import DjangoTestSuiteRunner
5757
failures = DjangoTestSuiteRunner(failfast=False).run_tests(['tests'])
5858
else:

simple_history/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def register(model, app=None, manager_name='history', **records_config):
1515
`HistoricalManager` instance directly to `model`.
1616
"""
1717
from . import models
18-
if not model._meta.db_table in models.registered_models:
18+
if model._meta.db_table not in models.registered_models:
1919
records = models.HistoricalRecords(**records_config)
2020
records.manager_name = manager_name
2121
records.module = app and ("%s.models" % app) or model.__module__

simple_history/admin.py

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
from __future__ import unicode_literals
22

33
from django.core.exceptions import PermissionDenied
4-
try:
5-
from django.conf.urls import patterns, url
6-
except ImportError:
7-
from django.conf.urls.defaults import patterns, url
4+
from django.conf.urls import patterns, url
85
from django.contrib import admin
96
from django.contrib.admin import helpers
107
from django.contrib.contenttypes.models import ContentType
@@ -78,18 +75,14 @@ def history_view(self, request, object_id, extra_context=None):
7875
dictionary=context, current_app=self.admin_site.name)
7976

8077
def history_form_view(self, request, object_id, version_id):
81-
original_model = self.model
82-
original_opts = original_model._meta
83-
history = getattr(self.model,
84-
self.model._meta.simple_history_manager_attribute)
85-
model = history.model
86-
opts = model._meta
87-
pk_name = original_opts.pk.attname
88-
record = get_object_or_404(model, **{
89-
pk_name: object_id,
78+
original_opts = self.model._meta
79+
model = getattr(
80+
self.model,
81+
self.model._meta.simple_history_manager_attribute).model
82+
obj = get_object_or_404(model, **{
83+
original_opts.pk.attname: object_id,
9084
'history_id': version_id,
91-
})
92-
obj = record.instance
85+
}).instance
9386
obj._state.adding = False
9487

9588
if not self.has_change_permission(request, obj):
@@ -100,19 +93,13 @@ def history_form_view(self, request, object_id, version_id):
10093
if request.method == 'POST':
10194
form = form_class(request.POST, request.FILES, instance=obj)
10295
if form.is_valid():
103-
form_validated = True
10496
new_object = self.save_form(request, form, change=True)
105-
else:
106-
form_validated = False
107-
new_object = obj
108-
109-
if form_validated:
11097
self.save_model(request, new_object, form, change=True)
11198
form.save_m2m()
11299

113-
change_message = self.construct_change_message(request, form,
114-
formsets)
115-
self.log_change(request, new_object, change_message)
100+
self.log_change(request, new_object,
101+
self.construct_change_message(
102+
request, form, formsets))
116103
return self.response_change(request, new_object)
117104

118105
else:
@@ -125,23 +112,21 @@ def history_form_view(self, request, object_id, version_id):
125112
self.get_readonly_fields(request, obj),
126113
model_admin=self,
127114
)
128-
media = self.media + admin_form.media
129115

130116
try:
131-
model_name = original_opts.module_name
132-
except AttributeError:
133117
model_name = original_opts.model_name
118+
except AttributeError:
119+
model_name = original_opts.module_name
134120
url_triplet = self.admin_site.name, original_opts.app_label, model_name
135-
content_type_id = ContentType.objects.get_for_model(self.model).id
136121
context = {
137122
'title': _('Revert %s') % force_text(obj),
138123
'adminform': admin_form,
139124
'object_id': object_id,
140125
'original': obj,
141126
'is_popup': False,
142-
'media': mark_safe(media),
127+
'media': mark_safe(self.media + admin_form.media),
143128
'errors': helpers.AdminErrorList(form, formsets),
144-
'app_label': opts.app_label,
129+
'app_label': model._meta.app_label,
145130
'original_opts': original_opts,
146131
'changelist_url': reverse('%s:%s_%s_changelist' % url_triplet),
147132
'change_url': reverse('%s:%s_%s_change' % url_triplet,
@@ -157,8 +142,8 @@ def history_form_view(self, request, object_id, version_id):
157142
'has_file_field': True,
158143
'has_absolute_url': False,
159144
'form_url': '',
160-
'opts': opts,
161-
'content_type_id': content_type_id,
145+
'opts': model._meta,
146+
'content_type_id': ContentType.objects.get_for_model(self.model).id,
162147
'save_as': self.save_as,
163148
'save_on_top': self.save_on_top,
164149
'root_path': getattr(self.admin_site, 'root_path', None),

simple_history/manager.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ def get_queryset(self):
3131
return qs
3232

3333
if isinstance(self.instance._meta.pk, models.OneToOneField):
34-
filter = {self.instance._meta.pk.name + "_id": self.instance.pk}
34+
key_name = self.instance._meta.pk.name + "_id"
3535
else:
36-
filter = {self.instance._meta.pk.name: self.instance.pk}
37-
return self.get_super_queryset().filter(**filter)
36+
key_name = self.instance._meta.pk.name
37+
return self.get_super_queryset().filter(**{key_name: self.instance.pk})
3838

3939
get_query_set = get_queryset
4040

@@ -53,7 +53,7 @@ def most_recent(self):
5353
tmp.append(field.name)
5454
fields = tuple(tmp)
5555
try:
56-
values = self.values_list(*fields)[0]
56+
values = self.get_queryset().values_list(*fields)[0]
5757
except IndexError:
5858
raise self.instance.DoesNotExist("%s has no historical record." %
5959
self.instance._meta.object_name)
@@ -68,7 +68,7 @@ def as_of(self, date):
6868
"""
6969
if not self.instance:
7070
return self._as_of_set(date)
71-
queryset = self.filter(history_date__lte=date)
71+
queryset = self.get_queryset().filter(history_date__lte=date)
7272
try:
7373
history_obj = queryset[0]
7474
except IndexError:
@@ -84,7 +84,7 @@ def as_of(self, date):
8484
def _as_of_set(self, date):
8585
model = type(self.model().instance) # a bit of a hack to get the model
8686
pk_attr = model._meta.pk.name
87-
queryset = self.filter(history_date__lte=date)
87+
queryset = self.get_queryset().filter(history_date__lte=date)
8888
for original_pk in set(
8989
queryset.order_by().values_list(pk_attr, flat=True)):
9090
changes = queryset.filter(**{pk_attr: original_pk})

simple_history/models.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
except ImportError:
88
apps = None
99
from django.db import models, router
10+
from django.db.models import loading
1011
from django.db.models.fields.related import RelatedField
1112
from django.db.models.related import RelatedObject
1213
from django.conf import settings
@@ -99,7 +100,7 @@ def create_history_model(self, model):
99100
elif app_module != self.module:
100101
if apps is None:
101102
# has meta options with app_label
102-
app = models.get_app(model._meta.app_label)
103+
app = loading.get_app(model._meta.app_label)
103104
attrs['__module__'] = app.__name__ # full dotted name
104105
else:
105106
# Abuse an internal API because the app registry is loading.
@@ -200,14 +201,14 @@ def post_save(self, instance, created, **kwargs):
200201
def post_delete(self, instance, **kwargs):
201202
self.create_historical_record(instance, '-')
202203

203-
def create_historical_record(self, instance, type):
204+
def create_historical_record(self, instance, history_type):
204205
history_date = getattr(instance, '_history_date', now())
205206
history_user = self.get_history_user(instance)
206207
manager = getattr(instance, self.manager_name)
207208
attrs = {}
208209
for field in instance._meta.fields:
209210
attrs[field.attname] = getattr(instance, field.attname)
210-
manager.create(history_date=history_date, history_type=type,
211+
manager.create(history_date=history_date, history_type=history_type,
211212
history_user=history_user, **attrs)
212213

213214
def get_history_user(self, instance):

simple_history/tests/urls.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
from __future__ import unicode_literals
22

3-
try:
4-
from django.conf.urls import include, url
5-
except ImportError:
6-
from django.conf.urls.defaults import include, url
7-
3+
from django.conf.urls import include, url
84
from django.contrib import admin
95
from . import other_admin
106

0 commit comments

Comments
 (0)