Rev 1584 |
Rev 1626 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunit" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="semestre" type="string" index="semestreIndex"/>
<property name="name" type="string" index="nameIndex"/>
<property name="code" type="string" index="codeIndex"/>
<property name="courseCode" type="string" index="courseCodeIndex"/>
<property name="courseName" type="string" index="courseNameIndex"/>
<property name="courseYear" type="string" index="courseYearIndex"/>
<property name="importYear" type="string" index="importYearIndex"/>
<property name="institutionCode" type="string" index="institutionCodeIndex" />
<property name="pathIntranet" type="string" />
<property name="normalizedName" type="string" />
<property name="objectives" type="text"/>
<property name="programStreamId" type="string" index="programStreamIdIndex" />
<property name="validProgram" type="boolean" index="validProgramIndex"/>
<property name="status" type="boolean" index="statusIndex" />
<property name="contentsGrants" type="string"/>
<!--Tipologias-->
<!--Pares Turma-Docente-Tipologia usa a classe Tipologias com serializacao-->
<property name="tipologias" type="string">
<column name="tipologias" sql-type="text"/>
</property>
<!--Tipologias-->
<property name="evaluationStreamId" type="string" index="evaluationStreamIdIndex" />
<property name="evaluationOpenByAdmin" type="boolean" index="evaluationOpenByAdminIndex">
<column name="evaluationOpenByAdmin" default="false"/>
</property>
<property name="summariesJson" type="text">
<column name="summariesJson" sql-type="MEDIUMTEXT"/>
</property>
<property name="filesJson" type="text">
<column name="filesJson" sql-type="LONGTEXT" default="null"/>
</property>
<!-- CourseUnit Statistics -->
<property name="statteachersCount" type="int">
<column name="statteachersCount" default="0"/>
</property>
<property name="statstudentsCount" type="int">
<column name="statstudentsCount" default="0"/>
</property>
<property name="statcontentsFiles" type="int">
<column name="statcontentsFiles" default="0"/>
</property>
<property name="statcontentsFolders" type="int">
<column name="statcontentsFolders" default="0"/>
</property>
<property name="statcontentsSize" type="long">
<column name="statcontentsSize" default="0"/>
</property>
<property name="statcontentsLastUpdate" type="timestamp"/>
<property name="statworks" type="int">
<column name="statworks" default="0"/>
</property>
<property name="statanuncios" type="int">
<column name="statanuncios" default="0"/>
</property>
<property name="statblogPosts" type="int">
<column name="statblogPosts" default="0"/>
</property>
<property name="statdtpSumaries" type="int">
<column name="statdtpSumaries" default="0"/>
</property>
<property name="statdtpSumariesMissing" type="int">
<column name="statdtpSumariesMissing" default="0"/>
</property>
<property name="statdtpSumariesPrelancados" type="int">
<column name="statdtpSumariesPrelancados" default="0"/>
</property>
<property name="statdtpPlaneamentoFiles" type="int">
<column name="statdtpPlaneamentoFiles" default="0"/>
</property>
<property name="statdtpPlaneamentoLastUpdate" type="timestamp"/>
<property name="statdtpFichaCurricularValid" type="boolean">
<column name="statdtpFichaCurricularValid" default="false"/>
</property> <!--refere para o campo ficha válida coloca-se apenas o GET no IMPL-->
<property name="statdtpFichaCurricularLastUpdate" type="timestamp"/>
<property name="statdtpEvaluationReportState" type="string"/> <!-- VALIDO,ENTREGUE,INICIADO,INEXISTENTE refere para o campo relatorio de avaliação válido coloca-se apenas o GET no IMPL-->
<property name="statdtpEvaluationReportLastUpdate" type="timestamp"/>
<property name="statdtpInqueritoPedagogicoFiles" type="int">
<column name="statdtpInqueritoPedagogicoFiles" default="0"/>
</property>
<property name="statdtpInqueritoPedagogicoFilesLastUpdate" type="timestamp"/>
<property name="statdtpAvaliacaoEnunciadosFiles" type="int">
<column name="statdtpAvaliacaoEnunciadosFiles" default="0"/>
</property>
<property name="statdtpAvaliacaoEnunciadosLastUpdate" type="timestamp"/>
<property name="statdtpAvaliacaoPautasFiles" type="int">
<column name="statdtpAvaliacaoPautasFiles" default="0"/>
</property>
<property name="statdtpAvaliacaoPautasLastUpdate" type="timestamp"/>
<!--
Este código de turma apenas é usado nos casos em que o curso é de turmas separadas
Nesse caso uma cadeira só pode ter uma turma e então a turma é aqui colocada
As restantes politicas de preenchimento da CourseUnitTurma mantém-se
-->
<property name="cdTurma" type="string" index="cdTurmaIndex" />
<!--Not In Use-->
<many-to-one name="unitContents" class="pt.estgp.estgweb.domain.PageSection" lazy="proxy" outer-join="false">
<column name="unitContents"/>
</many-to-one>
<many-to-one name="validatorUser" class="pt.estgp.estgweb.domain.User" lazy="false" outer-join="true" />
<many-to-one name="course" class="pt.estgp.estgweb.domain.Course" lazy="false" outer-join="true"/>
<many-to-one name="courseUnitProgram" class="pt.estgp.estgweb.domain.CourseUnitProgram" lazy="proxy" />
<many-to-one name="courseUnitEvaluation" class="pt.estgp.estgweb.domain.CourseUnitEvaluation" lazy="proxy" />
<!--<many-to-one name="courseUnitProgram" class="pt.estgp.estgweb.domain.CourseUnitProgram" lazy="false" outer-join="true"/>
<many-to-one name="courseUnitEvaluation" class="pt.estgp.estgweb.domain.CourseUnitEvaluation" lazy="false" outer-join="true"/>-->
<many-to-one name="responsableTeacher" class="pt.estgp.estgweb.domain.Teacher" lazy="false" outer-join="true" not-null="false"/>
<set name="blogs" cascade="delete" lazy="true" order-by="saveDate asc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitBlog" />
</set>
<set name="teachers" lazy="true" table="teachedunits">
<key column="courseUnitId"/>
<many-to-many class="pt.estgp.estgweb.domain.TeacherImpl" column="teacherId"/>
</set>
<set name="students" lazy="true" table="subscribedunits">
<key column="courseUnitId"/>
<many-to-many class="pt.estgp.estgweb.domain.StudentImpl" column="studentId"/>
</set>
<set name="announcements" cascade="delete" lazy="true" order-by="saveDate desc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitAnnouncement" />
</set>
<set name="questions" cascade="delete" lazy="true" order-by="saveDate desc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitQuestion" />
</set>
<set name="assignements" cascade="delete" lazy="true" order-by="deliverDate desc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitAssignement"/>
</set>
<set name="summaries" cascade="delete" lazy="true" order-by="dataAula desc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitSummary"/>
</set>
<set name="turmas" cascade="delete" lazy="true" order-by="saveDate desc">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitTurma" />
</set>
<set name="courseUnitGrades" order-by="publishDate asc" lazy="true">
<key column="courseUnit"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitGrade"/>
</set>
<!--<set name="questionarioReportsDocentes" lazy="true" order-by="id asc" table="questionario_report_file_docente_units">
<key column="courseunit"/>
<many-to-many class="pt.estgp.estgweb.domain.QuestionarioReportDocenteFile" column="reportdocentefile" />
</set>-->
<subclass name="pt.estgp.estgweb.domain.CourseUnitImpl" discriminator-value="CourseUnitImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitQuestion" table="courseunitquestion" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.OwnedDomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="question" type="text"/>
<property name="answer" type="text"/>
<property name="answred" type="boolean" index="answredIndex"/>
<many-to-one name="owner" class="pt.estgp.estgweb.domain.GenericUser" lazy="false" outer-join="true"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitQuestionImpl" discriminator-value="CourseUnitQuestionImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitAssignement" table="courseunitassignement" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="deliverDate" type="timestamp"/>
<property name="deliverType" type="string"/>
<property name="lateDelivers" type="boolean"/>
<property name="title" type="string"/>
<property name="description" type="text"/>
<property name="repositoryStream" type="string" index="repositoryStreamIndex"/>
<property name="status" type="boolean"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<set name="deliverables" cascade="delete" lazy="true" order-by="deliverDate asc">
<key column="courseUnitAssignement"/>
<one-to-many class="pt.estgp.estgweb.domain.CourseUnitDeliverable"/>
</set>
<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitDeliverable" table="courseunitdeliverable" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="deliverDate" type="timestamp"/>
<property name="grade" type="string"/>
<property name="obs" type="text"/>
<property name="studentId" type="long"/>
<property name="studentUsername" type="string"/>
<property name="studentCode" type="string"/>
<property name="studentName" type="string"/>
<property name="deliverableRepositoryStream" type="string" index="deliverableRepositoryStreamIndex"/>
<many-to-one name="courseUnitAssignement" class="pt.estgp.estgweb.domain.CourseUnitAssignement" lazy="false" outer-join="true"/>
<many-to-one name="student" class="pt.estgp.estgweb.domain.Student" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitDeliverableImpl" discriminator-value="CourseUnitDeliverableImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitGrade" table="courseunitgrade" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="publishDate" type="timestamp"/>
<property name="grade" type="int" index="gradeIndex"/>
<property name="normalizedCourseUnitName" type="string"/>
<property name="statusEpoca" type="int" index="statusEpocaIndex"/>
<property name="descStatusEpoca" type="string"/>
<property name="descEpoca" type="string" />
<property name="codigoMomento" type="string" />
<property name="codigoEpoca" type="string" />
<property name="importYear" type="string" index="importYearIndex"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<many-to-one name="student" class="pt.estgp.estgweb.domain.Student" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitGradeImpl" discriminator-value="CourseUnitGradeImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitSummary" table="courseunitsummary" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="dataAula" type="timestamp"/>
<property name="cdTipoOcupacao" type="int"/>
<property name="tipoAula" type="string"/>
<property name="codigoAula" type="string"/>
<property name="codigoSumario" type="string"/>
<property name="codigoSalaAula" type="string"/>
<property name="codigoDocente" type="string"/>
<property name="alunosPresentes" type="int"/>
<property name="numeroAula" type="int"/>
<property name="nrAula" type="int"/>
<property name="titulo" type="string" index="tituloIndex"/>
<property name="descricao" type="text"/>
<property name="cEstado" type="string"/>
<property name="numeroHoras" type="string"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitSummaryImpl" discriminator-value="CourseUnitSummaryImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitProgram" table="courseunitprogram" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="bibliografia" type="text"/>
<property name="bibliografiaComplementar" type="text"/>
<property name="adaptacaoObjectivosMetodologia" type="text"/>
<property name="demonstracaoCargaEcts" type="text"/>
<property name="garantiaAvaliacaoFuncaObjectivos" type="text"/>
<property name="metodologiasActividadeCientifica" type="text"/>
<property name="ects" type="string"/>
<property name="prerequisitos" type="text"/>
<property name="obrigatoria" type="string"/>
<property name="lingua1" type="string"/>
<property name="lingua2" type="string"/>
<property name="cargaHorariaTotal" type="string"/>
<property name="cargaHorariaT" type="string"/>
<property name="cargaHorariaTP" type="string"/>
<property name="cargaHorariaPL" type="string"/>
<property name="cargaHorariaS" type="string"/>
<property name="cargaHorariaTC" type="string"/>
<property name="cargaHorariaO" type="string"/>
<property name="cargaHorariaOT" type="string"/>
<many-to-one name="courseUnitProgramPart2" class="pt.estgp.estgweb.domain.CourseUnitProgramPart2" lazy="false" outer-join="true"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitProgramImpl" discriminator-value="CourseUnitProgramImpl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitProgramPart2" table="courseunitprogrampart2" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="objectivos" type="text"/>
<property name="conteudos" type="text"/>
<property name="demonstracaoCoerenciaConteudos" type="text"/>
<property name="metodologiasEnsino" type="text"/>
<property name="avaliacaoOrdinariosFrequencia" type="text"/>
<property name="avaliacaoOrdinariosExame" type="text"/>
<property name="avaliacaoEspeciaisFrequencia" type="text"/>
<property name="avaliacaoEspeciaissExame" type="text"/>
<property name="demonstracaoObjectivosMetodologia" type="text"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl" discriminator-value="CourseUnitProgramPart2Impl"/>
</class>
<class name="pt.estgp.estgweb.domain.CourseUnitEvaluation" table="courseunitevaluation" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="closed" type="boolean"/>
<!-- todo update aos do ano anterior para meter todos os evaluations salvos com teacherComplete = true -->
<property name="teacherComplete" type="boolean" index="teacherCompleteIndex">
<column name="teacherComplete" default="true"/>
</property>
<property name="numAlunosInscritos" type="text"/>
<property name="numAlunosSemElementosAvaliacao" type="integer"/>
<property name="numAlunosAprovFrequencia" type="integer"/>
<property name="numAlunosAprovNormal" type="integer"/>
<property name="numAlunosAprovRecurso" type="integer"/>
<property name="numAlunosAprovEspecial" type="integer"/>
<property name="numAlunosAprovTotal" type="integer"/>
<property name="numAlunosAprov1013" type="integer"/>
<property name="numAlunosAprov1416" type="integer"/>
<property name="numAlunosAprov1720" type="integer"/>
<property name="numAlunosAprovados" type="integer"/>
<property name="numAlunosReprovados" type="integer"/>
<property name="qualApreciacaoQuantitivos" type="text"/>
<property name="qualApreciacaoUC" type="text"/>
<property name="qualApreciacaoCumprimentoPrograma" type="text"/>
<property name="qualConclusoes" type="text"/>
<subclass name="pt.estgp.estgweb.domain.CourseUnitEvaluationImpl" discriminator-value="CourseUnitEvaluationImpl"/>
</class>
<!-- todo Verificar o serviço de apagar cadeira
Parece-me que vai sempre haver aqui turmas a menos que se removam
as turmas quando nao há mais alunos, pelo menos tem de se vir removendo
daqui as associações aos estudantes e profs quando saiem da lista primária
-->
<class name="pt.estgp.estgweb.domain.CourseUnitTurma" table="courseunitturma" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp source="db" name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="turma" type="string"/>
<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="proxy" outer-join="true">
<column name="courseUnit"/>
</many-to-one>
<set name="students" lazy="true" table="subscribedturmaunits">
<key column="courseUnitTurmaId"/>
<many-to-many class="pt.estgp.estgweb.domain.StudentImpl" column="studentId"/>
</set>
<!--
<set name="teachers" lazy="true" table="teachedturmaunits">
<key column="courseUnitTurmaId"/>
<many-to-many class="pt.estgp.estgweb.domain.Teacher" column="teacherId"/>
</set>
-->
<subclass name="pt.estgp.estgweb.domain.CourseUnitTurmaImpl" discriminator-value="CourseUnitTurmaImpl"/>
</class>
<!--<class name="pt.estgp.estgweb.domain.CourseUnit" table="courseunitassignement" abstract="true">-->
<!--<meta attribute="extends">pt.estgp.estgweb.domain.DomainSerializableObject</meta>-->
<!--<meta attribute="scope-class">public abstract</meta>-->
<!--<id name="id" type="long">-->
<!--<generator class="native"/>-->
<!--</id>-->
<!--<discriminator column="discrimitator"/>-->
<!--<timestamp source="db" name="updateDate" unsaved-value="null"/>-->
<!--<property name="saveDate" type="timestamp"/>-->
<!--<property name="deliverDate" type="timestamp"/>-->
<!--<property name="deliverType" type="string"/>-->
<!--<property name="lateDelivers" type="boolean"/>-->
<!--<property name="title" type="string"/>-->
<!--<property name="description" type="text"/>-->
<!--<property name="repositoryStream" type="string" index="repositoryStreamIndex"/>-->
<!--<property name="status" type="boolean"/>-->
<!--<many-to-one name="courseUnit" class="pt.estgp.estgweb.domain.CourseUnit" lazy="false" outer-join="true"/>-->
<!--<set name="deliverables" cascade="delete" lazy="true" order-by="deliverDate asc">-->
<!--<key column="courseUnitAssignement"/>-->
<!--<one-to-many class="pt.estgp.estgweb.domain.CourseUnitDeliverable"/>-->
<!--</set>-->
<!--<subclass name="pt.estgp.estgweb.domain.CourseUnitAssignementImpl" discriminator-value="CourseUnitAssignementImpl"/>-->
<!--</class>-->
</hibernate-mapping>