diff --git a/CHANGES.txt b/CHANGES.txt index 8fb0236..9554e61 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -8,6 +8,9 @@ $Id$ New features +- new view: ``list_children.html`` +- evaluate action settings also on queries +- "send email" feature, controlled by global option ``organize.allowSendEmail`` - presence: portlet showing other users logged-in and working within the same loops site, controlled by global option ``organize.showPresence`, using new LoopsSessionCredentialsPlugin; diff --git a/browser/concept.py b/browser/concept.py index e9f47d4..5b98c5e 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2009 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -352,9 +352,8 @@ class ConceptView(BaseView): def getActions(self, category='object', page=None, target=None): acts = [] - t = IType(self.context) - actInfo = t.optionsDict.get('action.' + category, '') - actNames = [n.strip() for n in actInfo.split(',')] + optKey = 'action.' + category + actNames = (self.options(optKey) or []) + (self.typeOptions(optKey) or []) if actNames: acts = list(actions.get(category, actNames, view=self, page=page, target=target)) @@ -508,3 +507,11 @@ class ConceptConfigureView(ConceptView): yield terms.getTerm(pred) +# query views + +class ListChildren(ConceptView): + + @Lazy + def macro(self): + return concept_macros.macros['list_children'] + diff --git a/browser/concept_macros.pt b/browser/concept_macros.pt index 046f532..c55c55c 100644 --- a/browser/concept_macros.pt +++ b/browser/concept_macros.pt @@ -93,7 +93,8 @@ ondblclick python: item.openEditWindow('configure.html')" tal:define="children python: list(item.children())" tal:condition="children"> -

Children

+

Children

@@ -218,6 +219,14 @@ + +
+
+ +
+
+ + diff --git a/browser/configure.zcml b/browser/configure.zcml index b357eed..7f0af0d 100644 --- a/browser/configure.zcml +++ b/browser/configure.zcml @@ -531,6 +531,16 @@ + + + + -
+
+
diff --git a/interfaces.py b/interfaces.py index 0760ab5..c58d16d 100644 --- a/interfaces.py +++ b/interfaces.py @@ -600,7 +600,8 @@ class IConceptRelation(IDyadicRelation): """ predicate = Attribute("A concept of type 'predicate' that defines the " - "type of the relation-") + "type of the relation.") + relevance = Attribute("A float between 0 and 1.") # interfaces for catalog indexes diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 0a3cacd..b714402 100644 Binary files a/locales/de/LC_MESSAGES/loops.mo and b/locales/de/LC_MESSAGES/loops.mo differ diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po index 46bb2f2..41ed74c 100644 --- a/locales/de/LC_MESSAGES/loops.po +++ b/locales/de/LC_MESSAGES/loops.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: $Id$\n" "POT-Creation-Date: 2007-05-22 12:00 CET\n" -"PO-Revision-Date: 2009-09-17 12:00 CET\n" +"PO-Revision-Date: 2009-10-11 12:00 CET\n" "Last-Translator: Helmut Merz \n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -98,6 +98,18 @@ msgstr "Glossareintrag anlegen..." msgid "Create Glossary Item" msgstr "Glossareintrag anlegen" +msgid "Create Person..." +msgstr "Person anlegen..." + +msgid "Create a new person." +msgstr "Eine neue Person anlegen" + +msgid "Edit Person..." +msgstr "Person bearbeiten..." + +msgid "Modify person." +msgstr "Person bearbeiten" + msgid "Create Resource, Type = " msgstr "Ressource anlegen, Typ = " diff --git a/organize/README.txt b/organize/README.txt index af84133..131ec33 100644 --- a/organize/README.txt +++ b/organize/README.txt @@ -364,6 +364,7 @@ OK, the action is not provided automatically any more by the TaskView but has to be entered as a type option. >>> adapted(task).options = ['action.portlet:editTask'] + >>> view = TaskView(task01, TestRequest()) >>> list(view.getActions('portlet')) [] diff --git a/organize/browser/configure.zcml b/organize/browser/configure.zcml index 2162574..8c122eb 100644 --- a/organize/browser/configure.zcml +++ b/organize/browser/configure.zcml @@ -62,6 +62,13 @@ class="loops.organize.browser.party.SendEmailForm" permission="zope.View" /> + + -
- +
Send Link by Email -
@@ -78,11 +78,16 @@
- Johnny (Johnny)
+
+ + Toggle all
diff --git a/organize/presence.py b/organize/presence.py index b1b951f..766f146 100644 --- a/organize/presence.py +++ b/organize/presence.py @@ -30,6 +30,7 @@ from zope.cachedescriptors.property import Lazy from cybertools.meta.interfaces import IOptions from cybertools.util.date import getTimeStamp from loops.organize.interfaces import IPresence +from loops.organize.party import getPersonForUser from loops.organize import util @@ -57,10 +58,12 @@ class Presence(object): if id in self.presentUsers: del self.presentUsers[id] - def getPresentUsers(self): + def getPresentUsers(self, context=None): ret = [] for id, timeStamp in self.presentUsers.iteritems(): - ret.append(util.getPrincipalForUserId(id).title) + principal = util.getPrincipalForUserId(id) + person = getPersonForUser(context, principal=principal) + ret.append(person or principal) return ret def removePresentUser(self, principalId):
Title