Ignore:
Timestamp:
15 Mar 2017, 12:08:35 (8 years ago)
Author:
Henrik Bettermann
Message:

Add GradSessionResultsPresentation?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.aaue/trunk/src/waeup/aaue/students/reports/session_results_presentation.py

    r14600 r14631  
    1919import grok
    2020from zope.component import getUtility
     21from zope.interface import implementer, Interface, Attribute
    2122from waeup.kofa.interfaces import IKofaUtils
    2223from waeup.kofa.students.reports.session_results_presentation import (
    23     SessionResultsPresentation, SessionResultsPresentationGenerator)
     24    SessionResultsPresentation, SessionResultsPresentationGenerator,
     25    ISessionResultsPresentation, SessionResultsPresentationGeneratorPage,
     26    SessionResultsPresentationPDFView)
    2427
    2528class CustomSessionResultsPresentation(SessionResultsPresentation):
     
    9093            level=level, author=author)
    9194        return result
     95
     96
     97# Session Results Presentation for graduating students only
     98
     99class IGradSessionResultsPresentation(ISessionResultsPresentation):
     100    """Marker interface to distuingish graduating students level reports
     101    from ordinary level reports.
     102    """
     103
     104@implementer(IGradSessionResultsPresentation)
     105class GradSessionResultsPresentation(CustomSessionResultsPresentation):
     106    """
     107    """
     108
     109    title = 'Presentation of Results to Senate'
     110
     111    @property
     112    def right_footer(self):
     113        return self.title + ' (graduating students only) - %s -' % self.session
     114
     115    def _excluded(self, level_obj):
     116        """
     117        """
     118        final_level = max(level_obj.student['studycourse'].keys())
     119        final_level_obj = level_obj.student['studycourse'][final_level]
     120        if final_level_obj.remark not in (
     121            'Pass', '3s_rd_s', '2s_2_s', '2s_1_s', '1s_st_s'):
     122            return True
     123        return False
     124
     125class GradSessionResultsPresentationGenerator(SessionResultsPresentationGenerator):
     126
     127    title = 'Presentation of Graduating Students Results to Senate'
     128    grok.name('grad_session_results_presentation')
     129
     130    def generate(self, site, faccode=None, depcode=None, certcode=None,
     131                 session=None, level=None, author=None):
     132        result = GradSessionResultsPresentation(faccode=faccode, depcode=depcode,
     133            certcode=certcode, session=session, level=level, author=author)
     134        return result
     135
     136class GradSessionResultsPresentationGeneratorPage(SessionResultsPresentationGeneratorPage):
     137
     138    grok.context(GradSessionResultsPresentationGenerator)
     139
     140class GradSessionResultsPresentationPDFView(SessionResultsPresentationPDFView):
     141
     142    grok.context(IGradSessionResultsPresentation)
     143    grok.name('pdf')
     144    grok.require('waeup.handleReports')
     145
     146    def _filename(self):
     147        return 'GradSessionResultsPresentation_rno%s_%s.pdf' % (
     148            self.context.__name__,
     149            self.context.creation_dt_string)
Note: See TracChangeset for help on using the changeset viewer.