X-Git-Url: https://git.mdrn.pl/prawokultury.git/blobdiff_plain/99ff7cb43e460029b1769fc21f704b7614381cf1..497f18297d675a7a4a5ecd0824f70f066388cb9e:/menu/helpers.py?ds=sidebyside diff --git a/menu/helpers.py b/menu/helpers.py index 2a5df9d..64df72c 100755 --- a/menu/helpers.py +++ b/menu/helpers.py @@ -25,17 +25,28 @@ class ObjectMenuItem(MenuItem): If no url or title is provided, get_absolute_url and __unicode__ are used. You can also provide a reverse lookup dictionary, as in {model: field_name}. """ - def __init__(self, obj, url=None, rev_lookups=None, title=None, html_id=None): + def __init__(self, obj_lookup, url=None, rev_lookups=None, title=None, html_id=None): super(ObjectMenuItem, self).__init__(url=url, title=title, html_id=html_id) - self.obj = obj + self.obj_lookup = obj_lookup self.rev_lookups = rev_lookups + @property + def obj(self): + from migdal.models import Entry + try: + entry = Entry.objects.get(**self.obj_lookup) + except Entry.DoesNotExist: + return + if not entry.published: + return None + return entry + def get_title(self): return self.title or unicode(self.obj) @property def get_url(self): - return self.url or self.get_obj().get_absolute_url() + return self.url or self.obj.get_absolute_url() def is_active(self, request, value): if value == self.obj: