Browse Source

Adição de recursos em javascript e outros

master
root 5 years ago
committed by Matheus Garcia
parent
commit
0f7f7b8c09
  1. 1
      amd/build/js-year-calendar.min.js
  2. 7
      amd/build/teste.min.js
  3. 1970
      amd/src/js-year-calendar.js
  4. 28
      amd/src/teste.js
  5. 52
      apply_form.php
  6. 1
      css/js-year-calendar.min.css
  7. 50
      lib.php
  8. 2
      manage_table.php

1
amd/build/js-year-calendar.min.js

File diff suppressed because one or more lines are too long

7
amd/build/teste.min.js

@ -0,0 +1,7 @@
define(['jquery'], function() {
return {
init: function() {
alert('Foo');
}
}
});

1970
amd/src/js-year-calendar.js

File diff suppressed because it is too large

28
amd/src/teste.js

@ -0,0 +1,28 @@
define(['jquery', 'enrol_apply/js-year-calendar', 'core/log',
], function($, calendar, log) {
"use strict"; // jshint ;_;
log.debug('TesteMGBF inicializado');
return {
init: function() {
//$("<div class='overflow:visible' id='calendar'></div>").insertAfter("div.generalbox");
Calendar.locales.pt = {
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
weekShort: 'S',
weekStart:0
};
var calendar = new Calendar("#calendar", {
language: 'pt',
style: 'border'
});
let dataSource = [];
calendar.setDataSource(dataSource);
}
}
});

52
apply_form.php

@ -24,6 +24,8 @@
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
//require_once('./lib.php');
require_once($CFG->libdir.'/formslib.php'); require_once($CFG->libdir.'/formslib.php');
require_once($CFG->dirroot.'/user/editlib.php'); require_once($CFG->dirroot.'/user/editlib.php');
require_once($CFG->dirroot.'/user/profile/lib.php'); require_once($CFG->dirroot.'/user/profile/lib.php');
@ -41,6 +43,52 @@ class enrol_apply_apply_form extends moodleform {
return $formid; return $formid;
} }
public function montaStringCurso($mform) {
// // INICIO MGBF
// $strInfoCurso = 'Um texto qualquer';
// $campo = obtemCampoCustomizadoCurso($instance->courseid, 'sf_restringir_matricula');
// $strInfoCurso .= $campo . $USER->profile['sf_cargo_chefia'];
// profile_load_custom_fields($USER);
// $mform->addElement('html', '<p>' . $strInfoCurso . '</p>');
// global $PAGE;
// $PAGE->requires->css('/enrol/apply/css/js-year-calendar.min.css', true);
// $PAGE->requires->js_call_amd('enrol_apply/teste', 'init');
// $mform->addElement('html', "<div style='overflow-x:visible !important' id='calendar'></div>");
// // FIM MGBF
$resultado = '';
// Verifica se o curso é restrito a setores do Senado.
if(true) { // restrito
$mform->addElement('html', '<div class="alert alert-danger">Curso restrito</div>');
} else {
$mform->addElement('html', '<div class="alert alert-info">'.$count.' '.get_string('maxenrolled_tip_1', 'enrol_apply').' '.$instance->customint3.' '.get_string('maxenrolled_tip_2', 'enrol_apply').'</div>');
}
// Verifica se o curso é determinadas funções do Senado.
if(true) { // restrito
$mform->addElement('html', '<div class="alert alert-danger">Curso restrito</div>');
} else {
$mform->addElement('html', '<div class="alert alert-info">'.$count.' '.get_string('maxenrolled_tip_1', 'enrol_apply').' '.$instance->customint3.' '.get_string('maxenrolled_tip_2', 'enrol_apply').'</div>');
}
// Verifica se o curso é determinados tipos de vínculo do Senado.
if(true) { // restrito
$mform->addElement('html', '<div class="alert alert-danger">Curso restrito</div>');
} else {
$mform->addElement('html', '<div class="alert alert-info">'.$count.' '.get_string('maxenrolled_tip_1', 'enrol_apply').' '.$instance->customint3.' '.get_string('maxenrolled_tip_2', 'enrol_apply').'</div>');
}
// Informa valor do custo por aluno
// Informa que servidor terá que assinar termo de responsabilidade
return true;
}
public function definition() { public function definition() {
global $USER, $DB; global $USER, $DB;
@ -59,6 +107,9 @@ class enrol_apply_apply_form extends moodleform {
} }
} }
// Monta mensagens de acordo com atributos do curso e/ou aluno
$this->montaStringCurso($mform);
$mform->addElement('html', '<p>'.$instance->customtext1.'</p>'); $mform->addElement('html', '<p>'.$instance->customtext1.'</p>');
$comment_title = get_string('comment', 'enrol_apply'); $comment_title = get_string('comment', 'enrol_apply');
if($instance->customtext2 != ''){ if($instance->customtext2 != ''){
@ -91,4 +142,5 @@ class enrol_apply_apply_form extends moodleform {
$mform->setDefault('instance', $instance->id); $mform->setDefault('instance', $instance->id);
} }
} }

1
css/js-year-calendar.min.css

File diff suppressed because one or more lines are too long

50
lib.php

@ -25,6 +25,7 @@
/** The user is put onto a waiting list and therefore the enrolment not active (used in user_enrolments->status) */ /** The user is put onto a waiting list and therefore the enrolment not active (used in user_enrolments->status) */
define('ENROL_APPLY_USER_WAIT', 2); define('ENROL_APPLY_USER_WAIT', 2);
class enrol_apply_plugin extends enrol_plugin { class enrol_apply_plugin extends enrol_plugin {
/** /**
@ -128,6 +129,8 @@ class enrol_apply_plugin extends enrol_plugin {
// retorna true se inseriu ou se já tinha, ou falso em caso de erro ou timeout // retorna true se inseriu ou se já tinha, ou falso em caso de erro ou timeout
} }
// Chamado quando usuário solicita inscrição em um curso
// e também depois da confirmação da inscrição
public function enrol_page_hook(stdClass $instance) { public function enrol_page_hook(stdClass $instance) {
global $CFG, $OUTPUT, $SESSION, $USER, $DB; global $CFG, $OUTPUT, $SESSION, $USER, $DB;
@ -136,12 +139,33 @@ class enrol_apply_plugin extends enrol_plugin {
return null; return null;
} }
// Assegura que método de inscrição está ativo
$allowapply = $this->allow_apply($instance); $allowapply = $this->allow_apply($instance);
if ($allowapply !== true) { if ($allowapply !== true) {
return '<div class="alert alert-error">' . $allowapply . '</div>'; return '<div class="alert alert-error">' . $allowapply . '</div>';
} }
// Testa se foi chamado após a inscrição
if ($DB->record_exists('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) { if ($DB->record_exists('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) {
// Já está inserido na tabela
// Devo pegar quantitativo do curso e posição real, dentre os já aprovados
// Se estiver entre as vagas, já marca como matriculado e envia e-mail
// Senão, informa que está na fila e envia e-mail
/*
PROC insere assinatura sigad
Você foi pre-matriculado no curso XXXX.
A partir de agora, você tem 48 horas para assinar o termo de responsabilidade
no SIGAD, de modo a assegurar sua vaga.
<link para assinatura>
Caso não faça a assinatura dentro desse período, perderá direito a vaga, que
poderá ser ocupada por outro interessado.
*/
// TODO: incluir aqui chamada para WS que atribui assinatura a documento no SIGAD // TODO: incluir aqui chamada para WS que atribui assinatura a documento no SIGAD
// analisar resultado: se timeout ou erro, assinatura deve ser inserida manualmente // analisar resultado: se timeout ou erro, assinatura deve ser inserida manualmente
// DO contrário já mostra link para usuário assinar. // DO contrário já mostra link para usuário assinar.
@ -157,6 +181,8 @@ class enrol_apply_plugin extends enrol_plugin {
return $textoassinatura . ' '. $OUTPUT->notification(get_string('notification', 'enrol_apply'), 'notifysuccess'); return $textoassinatura . ' '. $OUTPUT->notification(get_string('notification', 'enrol_apply'), 'notifysuccess');
} }
// Se deseja se inscrever, verifica se já não atingiu limite de inscritos
// FIXME evidenciar que é pré-inscrição, ver como tratar esse limite!
if ($instance->customint3 > 0) { if ($instance->customint3 > 0) {
// Max enrol limit specified. // Max enrol limit specified.
$count = $DB->count_records('user_enrolments', array('enrolid' => $instance->id)); $count = $DB->count_records('user_enrolments', array('enrolid' => $instance->id));
@ -166,13 +192,15 @@ class enrol_apply_plugin extends enrol_plugin {
} }
} }
// Exibe formulário para matrícula
require_once("$CFG->dirroot/enrol/apply/apply_form.php"); require_once("$CFG->dirroot/enrol/apply/apply_form.php");
$form = new enrol_apply_apply_form(null, $instance); $form = new enrol_apply_apply_form(null, $instance);
// Se formulário foi submetido, efetiva a matrícula e
// redireciona para página do curso
// FIXME não redirecionar ainda
// FIXME definir datas de enrol
if ($data = $form->get_data()) { if ($data = $form->get_data()) {
// Only process when form submission is for this instance (multi instance support). // Only process when form submission is for this instance (multi instance support).
if ($data->instance == $instance->id) { if ($data->instance == $instance->id) {
@ -192,20 +220,25 @@ class enrol_apply_plugin extends enrol_plugin {
$applicationinfo->comment = $data->applydescription; $applicationinfo->comment = $data->applydescription;
$DB->insert_record('enrol_apply_applicationinfo', $applicationinfo, false); $DB->insert_record('enrol_apply_applicationinfo', $applicationinfo, false);
// FIXME verificar se essa notificação é apropriada
$this->send_application_notification($instance, $USER->id, $data); $this->send_application_notification($instance, $USER->id, $data);
// FIXME verificar redirecionamento
redirect("$CFG->wwwroot/course/view.php?id=$instance->courseid"); redirect("$CFG->wwwroot/course/view.php?id=$instance->courseid");
} }
} }
// Exibe informações sobre público alvo do curso
// e botões para matrícula
// Em caso de mais de uma instância, todas aparecem aqui
// FIXME definir formato
$output = $form->render(); $output = $form->render();
profile_load_custom_fields($USER);
$campo = obtemCampoCustomizadoCurso($instance->courseid, 'sf_restringir_matricula');
return $OUTPUT->box('<b>Teste</b> ' . $campo . $USER->profile['sf_cargo_chefia']) . $OUTPUT->box($output); return $OUTPUT->box($OUTPUT->box($output));
} }
// Monta os botões de ação que serão exibidos para este método de inscrição
// na página de métodos de inscrição do curso (/enrol/instances.php?id=IDCURSO)
public function get_action_icons(stdClass $instance) { public function get_action_icons(stdClass $instance) {
global $OUTPUT; global $OUTPUT;
@ -286,11 +319,12 @@ class enrol_apply_plugin extends enrol_plugin {
public function get_user_enrolment_actions(course_enrolment_manager $manager, $ue) { public function get_user_enrolment_actions(course_enrolment_manager $manager, $ue) {
$actions = array(); $actions = array();
//return $actions;
$context = $manager->get_context(); $context = $manager->get_context();
$instance = $ue->enrolmentinstance; $instance = $ue->enrolmentinstance;
$params = $manager->get_moodlepage()->url->params(); $params = $manager->get_moodlepage()->url->params();
$params['ue'] = $ue->id; $params['ue'] = $ue->id;
if ($this->allow_unenrol_user($instance, $ue) && has_capability("enrol/apply:unenrol", $context)) { if ( ($this->allow_unenrol_user($instance, $ue)) && has_capability("enrol/apply:unenrol", $context)) {
$url = new moodle_url('/enrol/unenroluser.php', $params); $url = new moodle_url('/enrol/unenroluser.php', $params);
$actions[] = new user_enrolment_action( $actions[] = new user_enrolment_action(
new pix_icon('t/delete', ''), new pix_icon('t/delete', ''),

2
manage_table.php

@ -86,6 +86,6 @@ class enrol_apply_manage_table extends table_sql {
} }
public function col_applydate($row) { public function col_applydate($row) {
return date("Y-m-d", $row->applydate); return date("d/m/Y H:i:s", $row->applydate);
} }
} }

Loading…
Cancel
Save