Skip to content
Snippets Groups Projects
Commit 72496f98 authored by srosse's avatar srosse
Browse files

OO-4454: fix MySQL upgrade, fix startup, fix deleted upgraders

parent 88cbd445
No related branches found
No related tags found
No related merge requests found
...@@ -608,7 +608,9 @@ public class CatalogManager implements UserDataDeletable, InitializingBean { ...@@ -608,7 +608,9 @@ public class CatalogManager implements UserDataDeletable, InitializingBean {
private CatalogEntry saveCatEntry(String name, String desc, int type, SecurityGroup ownerGroup, RepositoryEntry repoEntry, private CatalogEntry saveCatEntry(String name, String desc, int type, SecurityGroup ownerGroup, RepositoryEntry repoEntry,
CatalogEntry parent) { CatalogEntry parent) {
parent = getCatalogEntryByKey(parent.getKey()); if(parent != null) {
parent = getCatalogEntryByKey(parent.getKey());
}
CatalogEntry ce = createCatalogEntry(); CatalogEntry ce = createCatalogEntry();
ce.setName(name); ce.setName(name);
ce.setDescription(desc); ce.setDescription(desc);
...@@ -617,13 +619,15 @@ public class CatalogManager implements UserDataDeletable, InitializingBean { ...@@ -617,13 +619,15 @@ public class CatalogManager implements UserDataDeletable, InitializingBean {
ce.setParent(parent); ce.setParent(parent);
ce.setType(type); ce.setType(type);
saveCatalogEntry(ce); saveCatalogEntry(ce);
List<CatalogEntry> catEntries = parent.getChildren();
for (CatalogEntry catalogEntry : catEntries) { if(parent != null) {
if (catalogEntry.getType() == type) { List<CatalogEntry> catEntries = parent.getChildren();
catEntries.add(catEntries.indexOf(catalogEntry), ce); for (CatalogEntry catalogEntry : catEntries) {
updateCatalogEntry(parent); if (catalogEntry.getType() == type) {
break; catEntries.add(catEntries.indexOf(catalogEntry), ce);
updateCatalogEntry(parent);
break;
}
} }
} }
......
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="false">
<class name="org.olat.repository.model.CatalogEntryImpl" table="o_catentry">
<id name="key" column="id" type="long" unsaved-value="null">
<generator class="enhanced-sequence">
<param name="sequence_name">hibernate_unique_key</param>
<param name="force_table_use">true</param>
<param name="optimizer">legacy-hilo</param>
<param name="value_column">next_hi</param>
<param name="increment_size">32767</param>
<param name="initial_value">32767</param>
</generator>
</id>
<version name="version" access="field" column="version" type="int"/>
<property name="creationDate" column="creationdate" type="timestamp" />
<property name="name" unique="false" type="string" not-null="true" length="100"/>
<property name="description" column="description" type="string" unique="false" not-null="false"/>
<property name="externalURL" column="externalurl" unique="false" type="string" not-null="false"/>
<property name="styleString" column="style" unique="false" type="string" not-null="false"/>
<many-to-one name="repositoryEntry" class="org.olat.repository.RepositoryEntry" outer-join="false" cascade="none">
<column name="fk_repoentry" not-null="false" unique="false" />
</many-to-one>
<many-to-one name="ownerGroup" class="org.olat.basesecurity.SecurityGroupImpl" outer-join="false" cascade="none">
<column name="fk_ownergroup" not-null="false" unique="true" />
</many-to-one>
<property name="type" unique="false" type="int" not-null="true"/>
<many-to-one name="parent" class="org.olat.repository.model.CatalogEntryImpl" column="parent_id" not-null="false" outer-join="false" cascade="none"/>
</class>
</hibernate-mapping>
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
package org.olat.repository.model; package org.olat.repository.model;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -105,7 +106,6 @@ public class CatalogEntryImpl implements CatalogEntry { ...@@ -105,7 +106,6 @@ public class CatalogEntryImpl implements CatalogEntry {
private CatalogEntry parent; private CatalogEntry parent;
@OneToMany(targetEntity = CatalogEntryImpl.class, mappedBy = "parent") @OneToMany(targetEntity = CatalogEntryImpl.class, mappedBy = "parent")
// @OrderColumn(name = "order_index", updatable = true, insertable = true, nullable = true)
@OrderColumn(name = "order_index") @OrderColumn(name = "order_index")
private List<CatalogEntry> children; private List<CatalogEntry> children;
...@@ -125,33 +125,21 @@ public class CatalogEntryImpl implements CatalogEntry { ...@@ -125,33 +125,21 @@ public class CatalogEntryImpl implements CatalogEntry {
// for hibernate // for hibernate
} }
/**
* @see org.olat.repository.CatalogEntry#getDescription()
*/
@Override @Override
public String getDescription() { public String getDescription() {
return description; return description;
} }
/**
* @see org.olat.repository.CatalogEntry#setDescription(java.lang.String)
*/
@Override @Override
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }
/**
* @see org.olat.repository.CatalogEntry#getName()
*/
@Override @Override
public String getName() { public String getName() {
return name; return name;
} }
/**
* @see org.olat.repository.CatalogEntry#setName(java.lang.String)
*/
@Override @Override
public void setName(String name) { public void setName(String name) {
if (name.length() > 100) if (name.length() > 100)
...@@ -181,121 +169,79 @@ public class CatalogEntryImpl implements CatalogEntry { ...@@ -181,121 +169,79 @@ public class CatalogEntryImpl implements CatalogEntry {
} }
} }
/**
* @see org.olat.repository.CatalogEntry#getRepositoryEntry()
*/
@Override @Override
public RepositoryEntry getRepositoryEntry() { public RepositoryEntry getRepositoryEntry() {
return repositoryEntry; return repositoryEntry;
} }
/**
* @see org.olat.repository.CatalogEntry#setRepositoryEntry(org.olat.repository.RepositoryEntry)
*/
@Override @Override
public void setRepositoryEntry(RepositoryEntry repositoryEntry) { public void setRepositoryEntry(RepositoryEntry repositoryEntry) {
this.repositoryEntry = repositoryEntry; this.repositoryEntry = repositoryEntry;
} }
/**
* @see org.olat.repository.CatalogEntry#getOwnerGroup()
*/
@Override @Override
public SecurityGroup getOwnerGroup() { public SecurityGroup getOwnerGroup() {
return ownerGroup; return ownerGroup;
} }
/**
* @see org.olat.repository.CatalogEntry#setOwnerGroup(org.olat.basesecurity.SecurityGroup)
*/
@Override @Override
public void setOwnerGroup(SecurityGroup ownerGroup) { public void setOwnerGroup(SecurityGroup ownerGroup) {
this.ownerGroup = ownerGroup; this.ownerGroup = ownerGroup;
} }
/**
* @see org.olat.repository.CatalogEntry#getType()
*/
@Override @Override
public int getType() { public int getType() {
return type; return type;
} }
/**
* @see org.olat.repository.CatalogEntry#setType(int)
*/
@Override @Override
public void setType(int type) { public void setType(int type) {
this.type = type; this.type = type;
} }
/**
* @see org.olat.repository.CatalogEntry#getExternalURL()
*/
@Override @Override
public String getExternalURL() { public String getExternalURL() {
return externalURL; return externalURL;
} }
/**
* @see org.olat.repository.CatalogEntry#setExternalURL(java.lang.String)
*/
@Override @Override
public void setExternalURL(String externalURL) { public void setExternalURL(String externalURL) {
this.externalURL = externalURL; this.externalURL = externalURL;
} }
/**
* @see org.olat.repository.CatalogEntry#getParent()
*/
@Override @Override
public CatalogEntry getParent() { public CatalogEntry getParent() {
return parent; return parent;
} }
/**
* @see org.olat.repository.CatalogEntry#setParent(org.olat.repository.CatalogEntry)
*/
@Override @Override
public void setParent(CatalogEntry parent) { public void setParent(CatalogEntry parent) {
this.parent = parent; this.parent = parent;
} }
/**
* @see org.olat.repository.CatalogEntry#getParent()
*/
@Override @Override
public List<CatalogEntry> getChildren() { public List<CatalogEntry> getChildren() {
if(children == null) {
children = new ArrayList<>();
}
return children; return children;
} }
/**
* @see org.olat.repository.CatalogEntry#getPosition()
*/
@Override @Override
public int getPosition() { public int getPosition() {
return position; return position;
} }
/**
* @see org.olat.core.commons.persistence.PersistentObject#toString()
*/
@Override @Override
public String toString() { public String toString() {
return "cat:" + getName() + "=" + super.toString(); return "cat:" + getName() + "=" + super.toString();
} }
/**
* @see org.olat.core.id.OLATResourceablegetResourceableTypeName()
*/
@Override @Override
public String getResourceableTypeName() { public String getResourceableTypeName() {
return this.getClass().getName(); return this.getClass().getName();
} }
/**
* @see org.olat.core.id.OLATResourceablegetResourceableId()
*/
@Override @Override
public Long getResourceableId() { public Long getResourceableId() {
Long key = getKey(); Long key = getKey();
......
...@@ -216,6 +216,14 @@ ...@@ -216,6 +216,14 @@
<constructor-arg index="0" value="OLAT_15.pre.0" /> <constructor-arg index="0" value="OLAT_15.pre.0" />
<property name="alterDbStatements" value="alter_14_2_x_to_15_pre_0.sql" /> <property name="alterDbStatements" value="alter_14_2_x_to_15_pre_0.sql" />
</bean> </bean>
<bean id="database_upgrade_15_pre_3" class="org.olat.upgrade.DatabaseUpgrade">
<constructor-arg index="0" value="OLAT_15.pre.3" />
<property name="alterDbStatements" value="alter_15_pre_0_to_15_pre_3.sql" />
</bean>
<bean id="database_upgrade_15_pre_4" class="org.olat.upgrade.DatabaseUpgrade">
<constructor-arg index="0" value="OLAT_15.pre.4" />
<property name="alterDbStatements" value="alter_15_pre_0_to_15_pre_4.sql" />
</bean>
</list> </list>
</property> </property>
</bean> </bean>
......
...@@ -21,6 +21,7 @@ create table o_grad_assignment ( ...@@ -21,6 +21,7 @@ create table o_grad_assignment (
g_status varchar(16) default 'unassigned' not null, g_status varchar(16) default 'unassigned' not null,
g_assessment_date datetime, g_assessment_date datetime,
g_assignment_date datetime, g_assignment_date datetime,
g_assignment_notification datetime,
g_reminder_1 datetime, g_reminder_1 datetime,
g_reminder_2 datetime, g_reminder_2 datetime,
g_deadline datetime, g_deadline datetime,
...@@ -43,6 +44,7 @@ create table o_grad_time_record ( ...@@ -43,6 +44,7 @@ create table o_grad_time_record (
creationdate datetime not null, creationdate datetime not null,
lastmodified datetime not null, lastmodified datetime not null,
g_time int8 default 0 not null, g_time int8 default 0 not null,
g_date_record date not null,
fk_assignment bigint, fk_assignment bigint,
fk_grader bigint not null, fk_grader bigint not null,
primary key (id) primary key (id)
...@@ -77,4 +79,22 @@ alter table o_grad_configuration ENGINE = InnoDB; ...@@ -77,4 +79,22 @@ alter table o_grad_configuration ENGINE = InnoDB;
alter table o_grad_configuration add constraint grad_config_to_entry_idx foreign key (fk_entry) references o_repositoryentry (repositoryentry_id); alter table o_grad_configuration add constraint grad_config_to_entry_idx foreign key (fk_entry) references o_repositoryentry (repositoryentry_id);
-- Catalog sorting -- Catalog sorting
alter table o_catentry add column order_index bigint default 0; alter table o_catentry add column order_index bigint default 0;
\ No newline at end of file alter table o_catentry add column short_title varchar(255);
-- absence leave
create table o_user_absence_leave (
id bigint not null auto_increment,
creationdate datetime not null,
lastmodified datetime not null,
u_absent_from datetime,
u_absent_to datetime,
u_resname varchar(50),
u_resid bigint,
u_sub_ident varchar(2048),
fk_identity bigint not null,
primary key (id)
);
alter table o_user_absence_leave ENGINE = InnoDB;
alter table o_user_absence_leave add constraint abs_leave_to_ident_idx foreign key (fk_identity) references o_bs_identity (id);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment