From b63235878cf6a2f710355b75b8291a826614a6e0 Mon Sep 17 00:00:00 2001 From: jensp Date: Mon, 9 Jan 2012 07:21:20 +0000 Subject: [PATCH] =?UTF-8?q?Fix=20f=C3=BCr=20Behandlung=20Alias=20in=20Pers?= =?UTF-8?q?onalProjects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/trunk@1433 8810af33-2d31-482b-a856-94f89814c4df --- .../PersonalProjects.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java b/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java index 7b0b3b967..9c266e8c3 100644 --- a/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java +++ b/ccm-sci-personalprojects/src/com/arsdigita/cms/publicpersonalprofile/PersonalProjects.java @@ -153,26 +153,50 @@ public class PersonalProjects implements ContentGenerator { } if (person.getAlias() != null) { - collectProjects(person.getAlias(), projects); + collectProjects(person.getAlias(), projects, language); } return projects; } private void collectProjects(final GenericPerson alias, - final List projects) { - final DataCollection collection = (DataCollection) alias.get( + final List projects, + final String language) { + final DataCollection collection = (DataCollection) alias.get( "organizationalunit"); + final List processed = new ArrayList(); + collection.addFilter(String.format("language = '%s'", language)); DomainObject obj; while (collection.next()) { obj = DomainObjectFactory.newInstance(collection.getDataObject()); if (obj instanceof SciProject) { + processed.add(((SciProject) obj).getParent().getID()); projects.add((SciProject) obj); } } + if (Kernel.getConfig().languageIndependentItems()) { + final DataCollection collectionLi = (DataCollection) alias.get( + "organizationalunit"); + collectionLi.addFilter( + String.format("language = '%s'", + GlobalizationHelper.LANG_INDEPENDENT)); + + while (collectionLi.next()) { + obj = + DomainObjectFactory.newInstance(collectionLi.getDataObject()); + if (obj instanceof SciProject) { + if (!(processed.contains(((SciProject) obj).getParent(). + getID()))) { + projects.add((SciProject) obj); + } + } + } + } + + if (alias.getAlias() != null) { - collectProjects(alias.getAlias(), projects); + collectProjects(alias.getAlias(), projects, language); } }