diff -r 6b6a884fa28a -r 85f4724e0c1d src/pyams_content/features/redirect/zmi/container.py --- a/src/pyams_content/features/redirect/zmi/container.py Mon Nov 12 16:56:15 2018 +0100 +++ b/src/pyams_content/features/redirect/zmi/container.py Tue Nov 13 16:42:27 2018 +0100 @@ -12,49 +12,45 @@ __docformat__ = 'restructuredtext' - -# import standard library import json -# import interfaces -from pyams_content.features.redirect.interfaces import IRedirectionManagerTarget, IRedirectionManager +from pyramid.decorator import reify +from pyramid.exceptions import NotFound +from pyramid.view import view_config +from z3c.form import button, field +from z3c.table.column import GetAttrColumn +from z3c.table.interfaces import IColumn, IValues +from zope.interface import Interface +from zope.schema import Bool, TextLine + +from pyams_content.features.redirect.interfaces import IRedirectionManager, IRedirectionManagerTarget from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION +from pyams_content.zmi import pyams_content +from pyams_form.form import AJAXAddForm from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager +from pyams_form.schema import CloseButton from pyams_i18n.interfaces import II18n +from pyams_pagelet.pagelet import pagelet_config from pyams_sequence.interfaces import ISequentialIdInfo -from pyams_skin.interfaces import IPageHeader, IUserSkinnable, IContentHelp +from pyams_skin.help import ContentHelp +from pyams_skin.interfaces import IContentHelp, IPageHeader, IUserSkinnable from pyams_skin.interfaces.viewlet import IToolbarViewletManager from pyams_skin.layer import IPyAMSLayer -from pyams_zmi.interfaces.menu import ISiteManagementMenu -from pyams_zmi.layer import IAdminLayer -from z3c.table.interfaces import IValues, IColumn - -# import packages -from pyams_content.zmi import pyams_content -from pyams_form.form import AJAXAddForm -from pyams_form.schema import CloseButton -from pyams_pagelet.pagelet import pagelet_config -from pyams_skin.help import ContentHelp from pyams_skin.page import DefaultPageHeaderAdapter from pyams_skin.skin import apply_skin -from pyams_skin.table import BaseTable, SorterColumn, TrashColumn, I18nColumn, AttributeSwitcherColumn +from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, SorterColumn, TrashColumn from pyams_skin.viewlet.menu import MenuItem from pyams_skin.viewlet.toolbar import ToolbarAction from pyams_template.template import template_config -from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter +from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config from pyams_utils.fanstatic import get_resource_path from pyams_utils.request import copy_request from pyams_utils.url import absolute_url -from pyams_viewlet.viewlet import viewlet_config, Viewlet +from pyams_viewlet.viewlet import Viewlet, viewlet_config from pyams_zmi.form import AdminDialogAddForm +from pyams_zmi.interfaces.menu import ISiteManagementMenu +from pyams_zmi.layer import IAdminLayer from pyams_zmi.view import ContainerAdminView -from pyramid.decorator import reify -from pyramid.exceptions import NotFound -from pyramid.view import view_config -from z3c.form import field, button -from z3c.table.column import GetAttrColumn -from zope.interface import Interface -from zope.schema import TextLine, Bool from pyams_content import _ @@ -224,8 +220,11 @@ def getValue(self, obj): if obj.reference: target = obj.target - return '{0} ({1})'.format(II18n(target).query_attribute('title', request=self.request), - ISequentialIdInfo(target).get_short_oid()) + if target is not None: + return '{0} ({1})'.format(II18n(target).query_attribute('title', request=self.request), + ISequentialIdInfo(target).get_short_oid()) + else: + return self.request.localizer.translate(_("Internal reference: {0} (not found)")).format(obj.reference) else: return super(RedirectionsContainerTargetColumn, self).getValue(obj)