Added internal reference to logos
authorThierry Florac <thierry.florac@onf.fr>
Fri, 16 Nov 2018 09:24:00 +0100
changeset 1096 a9a423fe6d02
parent 1095 6bccc6acea9d
child 1097 a0473ba5f96f
Added internal reference to logos
src/pyams_content/shared/logo/__init__.py
src/pyams_content/shared/logo/interfaces.py
src/pyams_content/shared/logo/zmi/__init__.py
src/pyams_content/shared/logo/zmi/properties.py
--- a/src/pyams_content/shared/logo/__init__.py	Fri Nov 16 08:55:51 2018 +0100
+++ b/src/pyams_content/shared/logo/__init__.py	Fri Nov 16 09:24:00 2018 +0100
@@ -12,27 +12,24 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
-
 from zope.interface import implementer, provider
 from zope.schema.fieldproperty import FieldProperty
 
-from pyams_content import _
-# import interfaces
+from pyams_content.component.links import InternalReferenceMixin
 from pyams_content.component.theme.interfaces import IThemesTarget
 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE
 from pyams_content.features.review.interfaces import IReviewTarget
-# import packages
-from pyams_content.shared.common import WfSharedContent, register_content_type, SharedContent, WfSharedContentChecker, \
-    IWfSharedContentFactory
-from pyams_content.shared.logo.interfaces import IWfLogo, LOGO_CONTENT_TYPE, LOGO_CONTENT_NAME, ILogo, IWfLogoFactory
+from pyams_content.shared.common import IWfSharedContentFactory, SharedContent, WfSharedContent, WfSharedContentChecker, \
+    register_content_type
+from pyams_content.shared.logo.interfaces import ILogo, IWfLogo, IWfLogoFactory, LOGO_CONTENT_NAME, LOGO_CONTENT_TYPE
 from pyams_file.property import FileProperty
 from pyams_utils.adapter import adapter_config
 
+from pyams_content import _
+
 
 @implementer(IWfLogo, IThemesTarget, IReviewTarget)
-class WfLogo(WfSharedContent):
+class WfLogo(WfSharedContent, InternalReferenceMixin):
     """Logo persistent class"""
 
     content_type = LOGO_CONTENT_TYPE
@@ -44,9 +41,11 @@
 
     acronym = FieldProperty(IWfLogo['acronym'])
     url = FieldProperty(IWfLogo['url'])
+    reference = FieldProperty(IWfLogo['reference'])
     image = FileProperty(IWfLogo['image'])
     monochrome_image = FileProperty(IWfLogo['monochrome_image'])
 
+
 register_content_type(WfLogo)
 
 
--- a/src/pyams_content/shared/logo/interfaces.py	Fri Nov 16 08:55:51 2018 +0100
+++ b/src/pyams_content/shared/logo/interfaces.py	Fri Nov 16 09:24:00 2018 +0100
@@ -12,21 +12,18 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
+from zope.interface import Interface
+from zope.schema import Choice, TextLine, URI
 
-from zope.interface import Interface
-from zope.schema import URI, Choice, TextLine
+from pyams_content.component.paragraph import IBaseParagraph
+from pyams_content.shared.common.interfaces import ISharedContent, ISharedTool, IWfSharedContent
+from pyams_file.schema import ImageField
+from pyams_i18n.schema import I18nTextLineField
+from pyams_sequence.interfaces import IInternalReference, IInternalReferencesList
+from pyams_sequence.schema import InternalReferenceField, InternalReferencesListField
 
 from pyams_content import _
-# import interfaces
-from pyams_content.component.paragraph import IBaseParagraph
-from pyams_content.shared.common.interfaces import ISharedTool, IWfSharedContent, ISharedContent
-# import packages
-from pyams_file.schema import ImageField
-from pyams_i18n.schema import I18nTextLineField
-from pyams_sequence.interfaces import IInternalReferencesList
-from pyams_sequence.schema import InternalReferencesListField
+
 
 LOGO_CONTENT_TYPE = 'logo'
 LOGO_CONTENT_NAME = _("Logo")
@@ -40,7 +37,7 @@
     """Logos manager factory interface"""
 
 
-class IWfLogo(IWfSharedContent):
+class IWfLogo(IWfSharedContent, IInternalReference):
     """Logo interface"""
 
     title = I18nTextLineField(title=_("Title"),
@@ -55,6 +52,12 @@
               description=_("URL used to access external resource"),
               required=False)
 
+    reference = InternalReferenceField(title=_("Internal reference"),
+                                       description=_("Internal link target reference. You can search a reference using "
+                                                     "'+' followed by internal number, of by entering text matching "
+                                                     "content title."),
+                                       required=False)
+
     image = ImageField(title=_("Image (colored)"),
                        description=_("Image data"),
                        required=True)
--- a/src/pyams_content/shared/logo/zmi/__init__.py	Fri Nov 16 08:55:51 2018 +0100
+++ b/src/pyams_content/shared/logo/zmi/__init__.py	Fri Nov 16 09:24:00 2018 +0100
@@ -12,29 +12,24 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
+from pyramid.view import view_config
+from zope.interface import Interface
 
-# import interfaces
 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION
+from pyams_content.shared.common.zmi import SharedContentAJAXAddForm, SharedContentAddForm
+from pyams_content.shared.logo import IWfLogo
 from pyams_content.shared.logo.interfaces import ILogosManager
 from pyams_i18n.interfaces import II18n
+from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.interfaces import IContentTitle
 from pyams_skin.interfaces.viewlet import IMenuHeader, IWidgetTitleViewletManager
 from pyams_skin.layer import IPyAMSLayer
+from pyams_skin.viewlet.toolbar import ToolbarAction
+from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, adapter_config
+from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.interfaces.menu import IContentManagementMenu
 from pyams_zmi.layer import IAdminLayer
 
-# import packages
-from pyams_content.shared.common.zmi import SharedContentAddForm, SharedContentAJAXAddForm
-from pyams_content.shared.logo import IWfLogo
-from pyams_pagelet.pagelet import pagelet_config
-from pyams_skin.viewlet.toolbar import ToolbarAction
-from pyams_utils.adapter import adapter_config, ContextRequestAdapter, ContextRequestViewAdapter
-from pyams_viewlet.viewlet import viewlet_config
-from pyramid.view import view_config
-from zope.interface import Interface
-
 from pyams_content import _
 
 
--- a/src/pyams_content/shared/logo/zmi/properties.py	Fri Nov 16 08:55:51 2018 +0100
+++ b/src/pyams_content/shared/logo/zmi/properties.py	Fri Nov 16 09:24:00 2018 +0100
@@ -9,27 +9,22 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
-from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
-from pyams_form.form import ajax_config
-from pyams_pagelet.pagelet import pagelet_config
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
+from z3c.form import field
 
-# import interfaces
+from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
+from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm
+from pyams_content.shared.common.zmi.summary import SharedContentDublinCoreSummary, SharedContentSummaryForm
 from pyams_content.shared.logo import IWfLogo
+from pyams_form.form import ajax_config
 from pyams_form.interfaces.form import IInnerSubForm, IInnerTabForm
+from pyams_pagelet.pagelet import pagelet_config
 from pyams_sequence.interfaces import ISequentialIdInfo
 from pyams_skin.layer import IPyAMSLayer
-
-# import packages
-from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm
-from pyams_content.shared.common.zmi.summary import SharedContentSummaryForm, SharedContentDublinCoreSummary
 from pyams_utils.adapter import adapter_config
 from pyams_zmi.form import InnerAdminEditForm
-from z3c.form import field
 
 from pyams_content import _
 
@@ -65,7 +60,7 @@
     legend = _("Main logo settings")
     fieldset_class = 'bordered no-x-margin margin-y-10'
 
-    fields = field.Fields(IWfLogo).select('acronym', 'url', 'image', 'monochrome_image')
+    fields = field.Fields(IWfLogo).select('acronym', 'url', 'reference', 'image', 'monochrome_image')
     weight = 1
 
     def get_ajax_output(self, changes):