From 82ef06c897b379c70c96873b4223f3918b768294 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Thu, 29 Sep 2022 20:05:34 +0200 Subject: [PATCH] DB migrations and other utility classes for sci-types-department --- .gitignore | 1 + sci-types-department/package-lock.json | 6 + sci-types-department/pom.xml | 6 +- .../scidepartment/Membership.java | 2 +- .../scidepartment/SciDepartment.java | 4 +- .../scidepartment/SciDepartmentConfig.java | 52 ++++ .../SciDepartmentImExporter.java | 22 ++ .../scidepartment/SciDepartmentManager.java | 293 ++++++++++++++++++ .../h2/V7_0_0_0__create_tables.sql | 275 ++++++++++++++++ .../pgsql/V7_0_0_0__create_tables.sql | 275 ++++++++++++++++ ...idepartment.SciDepartmentModule.properties | 4 + .../DefaultContactTypes.properties | 1 + .../DefaultContactTypes_de.properties | 1 + .../sciproject/SciProjectMananger.java | 1 - 14 files changed, 936 insertions(+), 7 deletions(-) create mode 100644 sci-types-department/package-lock.json create mode 100644 sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentConfig.java create mode 100644 sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentImExporter.java create mode 100644 sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentManager.java create mode 100644 sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/h2/V7_0_0_0__create_tables.sql create mode 100644 sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/pgsql/V7_0_0_0__create_tables.sql create mode 100644 sci-types-department/src/main/resources/module-info/org.scientificcms.contenttypes.scidepartment.SciDepartmentModule.properties create mode 100644 sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes.properties create mode 100644 sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes_de.properties diff --git a/.gitignore b/.gitignore index d420165..1d5b369 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .settings node node_modules +/sci-types-department/target/ /sci-types-project/target/ /scientificcms/target/ /sci-publications/nbproject/ diff --git a/sci-types-department/package-lock.json b/sci-types-department/package-lock.json new file mode 100644 index 0000000..204c265 --- /dev/null +++ b/sci-types-department/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "sci-types-department", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/sci-types-department/pom.xml b/sci-types-department/pom.xml index 71c8b51..f2671d6 100644 --- a/sci-types-department/pom.xml +++ b/sci-types-department/pom.xml @@ -166,7 +166,7 @@ - + org.apache.maven.plugins diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/Membership.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/Membership.java index 2418459..758fc9b 100644 --- a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/Membership.java +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/Membership.java @@ -89,7 +89,7 @@ public class Membership implements Serializable { return department; } - protected void setProject(final SciDepartment department) { + protected void setDepartment(final SciDepartment department) { this.department = department; } diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartment.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartment.java index 0f01fce..742c941 100644 --- a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartment.java +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartment.java @@ -110,12 +110,12 @@ public class SciDepartment extends ContentItem implements Serializable { @JsonIgnore private List contacts; - @OneToMany(cascade = CascadeType.ALL, mappedBy = "project") + @OneToMany(cascade = CascadeType.ALL, mappedBy = "department") @OrderBy("member ASC") @JsonIgnore private List members; - @OneToMany(cascade = CascadeType.ALL, mappedBy = "project") + @OneToMany(cascade = CascadeType.ALL, mappedBy = "department") @OrderBy("project ASC") @JsonIgnore private List projects; diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentConfig.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentConfig.java new file mode 100644 index 0000000..37b2955 --- /dev/null +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentConfig.java @@ -0,0 +1,52 @@ +package org.scientificcms.contenttypes.scidepartment; + +import org.libreccm.cdi.utils.CdiUtil; +import org.libreccm.configuration.Configuration; +import org.libreccm.configuration.ConfigurationManager; +import org.libreccm.configuration.Setting; + +/** + * + * @author Jens Pelzetter + */ +@Configuration +public class SciDepartmentConfig { + + @Setting + private String contactTypesBundleName + = "org.scientificcms.contenttypes.scidepartment.DefaultContactTypes"; + + @Setting + private String memberRolesBundleName + = "org.scientificcms.contenttypes.scidepartment.MemberRoles"; + + public static SciDepartmentConfig getConfig() { + final ConfigurationManager confManager = CdiUtil + .createCdiUtil() + .findBean(ConfigurationManager.class); + return confManager.findConfiguration(SciDepartmentConfig.class); + } + + public SciDepartmentConfig() { + super(); + } + + public String getContactTypesBundleName() { + return contactTypesBundleName; + } + + public void setContactTypesBundleName(final String contactTypesBundleName) { + this.contactTypesBundleName = contactTypesBundleName; + } + + public String getMemberRolesBundleName() { + return memberRolesBundleName; + } + + public void setMemberRolesBundleName(final String memberRolesBundleName) { + this.memberRolesBundleName = memberRolesBundleName; + } + + + +} diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentImExporter.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentImExporter.java new file mode 100644 index 0000000..ceb6502 --- /dev/null +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentImExporter.java @@ -0,0 +1,22 @@ +package org.scientificcms.contenttypes.scidepartment; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(SciDepartment.class) +public class SciDepartmentImExporter + extends AbstractContentItemImExporter{ + + @Override + public Class getEntityClass() { + return SciDepartment.class; + } + +} diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentManager.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentManager.java new file mode 100644 index 0000000..d5c7617 --- /dev/null +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/SciDepartmentManager.java @@ -0,0 +1,293 @@ +package org.scientificcms.contenttypes.scidepartment; + +import org.libreccm.l10n.LocalizedString; +import org.librecms.assets.ContactableEntity; +import org.librecms.assets.Person; +import org.librecms.contentsection.ContentItemRepository; +import org.scientificcms.contenttypes.sciproject.SciProject; + +import java.io.Serializable; +import java.util.Objects; +import java.util.Optional; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +public class SciDepartmentManager implements Serializable { + + private static final long serialVersionUID = 1L; + + @Inject + private ContactRepository contactRepo; + + @Inject + private ContentItemRepository itemRepo; + + @Inject + private DepartmentProjectRepository departmentProjectRepo; + + @Inject + private DepartmentTextRepository departmentTextRepo; + + @Inject + private MembershipRepository membershipRepo; + + @Transactional(Transactional.TxType.REQUIRED) + public void addText( + final LocalizedString text, + final SciDepartment toDepartment, + final String withKey + ) { + Objects.requireNonNull( + toDepartment, + "Can't add a text to department null" + ); + Objects.requireNonNull(text, "Can't add null as text."); + Objects.requireNonNull( + withKey, + "Can't add a text to a department with key null." + ); + if (withKey.isBlank()) { + throw new IllegalArgumentException( + "Can't add a text to a department using a blank key." + ); + } + + final DepartmentText departmentText = new DepartmentText(); + departmentText.setDepartment(toDepartment); + departmentText.setKey(withKey); + departmentText.setOrder(toDepartment.getAdditionalTexts().size()); + departmentText.setText(text); + + toDepartment.putAdditionalText(withKey, departmentText); + departmentTextRepo.save(departmentText); + itemRepo.save(toDepartment); + } + + @Transactional(Transactional.TxType.REQUIRED) + public void removeText( + final SciDepartment fromDepartment, + final String withKey + ) { + Objects.requireNonNull( + fromDepartment, + "Can't remove a text from department null." + ); + + if (fromDepartment.getAdditionalTexts().containsKey(withKey)) { + final DepartmentText removed = fromDepartment + .getAdditionalTexts() + .get(withKey); + fromDepartment.removeAdditionalText(withKey); + itemRepo.save(fromDepartment); + departmentTextRepo.delete(removed); + } + } + + @Transactional(Transactional.TxType.REQUIRED) + public void addContact( + final ContactableEntity contactable, + final SciDepartment toDepartment, + final String withType + ) { + Objects.requireNonNull( + contactable, + "Can't add null as Contact to a SciDepartment." + ); + Objects.requireNonNull( + toDepartment, + "Can't add a Contact to a department null." + ); + + final Contact contact = new Contact(); + contact.setContactable(contactable); + contact.setDepartment(toDepartment); + contact.setContactType(withType); + contact.setOrder(toDepartment.getContacts().size()); + + toDepartment.addContact(contact); + contactRepo.save(contact); + itemRepo.save(toDepartment); + } + + @Transactional(Transactional.TxType.REQUIRED) + public void removeContact( + final ContactableEntity contactable, + final SciDepartment fromDepartment + ) { + Objects.requireNonNull( + contactable, + "Can't remove null as Contact from a SciDepartment." + ); + Objects.requireNonNull( + fromDepartment, + "Can't remove a Contact from department null." + ); + + final Optional result = fromDepartment + .getContacts() + .stream() + .filter( + contact -> filterContact(contact, contactable, fromDepartment) + ) + .findFirst(); + + if (result.isPresent()) { + final Contact removed = result.get(); + fromDepartment.removeContact(removed); + itemRepo.save(fromDepartment); + contactRepo.delete(removed); + } + } + + @Transactional(Transactional.TxType.REQUIRED) + public void addMember( + final Person person, + final SciDepartment toDepartment, + final String withRole, + final MembershipStatus withStatus + ) { + Objects.requireNonNull( + person, + "Can't add null as a member null to a SciDepartment." + ); + Objects.requireNonNull( + toDepartment, + "Can't a member to a SciDepartment null." + ); + + final Membership membership = new Membership(); + membership.setDepartment(toDepartment); + membership.setMember(person); + membership.setRole(withRole); + membership.setStatus(withStatus); + + toDepartment.addMember(membership); + membershipRepo.save(membership); + itemRepo.save(toDepartment); + } + + @Transactional(Transactional.TxType.REQUIRED) + public void removeMember( + final Person person, + final SciDepartment fromDepartment + ) { + Objects.requireNonNull( + person, + "Can't remove null as a member from a SciDepartment." + ); + Objects.requireNonNull( + fromDepartment, + "Can't remove a member from a SciDepartment null." + ); + + final Optional result = fromDepartment + .getMembers() + .stream() + .filter( + membership -> filterMembership( + membership, + person, + fromDepartment + ) + ) + .findFirst(); + + if (result.isPresent()) { + final Membership removed = result.get(); + fromDepartment.removeMember(removed); + itemRepo.save(fromDepartment); + membershipRepo.delete(removed); + } + } + + @Transactional(Transactional.TxType.REQUIRED) + public void addProject( + final SciProject project, + final SciDepartment toDepartment + ) { + Objects.requireNonNull( + project, + "Can't add null as a project null to a SciDepartment." + ); + Objects.requireNonNull( + toDepartment, + "Can't a project to a SciDepartment null." + ); + + final DepartmentProject departmentProject =new DepartmentProject(); + departmentProject.setDepartment(toDepartment); + departmentProject.setProject(project); + + toDepartment.addProject(departmentProject); + departmentProjectRepo.save(departmentProject); + itemRepo.save(project); + } + + @Transactional(Transactional.TxType.REQUIRED) + public void removeProject( + final SciProject project, + final SciDepartment fromDepartment + ) { + Objects.requireNonNull( + project, + "Can't remove null as a project from a SciDepartment." + ); + Objects.requireNonNull( + fromDepartment, + "Can't remove a project from a SciDepartment null." + ); + + final Optional result = fromDepartment + .getProjects() + .stream() + .filter( + departmentProject -> filterDepartmentProject( + departmentProject, project, fromDepartment + ) + ) + .findFirst(); + + if (result.isPresent()) { + final DepartmentProject removed = result.get(); + fromDepartment.removeProject(removed); + itemRepo.save(fromDepartment); + departmentProjectRepo.delete(removed); + } + } + + private boolean filterContact( + final Contact contact, + final ContactableEntity byContactable, + final SciDepartment byDepartment + ) { + return contact.getContactable().equals(byContactable) + && contact.getDepartment().equals(byDepartment); + } + + private boolean filterMembership( + final Membership membership, + final Person byPerson, + final SciDepartment byDepartment + ) { + return membership.getMember().equals(byPerson) + && membership.getDepartment().equals(byDepartment); + } + + private boolean filterDepartmentProject( + final DepartmentProject departmentProject, + final SciProject byProject, + final SciDepartment byDepartment + + ) { + return departmentProject.getProject().equals(byProject) + && departmentProject.getDepartment().equals(byDepartment); + } + +} diff --git a/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/h2/V7_0_0_0__create_tables.sql b/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/h2/V7_0_0_0__create_tables.sql new file mode 100644 index 0000000..45a682b --- /dev/null +++ b/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/h2/V7_0_0_0__create_tables.sql @@ -0,0 +1,275 @@ + create table SCI_TYPES_PROJECT.PROJECT_CONTACTS ( + CONTACT_ID bigint not null, + CONTACT_TYPE varchar(255), + CONTACT_ORDER bigint, + CONTACTABLE_ID bigint, + PROJECT_ID bigint, + primary key (CONTACT_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD ( + CONTACT_ID bigint not null, + REV integer not null, + REVTYPE tinyint, + REVEND integer, + CONTACT_TYPE varchar(255), + CONTACT_ORDER bigint, + CONTACTABLE_ID bigint, + PROJECT_ID bigint, + primary key (CONTACT_ID, REV) + ); + + create table SCI_TYPES_PROJECT.PROJECT_DESCS ( + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647), + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD ( + REV integer not null, + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647) not null, + LOCALE varchar(255) not null, + REVTYPE tinyint, + REVEND integer, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING ( + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647), + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD ( + REV integer not null, + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647) not null, + LOCALE varchar(255) not null, + REVTYPE tinyint, + REVEND integer, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME ( + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647), + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD ( + REV integer not null, + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647) not null, + LOCALE varchar(255) not null, + REVTYPE tinyint, + REVEND integer, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS ( + MEMBERSHIP_ID bigint not null, + MEMBER_ROLE varchar(255), + STATUS varchar(255), + MEMBER_ID bigint, + PROJECT_ID bigint, + primary key (MEMBERSHIP_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD ( + MEMBERSHIP_ID bigint not null, + REV integer not null, + REVTYPE tinyint, + REVEND integer, + MEMBER_ROLE varchar(255), + STATUS varchar(255), + MEMBER_ID bigint, + PROJECT_ID bigint, + primary key (MEMBERSHIP_ID, REV) + ); + + create table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS ( + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647), + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD ( + REV integer not null, + OBJECT_ID bigint not null, + LOCALIZED_VALUE varchar(2147483647) not null, + LOCALE varchar(255) not null, + REVTYPE tinyint, + REVEND integer, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECTS ( + PROJECT_BEGIN date, + PROJECT_END date, + OBJECT_ID bigint not null, + primary key (OBJECT_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECTS_AUD ( + OBJECT_ID bigint not null, + REV integer not null, + PROJECT_BEGIN date, + PROJECT_END date, + primary key (OBJECT_ID, REV) + ); + + create table SCI_TYPES_PROJECT.SPONSORING ( + SPONSORING_ID bigint not null, + FUNDING_CODE varchar(512), + SPONSOR_ORDER bigint, + PROJECT_ID bigint, + SPONSOR_ID bigint, + primary key (SPONSORING_ID) + ); + + create table SCI_TYPES_PROJECT.SPONSORING_AUD ( + SPONSORING_ID bigint not null, + REV integer not null, + REVTYPE tinyint, + REVEND integer, + FUNDING_CODE varchar(512), + SPONSOR_ORDER bigint, + PROJECT_ID bigint, + SPONSOR_ID bigint, + primary key (SPONSORING_ID, REV) + ); + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS + add constraint FKgnma88ye77fb0vdmpuepyb2y7 + foreign key (CONTACTABLE_ID) + references CCM_CMS.CONTACTABLE_ENTITIES; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS + add constraint FK21fku49mpakv86hra725t3sok + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD + add constraint FK15m4nnwrt964isduiuk8bbeg8 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD + add constraint FKciyhqi7w2dby8e3b4arklmfqp + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS + add constraint FKfh5goal8j4gsjhf65gxm11gxu + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD + add constraint FKfq5fyp71qmrc9y0h6px8vae7l + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD + add constraint FK6615a6cc9tcmovk51a9vqff7x + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING + add constraint FKqmq8depjmuly0lixjljwnwut5 + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD + add constraint FK664s3oomoj23e9hvbh97hg5dw + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD + add constraint FKgtsw7ruamw5m1p15p5y261a23 + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME + add constraint FKf6lg5n24snpplnvctdknh4mrv + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD + add constraint FKgnnop98oxffgs7bp9bspajhw9 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD + add constraint FKk599wppcylm8yo704ht3w7ibj + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS + add constraint FKdbcet4i6wg7jinmaa0wchqujp + foreign key (MEMBER_ID) + references CCM_CMS.PERSONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS + add constraint FK54cqbnqwnv7e13p7k842nmjvt + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD + add constraint FKjdf8o2a5cuusgee0v43n562y4 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD + add constraint FK7yfj65ojma1coq2eeywpu0fcp + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS + add constraint FKqbbb85ebs497yad3gx07kdt1e + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD + add constraint FK4ijysk1fk31o5kljgpc2p7yq6 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD + add constraint FKkmidmqbpihxhfu1349lcw0rb0 + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECTS + add constraint FKqlmls86i354oxprglxg5j9xxy + foreign key (OBJECT_ID) + references CCM_CMS.CONTENT_ITEMS; + + alter table SCI_TYPES_PROJECT.PROJECTS_AUD + add constraint FKss0w64wsb71r39npak6tg963b + foreign key (OBJECT_ID, REV) + references CCM_CMS.CONTENT_ITEMS_AUD; + + alter table SCI_TYPES_PROJECT.SPONSORING + add constraint FKe8posjrbtsvd7t8q3k8l7ybmy + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.SPONSORING + add constraint FKt63gl8j92rua5risu9cnhd3py + foreign key (SPONSOR_ID) + references CCM_CMS.ORGANIZATIONS; + + alter table SCI_TYPES_PROJECT.SPONSORING_AUD + add constraint FK7ci9e1fuqi8vbjcp9x70747se + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.SPONSORING_AUD + add constraint FKfa0ems4hsww6wgoapss1bx38f + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; diff --git a/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/pgsql/V7_0_0_0__create_tables.sql b/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/pgsql/V7_0_0_0__create_tables.sql new file mode 100644 index 0000000..8f5c82e --- /dev/null +++ b/sci-types-department/src/main/resources/db/migrations/org/scientificcms/sci_types_department/pgsql/V7_0_0_0__create_tables.sql @@ -0,0 +1,275 @@ + create table SCI_TYPES_PROJECT.PROJECT_CONTACTS ( + CONTACT_ID int8 not null, + CONTACT_TYPE varchar(255), + CONTACT_ORDER int8, + CONTACTABLE_ID int8, + PROJECT_ID int8, + primary key (CONTACT_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD ( + CONTACT_ID int8 not null, + REV int4 not null, + REVTYPE int2, + REVEND int4, + CONTACT_TYPE varchar(255), + CONTACT_ORDER int8, + CONTACTABLE_ID int8, + PROJECT_ID int8, + primary key (CONTACT_ID, REV) + ); + + create table SCI_TYPES_PROJECT.PROJECT_DESCS ( + OBJECT_ID int8 not null, + LOCALIZED_VALUE text, + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD ( + REV int4 not null, + OBJECT_ID int8 not null, + LOCALIZED_VALUE text not null, + LOCALE varchar(255) not null, + REVTYPE int2, + REVEND int4, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING ( + OBJECT_ID int8 not null, + LOCALIZED_VALUE text, + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD ( + REV int4 not null, + OBJECT_ID int8 not null, + LOCALIZED_VALUE text not null, + LOCALE varchar(255) not null, + REVTYPE int2, + REVEND int4, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME ( + OBJECT_ID int8 not null, + LOCALIZED_VALUE text, + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD ( + REV int4 not null, + OBJECT_ID int8 not null, + LOCALIZED_VALUE text not null, + LOCALE varchar(255) not null, + REVTYPE int2, + REVEND int4, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS ( + MEMBERSHIP_ID int8 not null, + MEMBER_ROLE varchar(255), + STATUS varchar(255), + MEMBER_ID int8, + PROJECT_ID int8, + primary key (MEMBERSHIP_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD ( + MEMBERSHIP_ID int8 not null, + REV int4 not null, + REVTYPE int2, + REVEND int4, + MEMBER_ROLE varchar(255), + STATUS varchar(255), + MEMBER_ID int8, + PROJECT_ID int8, + primary key (MEMBERSHIP_ID, REV) + ); + + create table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS ( + OBJECT_ID int8 not null, + LOCALIZED_VALUE text, + LOCALE varchar(255) not null, + primary key (OBJECT_ID, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD ( + REV int4 not null, + OBJECT_ID int8 not null, + LOCALIZED_VALUE text not null, + LOCALE varchar(255) not null, + REVTYPE int2, + REVEND int4, + primary key (REV, OBJECT_ID, LOCALIZED_VALUE, LOCALE) + ); + + create table SCI_TYPES_PROJECT.PROJECTS ( + PROJECT_BEGIN date, + PROJECT_END date, + OBJECT_ID int8 not null, + primary key (OBJECT_ID) + ); + + create table SCI_TYPES_PROJECT.PROJECTS_AUD ( + OBJECT_ID int8 not null, + REV int4 not null, + PROJECT_BEGIN date, + PROJECT_END date, + primary key (OBJECT_ID, REV) + ); + + create table SCI_TYPES_PROJECT.SPONSORING ( + SPONSORING_ID int8 not null, + FUNDING_CODE varchar(512), + SPONSOR_ORDER int8, + PROJECT_ID int8, + SPONSOR_ID int8, + primary key (SPONSORING_ID) + ); + + create table SCI_TYPES_PROJECT.SPONSORING_AUD ( + SPONSORING_ID int8 not null, + REV int4 not null, + REVTYPE int2, + REVEND int4, + FUNDING_CODE varchar(512), + SPONSOR_ORDER int8, + PROJECT_ID int8, + SPONSOR_ID int8, + primary key (SPONSORING_ID, REV) + ); + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS + add constraint FKgnma88ye77fb0vdmpuepyb2y7 + foreign key (CONTACTABLE_ID) + references CCM_CMS.CONTACTABLE_ENTITIES; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS + add constraint FK21fku49mpakv86hra725t3sok + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD + add constraint FK15m4nnwrt964isduiuk8bbeg8 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_CONTACTS_AUD + add constraint FKciyhqi7w2dby8e3b4arklmfqp + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS + add constraint FKfh5goal8j4gsjhf65gxm11gxu + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD + add constraint FKfq5fyp71qmrc9y0h6px8vae7l + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_DESCS_AUD + add constraint FK6615a6cc9tcmovk51a9vqff7x + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING + add constraint FKqmq8depjmuly0lixjljwnwut5 + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD + add constraint FK664s3oomoj23e9hvbh97hg5dw + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_AUD + add constraint FKgtsw7ruamw5m1p15p5y261a23 + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME + add constraint FKf6lg5n24snpplnvctdknh4mrv + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD + add constraint FKgnnop98oxffgs7bp9bspajhw9 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_FUNDING_VOLUME_AUD + add constraint FKk599wppcylm8yo704ht3w7ibj + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS + add constraint FKdbcet4i6wg7jinmaa0wchqujp + foreign key (MEMBER_ID) + references CCM_CMS.PERSONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS + add constraint FK54cqbnqwnv7e13p7k842nmjvt + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD + add constraint FKjdf8o2a5cuusgee0v43n562y4 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_MEMBERSHIPS_AUD + add constraint FK7yfj65ojma1coq2eeywpu0fcp + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS + add constraint FKqbbb85ebs497yad3gx07kdt1e + foreign key (OBJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD + add constraint FK4ijysk1fk31o5kljgpc2p7yq6 + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECT_SHORT_DESCS_AUD + add constraint FKkmidmqbpihxhfu1349lcw0rb0 + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.PROJECTS + add constraint FKqlmls86i354oxprglxg5j9xxy + foreign key (OBJECT_ID) + references CCM_CMS.CONTENT_ITEMS; + + alter table SCI_TYPES_PROJECT.PROJECTS_AUD + add constraint FKss0w64wsb71r39npak6tg963b + foreign key (OBJECT_ID, REV) + references CCM_CMS.CONTENT_ITEMS_AUD; + + alter table SCI_TYPES_PROJECT.SPONSORING + add constraint FKe8posjrbtsvd7t8q3k8l7ybmy + foreign key (PROJECT_ID) + references SCI_TYPES_PROJECT.PROJECTS; + + alter table SCI_TYPES_PROJECT.SPONSORING + add constraint FKt63gl8j92rua5risu9cnhd3py + foreign key (SPONSOR_ID) + references CCM_CMS.ORGANIZATIONS; + + alter table SCI_TYPES_PROJECT.SPONSORING_AUD + add constraint FK7ci9e1fuqi8vbjcp9x70747se + foreign key (REV) + references CCM_CORE.CCM_REVISIONS; + + alter table SCI_TYPES_PROJECT.SPONSORING_AUD + add constraint FKfa0ems4hsww6wgoapss1bx38f + foreign key (REVEND) + references CCM_CORE.CCM_REVISIONS; diff --git a/sci-types-department/src/main/resources/module-info/org.scientificcms.contenttypes.scidepartment.SciDepartmentModule.properties b/sci-types-department/src/main/resources/module-info/org.scientificcms.contenttypes.scidepartment.SciDepartmentModule.properties new file mode 100644 index 0000000..b9f3b36 --- /dev/null +++ b/sci-types-department/src/main/resources/module-info/org.scientificcms.contenttypes.scidepartment.SciDepartmentModule.properties @@ -0,0 +1,4 @@ +groupId=${project.groupId} +artifactId=${project.artifactId} +version=${project.version} +build.date=${timestamp} diff --git a/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes.properties b/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes.properties new file mode 100644 index 0000000..e72b04d --- /dev/null +++ b/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes.properties @@ -0,0 +1 @@ +sciproject.contact=Contact diff --git a/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes_de.properties b/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes_de.properties new file mode 100644 index 0000000..aaf69df --- /dev/null +++ b/sci-types-department/src/main/resources/org/scientificcms/contenttypes/scidepartment/DefaultContactTypes_de.properties @@ -0,0 +1 @@ +sciproject.contact=Kontakt diff --git a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java index a005391..e84ce57 100644 --- a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java +++ b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SciProjectMananger.java @@ -9,7 +9,6 @@ import org.librecms.assets.ContactableEntity; import org.librecms.assets.Organization; import org.librecms.assets.Person; import org.librecms.contentsection.ContentItemRepository; -import org.librecms.ui.contentsections.ContentSectionsUi; import java.io.Serializable; import java.util.Objects;