本文整理汇总了Python中zope.dublincore.interfaces.IDCDescriptiveProperties类的典型用法代码示例。如果您正苦于以下问题:Python IDCDescriptiveProperties类的具体用法?Python IDCDescriptiveProperties怎么用?Python IDCDescriptiveProperties使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IDCDescriptiveProperties类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_title_from_context
def get_title_from_context(context):
title = None
if IAlchemistContent.providedBy(context):
if IDCDescriptiveProperties.providedBy(context):
title = context.title
else:
props = IDCDescriptiveProperties(context, None)
if props is not None:
title = props.title
else:
title = context.short_name
elif IAlchemistContainer.providedBy(context):
domain_model = context._class
try:
descriptor = queryModelDescriptor(domain_model)
except:
descriptor = None
name = ""
if descriptor:
name = getattr(descriptor, 'container_name', None)
if name is None:
name = getattr(descriptor, 'display_name', None)
if not name:
name = getattr(context, '__name__', None)
title = name
elif ILocation.providedBy(context) and \
IDCDescriptiveProperties.providedBy(context):
title = context.title
return title
示例2: _get_title_from_context
def _get_title_from_context(context):
title = None
if IAlchemistContent.providedBy(context):
if IDCDescriptiveProperties.providedBy(context):
title = context.title
else:
props = IDCDescriptiveProperties(context, None)
if props is not None:
title = props.title
else:
''' !+
AttributeError: 'GroupAddress' object has no attribute 'short_name': File "/home/undesa/bungeni/cap_installs/bungeni_install/bungeni/releases/20100305100101/src/bungeni.main/bungeni/ui/viewlets/navigation.py", line 59, in _get_title_from_context
#title = context.short_name
So, we temporarily default the above to the context.__class__.__name__:
'''
title = getattr(context, "short_name",
context.__class__.__name__)
elif IAlchemistContainer.providedBy(context):
domain_model = context._class
try:
descriptor = queryModelDescriptor(domain_model)
except:
descriptor = None
name = ""
if descriptor:
name = getattr(descriptor, 'container_name', None)
if name is None:
name = getattr(descriptor, 'display_name', None)
if not name:
name = getattr(context, '__name__', None)
title = name
elif ILocation.providedBy(context) and \
IDCDescriptiveProperties.providedBy(context):
title = context.title
return title
示例3: changeTitle
def changeTitle(self):
"""Given a sequence of tuples of old, new ids we rename"""
request = self.request
id = request.get("retitle_id")
new = request.get("new_value")
item = self.context[id]
dc = IDCDescriptiveProperties(item)
dc.title = new
notify(ObjectModifiedEvent(item, Attributes(IZopeDublinCore, 'title')))
示例4: add_container_menu_items
def add_container_menu_items(self, context, container):
request = self.request
_url = url.absoluteURL(container, request)
if IReadContainer.providedBy(container):
#XXX should be the same in all containers ?
container=proxy.removeSecurityProxy(container)
for name, item in container.items():
if context is None:
selected = False
else:
selected = url.same_path_names(context.__name__, name)
item = proxy.removeSecurityProxy(item)
if IDCDescriptiveProperties.providedBy(item):
title = item.title
else:
props = IDCDescriptiveProperties(item)
title = props.title
# only items with valid title
if title is not None:
self.items.append(url.get_menu_item_descriptor(
title, selected, _url, name))
default_view_name = queryDefaultViewName(container, self.request)
default_view = component.queryMultiAdapter(
(container, self.request), name=default_view_name)
if hasattr(default_view, "title") and default_view.title is not None:
self.items.insert(0, url.get_menu_item_descriptor(
default_view.title,
sameProxiedObjects(container, self.context),
_url))
示例5: form_name
def form_name(self):
if IVersion.providedBy(self.context):
context = self.context.head
else:
context = self.context
props = IDCDescriptiveProperties.providedBy(context) and context or IDCDescriptiveProperties(context)
if self.is_translation:
language = get_language_by_name(self.context.language)["name"]
return _(
u"edit_translation_legend",
default=u"Editing $language translation of '$title'",
mapping={"title": translate(props.title, context=self.request), "language": language},
)
elif IVersion.providedBy(self.context):
return _(
u"edit_version_legend",
default=u'Editing "$title" (version $version)',
mapping={"title": translate(props.title, context=self.request), "version": self.context.version_id},
)
return _(
u"edit_item_legend",
default=u'Editing "$title"',
mapping={"title": translate(props.title, context=self.request)},
)
示例6: _get_title_from_context
def _get_title_from_context(context):
title = None
if IAlchemistContent.providedBy(context):
if IDCDescriptiveProperties.providedBy(context):
title = context.title
else:
props = IDCDescriptiveProperties(context, None)
if props is not None:
title = props.title
else:
""" !+
AttributeError: 'GroupAddress' object has no attribute 'short_name': File "/home/undesa/bungeni/cap_installs/bungeni_install/bungeni/releases/20100305100101/src/bungeni.main/bungeni/ui/viewlets/navigation.py", line 59, in _get_title_from_context
#title = context.short_name
So, we temporarily default the above to the context.__class__.__name__:
"""
title = getattr(context, "title", context.__class__.__name__)
elif IWorkspaceContainer.providedBy(context):
# WorkspaceContainer._class is not set (and not unique) and it breaks the
# connection between Container -> ContentClass
title = context.__name__
elif IAlchemistContainer.providedBy(context):
domain_model = context._class
try:
descriptor = utils.get_descriptor(domain_model)
except KeyError, e:
log.warn("TYPE_INFO: no descriptor for model %s " "[container=%s] [error=%s]" % (domain_model, context, e))
descriptor = None
name = ""
if descriptor:
name = getattr(descriptor, "container_name", None)
if name is None:
name = getattr(descriptor, "display_name", None)
if not name:
name = getattr(context, "__name__", None)
title = name
示例7: get_sitting_items
def get_sitting_items(sitting, request, include_actions=False):
items = []
if sitting.status in get_states("groupsitting", keys=["draft_agenda", "published_agenda"]):
order = "planned_order"
else:
order = "real_order"
schedulings = map(removeSecurityProxy, sitting.items.batch(order_by=order, limit=None))
site_url = url.absoluteURL(getSite(), request)
for scheduling in schedulings:
item = ProxyFactory(location_wrapped(scheduling.item, sitting))
props = IDCDescriptiveProperties.providedBy(item) and item or IDCDescriptiveProperties(item)
discussions = tuple(scheduling.discussions.values())
discussion = discussions and discussions[0] or None
truncated_discussion = None
if (discussion is not None) and (discussion.body_text is not None):
# truncate discussion to first hundred characters
t_discussion = discussion.body_text[0:100]
try:
# truncate discussion to first two lines
index = t_discussion.index("<br>")
index2 = t_discussion.index("<br>", index + 4)
truncated_discussion = t_discussion[0:index2] + "..."
except ValueError:
truncated_discussion = t_discussion + "..."
info = IWorkflowInfo(item, None)
state_title = info.workflow().workflow.states[item.status].title
record = {
"title": props.title,
"description": props.description,
"name": stringKey(scheduling),
"status": item.status,
"type": item.type.capitalize,
"t": item.type,
"state_title": state_title,
#'category_id': scheduling.category_id,
#'category': scheduling.category,
"discussion": discussion,
"truncated_discussion": truncated_discussion,
"delete_url": "%s/delete" % url.absoluteURL(scheduling, request),
"url": url.set_url_context(site_url + ("/business/%ss/obj-%s" % (item.type, item.parliamentary_item_id))),
}
if include_actions:
record["actions"] = get_scheduling_actions(scheduling, request)
record["workflow"] = get_workflow_actions(item, request)
discussion_actions = get_discussion_actions(discussion, request)
if discussion_actions:
assert len(discussion_actions) == 1
record["discussion_action"] = discussion_actions[0]
else:
record["discussion_action"] = None
items.append(record)
return items
示例8: get_sitting_items
def get_sitting_items(sitting, request, include_actions=False):
items = []
if sitting.status in IWorkflow(sitting).get_state_ids(keys=["draft_agenda", "published_agenda"]):
order = "planned_order"
else:
order = "real_order"
schedulings = map(removeSecurityProxy, sitting.items.batch(order_by=order, limit=None))
for scheduling in schedulings:
item = ProxyFactory(location_wrapped(scheduling.item, sitting))
props = IDCDescriptiveProperties.providedBy(item) and item or IDCDescriptiveProperties(item)
discussions = tuple(scheduling.discussions.values())
discussion = discussions and discussions[0] or None
truncated_discussion = None
if (discussion is not None) and (discussion.body is not None):
# truncate discussion to first hundred characters
t_discussion = discussion.body[0:100]
try:
# truncate discussion to first two lines
index = t_discussion.index("<br>")
index2 = t_discussion.index("<br>", index + 4)
truncated_discussion = t_discussion[0:index2] + "..."
except ValueError:
truncated_discussion = t_discussion + "..."
state_title = IWorkflow(item).get_state(item.status).title
item = removeSecurityProxy(item)
record = {
"title": props.title,
"description": props.description,
"name": stringKey(scheduling),
"status": item.status,
"type": item.type.capitalize,
"state_title": state_title,
"heading": True if item.type == "heading" else False,
# "category_id": scheduling.category_id,
# "category": scheduling.category,
"discussion": discussion,
"truncated_discussion": truncated_discussion,
"delete_url": "%s/delete" % url.absoluteURL(scheduling, request),
"url": url.absoluteURL(item, request),
}
if include_actions:
record["actions"] = get_scheduling_actions(scheduling, request)
record["workflow"] = get_workflow_actions(item, request)
discussion_actions = get_discussion_actions(discussion, request)
if discussion_actions:
assert len(discussion_actions) == 1
record["discussion_action"] = discussion_actions[0]
else:
record["discussion_action"] = None
items.append(record)
return items
示例9: add_container_menu_items
def add_container_menu_items(self, context, container):
request = self.request
# add a menu item for each user workspace, if we are in an
# IWorkspaceSectionLayer
# !+ if user is logged in or if request.layer_data
if interfaces.IWorkspaceSectionLayer.providedBy(request):
try:
workspaces = IAnnotations(request)["layer_data"].get(
"workspaces")
except:
workspaces = []
log.info("%s got user workspaces: %s" % (self, workspaces))
base_url_path = "/workspace"
for workspace in workspaces:
log.info("appending menu item for user workspace: %s" %
str(workspace))
self.items.append(
url.get_menu_item_descriptor(
workspace.full_name,
pos_action_in_url(
"/workspace/obj-%s" % workspace.group_id,
request.getURL()), base_url_path,
"obj-%s" % workspace.group_id))
_url = url.absoluteURL(container, request)
if IReadContainer.providedBy(container):
#XXX should be the same in all containers ?
container = proxy.removeSecurityProxy(container)
for name, item in container.items():
if context is None:
selected = False
else:
selected = url.same_path_names(context.__name__, name)
item = proxy.removeSecurityProxy(item)
if IDCDescriptiveProperties.providedBy(item):
title = item.title
else:
props = IDCDescriptiveProperties(item)
title = props.title
# only items with valid title
if title is not None:
self.items.append(
url.get_menu_item_descriptor(title, selected, _url,
name))
default_view_name = queryDefaultViewName(container, self.request)
default_view = component.queryMultiAdapter((container, self.request),
name=default_view_name)
if hasattr(default_view, "title") and default_view.title is not None:
self.items.insert(
0,
url.get_menu_item_descriptor(
default_view.title,
sameProxiedObjects(container, self.context), _url))
示例10: update
def update(self):
self.path = self._get_path(self.context)
# if the view is a location, append this to the breadcrumbs
if ILocation.providedBy(self.__parent__) and \
IDCDescriptiveProperties.providedBy(self.__parent__):
self.path.append({
"name": self.__parent__.title,
"url": None,
})
self.chamber = get_chamber_for_context(self.context)
示例11: update
def update(self):
self.path = self._get_path(self.context)
# if the view is a location, append this to the breadcrumbs
if ILocation.providedBy(self.__parent__) and IDCDescriptiveProperties.providedBy(self.__parent__):
self.path.append({"name": self.__parent__.title, "url": None})
try:
self.user_name = self.request.principal.login
except:
pass
示例12: get_sitting_items
def get_sitting_items(sitting, request, include_actions=False):
items = []
if sitting.status in get_states("groupsitting",
keys=["draft_agenda", "published_agenda"]):
order = "planned_order"
else:
order = "real_order"
schedulings = map(
removeSecurityProxy,
sitting.items.batch(order_by=order, limit=None))
site_url = url.absoluteURL(getSite(), request)
for scheduling in schedulings:
item = ProxyFactory(location_wrapped(scheduling.item, sitting))
props = IDCDescriptiveProperties.providedBy(item) and item or \
IDCDescriptiveProperties(item)
discussions = tuple(scheduling.discussions.values())
discussion = discussions and discussions[0] or None
info = IWorkflowInfo(item, None)
state_title = info.workflow().workflow.states[item.status].title
record = {
'title': props.title,
'description': props.description,
'name': stringKey(scheduling),
'status': item.status,
'type': item.type.capitalize,
't':item.type,
'state_title': state_title,
#'category_id': scheduling.category_id,
#'category': scheduling.category,
'discussion': discussion,
'delete_url': "%s/delete" % url.absoluteURL(scheduling, request),
'url': url.set_url_context(site_url+('/business/%ss/obj-%s' % (item.type, item.parliamentary_item_id)))}
if include_actions:
record['actions'] = get_scheduling_actions(scheduling, request)
record['workflow'] = get_workflow_actions(item, request)
discussion_actions = get_discussion_actions(discussion, request)
if discussion_actions:
assert len(discussion_actions) == 1
record['discussion_action'] = discussion_actions[0]
else:
record['discussion_action'] = None
items.append(record)
return items
示例13: form_description
def form_description(self):
language = get_language_by_name(self.language)["name"]
props = IDCDescriptiveProperties.providedBy(self.context) \
and self.context or IDCDescriptiveProperties(self.context)
if self.is_translation:
return _(u"edit_translation_legend",
default=u'Editing $language translation of "$title"',
mapping={"title": translate(props.title, context=self.request),
"language": language})
else:
return _(
u"translate_item_help",
default=u'The document "$title" has not yet been translated into $language. Use this form to add the translation',
mapping={"title": translate(props.title, context=self.request),
"language": language})
示例14: expand_containers
def expand_containers(self,
items,
containers,
_url,
chain=(),
context=None):
#seen_context = False
current = False
for key, container in containers:
if IAlchemistContainer.providedBy(container):
descriptor = queryModelDescriptor(
proxy.removeSecurityProxy(container).domain_model)
if descriptor:
name = getattr(descriptor, 'container_name', None)
if name is None:
name = getattr(descriptor, 'display_name', None)
if not name:
name = container.domain_model.__name__
else:
assert IDCDescriptiveProperties.providedBy(container)
container = proxy.removeSecurityProxy(container)
name = container.title
if context is not None:
current = container.__name__ == context.__name__
selected = len(chain) == 0 and current
if current:
#seen_context = True
nodes = self.expand(chain)
else:
nodes = ()
items.append({
'title': name,
'url': "%s/%s" % (_url.rstrip('/'), key),
'current': current,
'selected': selected,
'kind': 'container',
'nodes': nodes,
})
示例15: expand_containers
def expand_containers(self, items, containers, _url, chain=(), context=None):
# seen_context = False
current = False
for key, container in containers:
if IAlchemistContainer.providedBy(container):
descriptor = queryModelDescriptor(proxy.removeSecurityProxy(container).domain_model)
if descriptor:
name = getattr(descriptor, "container_name", None)
if name is None:
name = getattr(descriptor, "display_name", None)
if not name:
name = container.domain_model.__name__
else:
assert IDCDescriptiveProperties.providedBy(container)
container = proxy.removeSecurityProxy(container)
name = container.title
if context is not None:
current = container.__name__ == context.__name__
selected = len(chain) == 0 and current
if current:
# seen_context = True
nodes = self.expand(chain)
else:
nodes = ()
items.append(
{
"title": name,
"url": "%s/%s" % (_url.rstrip("/"), key),
"current": current,
"selected": selected,
"kind": "container",
"nodes": nodes,
}
)