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