## $Id: viewlets.py 15354 2019-03-18 09:24:33Z henrik $ ## ## Copyright (C) 2011 Uli Fouquet & Henrik Bettermann ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program 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 General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## import grok from waeup.kofa.interfaces import REQUESTED, REGISTERED from waeup.kofa.browser.viewlets import ManageActionButton from waeup.uniben.students.interfaces import ( ICustomStudentStudyCourse, ICustomStudentStudyLevel, ICustomStudent, ) from waeup.kofa.students.fileviewlets import ( StudentFileDisplay, StudentFileUpload, StudentImage,) from waeup.kofa.students.browser import ( ExportPDFClearanceSlip, StudyCourseDisplayFormPage, StudyLevelDisplayFormPage, StudentClearanceDisplayFormPage, StudentBaseDisplayFormPage) from kofacustom.nigeria.interfaces import MessageFactory as _ class StudyCourseEditActionButton(ManageActionButton): grok.order(1) grok.context(ICustomStudentStudyCourse) grok.view(StudyCourseDisplayFormPage) grok.require('waeup.clearStudent') text = _('Edit level') target = 'edit_level' @property def target_url(self): if self.context.is_current and self.context.student.state == REQUESTED: return self.view.url(self.view.context, self.target) return False class CourseRegistrationSlipActionButton(ManageActionButton): grok.order(5) grok.context(ICustomStudentStudyLevel) grok.view(StudyLevelDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download course registration slip') target = 'course_registration_slip.pdf' @property def target_url(self): is_current = self.context.__parent__.is_current if not is_current: return '' if self.context.student.state != REGISTERED \ or self.context.student.current_level != self.context.level: return '' return self.view.url(self.view.context, self.target) class CourseResultSlipActionButton(ManageActionButton): grok.order(6) grok.context(ICustomStudentStudyLevel) grok.view(StudyLevelDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download course result slip') target = 'course_result_slip.pdf' @property def target_url(self): return self.view.url(self.view.context, self.target) class ClearanceInvitationSlipActionButton(ManageActionButton): grok.order(5) grok.context(ICustomStudent) grok.view(StudentClearanceDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download clearance invitation slip') target = 'clearance_invitation_slip.pdf' @property def target_url(self): if self.context.student.state == REQUESTED \ and self.context.student.physical_clearance_date: return self.view.url(self.view.context, self.target) return False class ExaminationScheduleSlipActionButton(ManageActionButton): grok.order(10) grok.context(ICustomStudent) grok.view(StudentBaseDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download examination schedule slip') target = 'examination_schedule_slip.pdf' @property def target_url(self): if self.context.flash_notice \ and 'exam' in self.context.flash_notice.lower(): return self.view.url(self.view.context, self.target) return False class JHLIdCardActionButton(ManageActionButton): grok.order(10) grok.context(ICustomStudent) grok.view(StudentBaseDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download JHL Id Card') target = 'jhl_idcard.pdf' @property def target_url(self): # temporarily disabled return '' return self.view.url(self.view.context, self.target) class JUPEBResultSlipActionButton(ManageActionButton): grok.order(11) grok.context(ICustomStudent) grok.view(StudentBaseDisplayFormPage) grok.require('waeup.viewStudent') icon = 'actionicon_pdf.png' text = _('Download JUPEB result slip') target = 'jupeb_result_slip.pdf' @property def target_url(self): if self.context.flash_notice and self.context.is_jupeb \ and 'results' in self.context.flash_notice.lower(): return self.view.url(self.view.context, self.target) return False # JAMB Letter class JAMBLetterDisplay(StudentFileDisplay): """JAMB Letter display viewlet. """ grok.order(19) label = _(u'JAMB Letter') title = _(u'JAMB Letter') download_name = u'jamb_letter' class JAMBLetterSlip(JAMBLetterDisplay): grok.view(ExportPDFClearanceSlip) class JAMBLetterUpload(StudentFileUpload): """JAMB Letter upload viewlet. """ grok.order(19) label = _(u'JAMB Letter') title = _(u'JAMB Letter Scan') mus = 1024 * 150 download_name = u'jamb_letter' class JAMBLetterImage(StudentImage): """Renders JAMB Letter scan. """ grok.name('jamb_letter') download_name = u'jamb_letter' # Affidavit of Non-Membership of Secret Cults class SecrCultsStatementDisplay(StudentFileDisplay): """Affidavit of Non-Membership of Secret Cults display viewlet. """ grok.order(20) label = _(u'Affidavit of Non-Membership of Secret Cults') title = _(u'Affidavit of Non-Membership of Secret Cults') download_name = u'secr_cults' class SecrCultsStatementSlip(SecrCultsStatementDisplay): grok.view(ExportPDFClearanceSlip) class SecrCultsStatementUpload(StudentFileUpload): """Affidavit of Non-Membership of Secret Cults upload viewlet. """ grok.order(20) label = _(u'Affidavit of Non-Membership of Secret Cults') title = _(u'Affidavit of Non-Membership of Secret Cults Scan') mus = 1024 * 150 download_name = u'secr_cults' class SecrCultsStatementImage(StudentImage): """Renders Affidavit of Non-Membership of Secret Cults scan. """ grok.name('secr_cults') download_name = u'secr_cults' # Fingerprints class LeftThumbPrintDisplay(StudentFileDisplay): """Left thumb fingerprint display viewlet. """ grok.order(21) label = _(u'Left Thumb Fingerprint') title = _(u'Left Thumb Fingerprint Minutiae') download_name = u'finger1.fpm' class LeftThumbPrintSlip(LeftThumbPrintDisplay): """Mentions scanned fingerprint on slip. Fingerprint minutiae is not printet. """ grok.view(ExportPDFClearanceSlip) class LeftThumbPrintUpload(StudentFileUpload): """Left thumb fingerprint upload viewlet. """ grok.order(21) grok.require('waeup.manageStudent') label = _(u'Left Thumb Fingerprint') title = _(u'Left Thumb Fingerprint Minutiae') mus = 1024 * 5 download_name = u'finger1.fpm' class LeftThumbPrintImage(StudentImage): """Renders left thumb fingerprint minutiae for download. """ grok.name('finger1.fpm') download_name = u'finger1.fpm'