diff --git a/ccm-sci-publicationscsvimporter/application.xml b/ccm-sci-publicationscsvimporter/application.xml
index cb6b57258..e9ea67cd7 100644
--- a/ccm-sci-publicationscsvimporter/application.xml
+++ b/ccm-sci-publicationscsvimporter/application.xml
@@ -8,8 +8,9 @@
+
-
+
diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java
index 160ba0064..52b8f4bbf 100644
--- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java
+++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/AbstractPublicationImporter.java
@@ -2,6 +2,8 @@ package com.arsdigita.cms.scipublications.importer.csv;
import com.arsdigita.categorization.Category;
import com.arsdigita.cms.Folder;
+import com.arsdigita.cms.contentassets.RelatedLink;
+import com.arsdigita.cms.contenttypes.Link;
import com.arsdigita.cms.contenttypes.Publication;
import com.arsdigita.cms.contenttypes.PublicationBundle;
import com.arsdigita.cms.scipublications.importer.report.AuthorImportReport;
@@ -136,6 +138,10 @@ abstract class AbstractPublicationImporter {
publication.setMisc(data.getMisc().substring(0, 3975));
}
+ if ((data.getUrl() != null) && !data.getUrl().isEmpty()) {
+ processUrl(publication);
+ }
+
publication.save();
}
@@ -143,6 +149,10 @@ abstract class AbstractPublicationImporter {
processAuthors(publication);
}
+ if ((data.getSeriesTitle() != null) && !data.getSeriesTitle().isEmpty()) {
+ importerUtil.processSeries(publication, data.getSeriesTitle(), pretend);
+ }
+
return publication;
}
@@ -163,7 +173,7 @@ abstract class AbstractPublicationImporter {
protected Integer getFolderId() {
return Publication.getConfig().getDefaultPublicationsFolder();
}
-
+
private void processTitleAndName(final T publication) {
if (!pretend) {
publication.setTitle(data.getTitle());
@@ -179,17 +189,17 @@ abstract class AbstractPublicationImporter {
private void processYear(final T publication) {
if (!pretend) {
final String year = data.getYear();
-
+
try {
publication.setYearOfPublication(Integer.parseInt(year));
- } catch(NumberFormatException ex) {
+ } catch (NumberFormatException ex) {
publication.setYearOfPublication(0);
}
}
-
+
report.addField(new FieldImportReport("year", data.getYear()));
}
-
+
private void processReviewed(final T publication) {
final String reviewedStr = data.getReviewed();
final boolean reviewed;
@@ -258,29 +268,29 @@ abstract class AbstractPublicationImporter {
authors.add(author);
} else if (nameTokens.length == 2) {
final AuthorData author = new AuthorData();
-
- author.setSurname(checkForEditor(author, nameTokens[0]));
+
+ author.setSurname(checkForEditor(author, nameTokens[0]));
author.setGivenName(checkForEditor(author, nameTokens[1]));
-
+
authors.add(author);
} else {
final AuthorData author = new AuthorData();
-
- author.setSurname(checkForEditor(author, nameTokens[0]));
+
+ author.setSurname(checkForEditor(author, nameTokens[0]));
author.setGivenName(checkForEditor(author, nameTokens[1]));
-
+
authors.add(author);
}
- }
-
+ }
+
private String checkForEditor(final AuthorData author, final String token) {
- for(String editorStr : EDITOR_STRS) {
+ for (String editorStr : EDITOR_STRS) {
if (token.endsWith(editorStr)) {
author.setEditor(true);
return token.substring(0, token.length() - editorStr.length()).trim();
}
}
-
+
return token.trim();
}
@@ -307,4 +317,29 @@ abstract class AbstractPublicationImporter {
}
}
+ protected void processUrl(final Publication publication) {
+ if (!pretend) {
+ final RelatedLink link = new RelatedLink();
+ link.setLinkOwner(publication);
+ link.setLinkListName("NONE");
+ link.setTargetItem(null);
+ link.setTargetURI(getData().getUrl());
+ link.setTargetType(Link.EXTERNAL_LINK);
+ link.setTargetWindow("");
+ if ((getData().getLinkname() == null) || getData().getLinkname().isEmpty()) {
+ link.setTitle(getData().getUrl());
+ } else {
+ link.setTitle(getData().getLinkname());
+ }
+
+ link.save();
+ }
+
+
+ report.addField(new FieldImportReport("url", getData().getUrl()));
+ if ((getData().getLinkname() != null) && !getData().getLinkname().isEmpty()) {
+ report.addField(new FieldImportReport("linkname", getData().getLinkname()));
+ }
+ }
+
}
diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java
index 2e2d2b3be..e56e48e05 100644
--- a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java
+++ b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ArticleInCollectedVolumeImporter.java
@@ -47,6 +47,7 @@ class ArticleInCollectedVolumeImporter extends AbstractPublicationImporter params,
final boolean pretend,
final boolean publishNewItems)
throws SciPublicationsImportException {
@@ -113,7 +115,7 @@ public class PublicationsImporter implements SciPublicationsImporter {
importerUtil);
report.addPublication(result);
} catch (Exception ex) {
- tctx.abortTxn();
+ tctx.abortTxn();
throw new SciPublicationsImportException(ex);
}
@@ -132,11 +134,11 @@ public class PublicationsImporter implements SciPublicationsImporter {
final ImporterUtil importerUtil) {
final PublicationImportReport report = new PublicationImportReport();
- final String[] cols = line.split(COL_SEP, -30);
+ final String[] cols = line.split(COL_SEP, -37);
//Check number of cols
- if (cols.length != 30) {
+ if (cols.length != 37) {
report.setSuccessful(false);
- report.addMessage(String.format("!!! Wrong number of columns. Exepcted 30 columns but found %d columns. "
+ report.addMessage(String.format("!!! Wrong number of columns. Exepcted 37 columns but found %d columns. "
+ "Skiping line %d!\n", cols.length, lineNumber));
return report;
}
@@ -163,8 +165,8 @@ public class PublicationsImporter implements SciPublicationsImporter {
processProceedings(publishNewItems, data, report, pretend, importerUtil);
} else if (Review.class.getSimpleName().equals(data.getType())) {
processReview(publishNewItems, data, report, pretend, importerUtil);
- } else if (ResearchReport.class.getSimpleName().equals(data.getType()) || "Report".equals(data.getType())) {
- processResearchReport(publishNewItems, data, report, pretend, importerUtil);
+// } else if (ResearchReport.class.getSimpleName().equals(data.getType()) || "Report".equals(data.getType())) {
+// processResearchReport(publishNewItems, data, report, pretend, importerUtil);
} else if (WorkingPaper.class.getSimpleName().equals(data.getType())) {
processWorkingPaper(publishNewItems, data, report, pretend, importerUtil);
}
@@ -315,20 +317,19 @@ public class PublicationsImporter implements SciPublicationsImporter {
}
- private void processResearchReport(final boolean publishNewItems,
- final CsvLine data,
- final PublicationImportReport report,
- final boolean pretend,
- final ImporterUtil importerUtil) {
- if (isPublicationAlreadyInDatabase(data, ResearchReport.class.getSimpleName(), report)) {
- report.setSuccessful(true);
- return;
- }
-
- final ResearchReportImporter importer = new ResearchReportImporter(data, report, pretend, importerUtil);
- importer.doImport(publishNewItems);
- }
-
+// private void processResearchReport(final boolean publishNewItems,
+// final CsvLine data,
+// final PublicationImportReport report,
+// final boolean pretend,
+// final ImporterUtil importerUtil) {
+// if (isPublicationAlreadyInDatabase(data, ResearchReport.class.getSimpleName(), report)) {
+// report.setSuccessful(true);
+// return;
+// }
+//
+// final ResearchReportImporter importer = new ResearchReportImporter(data, report, pretend, importerUtil);
+// importer.doImport(publishNewItems);
+// }
private void processWorkingPaper(final boolean publishNewItems,
final CsvLine data,
final PublicationImportReport report,
diff --git a/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ResearchReportImporter.java b/ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ResearchReportImporter.java.nolongerinuse
similarity index 100%
rename from ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ResearchReportImporter.java
rename to ccm-sci-publicationscsvimporter/src/com/arsdigita/cms/scipublications/importer/csv/ResearchReportImporter.java.nolongerinuse