Verschiedene BugFixes

git-svn-id: https://svn.libreccm.org/ccm/trunk@1320 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-12-06 20:54:50 +00:00
parent 16bb369677
commit 1ec33ceaaf
2 changed files with 171 additions and 157 deletions

View File

@ -132,7 +132,7 @@ public class PersonalProjects implements ContentGenerator {
private void processProjects(final List<SciProject> projects, private void processProjects(final List<SciProject> projects,
final List<SciProject> currentProjects, final List<SciProject> currentProjects,
final List<SciProject> finishedProjects) { final List<SciProject> finishedProjects) {
final Calendar today = new GregorianCalendar(); final Calendar today = new GregorianCalendar();
final Date todayDate = today.getTime(); final Date todayDate = today.getTime();
for (SciProject project : projects) { for (SciProject project : projects) {
if ((project.getEnd() != null) if ((project.getEnd() != null)

View File

@ -6,7 +6,9 @@ import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID; import com.arsdigita.persistence.OID;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List; import java.util.List;
/** /**
@ -89,7 +91,7 @@ public class SciProject extends GenericOrganizationalUnit {
public void setBegin(Date begin) { public void setBegin(Date begin) {
set(BEGIN, begin); set(BEGIN, begin);
} }
public Boolean getBeginSkipMonth() { public Boolean getBeginSkipMonth() {
final Object value = get(BEGIN_SKIP_MONTH); final Object value = get(BEGIN_SKIP_MONTH);
if (value == null) { if (value == null) {
@ -98,11 +100,11 @@ public class SciProject extends GenericOrganizationalUnit {
return (Boolean) value; return (Boolean) value;
} }
} }
public void setBeginSkipMonth(final Boolean skipMonth) { public void setBeginSkipMonth(final Boolean skipMonth) {
set(BEGIN_SKIP_MONTH, skipMonth); set(BEGIN_SKIP_MONTH, skipMonth);
} }
public Boolean getBeginSkipDay() { public Boolean getBeginSkipDay() {
final Object value = get(BEGIN_SKIP_DAY); final Object value = get(BEGIN_SKIP_DAY);
if (value == null) { if (value == null) {
@ -111,19 +113,33 @@ public class SciProject extends GenericOrganizationalUnit {
return (Boolean) value; return (Boolean) value;
} }
} }
public void setBeginSkipDay(final Boolean skipDay) { public void setBeginSkipDay(final Boolean skipDay) {
set(BEGIN_SKIP_DAY, skipDay); set(BEGIN_SKIP_DAY, skipDay);
} }
public Date getEnd() { public Date getEnd() {
return (Date) get(END); if (get(END) != null) {
final Date endDate = (Date) get(END);
final Calendar end = new GregorianCalendar();
end.setTime(endDate);
if (getEndSkipDay() && (end.get(Calendar.DAY_OF_MONTH) == 1)) {
end.add(Calendar.MONTH, 1);
end.add(Calendar.DAY_OF_MONTH, -1);
return end.getTime();
} else {
return (Date) get(END);
}
} else {
return (Date) get(END);
}
} }
public void setEnd(Date end) { public void setEnd(Date end) {
set(END, end); set(END, end);
} }
public Boolean getEndSkipMonth() { public Boolean getEndSkipMonth() {
final Object value = get(END_SKIP_MONTH); final Object value = get(END_SKIP_MONTH);
if (value == null) { if (value == null) {
@ -132,11 +148,11 @@ public class SciProject extends GenericOrganizationalUnit {
return (Boolean) value; return (Boolean) value;
} }
} }
public void setEndSkipMonth(final Boolean skipMonth) { public void setEndSkipMonth(final Boolean skipMonth) {
set(END_SKIP_MONTH, skipMonth); set(END_SKIP_MONTH, skipMonth);
} }
public Boolean getEndSkipDay() { public Boolean getEndSkipDay() {
final Object value = get(END_SKIP_DAY); final Object value = get(END_SKIP_DAY);
if (value == null) { if (value == null) {
@ -145,7 +161,7 @@ public class SciProject extends GenericOrganizationalUnit {
return (Boolean) value; return (Boolean) value;
} }
} }
public void setEndSkipDay(final Boolean skipDay) { public void setEndSkipDay(final Boolean skipDay) {
set(END_SKIP_DAY, skipDay); set(END_SKIP_DAY, skipDay);
} }
@ -182,26 +198,25 @@ public class SciProject extends GenericOrganizationalUnit {
set(FUNDING_VOLUME, fundingVolume); set(FUNDING_VOLUME, fundingVolume);
} }
/*Method is not use commented out. /*Method is not use commented out.
* @Override * @Override
public boolean hasContacts() { public boolean hasContacts() {
boolean result = false; boolean result = false;
final DataQuery query = final DataQuery query =
SessionManager.getSession().retrieveQuery( SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciProject"); "com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciProject");
query.setParameter("project", getID()); query.setParameter("project", getID());
if (query.size() > 0) { if (query.size() > 0) {
result = true; result = true;
} else { } else {
result = false; result = false;
} }
query.close(); query.close();
return result; return result;
}*/ }*/
/* /*
@ -212,140 +227,139 @@ public class SciProject extends GenericOrganizationalUnit {
* @return * @return
*/ */
/*public boolean hasMembers(final boolean merge, /*public boolean hasMembers(final boolean merge,
final SciProjectMemberStatus status) { final SciProjectMemberStatus status) {
String queryName; String queryName;
switch (status) { switch (status) {
case ALL: case ALL:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break; break;
case ACTIVE: case ACTIVE:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break; break;
case ASSOCIATED: case ASSOCIATED:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciProject";
break; break;
case FORMER: case FORMER:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break; break;
default: default:
queryName = ""; queryName = "";
break; break;
} }
final DataQuery query = SessionManager.getSession().retrieveQuery( final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName); queryName);
query.setParameter("project", getID()); query.setParameter("project", getID());
if (query.size() > 0) { if (query.size() > 0) {
query.close(); query.close();
return true; return true;
} else { } else {
if (merge) { if (merge) {
query.close(); query.close();
DataQuery projectsQuery = DataQuery projectsQuery =
SessionManager.getSession().retrieveQuery( SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject"); "com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
projectsQuery.setParameter("project", getID()); projectsQuery.setParameter("project", getID());
if (query.size() > 0) { if (query.size() > 0) {
BigDecimal projectId; BigDecimal projectId;
boolean result = false; boolean result = false;
while (projectsQuery.next()) { while (projectsQuery.next()) {
projectId = (BigDecimal) projectsQuery.get( projectId = (BigDecimal) projectsQuery.get(
"projectId"); "projectId");
result = hasMembers(projectId, merge, status); result = hasMembers(projectId, merge, status);
if (result) { if (result) {
break; break;
} }
} }
projectsQuery.close(); projectsQuery.close();
return result; return result;
} else { } else {
projectsQuery.close(); projectsQuery.close();
return false; return false;
} }
} else { } else {
query.close(); query.close();
return false; return false;
} }
} }
}*/ }*/
/*private boolean hasMembers(final BigDecimal projectId, /*private boolean hasMembers(final BigDecimal projectId,
final boolean merge, final boolean merge,
final SciProjectMemberStatus status) { final SciProjectMemberStatus status) {
String queryName; String queryName;
switch (status) { switch (status) {
case ALL: case ALL:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break; break;
case ACTIVE: case ACTIVE:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break; break;
case ASSOCIATED: case ASSOCIATED:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfProject"; "com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfProject";
break; break;
case FORMER: case FORMER:
queryName = queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject"; "com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break; break;
default: default:
queryName = ""; queryName = "";
break; break;
} }
final DataQuery query = SessionManager.getSession().retrieveQuery( final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName); queryName);
query.setParameter("project", projectId); query.setParameter("project", projectId);
if (query.size() > 0) { if (query.size() > 0) {
query.close(); query.close();
return true; return true;
} else { } else {
if (merge) { if (merge) {
query.close(); query.close();
DataQuery subProjectsQuery = DataQuery subProjectsQuery =
SessionManager.getSession().retrieveQuery( SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject"); "com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
subProjectsQuery.setParameter("project", projectId); subProjectsQuery.setParameter("project", projectId);
if (query.size() > 0) { if (query.size() > 0) {
BigDecimal subprojectId; BigDecimal subprojectId;
boolean result = false; boolean result = false;
while (subProjectsQuery.next()) { while (subProjectsQuery.next()) {
subprojectId = (BigDecimal) subProjectsQuery.get( subprojectId = (BigDecimal) subProjectsQuery.get(
"projectId"); "projectId");
result = hasMembers(subprojectId, merge, status); result = hasMembers(subprojectId, merge, status);
if (result) { if (result) {
break; break;
} }
} }
subProjectsQuery.close(); subProjectsQuery.close();
return result; return result;
} else { } else {
subProjectsQuery.close(); subProjectsQuery.close();
return false; return false;
} }
} else { } else {
query.close(); query.close();
return false; return false;
} }
} }
}*/ }*/
@Override @Override
public List<ExtraXMLGenerator> getExtraXMLGenerators() { public List<ExtraXMLGenerator> getExtraXMLGenerators() {
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators(); final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();