Ignore:
Timestamp:
2 Mar 2012, 14:20:03 (13 years ago)
Author:
uli
Message:

Add cert-exporter. Fix department code export for certs and courses.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.sirp/trunk/src/waeup/sirp/university/export.py

    r7752 r7753  
    139139                value = None
    140140        elif name == 'department_code':
    141             value = getattr(
    142                 getattr(context, '__parent__', None),
    143                 'code', None)
     141            try:
     142                value = context.__parent__.__parent__.code
     143            except AttributeError:
     144                value = None
    144145        return super(CourseExporter, self).mangle_value(
    145146            value, name, context)
     
    157158                    self.write_item(course, writer)
    158159        return self.close_outfile(filepath, outfile)
     160
     161class CertificateExporter(CourseExporter, grok.GlobalUtility):
     162    """Exporter for courses.
     163    """
     164    grok.implements(ICSVExporter)
     165    grok.name('certificates')
     166
     167    #: Fieldnames considered by this exporter
     168    fields = ('code', 'faculty_code', 'department_code', 'title', 'study_mode',
     169              'start_level', 'end_level', 'application_category')
     170
     171    def export_all(self, site, filepath=None):
     172        """Export faculties in facultycontainer into filepath as CSV data.
     173
     174        If `filepath` is ``None``, a raw string with CSV data is returned.
     175        """
     176        writer, outfile = self.get_csv_writer(filepath)
     177        faculties = site.get('faculties', {})
     178        for faculty in faculties.values():
     179            for department in faculty.values():
     180                for cert in department.certificates.values():
     181                    self.write_item(cert, writer)
     182        return self.close_outfile(filepath, outfile)
Note: See TracChangeset for help on using the changeset viewer.