small fixes here and there
[mir.git] / source / mircoders / localizer / basic / MirBasicArticlePostingHandler.java
index fa13298..dac7f83 100755 (executable)
@@ -44,15 +44,18 @@ import mir.session.Session;
 import mir.session.SessionExc;
 import mir.session.SessionFailure;
 import mir.session.UploadedFile;
-import mir.util.ExceptionFunctions;
+import mir.session.ValidationHelper;
 import mircoders.entity.EntityContent;
 import mircoders.global.MirGlobal;
 import mircoders.media.MediaUploadProcessor;
+import mircoders.module.ModuleArticleType;
 import mircoders.module.ModuleContent;
-import mircoders.module.ModuleMediaType;
+import mircoders.module.ModuleMediafolder;
+import mircoders.storage.DatabaseArticleType;
 import mircoders.storage.DatabaseContent;
 import mircoders.storage.DatabaseContentToMedia;
 import mircoders.storage.DatabaseContentToTopics;
+import mircoders.storage.DatabaseMediafolder;
 
 /**
  *
@@ -93,20 +96,27 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler
   public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure {
     super.validate(aResults, aRequest, aSession);
 
-    testFieldEntered(aRequest, "title", "validationerror.missing", aResults);
-    testFieldEntered(aRequest, "description", "validationerror.missing", aResults);
-    testFieldEntered(aRequest, "creator", "validationerror.missing", aResults);
-    testFieldEntered(aRequest, "content_data", "validationerror.missing", aResults);
+    ValidationHelper.testFieldEntered(aRequest, "title", "validationerror.missing", aResults);
+    ValidationHelper.testFieldEntered(aRequest, "description", "validationerror.missing", aResults);
+    ValidationHelper.testFieldEntered(aRequest, "creator", "validationerror.missing", aResults);
+    ValidationHelper.testFieldEntered(aRequest, "content_data", "validationerror.missing", aResults);
   }
 
   public void finalizeArticle(Request aRequest, Session aSession, EntityContent anArticle) throws SessionExc, SessionFailure {
-    anArticle.setValueForProperty("is_published", "1");
-    anArticle.setValueForProperty("is_produced", "0");
-    anArticle.setValueForProperty("date", StringUtil.date2webdbDate(new GregorianCalendar()));
-    anArticle.setValueForProperty("is_html","0");
-    anArticle.setValueForProperty("publish_path", StringUtil.webdbDate2path(anArticle.getValue("date")));
-    anArticle.setValueForProperty("to_article_type", "1");
-    anArticle.setValueForProperty("to_publisher", "1");
+    try {
+      anArticle.setFieldValue("is_published", "1");
+      anArticle.setFieldValue("is_produced", "0");
+      anArticle.setFieldValue("date", StringUtil.date2webdbDate(new GregorianCalendar()));
+      anArticle.setFieldValue("is_html", "0");
+      anArticle.setFieldValue("publish_path", StringUtil.webdbDate2path(anArticle. getFieldValue("date")));
+
+      ModuleArticleType module = new ModuleArticleType(DatabaseArticleType.getInstance());
+      anArticle.setFieldValue("to_article_type", module.articleTypeIdForName(configuration.getString("Localizer.OpenSession.article.DefaultArticleType")));
+      anArticle.setFieldValue("to_publisher", "1");
+    }
+    catch (Throwable t) {
+      throw new SessionFailure(t);
+    }
   }
 
   public void setArticleTopics(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
@@ -129,7 +139,7 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler
       Map values = getIntersectingValues(aRequest, DatabaseContent.getInstance());
 
       EntityContent article = (EntityContent) contentModule.createNew();
-      article.setValues(values);
+      article.setFieldValues(values);
 
       finalizeArticle(aRequest, aSession, article);
       id = article.insert();
@@ -156,6 +166,9 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler
       values.put("to_publisher", "0");
       values.put("is_published", "1");
       values.put("is_produced", "1");
+      ModuleMediafolder module = new ModuleMediafolder(DatabaseMediafolder.getInstance());
+      values.put("to_media_folder", module.mediaFolderIdForName(configuration.getString("Localizer.OpenSession.article.DefaultMediaFolder")));
+
       Entity mediaItem = MediaUploadProcessor.processMediaUpload(aFile, values);
       mediaItem.update();
       contentToMedia.addMedia(((EntityContent) aSession.getAttribute("content")).getId(), mediaItem.getId());
@@ -178,4 +191,4 @@ public class MirBasicArticlePostingHandler extends MirBasicPostingSessionHandler
     logger.info("article posted");
   };
 
-}
\ No newline at end of file
+}