/** * Copyright © ${project.inceptionYear} Instituto Superior Técnico * * This file is part of Fenix IST. * * Fenix IST is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Fenix IST is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Fenix IST. If not, see <http://www.gnu.org/licenses/>. */ package pt.ist.fenix.task.updateData.enrolment; import java.util.HashSet; import java.util.Set; import org.fenixedu.academic.domain.Person; import org.fenixedu.academic.domain.student.Student; import org.fenixedu.academic.domain.util.email.Message; import org.fenixedu.academic.domain.util.email.Recipient; import org.fenixedu.academic.domain.util.email.Sender; import org.fenixedu.bennu.core.domain.User; import org.fenixedu.bennu.core.security.Authenticate; import org.fenixedu.bennu.scheduler.custom.CustomTask; import pt.ist.fenixframework.FenixFramework; public class SendEmailToFlunkedStudents extends CustomTask { private static final String[] FLUNKED_STUDENTS = new String[] { "8306", "21121", "33939", "42200", "45004", "45662", "45778", "46349", "47077", "47178", "47597", "47928", "48516", "49080", "49646", "49671", "49877", "50144", "50312", "50526", "50683", "50879", "51110", "51331", "51469", "52109", "52327", "52516", "52533", "53035", "53566", "53818", "54184", "54424", "54794", "55196", "55220", "55410", "55459", "55817", "55819", "55878", "56545", "56631", "56804", "56849", "57123", "57287", "57301", "57349", "57642", "57675", "58030", "58041", "58086", "58205", "58229", "58356", "58366", "58392", "58500", "58534", "58705", "58965", "59095", "59099", "62665", "63110", "63238", "63387", "63495", "63546", "63703", "63791", "63984", "64216", "64663", "64674", "64725", "64945", "65052", "65264", "65283", "65371", "65545", "65592", "65779", "65975", "65985", "66034", "66073", "66089", "66133", "66168", "66244", "66462", "66485", "66717", "66918", "66931", "66996", "67016", "67045", "67200", "67326", "67367", "67563", "67688", "67754", "67833", "67907", "68140", "68156", "68339", "68620", "68623", "69273", "69477", "69727", "69737", "69790", "69872", "69889", "69904", "69936", "69965", "70009", "70034", "70044", "70060", "70069", "70113", "70146", "70151", "70164", "70178", "70294", "70296", "70419", "70428", "70450", "70550", "70647", "70714", "70919", "70950", "70957", "70961", "71010", "71036", "71071", "71121", "72516", "72538", "73434", "73713", "73757", "73834", "73858", "73934", "74066", "74142", "74243", "74282" }; @Override public void runTask() throws Exception { User user = User.findByUsername("ist24616"); Authenticate.mock(user); Set<Person> students = new HashSet<Person>(); for (int iter = 0; iter < FLUNKED_STUDENTS.length; iter++) { Student student = Student.readStudentByNumber(Integer.valueOf(FLUNKED_STUDENTS[iter])); if (student == null) { taskLog("Can't find student -> " + FLUNKED_STUDENTS[iter]); continue; } students.add(student.getPerson()); } createEmail(students); taskLog("Done."); } private void createEmail(final Set<Person> students) { final Sender sender = getConcelhoDeGestaoSender(); final Set<Recipient> tos = new HashSet<Recipient>(); tos.add(new Recipient(students)); final Set<String> bccs = new HashSet<String>(); bccs.add("marta.graca@tecnico.usliboa.pt"); new Message(sender, null, tos, getSubject(), getBody(), bccs); taskLog("Sent: " + students.size() + " emails"); } private Sender getConcelhoDeGestaoSender() { return FenixFramework.getDomainObject("4196183080395"); } private String getBody() { final StringBuilder body = new StringBuilder(); // Mail quando os alunos são retirados da lista de prescristos // body.append("Caro Aluno do IST,\n"); // body.append("\n"); // body.append("Após a reavaliação dos currículos académicos dos alunos prescritos em 16 de Agosto de 2013 (com base no lançamento de notas decorrido após esta data) e a apreciação dos recursos apresentados, verificou-se que o seu nome foi excluído da lista final de prescritos para 2013/2014.\n"); // body.append("\n"); // body.append("Assim, e se ainda não estiver inscrito em unidades curriculares no 1º semestre do ano lectivo 2013/14, poderá inscrever-se entre 10 e 13 de Setembro de 2013 na Internet (sistema Fénix) e no dia 16 de Setembro de 2013 nos Serviços Académicos.\n"); // body.append("\n"); // body.append("IST, 9 de Setembro de 2013\n"); // body.append("\n"); // body.append("O Conselho de Gestão do IST\n"); //Mail quando são postos como prescritos body.append("Caro Aluno do IST,\n"); body.append("\n"); body.append("Após análise do seu currículo académico, verificou-se estar numa das situações previstas para prescrição no Regulamento de Prescrições do IST (disponível em http://www.ist.utl.pt/pt/alunos).\n"); body.append("\n"); body.append("A lista provisória de alunos a prescrever encontra-se afixada, junto dos Serviços Académicos, desde o dia 18 de agosto de 2014. Os alunos sujeitos a prescrição não poderão efectuar a sua inscrição em unidades curriculares no ano lectivo 2014/2015.\n"); body.append("\n"); body.append("No caso de existir alguma incorrecção na avaliação da sua situação, deverá requerer a sua correcção junto dos Serviços Académicos dentro dos prazos estabelecidos para recurso, de 18 de agosto a 22 de agosto de 2014.\n"); body.append("\n"); body.append("O resultado dos recursos será afixado no dia 8 de Setembro de 2014. No caso de deferimento a inscrição em unidades curriculares no 1º semestre do ano lectivo 2014/2015 poderá ser efectuada entre 9 e 12 de setembro de 2014.\n"); body.append("\n"); body.append("Técnico, 18 de Agosto de 2014\n"); body.append("O Conselho de Gestão do IST\n"); return body.toString(); } private String getSubject() { // return "Levantamento de prescrição para o ano lectivo 2013/2014"; return "Prescrição para o ano lectivo 2014/2015"; } }