#4 Sobre a estrutura do GradeImporter e o que está faltando

Otwarty
otworzone 11 miesięcy temu przez leo · 0 komentarzy
leo skomentował 11 miesięcy temu
  1. Estrutura do "GradeImporter" na base do Moodle (tabelas):

    • gradeimporter : id ; course ; name ; intro ; timecreated ; timemodified ; usermodified
    • gradeimporter_feedback : id ; submissionid ; studentid ; grade ; comment ; fileid ; usermodified ; timecreated ; timemodified ; contextid ; name
    • gradeimporter_submission : id ; gradeimporterid ; type ; gradebook ; timecreated ; timemodified ; usermodified ; name ; description ; descriptionformat ; position ; visibility
    • gradeimporter_submissiontype : id ; gradeimporterid ; name ; description ; descriptionformat
  2. Papel de cada tabela do "GradeImporter":

    • gradeimporter : course={course}.id ;
    • gradeimporter_feedback : submissionid={gradeimporter}.id; studentid={user}.id; grade={grade_grades}.rawgrade (?)
    • gradeimporter_submission : gradeimporterid={gradeimporter}.id da "atividade"; usermodified={user}.id do prof. que modificou por ultimo (FALTA usercreated?)
    • gradeimporter_submissiontype : ?nao implementado?
  3. O que o arquivo ZIP a ser submetido deve ter:

    • Um arquivo com extensao 'csv', (hoje) com as colunas "id , name , email , grade , file", sendo 1 linha por aluno com: id = {user}.id (remover este, pois o professor NAO consegue {user}.id facilmente); name = nome atividade, que aparecera' na pg do curso ; "email" = {user}.email ; "grade" = nota do aluno ; "file" = nome do arq. do aluno (na ZIP)

O que falta: O mais basico e' fazer a associacao do usuario no arquivo CSV (que precisa ser via "email" e NAO via {user}.id.

Tambem falta inserir a nota no quadro de notas no Moodle, isso deve ser feito via PHP "/lib/gradelib.php", usando sua funcao "grade_update('.)" (como esquematizei abaixo).

  • gradeimporter/forms/submission/submission_form_functions.php :
    • function prepare_csv ($content) :
    • essa funcao deveria pegar o campo "email" e buscar em {user}.email o aluno, para associar com o aluno da base Moodle
    • essa funcao (ou outra) deveria criar uma entrada na tabela {grade_items} via require_once($CFG->libdir . '/gradelib.php'); // /lib/gradelib.php $grades = array(); $grades['userid'] = {user}.id; // ja' encontrado (comentado acima) - {user} significa a tabela Moodle "prefixo_user" $grades['rawgrade'] = $total_grade; // nota do aluno {user}.id vindo no campo $content (conteudo do arquivo CSV) $params_temp = array('itemname' => {gradeimporter}->name); // para Moodle associar GradeImporter com quadro de notas do Moodle $params_temp['iteminstance'] = {gradeimporter}->id; // para Moodle associar GradeImporter com tabela {course}.module do Moodle $params_temp['gradetype'] = GRADE_TYPE_VALUE; // constante definida em /lib/gradelib.php $params_temp['grademax'] = $total_grade; // nota do aluno (conteudo do arquivo CSV) $params_temp['rawgrademax'] = $total_grade; // idem grade_update('mod/gradeimporter', {gradeimporter}->course, 'mod', 'gradeimporter', {gradeimporter}->id, 0, $grades, $params_temp);
1. Estrutura do "GradeImporter" na base do Moodle (tabelas): - gradeimporter : id ; course ; name ; intro ; timecreated ; timemodified ; usermodified - gradeimporter_feedback : id ; submissionid ; studentid ; grade ; comment ; fileid ; usermodified ; timecreated ; timemodified ; contextid ; name - gradeimporter_submission : id ; gradeimporterid ; type ; gradebook ; timecreated ; timemodified ; usermodified ; name ; description ; descriptionformat ; position ; visibility - gradeimporter_submissiontype : id ; gradeimporterid ; name ; description ; descriptionformat 2. Papel de cada tabela do "GradeImporter": - gradeimporter : course={course}.id ; - gradeimporter_feedback : submissionid={gradeimporter}.id; studentid={user}.id; grade={grade_grades}.rawgrade (?) - gradeimporter_submission : gradeimporterid={gradeimporter}.id da "atividade"; usermodified={user}.id do prof. que modificou por ultimo (FALTA usercreated?) - gradeimporter_submissiontype : ?nao implementado? 3. O que o arquivo ZIP a ser submetido deve ter: - Um arquivo com extensao 'csv', (hoje) com as colunas "id , name , email , grade , file", sendo 1 linha por aluno com: id = {user}.id (remover este, pois o professor NAO consegue {user}.id facilmente); name = nome atividade, que aparecera' na pg do curso ; "email" = {user}.email ; "grade" = nota do aluno ; "file" = nome do arq. do aluno (na ZIP) O que falta: O mais basico e' fazer a associacao do usuario no arquivo CSV (que precisa ser via "email" e NAO via {user}.id. Tambem falta inserir a nota no quadro de notas no Moodle, isso deve ser feito via PHP "/lib/gradelib.php", usando sua funcao "grade_update('.)" (como esquematizei abaixo). + gradeimporter/forms/submission/submission_form_functions.php : - function prepare_csv ($content) : * essa funcao deveria pegar o campo "email" e buscar em {user}.email o aluno, para associar com o aluno da base Moodle * essa funcao (ou outra) deveria criar uma entrada na tabela {grade_items} via require_once($CFG->libdir . '/gradelib.php'); // /lib/gradelib.php $grades = array(); $grades['userid'] = {user}.id; // ja' encontrado (comentado acima) - {user} significa a tabela Moodle "prefixo_user" $grades['rawgrade'] = $total_grade; // nota do aluno {user}.id vindo no campo $content (conteudo do arquivo CSV) $params_temp = array('itemname' => {gradeimporter}->name); // para Moodle associar GradeImporter com quadro de notas do Moodle $params_temp['iteminstance'] = {gradeimporter}->id; // para Moodle associar GradeImporter com tabela {course}.module do Moodle $params_temp['gradetype'] = GRADE_TYPE_VALUE; // constante definida em /lib/gradelib.php $params_temp['grademax'] = $total_grade; // nota do aluno (conteudo do arquivo CSV) $params_temp['rawgrademax'] = $total_grade; // idem grade_update('mod/gradeimporter', {gradeimporter}->course, 'mod', 'gradeimporter', {gradeimporter}->id, 0, $grades, $params_temp);
Zaloguj się, aby dołączyć do tej rozmowy.
Brak etykiety
Brak kamienia milowego
Brak przypisania
1 uczestników
Ładowanie...
Anuluj
Zapisz
Nie ma jeszcze treści.