Skip to content

Commit

Permalink
SAK-49127 Syllabus cleanup existing syllabus data before performing i…
Browse files Browse the repository at this point in the history
…mport from site (sakaiproject#12174)
  • Loading branch information
ottenhoff authored Dec 6, 2023
1 parent 3e7a032 commit 108b2b7
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 215 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,6 @@ public interface SyllabusService extends EntityProducer

public List getMessages(String id);

public void importEntities(String fromSiteId, String toSiteId, List resourceIds);

//permission convert
public String getEntityReference(SyllabusData sd, String thisSiteId);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ public SyllabusItem createSyllabusItem(String userId, String contextId,
* getSyllabiForSyllabusItem returns the collection of syllabi
* @param syllabusItem
*/
public Set getSyllabiForSyllabusItem(final SyllabusItem syllabusItem)
public Set<SyllabusData> getSyllabiForSyllabusItem(final SyllabusItem syllabusItem)
{
if (syllabusItem == null)
{
Expand All @@ -140,7 +140,7 @@ public Set getSyllabiForSyllabusItem(final SyllabusItem syllabusItem)
if (syllabusItem1 != null){
return syllabusItem1.getSyllabi();
}
return new TreeSet();
return new TreeSet<>();
};
return getHibernateTemplate().execute(hcb);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -685,84 +686,6 @@ private String addSyllabusToolToPage(String siteId,String pageName)
return siteId;
}

/*
* (non-Javadoc)
*
* @see org.sakaiproject.service.legacy.entity.ResourceService#importResources(java.lang.String,
* java.lang.String, java.util.List)
*/
public void importEntities(String fromSiteId, String toSiteId, List resourceIds)
{
try {
log.debug("importResources: Begin importing syllabus data");

String fromPage = fromSiteId;
SyllabusItem fromSyllabusItem = syllabusManager.getSyllabusItemByContextId(fromPage);

if (fromSyllabusItem != null)
{
Set fromSyDataSet = syllabusManager.getSyllabiForSyllabusItem(fromSyllabusItem);

if (fromSyDataSet != null && fromSyDataSet.size() > 0)
{
fromSyDataSet = syllabusManager.getSyllabiForSyllabusItem(fromSyllabusItem);

String toPage=addSyllabusToolToPage(toSiteId, siteService.getSite(toSiteId).getTitle());
SyllabusItem toSyItem = syllabusManager.getSyllabusItemByContextId(toPage);

if (toSyItem == null)
{
toSyItem = syllabusManager.createSyllabusItem(
userDirectoryService.getCurrentUser().getId(), toPage,
fromSyllabusItem.getRedirectURL());
}
else if (fromSyllabusItem.getRedirectURL() != null) {
toSyItem.setRedirectURL(fromSyllabusItem.getRedirectURL());
syllabusManager.saveSyllabusItem(toSyItem);
}

Iterator fromSetIter = fromSyDataSet.iterator();
while (fromSetIter.hasNext())
{
SyllabusData toSyData = (SyllabusData) fromSetIter.next();
Integer positionNo = new Integer(syllabusManager
.findLargestSyllabusPosition(toSyItem).intValue() + 1);

SyllabusData newToSyData = syllabusManager
.createSyllabusDataObject(toSyData.getTitle(),
positionNo, toSyData.getAsset(), toSyData.getView(),
toSyData.getStatus(), toSyData.getEmailNotification(), toSyData.getStartDate(), toSyData.getEndDate(), toSyData.getLinkCalendar(),
toSyData.getCalendarEventIdStartDate(), toSyData.getCalendarEventIdEndDate(), toSyItem);

syllabusManager.addSyllabusToSyllabusItem(toSyItem, newToSyData, false);
}
}
else
{
log.debug("importResources: no data found for syllabusItem id"
+ fromSyllabusItem.getSurrogateKey().toString());
}
}
log.debug("importResources: End importing syllabus data");
}
catch(Exception e)
{
log.error(e.getMessage(),e);
}

}

/**
* @param siteId
* @return iterator of pageids containing syllabus tool for given site
*/
private Iterator getSyllabusPages(String siteId)
{
List syPages = null;
syPages = new ArrayList();
syPages.add(siteId);
return syPages.iterator();
}

public void setNotificationService(NotificationService notificationService)
{
Expand Down Expand Up @@ -1122,14 +1045,11 @@ public Map<String, String> transferCopyEntities(String fromContext, String toCon
.getSyllabusItemByContextId(fromPage);
if (fromSyllabusItem != null)
{
Set fromSyDataSet = syllabusManager
.getSyllabiForSyllabusItem(fromSyllabusItem);
Set<SyllabusData> fromSyDataSet = syllabusManager.getSyllabiForSyllabusItem(fromSyllabusItem);
if ((fromSyDataSet != null && fromSyDataSet.size() > 0) || fromSyllabusItem.getRedirectURL() != null)
{
String toPage = addSyllabusToolToPage(toContext, siteService
.getSite(toContext).getTitle());
SyllabusItem toSyItem = syllabusManager
.getSyllabusItemByContextId(toPage);
String toPage = addSyllabusToolToPage(toContext, siteService.getSite(toContext).getTitle());
SyllabusItem toSyItem = syllabusManager.getSyllabusItemByContextId(toPage);
String redirectUrl = fromSyllabusItem.getRedirectURL();
if (StringUtils.contains(redirectUrl, fromContext))
{
Expand All @@ -1146,26 +1066,22 @@ else if (fromSyllabusItem.getRedirectURL() !=null) {
syllabusManager.saveSyllabusItem(toSyItem);
}

Iterator fromSetIter = fromSyDataSet.iterator();
while (fromSetIter.hasNext())
for (SyllabusData sd : fromSyDataSet)
{
SyllabusData toSyData = (SyllabusData) fromSetIter.next();
Integer positionNo = new Integer(syllabusManager
.findLargestSyllabusPosition(toSyItem)
.intValue() + 1);
SyllabusData newToSyData = syllabusManager
.createSyllabusDataObject(toSyData.getTitle(),
positionNo, toSyData.getAsset(),
toSyData.getView(), toSyData
.getStatus(), toSyData
.getEmailNotification(), toSyData.getStartDate(), toSyData.getEndDate(), toSyData.getLinkCalendar(),
toSyData.getCalendarEventIdStartDate(), toSyData.getCalendarEventIdEndDate(), toSyItem);
Set attachSet = syllabusManager.getSyllabusAttachmentsForSyllabusData(toSyData);
Iterator attachIter = attachSet.iterator();
.createSyllabusDataObject(sd.getTitle(),
positionNo, sd.getAsset(),
sd.getView(), sd
.getStatus(), sd
.getEmailNotification(), sd.getStartDate(), sd.getEndDate(), sd.getLinkCalendar(),
sd.getCalendarEventIdStartDate(), sd.getCalendarEventIdEndDate(), toSyItem);
Set<SyllabusAttachment> attachSet = syllabusManager.getSyllabusAttachmentsForSyllabusData(sd);
Set<SyllabusAttachment> newAttachSet = new TreeSet<SyllabusAttachment>();
while(attachIter.hasNext())
for (SyllabusAttachment thisAttach : attachSet)
{
SyllabusAttachment thisAttach = (SyllabusAttachment)attachIter.next();
ContentResource oldAttachment = contentHostingService.getResource(thisAttach.getAttachmentId());
ContentResource attachment = contentHostingService.addAttachmentResource(
oldAttachment.getProperties().getProperty(
Expand All @@ -1186,9 +1102,7 @@ else if (fromSyllabusItem.getRedirectURL() !=null) {
}
else
{
log.debug("importResources: no data found for syllabusItem id"
+ fromSyllabusItem.getSurrogateKey()
.toString());
log.debug("no data found for syllabusItem: {}", fromSyllabusItem.getSurrogateKey());
}

log.debug("importResources: End importing syllabus data");
Expand Down Expand Up @@ -1310,32 +1224,28 @@ public Map<String, String> transferCopyEntities(String fromContext, String toCon
Map<String, String> transversalMap = new HashMap<String, String>();
try
{
if(cleanup == true)
if (cleanup)
{
String toSiteId = toContext;

SyllabusItem fromSyllabusItem = syllabusManager.getSyllabusItemByContextId(toSiteId);
SyllabusItem targetSyllabusItem = syllabusManager.getSyllabusItemByContextId(toContext);

if (fromSyllabusItem != null)
if (targetSyllabusItem != null)
{
Set fromSyDataSet = syllabusManager.getSyllabiForSyllabusItem(fromSyllabusItem);

Iterator fromSetIter = fromSyDataSet.iterator();

while (fromSetIter.hasNext())
// Create a copy of the targetSyllabusData set
Set<SyllabusData> targetSyllabusDataCopy = new HashSet<>(syllabusManager.getSyllabiForSyllabusItem(targetSyllabusItem));

for (SyllabusData sd : targetSyllabusDataCopy)
{
SyllabusData fromSyllabusData = (SyllabusData) fromSetIter.next();

syllabusManager.removeSyllabusFromSyllabusItem(fromSyllabusItem, fromSyllabusData);
log.info("Removed SyllabusData during cleanup in transferCopyEntities: {}", sd.getSyllabusId());
syllabusManager.removeSyllabusFromSyllabusItem(targetSyllabusItem, sd);
}
}
}
}
catch (Exception e)
{
log.debug("Syllabus transferCopyEntities failed" + e);
log.error("syllabus import from site [{}] to site [{}] failed, {}", fromContext, toContext, e.toString());
}
transversalMap.putAll(transferCopyEntities(fromContext, toContext, ids, null));
transversalMap.putAll(transferCopyEntities(fromContext, toContext, ids, options));

return transversalMap;
}
Expand Down

0 comments on commit 108b2b7

Please sign in to comment.