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-94f89814c4dfmaster
parent
cb104fde03
commit
37ada8557f
|
|
@ -21,6 +21,7 @@ public class CompareFilter implements Filter {
|
||||||
private final boolean allOption;
|
private final boolean allOption;
|
||||||
private final boolean allOptionIsDefault;
|
private final boolean allOptionIsDefault;
|
||||||
private final boolean propertyIsNumeric;
|
private final boolean propertyIsNumeric;
|
||||||
|
private final boolean includeNull;
|
||||||
private Map<String, Option> options = new LinkedHashMap<String, Option>();
|
private Map<String, Option> options = new LinkedHashMap<String, Option>();
|
||||||
private String value;
|
private String value;
|
||||||
|
|
||||||
|
|
@ -28,12 +29,14 @@ public class CompareFilter implements Filter {
|
||||||
final String label,
|
final String label,
|
||||||
final boolean allOption,
|
final boolean allOption,
|
||||||
final boolean allOptionIsDefault,
|
final boolean allOptionIsDefault,
|
||||||
final boolean propertyIsNumeric) {
|
final boolean propertyIsNumeric,
|
||||||
|
final boolean includeNull) {
|
||||||
this.property = property;
|
this.property = property;
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.allOption = allOption;
|
this.allOption = allOption;
|
||||||
this.allOptionIsDefault = allOptionIsDefault;
|
this.allOptionIsDefault = allOptionIsDefault;
|
||||||
this.propertyIsNumeric = propertyIsNumeric;
|
this.propertyIsNumeric = propertyIsNumeric;
|
||||||
|
this.includeNull = includeNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -109,6 +112,10 @@ public class CompareFilter implements Filter {
|
||||||
filter.append(selectedOption.getValue());
|
filter.append(selectedOption.getValue());
|
||||||
filter.append('\'');
|
filter.append('\'');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (includeNull) {
|
||||||
|
filter.append(String.format(" or %s is null", property));
|
||||||
|
}
|
||||||
|
|
||||||
return filter.toString();
|
return filter.toString();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -142,14 +142,16 @@ public class CustomizableObjectList extends ComplexObjectList {
|
||||||
final String label,
|
final String label,
|
||||||
final boolean allOption,
|
final boolean allOption,
|
||||||
final boolean allOptionIsDefault,
|
final boolean allOptionIsDefault,
|
||||||
final boolean propertyIsNumeric) {
|
final boolean propertyIsNumeric,
|
||||||
|
final boolean includeNull) {
|
||||||
CompareFilter filter;
|
CompareFilter filter;
|
||||||
|
|
||||||
filter = new CompareFilter(property,
|
filter = new CompareFilter(property,
|
||||||
label,
|
label,
|
||||||
allOption,
|
allOption,
|
||||||
allOptionIsDefault,
|
allOptionIsDefault,
|
||||||
propertyIsNumeric);
|
propertyIsNumeric,
|
||||||
|
includeNull);
|
||||||
filters.put(label, filter);
|
filters.put(label, filter);
|
||||||
|
|
||||||
return filter;
|
return filter;
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,10 @@ import com.arsdigita.cms.contenttypes.SciOrganizationConfig;
|
||||||
import com.arsdigita.cms.contenttypes.SciProject;
|
import com.arsdigita.cms.contenttypes.SciProject;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -101,23 +103,27 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasMembers(final SciDepartment department) {
|
protected boolean hasMembers(final SciDepartment department) {
|
||||||
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
|
return department.hasMembers(SciDepartment.getConfig().
|
||||||
SciDepartment.MemberStatus.ALL);
|
getOrganizationMembersMerge(),
|
||||||
|
SciDepartment.MemberStatus.ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasActiveMembers(final SciDepartment department) {
|
protected boolean hasActiveMembers(final SciDepartment department) {
|
||||||
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
|
return department.hasMembers(SciDepartment.getConfig().
|
||||||
SciDepartment.MemberStatus.ACTIVE);
|
getOrganizationMembersMerge(),
|
||||||
|
SciDepartment.MemberStatus.ACTIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasAssociatedMembers(final SciDepartment department) {
|
protected boolean hasAssociatedMembers(final SciDepartment department) {
|
||||||
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
|
return department.hasMembers(SciDepartment.getConfig().
|
||||||
SciDepartment.MemberStatus.ASSOCIATED);
|
getOrganizationMembersMerge(),
|
||||||
|
SciDepartment.MemberStatus.ASSOCIATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasFormerMembers(final SciDepartment department) {
|
protected boolean hasFormerMembers(final SciDepartment department) {
|
||||||
return department.hasMembers(SciDepartment.getConfig().getOrganizationMembersMerge(),
|
return department.hasMembers(SciDepartment.getConfig().
|
||||||
SciDepartment.MemberStatus.FORMER);
|
getOrganizationMembersMerge(),
|
||||||
|
SciDepartment.MemberStatus.FORMER);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasProjects(final SciDepartment department) {
|
protected boolean hasProjects(final SciDepartment department) {
|
||||||
|
|
@ -133,7 +139,7 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean hasFinishedProjects(final SciDepartment department) {
|
protected boolean hasFinishedProjects(final SciDepartment department) {
|
||||||
return department.hasProjects(SciDepartment.getConfig().
|
return department.hasProjects(SciDepartment.getConfig().
|
||||||
getOrganizationProjectsMerge(),
|
getOrganizationProjectsMerge(),
|
||||||
SciDepartment.ProjectStatus.FINISHED);
|
SciDepartment.ProjectStatus.FINISHED);
|
||||||
}
|
}
|
||||||
|
|
@ -347,23 +353,30 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
|
||||||
|
|
||||||
mergeProjects(subDepartments, projects, filters);
|
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 pageNumber = getPageNumber(state);
|
||||||
long pageCount = getPageCount(projects.size());
|
long pageCount = getPageCount(projectsWithoutDoubles.size());
|
||||||
long begin = getPaginatorBegin(pageNumber);
|
long begin = getPaginatorBegin(pageNumber);
|
||||||
long count = getPaginatorCount(begin, projects.size());
|
long count = getPaginatorCount(begin, projectsWithoutDoubles.size());
|
||||||
long end = getPaginatorEnd(begin, count);
|
long end = getPaginatorEnd(begin, count);
|
||||||
pageNumber = normalizePageNumber(pageCount, pageNumber);
|
pageNumber = normalizePageNumber(pageCount, pageNumber);
|
||||||
|
|
||||||
createPaginatorElement(
|
createPaginatorElement(parent,
|
||||||
parent, pageNumber, pageCount, begin, end, count, projects.
|
pageNumber,
|
||||||
size());
|
pageCount,
|
||||||
List<SciProject> projectsToShow = projects.subList((int) begin,
|
begin,
|
||||||
|
end,
|
||||||
|
count,
|
||||||
|
projectsWithoutDoubles.size());
|
||||||
|
List<SciProject> projectsToShow = projectsWithoutDoubles.subList((int) begin,
|
||||||
(int) end);
|
(int) end);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Element projectsElem = parent.newChildElement("projects");
|
Element projectsElem = parent.newChildElement("projects");
|
||||||
for (SciProject project : projectsToShow) {
|
for (SciProject project : projectsToShow) {
|
||||||
generateProjectXML(project, projectsElem, state);
|
generateProjectXML(project, projectsElem, state);
|
||||||
|
|
@ -456,20 +469,20 @@ public class SciDepartmentPanel extends SciOrganizationBasePanel {
|
||||||
&& displayProjects) {
|
&& displayProjects) {
|
||||||
availableData.newChildElement("projects");
|
availableData.newChildElement("projects");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (hasOngoingProjects(department)
|
if (hasOngoingProjects(department)
|
||||||
&& displayProjects) {
|
&& displayProjects) {
|
||||||
availableData.newChildElement("projectsOngoing");
|
availableData.newChildElement("projectsOngoing");
|
||||||
}
|
}
|
||||||
if (hasFinishedProjects(department)
|
if (hasFinishedProjects(department)
|
||||||
&& displayProjects) {
|
&& displayProjects) {
|
||||||
availableData.newChildElement("projectsFinished");
|
availableData.newChildElement("projectsFinished");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (department.hasPublications()
|
if (department.hasPublications()
|
||||||
&& displayPublications) {
|
&& displayPublications) {
|
||||||
availableData.newChildElement("publications");
|
availableData.newChildElement("publications");
|
||||||
}
|
}
|
||||||
|
|
||||||
String show = getShowParam(state);
|
String show = getShowParam(state);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ import com.arsdigita.cms.contenttypes.SciOrganizationConfig;
|
||||||
import com.arsdigita.cms.contenttypes.SciOrganizationDepartmentsCollection;
|
import com.arsdigita.cms.contenttypes.SciOrganizationDepartmentsCollection;
|
||||||
import com.arsdigita.cms.contenttypes.SciOrganizationProjectsCollection;
|
import com.arsdigita.cms.contenttypes.SciOrganizationProjectsCollection;
|
||||||
import com.arsdigita.cms.contenttypes.SciProject;
|
import com.arsdigita.cms.contenttypes.SciProject;
|
||||||
import com.arsdigita.persistence.DataCollection;
|
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
|
||||||
|
|
@ -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.confirm_remove=Do you really want to remove this association?
|
||||||
scimember.ui.project.select_project=Project
|
scimember.ui.project.select_project=Project
|
||||||
scimember.ui.projects.edit_assoc=Edit association
|
scimember.ui.projects.edit_assoc=Edit association
|
||||||
|
sciorganization.ui.project.description=Description of project
|
||||||
|
|
|
||||||
|
|
@ -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.confirm_remove=Wollen Sie diese Verkn\u00fcpfung wirklich entfernen?
|
||||||
scimember.ui.project.select_project=Projekt
|
scimember.ui.project.select_project=Projekt
|
||||||
scimember.ui.projects.edit_assoc=Verkn\u00fcpfung bearbeiten
|
scimember.ui.projects.edit_assoc=Verkn\u00fcpfung bearbeiten
|
||||||
|
sciorganization.ui.project.description=Projektbeschreibung
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue