Augabe der Kontaktdaten im XML bei der Mitgliederliste von Projekten (SciProject, Ticket #1168)

git-svn-id: https://svn.libreccm.org/ccm/trunk@1597 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-04-16 19:47:10 +00:00
parent c0f9126e0e
commit 418b4ddeb2
3 changed files with 121 additions and 106 deletions

View File

@ -1187,31 +1187,50 @@ public class PublicPersonalProfilesServlet extends BaseApplicationServlet {
final DataCollection profiles =
session.retrieve(
com.arsdigita.cms.contenttypes.PublicPersonalProfile.BASE_DATA_OBJECT_TYPE);
profiles.addFilter(String.format("profileUrl = '%s'",
final FilterFactory filterFactory = profiles.getFilterFactory();
final Filter urlFilter = filterFactory.simple(String.format(
"profileUrl = '%s'",
profileOwner));
final Filter versionFilter;
if (preview) {
profiles.addFilter(String.format("version = '%s'",
versionFilter = filterFactory.simple(String.format("version = '%s'",
ContentItem.DRAFT));
} else {
profiles.addFilter(String.format("version = '%s'",
versionFilter = filterFactory.simple(String.format("version = '%s'",
ContentItem.LIVE));
}
if (allowLangIndependent) {
FilterFactory ff = profiles.getFilterFactory();
Filter filter = ff.or().
addFilter(ff.equals("language", language)).
addFilter(ff.and().
addFilter(ff.equals("language",
GlobalizationHelper.LANG_INDEPENDENT)).
addFilter(ff.notIn("parent",
"com.arsdigita.navigation.getParentIDsOfMatchedItems").
set("language", language)));
profiles.addFilter(filter);
} else {
profiles.addFilter(String.format("language = '%s'", language));
final Filter langFilter = filterFactory.simple(String.format(
"language = '%s'", language));
profiles.addFilter(urlFilter);
profiles.addFilter(versionFilter);
profiles.addFilter(langFilter);
if (profiles.isEmpty()) {
profiles.reset();
profiles.addFilter(urlFilter);
profiles.addFilter(versionFilter);
profiles.addFilter(String.format("language = '%s'",
GlobalizationHelper.LANG_INDEPENDENT));
}
// if (allowLangIndependent) {
// FilterFactory ff = profiles.getFilterFactory();
// Filter filter = ff.or().
// addFilter(ff.equals("language", language)).
// addFilter(ff.and().
// addFilter(ff.equals("language",
// GlobalizationHelper.LANG_INDEPENDENT)).
// addFilter(ff.notIn("parent",
// "com.arsdigita.navigation.getParentIDsOfMatchedItems").
// set("language", language)));
// profiles.addFilter(filter);
// } else {
// profiles.addFilter(String.format("language = '%s'", language));
// }
return profiles;
}

View File

@ -14,7 +14,7 @@ import java.util.List;
/**
* <p>
* The class represents a (scientific) project. It extends
* This class represents a (scientific) project. It extends
* {@link GenericOrganizationalUnit} and adds
* some fields for additional information:
* </p>

View File

@ -13,15 +13,11 @@ import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.SciProject;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.xml.Element;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import org.apache.log4j.Logger;
@ -265,7 +261,7 @@ public class SciProjectSummaryTab implements GenericOrgaUnitTab {
final PageState state) {
final long start = System.currentTimeMillis();
final XmlGenerator generator = new XmlGenerator(member);
generator.setUseExtraXml(false);
generator.setUseExtraXml(true);
generator.setItemElemName("member", "");
generator.addItemAttribute("role", role);
generator.generateXML(state, parent, "");