Subversion Repositories bacoAlunos

Rev

Rev 1814 | Rev 1841 | 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="lastImportDate" 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="sumariesSemestre" type="string"/><!--Campo para normalizar sumarios de unidades que foram sumariadas no semestre diferente no SIGES-->
        <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="int"/>

        <property name="numAlunosAprovFrequencia" type="int"/>
        <property name="numAlunosAprovNormal" type="int"/>
        <property name="numAlunosAprovRecurso" type="int"/>
        <property name="numAlunosAprovEspecial" type="int"/>
        <property name="numAlunosAprovTotal" type="int"/>

        <property name="numAlunosAprov1013" type="int"/>
        <property name="numAlunosAprov1416" type="int"/>
        <property name="numAlunosAprov1720" type="int"/>
        <property name="numAlunosAprov1013Percent" type="float"/>
        <property name="numAlunosAprov1416Percent" type="float"/>
        <property name="numAlunosAprov1720Percent" type="float"/>


        <property name="numAlunosReprovados" type="int"/>

        <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>