Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modificado a rotina de Lançamento de Faltas/Notas #58

Merged
merged 1 commit into from
Jan 9, 2014
Merged

Modificado a rotina de Lançamento de Faltas/Notas #58

merged 1 commit into from
Jan 9, 2014

Conversation

tembra
Copy link
Contributor

@tembra tembra commented Jan 9, 2014

Modificado a rotina de Lançamento de Faltas/Notas para:

  1. Agrupar os Componentes Curriculares por Área de Conhecimento. O agrupamento é feito de duas formas, de acordo com o modo de preenchimento que o usuário escolher:
  • Caso selecione o Componente Curricular: Já no menu de seleção foram criados grupos (<optgroup/>) para cada Área de Conhecimento. No carregamento da tela de preenchimento das faltas/notas, é inserido uma nova coluna (<td/>) na primeira posição da tabela superior, informando a Área de Conhecimento do Componente Curricular selecionado.
  • Caso não selecione o Componente Curricular: É inserido uma nova linha (<tr/>) na listagem, antes do primeiro Componente Curricular de cada Área de Conhecimento.
  1. Ordenar os Componentes Curriculares alfabeticamente por:
  • Nome da Área de Conhecimento, e;
  • Nome do Componente Curricular.

Modificações por arquivo

[1] File: /ieducar/modules/Avaliacao/Views/DiarioApiController.php

  • Adicionado a função "strtoupper()" no conteúdo da variável "$componente['nome']"
  • Adicionado segundo parâmetro como "false", no método "safeString()" utilizado no conteúdo da variável "$componente['nome']"
  • Criado novo método "getAreaConhecimento($componenteCurricularId)" com visibilidade "protected", para retornar uma classe com o Id e o Nome da Área de Conhecimento do Componente Curricular cujo Id foi passado pelo parâmetro
  • Criado nova posição "area_id" no array "$componente" para gravar o Id da Área de Conhecimento
  • Criado nova posição "area_nome" no array "$componente" para gravar o Nome da Área de Conhecimento
  • Criado nova posição temporária "my_order" no array "$componente" para ordenar alfabeticamente através do método "sortByKey" os Componentes Curriculares pelo Nome da Área de Conhecimento e pelo Nome do Componente Curricular, respectivamente e sem acentos. Esta posição é removida após a ordenação para que não seja enviada na requisição.

[2] File: /ieducar/modules/Avaliacao/Assets/Diario.js

  • Criado na função "setTableSearchDetails()" um novo elemento <th/> com o conteúdo "Área de Conhecimento"
  • Criado na função "setTableSearchDetails()" um novo elemento <td/> com o Nome da Área de Conhecimento, recuperado através do atributo "label" do elemento pai (<optgroup/> criado no arquivo [7]) do <option/> selecionado
  • Adicionado seletor "optgroup" na função "setTableSearchDetails()", no jQuery que busca o Nome do Componente Curricular selecionado, para considerar a existência do(s) <optgroup/> criado(s) no arquivo [7]
  • Adicionado seletor ":not(.area-conhecimento)" na função "handleSearch()", no jQuery que busca os elementos que possuem o atributo "colspan"
  • Criado na função "updateComponenteCurriculares()" array de controle "areas" para salvar o Id das Áreas de Conhecimento já exibidas, obtidas no arquivo [1]
  • Criado na função "updateComponenteCurriculares()" variável "areaColspan" para salvar a quantidade de colunas da linha do cabeçalho
  • Criado na função "updateComponenteCurriculares()" novo elemento <tr/> referente a linha da Área de Conhecimento
  • Criado na função "updateComponenteCurriculares()" novo elemento <td/> referente ao Nome da Área de Conhecimento obtido no arquivo [1], e atribuído a classe "area-conhecimento" criada no arquivo [3]
  • Criado nova função "myNextValid($selectElement)", para ir para o próximo <option/> após o selecionado, considerando agora a existência do(s) <optgroup/> criado(s) no arquivo [7]
  • Alterado conteúdo da variável $nextOption na função "selectNextOption()" para realizar chamada a nova função "myNextValid()" mencionada acima

[3] File: /ieducar/intranet/styles/mytdt.css

  • Novo arquivo criado para contemplar o CSS das contribuições da MyTDT Corp. para o i-Educar
  • Adicionado estilo para a classe "area-conhecimento" utilizada no <td/> do arquivo [2]

[4] File: /ieducar/intranet/templates/nvp_htmlhead.tpl

  • Adicionado novo elemento <link/> para incluir o novo arquivo de estilo (CSS) criado [3]

[5] File: /ieducar/lib/Portabilis/Business/Professor.php

  • Modificado as queries dos métodos "componentesCurricularesTurmaAlocado()" e "componentesCurricularesCursoAlocado()":
    • Adicionado campo (SELECT) "ac.nome as area_conhecimento"
    • Adicionado tabela (FROM) "modules.area_conhecimento as ac"
    • Adicionado condição (WHERE) "and cc.area_conhecimento_id = ac.id"
    • Adicionado ordenamento (ORDER) "order by ac.nome, cc.nome"

[6] File: /ieducar/modules/DynamicInput/Views/ComponenteCurricularController.php

  • Modificado as duas queries do método "getComponentesCurriculares()":
    • Adicionado campo (SELECT) "ac.nome as area_conhecimento"
    • Adicionado tabela (FROM) "modules.area_conhecimento as ac"
    • Adicionado condição (WHERE) "and cc.area_conhecimento_id = ac.id"
    • Adicionado ordenamento (ORDER) "order by ac.nome, cc.nome"
  • Alterado conteúdo da variável "$options[]" para um array associativo (que será convertido para um objeto JSON), conforme segue:
    • Chave "value": Se utilizado um array associativo a mesma deve existir, pois será o conteúdo do <option/> a ser gerado
    • Chave "group": Criada com intuito de salvar o conteúdo do campo "area_conhecimento" retornado por uma das queries mencionada acima ou no arquivo [5], que será utilizada no arquivo [7]
    • OBS: Assim como a chave "group", poderá ser criado qualquer outra chave no array associativo que o conteúdo da mesma estará acessível no <option/> através do atributo "data-*" onde "*" é o nome da chave criada

[7] File: /ieducar/modules/DynamicInput/Assets/Javascripts/DynamicInput.js

  • Criado na função "updateSelect()" array de controle "groups" para salvar o Nome das Áreas de Conhecimento que já possuem <optgroup/>, obtidas no arquivo [6]
  • Criado na função "updateSelect()" variável "optgroup" para salvar o último elemento <optgroup/> criado
  • Modificado a função "updateSelect()" para verificar se existe o atributo "data-group" no elemento <option/>, onde, caso exista:
    • Irá gerar um novo elemento <optgroup/> com o atributo "label" preenchido com o conteúdo do "data-group" obtido no arquivo [6] e definido pela função "jsonResourcesToSelectOptions()" neste mesmo arquivo [7]
    • O elemento <option/> será adicionado como filho do novo elemento <optgroup/> acima citado
    • O elemento <optgroup/> por sua vez, que será adicionado ao <select/>
  • Modificado a função "jsonResourcesToSelectOptions()" para verificar se o atributo "value" retornado pela requisição é do tipo objeto, onde, caso seja:
    • Irá adicionar ao elemento <option/> o(s) atributo(s) "data-*" com o conteúdo extraído conforme modificação realizada no item [6]
    • Irá adicionar ao contéudo do <option/> conforme mencionado em [6] a chave "value", referente ao Nome do Componente Curricular

1) Agrupar os Componentes Curriculares por Área de Conhecimento. O
agrupamento é feito de duas formas, de acordo com o modo de
preenchimento que o usuário escolher:
   * Caso selecione o Componente Curricular: Já no menu de seleção foram
criados grupos (<optgroup/>) para cada Área de Conhecimento. No
carregamento da tela de preenchimento das faltas/notas, é inserido uma
nova coluna (<td/>) na primeira posição da tabela superior, informando a
Área de Conhecimento do Componente Curricular selecionado.
   * Caso não selecione o Componente Curricular: É inserido uma nova
linha (<tr/>) na listagem, antes do primeiro Componente Curricular de
cada Área de Conhecimento.

2) Ordenar os Componentes Curriculares alfabeticamente por:
   * Nome da Área de Conhecimento, e;
   * Nome do Componente Curricular.

/*
 * Modificações por arquivo
 */

[1] File: /ieducar/modules/Avaliacao/Views/DiarioApiController.php
    - Adicionado a função "strtoupper()" no conteúdo da variável
"$componente['nome']"
    - Adicionado segundo parâmetro como "false", no método
"safeString()" utilizado no conteúdo da variável "$componente['nome']"
    - Criado novo método "getAreaConhecimento($componenteCurricularId)"
com visibilidade "protected", para retornar uma classe com o Id e o Nome
da Área de Conhecimento do Componente Curricular cujo Id foi passado
pelo parâmetro
    - Criado nova posição "area_id" no array "$componente" para gravar o
Id da Área de Conhecimento
    - Criado nova posição "area_nome" no array "$componente" para gravar
o Nome da Área de Conhecimento
    - Criado nova posição temporária "my_order" no array "$componente"
para ordenar alfabeticamente através do método "sortByKey" os
Componentes Curriculares pelo Nome da Área de Conhecimento e pelo Nome
do Componente Curricular, respectivamente e sem acentos. Esta posição é
removida após a ordenação para que não seja enviada na requisição.


[2] File: /ieducar/modules/Avaliacao/Assets/Diario.js
    - Criado na função "setTableSearchDetails()" um novo elemento <th/>
com o conteúdo "Área de Conhecimento"
    - Criado na função "setTableSearchDetails()" um novo elemento <td/>
com o Nome da Área de Conhecimento, recuperado através do atributo
"label" do elemento pai (<optgroup/> criado no arquivo [7]) do <option/>
selecionado
    - Adicionado seletor "optgroup" na função "setTableSearchDetails()",
no jQuery que busca o Nome do Componente Curricular selecionado, para
considerar a existência do(s) <optgroup/> criado(s) no arquivo [7]
    - Adicionado seletor ":not(.area-conhecimento)" na função
"handleSearch()", no jQuery que busca os elementos que possuem o
atributo "colspan"
    - Criado na função "updateComponenteCurriculares()" array de
controle "areas" para salvar o Id das Áreas de Conhecimento já exibidas,
obtidas no arquivo [1]
    - Criado na função "updateComponenteCurriculares()" variável
"areaColspan" para salvar a quantidade de colunas da linha do cabeçalho
    - Criado na função "updateComponenteCurriculares()" novo elemento
<tr/> referente a linha da Área de Conhecimento
    - Criado na função "updateComponenteCurriculares()" novo elemento
<td/> referente ao Nome da Área de Conhecimento obtido no arquivo [1], e
atribuído a classe "area-conhecimento" criada no arquivo [3]
    - Criado nova função "myNextValid($selectElement)", para ir para o
próximo <option/> após o selecionado, considerando agora a existência
do(s) <optgroup/> criado(s) no arquivo [7]
    - Alterado conteúdo da variável $nextOption na função
"selectNextOption()" para realizar chamada a nova função "myNextValid()"
mencionada acima


[3] File: /ieducar/intranet/styles/mytdt.css
    - Novo arquivo criado para contemplar o CSS das contribuições da
MyTDT Corp. para o i-Educar
    - Adicionado estilo para a classe "area-conhecimento" utilizada no
<td/> do arquivo [2]


[4] File: /ieducar/intranet/templates/nvp_htmlhead.tpl
    - Adicionado novo elemento <link/> para incluir o novo arquivo de
estilo (CSS) criado [3]


[5] File: /ieducar/lib/Portabilis/Business/Professor.php
    - Modificado as queries dos métodos
"componentesCurricularesTurmaAlocado()" e
"componentesCurricularesCursoAlocado()":
      * Adicionado campo (SELECT) "ac.nome as area_conhecimento"
      * Adicionado tabela (FROM) "modules.area_conhecimento as ac"
      * Adicionado condição (WHERE) "and cc.area_conhecimento_id =
ac.id"
      * Adicionado ordenamento (ORDER) "order by ac.nome, cc.nome"


[6] File:
/ieducar/modules/DynamicInput/Views/ComponenteCurricularController.php
    - Modificado as duas queries do método
"getComponentesCurriculares()":
      * Adicionado campo (SELECT) "ac.nome as area_conhecimento"
      * Adicionado tabela (FROM) "modules.area_conhecimento as ac"
      * Adicionado condição (WHERE) "and cc.area_conhecimento_id =
ac.id"
      * Adicionado ordenamento (ORDER) "order by ac.nome, cc.nome"
    - Alterado conteúdo da variável "$options[]" para um array
associativo (que será convertido para um objeto JSON), conforme segue:
      * Chave "value": Se utilizado um array associativo a mesma deve
existir, pois será o conteúdo do <option/> a ser gerado
      * Chave "group": Criada com intuito de salvar o conteúdo do campo
"area_conhecimento" retornado por uma das queries mencionada acima ou no
arquivo [5], que será utilizada no arquivo [7]
      * OBS: Assim como a chave "group", poderá ser criado qualquer
outra chave no array associativo que o conteúdo da mesma estará
acessível no <option/> através do atributo "data-*" onde "*" é o nome da
chave criada


[7] File:
/ieducar/modules/DynamicInput/Assets/Javascripts/DynamicInput.js
    - Criado na função "updateSelect()" array de controle "groups" para
salvar o Nome das Áreas de Conhecimento que já possuem <optgroup/>,
obtidas no arquivo [6]
    - Criado na função "updateSelect()" variável "optgroup" para salvar
o último elemento <optgroup/> criado
    - Modificado a função "updateSelect()" para verificar se existe o
atributo "data-group" no elemento <option/>, onde, caso exista:
      * Irá gerar um novo elemento <optgroup/> com o atributo "label"
preenchido com o conteúdo do "data-group" obtido no arquivo [6] e
definido pela função "jsonResourcesToSelectOptions()" neste mesmo
arquivo [7]
      * O elemento <option/> será adicionado como filho do novo elemento
<optgroup/> acima citado
      * O elemento <optgroup/> por sua vez, que será adicionado ao
<select/>
    - Modificado a função "jsonResourcesToSelectOptions()" para
verificar se o atributo "value" retornado pela requisição é do tipo
objeto, onde, caso seja:
      * Irá adicionar ao elemento <option/> o(s) atributo(s) "data-*"
com o conteúdo extraído conforme modificação realizada no item [6]
      * Irá adicionar ao contéudo do <option/> conforme mencionado em
[6] a chave "value", referente ao Nome do Componente Curricular

Change-Id: Ie93c75ef7fe1d6e390a7e0e14de69b991be902c9
Signed-off-by: Thieres Tembra <[email protected]>
@lucassch
Copy link
Contributor

lucassch commented Jan 9, 2014

Olá @tembra!

Agradecemos pela contribuição, estaremos validando essa alteração.

lucassch added a commit that referenced this pull request Jan 9, 2014
Modificado a rotina de Lançamento de Faltas/Notas
@lucassch lucassch merged commit e28df94 into portabilis:master Jan 9, 2014
cmsz added a commit to cmsz/ieducar that referenced this pull request Oct 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants