Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
In directory james.mmbase.org:/tmp/cvs-serv9707/util
Modified Files:
NewsletterUtil.java
Log Message:
CMSC-1196 Newsletter: publications/editions are created but not visible in
overview
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
See also: http://www.mmbase.org/jira/browse/CMSC-1196
Index: NewsletterUtil.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/NewsletterUtil.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- NewsletterUtil.java 12 Nov 2008 08:01:32 -0000 1.44
+++ NewsletterUtil.java 18 Dec 2008 11:27:09 -0000 1.45
@@ -19,6 +19,7 @@
import org.mmbase.bridge.NodeManager;
import org.mmbase.bridge.NodeQuery;
import org.mmbase.bridge.RelationList;
+import org.mmbase.bridge.RelationManager;
import org.mmbase.bridge.util.Queries;
import org.mmbase.bridge.util.SearchUtil;
import org.mmbase.storage.search.FieldValueConstraint;
@@ -39,18 +40,29 @@
import com.finalist.portlets.newsletter.NewsletterContentPortlet;
public abstract class NewsletterUtil {
- private static Log log = LogFactory
- .getLog(NewsletterUtil.class);
+
+ private static Log log = LogFactory.getLog(NewsletterUtil.class);
+
+ public static final String DOWN = "DOWN";
+ public static final String POSREL = "posrel";
+ public static final String SCHEDULE = "schedule";
+ public static final String SYSTEM_LIVEPATH = "system.livepath";
+ public static final String PORTLETREL = "portletrel";
+ public static final String PORTLETDEFINITION = "portletdefinition";
+ public static final String PORTLET = "portlet";
+ public static final String TITLE = "title";
+ public static final String SOURCE = "source";
+ public static final String NEWSLETTERCONTENT = "newslettercontent";
+ public static final String NUMBER = "number";
+ public static final String ARTICLE = "article";
public static final String NEWSLETTER = "newsletter";
public static final String NEWSLETTERPUBLICATION = "newsletterpublication";
-
- public static final String THEMETYPE_NEWSLETTER = "newslettertheme";
- public static final String THEMETYPE_NEWSLETTERPUBLICATION =
"newsletterpublicationtheme";
+ public static final String RELATED = "related";
public static int countNewsletters() {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeList newsletterList = SearchUtil.findNodeList(cloud, "newsletter");
+ NodeList newsletterList = SearchUtil.findNodeList(cloud, NEWSLETTER);
if (newsletterList != null) {
return (0 + newsletterList.size());
}
@@ -59,7 +71,7 @@
public static int countPublications() {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeList publicationList = SearchUtil.findNodeList(cloud,
"newsletterpublication");
+ NodeList publicationList = SearchUtil.findNodeList(cloud,
NEWSLETTERPUBLICATION);
if (publicationList != null) {
return (0 + publicationList.size());
}
@@ -69,7 +81,7 @@
public static int countPublications(int newsletterNumber) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node newsletterNode = cloud.getNode(newsletterNumber);
- NodeList publicationsList =
newsletterNode.getRelatedNodes("newsletterpublication");
+ NodeList publicationsList =
newsletterNode.getRelatedNodes(NEWSLETTERPUBLICATION);
if (publicationsList != null) {
return (publicationsList.size());
@@ -92,7 +104,7 @@
NodeQuery query = cloud.createNodeQuery();
Step step = query.addStep(newsletterLogManager);
query.setNodeStep(step);
- SearchUtil.addEqualConstraint(query,
newsletterLogManager.getField("newsletter"), newsletterNumber);
+ SearchUtil.addEqualConstraint(query,
newsletterLogManager.getField(NEWSLETTER), newsletterNumber);
NodeList logs = query.getList();
if (logs != null) {
@@ -145,7 +157,7 @@
public static List<Integer> getAllPublications() {
List<Integer> publications = new ArrayList<Integer>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeList publicationList = SearchUtil.findNodeList(cloud,
"newsletterpublication");
+ NodeList publicationList = SearchUtil.findNodeList(cloud,
NEWSLETTERPUBLICATION);
if (publicationList != null && publicationList.size() > 0) {
for (int n = 0; n < publicationList.size(); n++) {
Node publicationNode = publicationList.getNode(n);
@@ -161,7 +173,7 @@
List<Integer> articles = new ArrayList<Integer>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node themeNode = cloud.getNode(themeNumber);
- NodeManager articleNodeManager = cloud.getNodeManager("article");
+ NodeManager articleNodeManager = cloud.getNodeManager(ARTICLE);
NodeList articleList = themeNode.getRelatedNodes(articleNodeManager);
if (articleList != null) {
for (int i = 0; i < articleList.size(); i++) {
@@ -199,14 +211,14 @@
List<ContentElement> articles = new ArrayList<ContentElement>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeManager newsletterNodeManager = cloud.getNodeManager("newsletter");
- NodeManager articleNodeManager = cloud.getNodeManager("article");
+ NodeManager newsletterNodeManager = cloud.getNodeManager(NEWSLETTER);
+ NodeManager articleNodeManager = cloud.getNodeManager(ARTICLE);
NodeQuery query = cloud.createNodeQuery();
Step parameterStep = query.addStep(articleNodeManager);
query.setNodeStep(parameterStep);
RelationStep relationStep = query.addRelationStep(newsletterNodeManager,
null, null);
Step step = relationStep.getNext();
- StepField stepField = query.createStepField(step,
newsletterNodeManager.getField("number"));
+ StepField stepField = query.createStepField(step,
newsletterNodeManager.getField(NUMBER));
FieldValueConstraint constraint = query.createConstraint(stepField,
number);
SearchUtil.addConstraint(query, constraint);
Queries.addSortOrders(query, orderBy, direction);
@@ -256,15 +268,15 @@
public static List<Node> getArticles(int newsletterNumber,
SortedSet<Integer> sort, String orderBy, String direction) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeManager articleNodeManager = cloud.getNodeManager("article");
+ NodeManager articleNodeManager = cloud.getNodeManager(ARTICLE);
- NodeManager newsletterNodeManager = cloud.getNodeManager("newsletter");
+ NodeManager newsletterNodeManager = cloud.getNodeManager(NEWSLETTER);
NodeQuery articleQuery = cloud.createNodeQuery();
Step articleStep = articleQuery.addStep(articleNodeManager);
articleQuery.setNodeStep(articleStep);
RelationStep relationStep =
articleQuery.addRelationStep(newsletterNodeManager, null, null);
Step step = relationStep.getNext();
- StepField stepField = articleQuery.createStepField(step,
newsletterNodeManager.getField("number"));
+ StepField stepField = articleQuery.createStepField(step,
newsletterNodeManager.getField(NUMBER));
FieldValueConstraint constraint =
articleQuery.createConstraint(stepField, newsletterNumber);
SearchUtil.addConstraint(articleQuery, constraint);
Queries.addSortOrders(articleQuery, orderBy, direction);
@@ -275,8 +287,8 @@
NodeQuery query = cloud.createNodeQuery();
Step parameterStep = query.addStep(articleNodeManager);
query.setNodeStep(parameterStep);
- query.addRelationStep(termNodeManager, "newslettercontent",
SearchUtil.DESTINATION);
- SearchUtil.addInConstraint(query, termNodeManager.getField("number"),
sort);
+ query.addRelationStep(termNodeManager, NEWSLETTERCONTENT,
SearchUtil.DESTINATION);
+ SearchUtil.addInConstraint(query, termNodeManager.getField(NUMBER),
sort);
NodeList termRelatedArticles = query.getList();
List<Node> articles = new ArrayList<Node>();
@@ -302,9 +314,9 @@
public static int countArticles(int number) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
- NodeManager articleNodeManager = cloud.getNodeManager("article");
+ NodeManager articleNodeManager = cloud.getNodeManager(ARTICLE);
Node newsletterNode = cloud.getNode(number);
- int count = newsletterNode.countRelatedNodes(articleNodeManager,
"newslettercontent", "source");
+ int count = newsletterNode.countRelatedNodes(articleNodeManager,
NEWSLETTERCONTENT, SOURCE);
return count;
}
@@ -333,7 +345,7 @@
public static String getTitle(int newsletterNumber) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node newsletterNode = cloud.getNode(newsletterNumber);
- String title = newsletterNode.getStringValue("title");
+ String title = newsletterNode.getStringValue(TITLE);
return (title);
}
@@ -341,7 +353,7 @@
boolean result = false;
if (number > 0) {
String key = "" + determineNodeType(number);
- if (key.equals("newsletter")) {
+ if (key.equals(NEWSLETTER)) {
result = true;
}
}
@@ -362,7 +374,7 @@
boolean result = false;
if (number > 0) {
String key = "" + determineNodeType(number);
- if (key.equals("newsletterpublication")) {
+ if (key.equals(NEWSLETTERPUBLICATION)) {
result = true;
}
}
@@ -434,7 +446,7 @@
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node publicationNode = cloud.getNode(publicationId);
- List<Node> relatedportlets =
publicationNode.getRelatedNodes("portlet");
+ List<Node> relatedportlets = publicationNode.getRelatedNodes(PORTLET);
String termIds = "";
for (Term term : terms) {
@@ -444,10 +456,10 @@
termIds = termIds.substring(0, termIds.length() - 1);
}
for (Node portlet : relatedportlets) {
- List<Node> portletdefNodes =
portlet.getRelatedNodes("portletdefinition");
+ List<Node> portletdefNodes =
portlet.getRelatedNodes(PORTLETDEFINITION);
String portletDefinition =
portletdefNodes.get(0).getStringValue("definition");
if (portletDefinition.equals(NewsletterContentPortlet.DEFINITION))
{
- RelationList relations = portlet.getRelations("portletrel",
publicationNode.getNodeManager());
+ RelationList relations = portlet.getRelations(PORTLETREL,
publicationNode.getNodeManager());
String name = relations.getRelation(0).getStringValue("name");
url +=
"/_rp_".concat(name).concat("_").concat(NewsletterContentPortlet.NEWSLETTER_TERMS_PARAM).concat("/1_").concat(termIds);
}
@@ -458,7 +470,7 @@
public static String getServerURL() {
- String hostUrl = PropertiesUtil.getProperty("system.livepath");
+ String hostUrl = PropertiesUtil.getProperty(SYSTEM_LIVEPATH);
if (StringUtils.isEmpty(hostUrl)) {
throw new NewsletterSendFailException("get property <system.livepath>
from system property and get nothing");
@@ -505,18 +517,18 @@
}
public static void addScheduleForNewsletter(Node newsletterNode) {
- NodeManager scheduleNodeManager =
newsletterNode.getCloud().getNodeManager("schedule");
- NodeList schedules =
SearchUtil.findRelatedOrderedNodeList(newsletterNode, "schedule", "posrel",
"createdatetime", "DOWN");
+ NodeManager scheduleNodeManager =
newsletterNode.getCloud().getNodeManager(SCHEDULE);
+ NodeList schedules =
SearchUtil.findRelatedOrderedNodeList(newsletterNode, SCHEDULE, POSREL,
"createdatetime", DOWN);
if (schedules.size() == 0) {
addScheduleNode(newsletterNode, scheduleNodeManager);
} else {
Node firstScheduleNode = schedules.getNode(0);
- if
(firstScheduleNode.getStringValue("expression").equals(newsletterNode.getStringValue("schedule")))
{
+ if
(firstScheduleNode.getStringValue("expression").equals(newsletterNode.getStringValue(SCHEDULE)))
{
return;
}
for (int i = 0; i < schedules.size(); i++) {
Node scheduleNode = schedules.getNode(i);
- if
(scheduleNode.getStringValue("expression").equals(newsletterNode.getStringValue("schedule")))
{
+ if
(scheduleNode.getStringValue("expression").equals(newsletterNode.getStringValue(SCHEDULE)))
{
scheduleNode.setLongValue("createdatetime",
System.currentTimeMillis());
scheduleNode.commit();
return;
@@ -527,25 +539,25 @@
}
public static void addScheduleNode(Node newsletterNode, NodeManager
scheduleNodeManager) {
- if (StringUtils.isEmpty(newsletterNode.getStringValue("schedule"))) {
+ if (StringUtils.isEmpty(newsletterNode.getStringValue(SCHEDULE))) {
return;
}
Node scheduleNode = scheduleNodeManager.createNode();
- scheduleNode.setStringValue("expression",
newsletterNode.getStringValue("schedule"));
+ scheduleNode.setStringValue("expression",
newsletterNode.getStringValue(SCHEDULE));
scheduleNode.setLongValue("createdatetime", System.currentTimeMillis());
scheduleNode.commit();
- RelationUtil.createRelation(newsletterNode, scheduleNode, "posrel");
+ RelationUtil.createRelation(newsletterNode, scheduleNode, POSREL);
}
public static List<Schedule> getSchedulesBynewsletterId(int id) {
List<Schedule> schedules = new ArrayList<Schedule>();
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node newsletterNode = cloud.getNode(id);
- NodeList scheduleList =
SearchUtil.findRelatedOrderedNodeList(newsletterNode, "schedule", "posrel",
"createdatetime", "DOWN");
+ NodeList scheduleList =
SearchUtil.findRelatedOrderedNodeList(newsletterNode, SCHEDULE, POSREL,
"createdatetime", DOWN);
for (int i = 1; i < scheduleList.size(); i++) {
Node scheduleNode = scheduleList.getNode(i);
Schedule schedule = new Schedule();
- schedule.setId(scheduleNode.getIntValue("number"));
+ schedule.setId(scheduleNode.getIntValue(NUMBER));
schedule.setExpression(scheduleNode.getStringValue("expression"));
schedule.setScheduleDescription(getScheduleMessageByExpression(scheduleNode.getStringValue("expression")));
schedules.add(schedule);
@@ -699,13 +711,19 @@
public static void restoreSchedule(int scheduleId) {
Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
Node scheduleNode = cloud.getNode(scheduleId);
- Node newsletterNode = SearchUtil.findRelatedNode(scheduleNode,
"newsletter", "posrel");
+ Node newsletterNode = SearchUtil.findRelatedNode(scheduleNode,
NEWSLETTER, POSREL);
if (newsletterNode != null) {
- newsletterNode.setStringValue("schedule",
scheduleNode.getStringValue("expression"));
+ newsletterNode.setStringValue(SCHEDULE,
scheduleNode.getStringValue("expression"));
newsletterNode.setStringValue("scheduledescription",
getScheduleMessageByExpression(scheduleNode.getStringValue("expression")));
newsletterNode.commit();
}
scheduleNode.setLongValue("createdatetime", System.currentTimeMillis());
scheduleNode.commit();
}
+
+ public static void addNewsletterCreationChannel(int newsletterId ,int
editionId) {
+ Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
+ RelationManager relManager = cloud.getRelationManager(NEWSLETTER,
NEWSLETTERPUBLICATION, RELATED);
+ relManager.createRelation(cloud.getNode(newsletterId),
cloud.getNode(editionId)).commit();
+ }
}
\ No newline at end of file
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs