Changeset 9835


Ignore:
Timestamp:
6 Jan 2013, 21:43:17 (12 years ago)
Author:
Henrik Bettermann
Message:

Implement student data export configuration page.

Location:
main/waeup.kofa/trunk/src/waeup/kofa
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py

    r9826 r9835  
    7070from waeup.kofa.datacenter import DataCenterFile
    7171
     72from waeup.kofa.students.export import EXPORTER_NAMES as STUDENT_EXPORTERS
     73
    7274grok.context(IKofaObject)
    7375grok.templatedir('templates')
     
    15431545        utils = getUtilitiesFor(ICSVExporter)
    15441546        title_name_tuples = [
    1545             (util.title, name) for name, util in utils]
     1547            (util.title, name) for name, util in utils
     1548            if not name in STUDENT_EXPORTERS]
    15461549        # The exporter for access codes requires a special permission.
    15471550        if not checkPermission('waeup.manageACBatches', self.context):
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterexportpage.pt

    r9822 r9835  
    11<p i18n:translate="">
    2   Here you can create CSV files from parts of portal data.
     2  Here you can create CSV files from parts of portal data except student data.
    33  Please pick the type of objects you want to export from the
    44  selection below. The file will be generated and then be
     
    2929  </div>
    3030</form>
     31
     32<br />
     33
     34<p i18n:translate="">
     35  Student data exports have to be further configured. You can create CSV files
     36  on the corresponding <a href="jobconfig">configuration page</a>.
     37</p>
    3138
    3239<br /><br />
  • main/waeup.kofa/trunk/src/waeup/kofa/browser/tests/test_browser.py

    r9827 r9835  
    278278                         in self.browser.contents)
    279279
     280    def test_export_students(self):
     281        # we can trigger export file creation
     282        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     283        self.browser.open(self.datacenter_path)
     284        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     285        self.assertEqual(self.browser.url, self.datacenter_path)
     286        self.browser.getLink("Export data").click()
     287        self.browser.getLink("configuration page").click()
     288        self.browser.getControl(name="exporter").value = ['students']
     289        self.browser.getControl(name="session").value = ['all']
     290        self.browser.getControl(name="level").value = ['all']
     291        self.browser.getControl(name="mode").value = ['all']
     292        self.browser.getControl("Create CSV file").click()
     293        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     294        job_id = self.wait_for_export_job_completed()
     295        self.browser.open(self.datacenter_path + '/export')
     296        self.browser.getLink("Download").click()
     297        self.assertEqual(self.browser.headers['content-type'],
     298                         'text/csv; charset=UTF-8')
     299        self.assertEqual(self.browser.headers['content-disposition'],
     300                         'attachment; filename="WAeUP.Kofa_students.csv')
     301        # No students yet
     302        self.assertEqual(self.browser.contents,
     303            'adm_code,clearance_locked,clr_code,date_of_birth,email,'
     304            'employer,firstname,lastname,matric_number,middlename,'
     305            'nationality,officer_comment,perm_address,personal_updated,'
     306            'phone,reg_number,sex,student_id,suspended,suspended_comment,'
     307            'password,state,history,certcode,is_postgrad,current_level,'
     308            'current_session\r\n')
     309        self.cleanup_run_job()
     310        return
     311
    280312    def test_export_discard(self):
    281313        # we can discard a generated export result
  • main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py

    r9833 r9835  
    26532653
    26542654class ExportJobContainerOverview(KofaPage):
    2655     """Page that filters and lists students.
     2655    """Page that lists active student data export jobs and provides links
     2656    to discard or download CSV files.
     2657
    26562658    """
    26572659    grok.context(VirtualExportJobContainer)
     
    26842686    label = _('Configure student data export')
    26852687    pnav = 1
     2688    redirect_target = ''
    26862689
    26872690    def _set_session_values(self):
     
    27402743                   ' current_session=%s, current_level=%s, study_mode=%s' % (
    27412744                   session, level, mode))
     2745        self.redirect(self.url(self.redirect_target))
    27422746        return
    27432747
    27442748class ExportJobContainerDownload(ExportCSVView):
    2745     """Page that configures a students export job.
     2749    """Page that downloads a students export csv file.
     2750
    27462751    """
    27472752    grok.context(VirtualExportJobContainer)
     
    27532758    """
    27542759    grok.context(IDataCenter)
    2755 
     2760    redirect_target = '@@export'
    27562761
    27572762class DepartmentExportJobContainerJobConfig(ExportJobContainerJobConfig):
  • main/waeup.kofa/trunk/src/waeup/kofa/students/browser_templates/exportjobsjobconfig.pt

    r9819 r9835  
    5050  <div class="input">
    5151  <input type="submit" name="START"  i18n:translate=""
    52     value="Create export now"
     52    value="Create CSV file"
    5353    class="btn primary" />
    5454  </div>
  • main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py

    r9830 r9835  
    27522752        self.browser.getControl(name="level").value = ['100']
    27532753        self.browser.getControl(name="mode").value = ['ug_ft']
    2754         self.browser.getControl("Create export now").click()
     2754        self.browser.getControl("Create CSV file").click()
    27552755
    27562756        # When the job is finished and we reload the page...
Note: See TracChangeset for help on using the changeset viewer.