Verschiedene Fehlerkorrekturen, insbesondere für Ticket 452 Projekte der Abteilung: Einträge doppelt bzw. dreifach, an der Erzeugung der

Projektlisten.


git-svn-id: https://svn.libreccm.org/ccm/trunk@945 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-05-31 09:42:35 +00:00
parent cb104fde03
commit 37ada8557f
6 changed files with 55 additions and 32 deletions

View File

@ -21,6 +21,7 @@ public class CompareFilter implements Filter {
private final boolean allOption;
private final boolean allOptionIsDefault;
private final boolean propertyIsNumeric;
private final boolean includeNull;
private Map<String, Option> options = new LinkedHashMap<String, Option>();
private String value;
@ -28,12 +29,14 @@ public class CompareFilter implements Filter {
final String label,
final boolean allOption,
final boolean allOptionIsDefault,
final boolean propertyIsNumeric) {
final boolean propertyIsNumeric,
final boolean includeNull) {
this.property = property;
this.label = label;
this.allOption = allOption;
this.allOptionIsDefault = allOptionIsDefault;
this.propertyIsNumeric = propertyIsNumeric;
this.includeNull = includeNull;
}
@Override
@ -110,6 +113,10 @@ public class CompareFilter implements Filter {
filter.append('\'');
}
if (includeNull) {
filter.append(String.format(" or %s is null", property));
}
return filter.toString();
}

View File

@ -142,14 +142,16 @@ public class CustomizableObjectList extends ComplexObjectList {
final String label,
final boolean allOption,
final boolean allOptionIsDefault,
final boolean propertyIsNumeric) {
final boolean propertyIsNumeric,
final boolean includeNull) {
CompareFilter filter;
filter = new CompareFilter(property,
label,
allOption,
allOptionIsDefault,
propertyIsNumeric);
propertyIsNumeric,
includeNull);
filters.put(label, filter);
return filter;

View File

@ -32,8 +32,10 @@ import com.arsdigita.cms.contenttypes.SciOrganizationConfig;
import com.arsdigita.cms.contenttypes.SciProject;
import com.arsdigita.xml.Element;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.apache.log4j.Logger;
/**
@ -101,22 +103,26 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
}
protected boolean hasMembers(final SciDepartment department) {
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
return department.hasMembers(SciDepartment.getConfig().
getOrganizationMembersMerge(),
SciDepartment.MemberStatus.ALL);
}
protected boolean hasActiveMembers(final SciDepartment department) {
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
return department.hasMembers(SciDepartment.getConfig().
getOrganizationMembersMerge(),
SciDepartment.MemberStatus.ACTIVE);
}
protected boolean hasAssociatedMembers(final SciDepartment department) {
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
return department.hasMembers(SciDepartment.getConfig().
getOrganizationMembersMerge(),
SciDepartment.MemberStatus.ASSOCIATED);
}
protected boolean hasFormerMembers(final SciDepartment department) {
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
return department.hasMembers(SciDepartment.getConfig().
getOrganizationMembersMerge(),
SciDepartment.MemberStatus.FORMER);
}
@ -347,23 +353,30 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
mergeProjects(subDepartments, projects, filters);
Collections.sort(projects, new SciProjectComparator());
Set<SciProject> projectsSet;
List<SciProject> projectsWithoutDoubles;
projectsSet = new HashSet<SciProject>(projects);
projectsWithoutDoubles = new LinkedList<SciProject>(projectsSet);
Collections.sort(projectsWithoutDoubles, new SciProjectComparator());
long pageNumber = getPageNumber(state);
long pageCount = getPageCount(projects.size());
long pageCount = getPageCount(projectsWithoutDoubles.size());
long begin = getPaginatorBegin(pageNumber);
long count = getPaginatorCount(begin, projects.size());
long count = getPaginatorCount(begin, projectsWithoutDoubles.size());
long end = getPaginatorEnd(begin, count);
pageNumber = normalizePageNumber(pageCount, pageNumber);
createPaginatorElement(
parent, pageNumber, pageCount, begin, end, count, projects.
size());
List<SciProject> projectsToShow = projects.subList((int) begin,
createPaginatorElement(parent,
pageNumber,
pageCount,
begin,
end,
count,
projectsWithoutDoubles.size());
List<SciProject> projectsToShow = projectsWithoutDoubles.subList((int) begin,
(int) end);
Element projectsElem = parent.newChildElement("projects");
for (SciProject project : projectsToShow) {
generateProjectXML(project, projectsElem, state);

View File

@ -33,7 +33,6 @@ import com.arsdigita.cms.contenttypes.SciOrganizationConfig;
import com.arsdigita.cms.contenttypes.SciOrganizationDepartmentsCollection;
import com.arsdigita.cms.contenttypes.SciOrganizationProjectsCollection;
import com.arsdigita.cms.contenttypes.SciProject;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.xml.Element;
import java.util.Collections;
import java.util.HashSet;

View File

@ -177,3 +177,4 @@ scimember.ui.department.confirm_remove=Do you really want to remove this associa
scimember.ui.project.confirm_remove=Do you really want to remove this association?
scimember.ui.project.select_project=Project
scimember.ui.projects.edit_assoc=Edit association
sciorganization.ui.project.description=Description of project

View File

@ -177,3 +177,4 @@ scimember.ui.department.confirm_remove=Wollen Sie diese Verkn\u00fcpfung wirklic
scimember.ui.project.confirm_remove=Wollen Sie diese Verkn\u00fcpfung wirklich entfernen?
scimember.ui.project.select_project=Projekt
scimember.ui.projects.edit_assoc=Verkn\u00fcpfung bearbeiten
sciorganization.ui.project.description=Projektbeschreibung