--- a/src/pyams_content/component/links/interfaces/__init__.py Mon Sep 11 14:53:15 2017 +0200
+++ b/src/pyams_content/component/links/interfaces/__init__.py Mon Sep 11 14:54:30 2017 +0200
@@ -17,32 +17,23 @@
import re
# import interfaces
-from zope.annotation.interfaces import IAttributeAnnotatable
-from zope.container.interfaces import IContainer
+from pyams_content.component.association.interfaces import IAssociationTarget, IAssociationItem
# import packages
from pyams_i18n.schema import I18nTextLineField, I18nTextField
from pyams_sequence.schema import InternalReference, InternalReferencesList
-from pyams_utils.schema import PersistentList
-from zope.container.constraints import containers, contains
from zope.interface import Interface
from zope.schema import Choice, TextLine
from pyams_content import _
-LINK_CONTAINER_KEY = 'pyams_content.link'
-LINK_LINKS_CONTAINER_KEY = 'pyams_content.link.links'
-
-
-class IBaseLink(IAttributeAnnotatable):
+class IBaseLink(IAssociationItem):
"""Base link interface"""
- containers('.ILinkContainer')
-
- title = I18nTextLineField(title=_("Title"),
+ title = I18nTextLineField(title=_("Alternate title"),
description=_("Link title, as shown in front-office"),
- required=True)
+ required=False)
description = I18nTextField(title=_("Description"),
description=_("Link description displayed by front-office template"),
@@ -51,9 +42,6 @@
def get_editor_url(self):
"""Get URL for use in HTML editor"""
- def get_url(self, request, view_name=None):
- """Get link URL"""
-
class IInternalLink(IBaseLink):
"""Internal link interface"""
@@ -92,28 +80,13 @@
constraint=EMAIL_REGEX.match,
required=True)
-
-class ILinkContainer(IContainer):
- """Links container"""
-
- contains(IBaseLink)
-
-
-class ILinkContainerTarget(Interface):
- """Links container marker interface"""
+ address_name = TextLine(title=_("Address name"),
+ description=_("Address as displayed in address book"),
+ required=True)
-class ILinkLinksContainer(Interface):
- """Links links container interface"""
-
- links = PersistentList(title=_("Contained links"),
- description=_("List of internal or external links linked to this object"),
- value_type=Choice(vocabulary="PyAMS content links"),
- required=False)
-
-
-class ILinkLinksContainerTarget(Interface):
- """Links links container marker interface"""
+class ILinkContainerTarget(IAssociationTarget):
+ """Links container marker interface"""
class IInternalReferencesList(Interface):