Painel dashboard


Painel dashboard é um modelo de tela aberta. Nesse modelo você pode criar tela de forma livre. Pode também receber informação de um serviço ou do SQL configurado no arquivo config.yml. 

A figura a seguir mostra uma tela lista para o aluno um conjunto de disciplinas do curso que ele está inscrito em formato accordion. 

 

Esse print foi gerado no sistema Badiu SGA  no painel do aluno. Para montar essa tela, foi implementado as seguintes configurações / codificação. 

 

  1. No arquivo config.yml foi adicionado a seguinte configuração:

    badiu.ams.my.studentoffercurriculum.menu.navbar: l|badiu.ams.my.student.menu.navbar.global
    badiu.ams.my.studentoffercurriculum.menu: l|badiu.ams.my.student.menu.global 
    badiu.ams.my.studentoffercurriculum.menu.content: l|badiu.ams.my.student.menu.content.global
    badiu.ams.my.studentoffercurriculum.page.config: fileprocessdashboardhtmlcontent=BadiuAdminClientBundle:View/Amstrail/HtmlContent.php
    badiu.ams.my.studentoffercurriculum.filter.form.config: defaultdata=userid/__session_userid 
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.config: paginationlimitdbrows1=50&paginationlimitdbrows2=500&paginationlimitdbrows3=4000&paginationlimitdbrows4=8000
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.1: SELECT o.id,s.name AS statusname,r.name AS rolename,f.id AS offerid,f.name AS offername,c.name AS coursename,cr.id AS curriculumid,cr.equivalencyenable,cr.equivalencytype,cr.equivalencyrequiredperiod,cr.equivalencyenablefversion FROM BadiuAmsEnrolBundle:AmsEnrolOffer o JOIN  o.offerid f JOIN f.curriculumid cr JOIN f.courseid c  JOIN o.statusid s JOIN o.roleid r WHERE o.entity=:entity AND o.userid=:userid
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.format.1:  
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.format.1: offername=s|badiu.ams.core.core.format|offernamewithcourse
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.view.1: id,statusname,rolename,offername,coursename
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.label.1: statusname=badiu.ams.enrol.status.name.short&rolename=badiu.ams.role.role.name&offername=badiu.ams.offer.offer.name&coursename=badiu.ams.course.course.name
      
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.2: SELECT crd.id,crd.disciplinename AS disciplinenamecustom,d.name AS disciplinename,crd.dhour,crd.drequired,crd.equivalencereqminfversion,d.id AS disciplineid,f.id AS offerid,cr.id AS curriculumid FROM BadiuAmsEnrolBundle:AmsEnrolOffer o JOIN  o.offerid f JOIN f.curriculumid cr JOIN BadiuAmsCurriculumBundle:AmsCurriculumDiscipline crd WITH crd.curriculumid=cr.id JOIN crd.disciplineid d WHERE o.entity=:entity AND o.userid=:userid ORDER BY crd.sortorder
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.format.2: dhour=d|defaulthour&drequired=d|boolean
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.view.2: id,disciplinename,dhour,drequired,statusname,moodleaccess
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.label.2: statusname=badiu.ams.enrol.status.name.short&rolename=badiu.ams.role.role.name&disciplinename=badiu.ams.offer.discipline.name&moodleaccess=badiu.ams.my.studentoffer.access
      
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.3: SELECT o.id,s.name AS statusname,s.shortname AS statusshortname,s.enable AS statusenable,s.lmssyncenable AS statuslmssyncenable,s.enableaccesslms AS statusenableaccesslms, r.name AS rolename,od.id AS odisciplineid,od.disciplinename AS odisciplinename,d.name AS disciplinename,d.id AS disciplineid,f.id AS offerid,od.dconfig,cr.id AS curriculumid FROM BadiuAmsEnrolBundle:AmsEnrolDiscipline o JOIN o.odisciplineid od JOIN od.offerid f JOIN od.disciplineid d JOIN f.curriculumid cr JOIN o.statusid s JOIN o.roleid r WHERE o.entity=:entity AND o.userid=:userid
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.format.3: moodleaccess=s|badiu.ams.core.lmsmoodle.format|access
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.view.3: id,disciplinename,rolename,statusname,moodleaccess
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.label.3: statusname=badiu.ams.enrol.status.name.short&rolename=badiu.ams.role.role.name&disciplinename=badiu.ams.offer.discipline.name&moodleaccess=badiu.ams.my.studentoffer.access
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.4: SELECT o.id,s.shortname AS statusshortname,s.name AS statusname,s.enable AS statusenable,s.lmssyncenable AS statuslmssyncenable,s.enableaccesslms AS statusenableaccesslms,r.name AS rolename,oc.id AS classeid,oc.name AS classename,oc.description AS classedescription,oc.dconfig, od.id AS odisciplineid,d.id AS disciplineid,f.id AS offerid FROM BadiuAmsEnrolBundle:AmsEnrolClasse o JOIN o.classeid oc  JOIN oc.odisciplineid od JOIN od.disciplineid d JOIN od.offerid f JOIN o.statusid s JOIN o.roleid r WHERE o.entity=:entity AND o.userid=:userid AND s.enable=1
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.format.4: moodleaccess=s|badiu.ams.core.lmsmoodle.format|access
    badiu.ams.my.studentoffercurriculum.dashboard.db.sql.view.4: id,classeid,classename,statusname,statusshortname,moodleaccess
    badiu.ams.my.studentclasseenrol.menu.navbar: l|badiu.ams.my.student.menu.navbar.global
    badiu.ams.my.studentclasseenrol.menu: l|badiu.ams.my.student.menu.global
    badiu.ams.my.studentclasseenrol.menu.content: l|badiu.ams.my.student.menu.content.global
    


    Essa configuração define:

  • Menu de navegação horizontal / vertical

  • SQL que faz filtro dos registros na base de dados

  • Formatação de saída de cada coluna

  • Arquivo PHP  para formatar a saída de dados 

  1.  No arquivo services.yml é feita a configuração que processa o relatório, como ilustra o código a seguir

    badiu.ams.my.studentoffercurriculum.report:
            class: Badiu\System\CoreBundle\Model\Functionality\BadiuReport
            scope: prototype
            arguments: [@service_container,badiu.ams.my.studentoffercurriculum]
        badiu.ams.my.studentoffercurriculum.report.changedata:
            class: Badiu\Ams\MyBundle\Model\Student\AmsTrailChangeData
            scope: prototype
            arguments: [@service_container]
    

A primeira configuração é o serviço que processo  o relatório. A segunda é serviço que faz alteração de dados extraídos do banco. 

No arquivo config.yml  é feita a configuração da rota de acesso

badiu.ams.my.studentoffercurriculum.dashboard:
    pattern:  /ams/my/student/offer/curriculum/index
    defaults: { _controller: BadiuSystemCoreBundle:Functionality/Badiu:dashboard }