Skip to content

Commit

Permalink
add url to history
Browse files Browse the repository at this point in the history
  • Loading branch information
erikvw committed Feb 23, 2019
1 parent b00a81b commit 177d889
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 6 deletions.
27 changes: 21 additions & 6 deletions edc_model_wrapper/tests/test_model_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ def test_model_wrapper(self):
"""Asserts can construct.
"""
obj = Example()
ModelWrapper(model_obj=obj, model_cls=Example, next_url_name="thenexturl")
ModelWrapper(model_obj=obj, model_cls=Example,
next_url_name="thenexturl")

def test_model_wrapper_assumes_model_cls(self):
"""Asserts can construct.
Expand Down Expand Up @@ -77,7 +78,8 @@ def test_model_wrapper_raises_on_wrong_model_not_string(self):

def test_model_wrapper_adds_kwargs_to_self(self):
obj = Example()
wrapper = ModelWrapper(model_obj=obj, next_url_name="thenexturl", erik="silly")
wrapper = ModelWrapper(
model_obj=obj, next_url_name="thenexturl", erik="silly")
self.assertEqual(wrapper.erik, "silly")

def test_model_wrapper_bool(self):
Expand Down Expand Up @@ -110,7 +112,8 @@ def test_model_wrapper_meta(self):
wrapper = ModelWrapper(
model_obj=obj, model_cls=Example, next_url_name="thenexturl"
)
self.assertEqual(wrapper._meta.label_lower, "edc_model_wrapper.example")
self.assertEqual(wrapper._meta.label_lower,
"edc_model_wrapper.example")

def test_model_wrapper_repr(self):
"""Asserts wrapper maintains _meta.
Expand Down Expand Up @@ -197,7 +200,8 @@ def test_model_wrapper_model_querystring(self):
def test_model_wrapper_model_next_url(self):
model_obj = Example(f1=1, f2=2, f3=3)
wrapper = self.wrapper_cls(model_obj=model_obj)
self.assertEqual(wrapper.next_url, "edc-model-wrapper:listboard_url,f1&f1=1")
self.assertEqual(wrapper.next_url,
"edc-model-wrapper:listboard_url,f1&f1=1")

def test_example_href_add(self):
model_obj = Example(f1=1, f2=2, f3=3)
Expand Down Expand Up @@ -235,6 +239,15 @@ def test_model_wrapper_admin_urls_change(self):
"edc_model_wrapper_admin:edc_model_wrapper_example_change",
)

def test_model_wrapper_history_url(self):
model_obj = Example(f1=1, f2=2, f3=3)
model_obj.save()
wrapper = self.wrapper_cls(model_obj=model_obj)
self.assertEqual(
wrapper.history_url,
f"/admin/edc_model_wrapper/example/{str(model_obj.id)}/history/",
)

def test_model_wrapper_fields(self):
model_obj = Example(f1=1, f2=2, f3=3)
model_obj.save()
Expand Down Expand Up @@ -284,7 +297,8 @@ def visit(self):
try:
model_obj = self.object.subjectvisit
except ObjectDoesNotExist:
model_obj = SubjectVisit(appointment=Appointment(a1=1), v1=1)
model_obj = SubjectVisit(
appointment=Appointment(a1=1), v1=1)
return SubjectVisitModelWrapper1(model_obj=model_obj)

class AppointmentModelWrapper2(ModelWrapper):
Expand Down Expand Up @@ -316,7 +330,8 @@ def test_wrapper_visit(self):
def test_wrapper_appointment_href(self):
model_obj = Appointment.objects.create(a1=1)
wrapper = self.appointment_model_wrapper1_cls(model_obj=model_obj)
self.assertIn("next=edc-model-wrapper:listboard_url,a1&a1=1", wrapper.href)
self.assertIn(
"next=edc-model-wrapper:listboard_url,a1&a1=1", wrapper.href)

def test_wrapper_visit_href(self):
model_obj = Appointment.objects.create(a1=1)
Expand Down
8 changes: 8 additions & 0 deletions edc_model_wrapper/wrappers/model_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.urls.base import reverse
from django.urls.exceptions import NoReverseMatch
from urllib import parse

Expand Down Expand Up @@ -185,3 +186,10 @@ def _raise_if_model_obj_is_wrapped(self):
f"Model instance is already wrapped. "
f"Got wrapped={self.object.wrapped}. See {repr(self)}"
)

@property
def history_url(self):
admin = self.admin_url_name.split(":")[0]
return reverse(
f"{admin}:{self.object._meta.app_label}_{self.object._meta.model_name}_history",
args=(str(self.object.id), ))

0 comments on commit 177d889

Please sign in to comment.