DS-1052: Items with null date.accessioned are perminantly sorted to the top of all date based searches. (committed to both trunk and branch)

git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_8_x@6864 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
Scott Phillips
2011-11-28 20:06:09 +00:00
parent 2bb7d1715d
commit e369276e9f
3 changed files with 26 additions and 5 deletions

View File

@@ -836,6 +836,7 @@ public class BrowseDAOOracle implements BrowseDAO
{ {
queryBuf.append(" DESC "); queryBuf.append(" DESC ");
} }
queryBuf.append(" NULLS LAST ");
} }
} }

View File

@@ -844,6 +844,7 @@ public class BrowseDAOPostgres implements BrowseDAO
{ {
queryBuf.append(" DESC "); queryBuf.append(" DESC ");
} }
queryBuf.append(" NULLS LAST ");
} }
} }

View File

@@ -123,10 +123,29 @@ public class InstallItem
handle = HandleManager.createHandle(c, item, suppliedHandle); handle = HandleManager.createHandle(c, item, suppliedHandle);
} }
//NOTE: this method specifically skips over "populateMetadata()" // Even though we are restoring an item it may not have a have the proper dates. So lets
// As this is a "restore" all the metadata should have already been restored // double check that it has a date accessioned and date issued, and if either of those dates
// are not set then set them to today.
DCDate now = DCDate.getCurrent();
//@TODO: Do we actually want a "Restored on ..." provenance message? Or perhaps kick off an event? // If the item dosn't have a date.accessioned create one.
DCValue[] dateAccessioned = item.getDC("date", "accessioned", Item.ANY);
if (dateAccessioned.length == 0)
{
item.addDC("date", "accessioned", null, now.toString());
}
// create issue date if not present
DCValue[] currentDateIssued = item.getDC("date", "issued", Item.ANY);
if (currentDateIssued.length == 0)
{
DCDate issued = new DCDate(now.getYear(),now.getMonth(),now.getDay(),-1,-1,-1);
item.addDC("date", "issued", null, issued.toString());
}
// Record that the item was restored
String provDescription = "Restored into DSpace on "+ now + " (GMT).";
item.addDC("description", "provenance", "en", provDescription);
return finishItem(c, item, is, null); return finishItem(c, item, is, null);
} }
@@ -153,7 +172,7 @@ public class InstallItem
} }
} }
// fill in metadata needed by new Item.
private static void populateMetadata(Context c, Item item, DCDate embargoLiftDate) private static void populateMetadata(Context c, Item item, DCDate embargoLiftDate)
throws SQLException, IOException, AuthorizeException throws SQLException, IOException, AuthorizeException
{ {