From cec7fb12a263265f30fbca6b61eba27f6be597e2 Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 6 Apr 2012 08:20:24 +0000 Subject: [PATCH] - Journal ist nicht mehr Publication abgeleitet, sondern direkt von ContentPage (Tickets #1061 und #1063) - Assoziation Journal <-> ArticleInJournal optimiert (Ticket #1116) git-svn-id: https://svn.libreccm.org/ccm/trunk@1571 8810af33-2d31-482b-a856-94f89814c4df --- .../contenttypes/ui/GenericPersonCreate.java | 1 - .../ArticleInCollectedVolume.pdl | 3 + .../com/arsdigita/content-types/Journal.pdl | 20 ++- .../cms/contenttypes/ArticleInJournal.xml | 2 +- .../arsdigita/cms/contenttypes/Journal.xml | 2 +- .../cms/contenttypes/ArticleInJournal.java | 92 +++++++------ .../contenttypes/ArticleInJournalBundle.java | 128 ++++++++++++++++++ .../ArticleInJournalCollection.java | 17 ++- .../arsdigita/cms/contenttypes/Journal.java | 52 ++++--- .../cms/contenttypes/JournalBundle.java | 118 ++++++++++++++++ .../ui/ArticleInJournalCreate.java | 25 ++++ .../cms/contenttypes/ui/JournalCreate.java | 57 ++++++++ .../contenttypes/ui/PublicationXmlHelper.java | 24 ++-- 13 files changed, 462 insertions(+), 79 deletions(-) create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ArticleInJournalBundle.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/contenttypes/JournalBundle.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/ArticleInJournalCreate.java create mode 100644 ccm-sci-publications/src/com/arsdigita/cms/contenttypes/ui/JournalCreate.java diff --git a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java index 0eedbfc12..28024ed6e 100644 --- a/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java +++ b/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonCreate.java @@ -13,7 +13,6 @@ import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.parameters.DateParameter; import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.util.GlobalizationUtil; -import com.arsdigita.cms.ContentBundle; import com.arsdigita.cms.ContentPage; import com.arsdigita.cms.ContentSection; import com.arsdigita.cms.ContentType; diff --git a/ccm-sci-publications/pdl/com/arsdigita/content-types/ArticleInCollectedVolume.pdl b/ccm-sci-publications/pdl/com/arsdigita/content-types/ArticleInCollectedVolume.pdl index 1a798a560..451d1ac4a 100644 --- a/ccm-sci-publications/pdl/com/arsdigita/content-types/ArticleInCollectedVolume.pdl +++ b/ccm-sci-publications/pdl/com/arsdigita/content-types/ArticleInCollectedVolume.pdl @@ -31,5 +31,8 @@ object type ArticleInCollectedVolume extends Publication { reference key (ct_article_in_collected_volume.article_id); +} +object type ArticleInJournalBundle extends PublicationBundle { + reference key (ct_article_in_journal_bundles.bundle_id); } \ No newline at end of file diff --git a/ccm-sci-publications/pdl/com/arsdigita/content-types/Journal.pdl b/ccm-sci-publications/pdl/com/arsdigita/content-types/Journal.pdl index f1bb2ec16..ebd01cd0a 100644 --- a/ccm-sci-publications/pdl/com/arsdigita/content-types/Journal.pdl +++ b/ccm-sci-publications/pdl/com/arsdigita/content-types/Journal.pdl @@ -20,27 +20,33 @@ model com.arsdigita.cms.contenttypes; import com.arsdigita.cms.ContentPage; +import com.arsdigita.cms.ContentBundle; //PDL definition for a journal -object type Journal extends Publication { +object type Journal extends ContentPage { + Integer[0..1] firstYear = ct_journal.firstyear INTEGER; Integer[0..1] lastYear = ct_journal.lastyear INTEGER; String[0..1] issn = ct_journal.issn VARCHAR(9); reference key (ct_journal.journal_id); } +object type JournalBundle extends ContentBundle { + reference key (ct_journal_bundles.bundle_id); +} + association { - Journal[0..n] journal = join ct_article_in_journal.article_in_journal_id - to ct_journal_article_map.article_in_journal_id, - join ct_journal_article_map.journal_id - to ct_journal.journal_id; + JournalBundle[0..n] journal = join ct_article_in_journal_bundles.bundle_id + to ct_journal_article_map.article_in_journal_id, + join ct_journal_article_map.journal_id + to ct_journal_bundles.bundle_id; - ArticleInJournal[0..n] articles = join ct_journal.journal_id + ArticleInJournalBundle[0..n] articles = join ct_journal_bundles.bundle_id to ct_journal_article_map.journal_id, join ct_journal_article_map.article_in_journal_id - to ct_article_in_journal.article_in_journal_id; + to ct_article_in_journal_bundles.bundle_id; Integer[0..1] articleOrder = ct_journal_article_map.article_order INTEGER; } \ No newline at end of file diff --git a/ccm-sci-publications/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/ArticleInJournal.xml b/ccm-sci-publications/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/ArticleInJournal.xml index e392ed9ea..bd0d43414 100644 --- a/ccm-sci-publications/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/ArticleInJournal.xml +++ b/ccm-sci-publications/src/WEB-INF/content-types/com/arsdigita/cms/contenttypes/ArticleInJournal.xml @@ -10,7 +10,7 @@ objectType="com.arsdigita.cms.contenttypes.ArticleInJournal" classname="com.arsdigita.cms.contenttypes.ArticleInJournal"> - + - +