Ignore:
Timestamp:
13 Nov 2014, 13:21:59 (10 years ago)
Author:
Henrik Bettermann
Message:

Enucleation. Keep only the portal's framework. Remove university, students, applicants, hostels and accesscodes modules.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/branches/henrik-regista/src/waeup/kofa/browser/batchprocessing.txt

    r11699 r11947  
    5858
    5959
    60 Batch processing faculties
    61 ==========================
    62 
    63 Go to datacenter page:
    64 
    65     >>> browser.open('http://localhost/app/datacenter')
    66 
    67 Prepare a CSV file for faculties (extended ascii values are accepted):
    68 
    69     >>> open('faculties.csv', 'wb').write(
    70     ... """code,title,title_prefix
    71     ... FAC1,Faculty 1,faculty
    72     ... FAC2,Faculty 2,institute
    73     ... FAC3,Fäcülty 3,school
    74     ... """)
    75 
    76 Upload the file:
    77 
    78     >>> import cStringIO
    79     >>> browser.getLink('Upload data').click()
    80     >>> filecontents = cStringIO.StringIO(
    81     ...   open('faculties.csv', 'rb').read())
    82     >>> filewidget = browser.getControl(name='uploadfile:file')
    83     >>> filewidget.add_file(filecontents, 'text/plain', 'faculties.csv')
    84     >>> browser.getControl(name='SUBMIT').click()
    85 
    86 Step 1: start batch processing:
    87 
    88     >>> browser.getLink('Process data').click()
    89     >>> button = lookup_submit_value(
    90     ...   'select', 'faculties_zope.mgr.csv', browser)
    91     >>> button.click()
    92 
    93 Step 2: select a processor and mode:
    94 
    95     >>> importerselect = browser.getControl(name='importer')
    96     >>> importerselect.displayOptions
    97     ['AccessCodeBatch Processor', 'AccessCode Processor',
    98     'Applicant Processor', 'ApplicantsContainer Processor',
    99     'CertificateCourse Processor', 'Certificate Processor',
    100     'Course Processor',
    101     'CourseTicket Processor',
    102     'Department Processor', 'Faculty Processor',
    103     'Hostel Processor',
    104     'StudentOnlinePayment Processor', 'Student Processor',
    105     'StudentStudyCourse Processor (update only)',
    106     'StudentStudyLevel Processor',
    107     'User Processor',
    108     'Verdict Processor (special processor, update only)']
    109 
    110     >>> importerselect.getControl('Faculty Processor').selected = True
    111 
    112     >>> modeselect = browser.getControl(name='mode')
    113     >>> modeselect.options
    114     ['create', 'update', 'remove']
    115 
    116     >>> modeselect.getControl(value='create').selected = True
    117     >>> browser.getControl('Proceed to step 3').click()
    118 
    119 Step 3: Fix headerlines
    120 
    121 We get informed that there are no problems with the current header:
    122 
    123     >>> print browser.contents
    124     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    125     ...
    126     Header fields OK
    127     ...
    128 
    129 The submit button is enabled:
    130 
    131     >>> browser.getControl('Perform import').disabled
    132     False
    133 
    134     >>> browser.getControl('Perform import').click()
    135 
    136 Step 4: See import results
    137 
    138 The import was successful:
    139 
    140     >>> print browser.contents
    141     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    142     ...Successfully processed 3 rows...
    143     ...Batch processing finished...
    144     ...File:...faculties_zope.mgr.csv...
    145 
    146 We can grep the entries generated in logfile:
    147 
    148     >>> browser.open('http://localhost/app/datacenter/logs')
    149     >>> browser.getControl('Show', index=0).click()
    150     >>> print browser.contents
    151     <!DOCTYPE ...
    152     ...<h1 class="kofa-content-label">Logfile datacenter.log</h1>...
    153 
    154     >>> browser.getControl(name='query').value = "zope.mgr"
    155     >>> browser.getControl('Search').click()
    156     >>> 'zope.mgr - processed' in browser.contents
    157     True
    158 
    159 
    160 Batch processing departments
    161 ============================
    162 
    163     >>> browser.open('http://localhost/app/datacenter')
    164 
    165 Prepare a CSV file for departments:
    166 
    167     >>> open('departments.csv', 'wb').write(
    168     ... """code,faculty_code,title,title_prefix
    169     ... DEP1,FAC1,Department 1,department
    170     ... DEP2,FAC2,Department 2,centre
    171     ... """)
    172 
    173 Upload the file:
    174 
    175     >>> import cStringIO
    176     >>> browser.getLink('Upload data').click()
    177     >>> filecontents = cStringIO.StringIO(
    178     ...   open('departments.csv', 'rb').read())
    179     >>> filewidget = browser.getControl(name='uploadfile:file')
    180     >>> filewidget.add_file(filecontents, 'text/plain', 'departments.csv')
    181     >>> browser.getControl(name='SUBMIT').click()
    182 
    183 Step 1: start batch processing:
    184 
    185     >>> browser.getLink('Process data').click()
    186     >>> button = lookup_submit_value(
    187     ...   'select', 'departments_zope.mgr.csv', browser)
    188     >>> button.click()
    189 
    190 Step 2: select a processor and mode:
    191 
    192     >>> importerselect = browser.getControl(name='importer')
    193     >>> importerselect.getControl('Department Processor').selected = True
    194     >>> modeselect = browser.getControl(name='mode')
    195     >>> modeselect.getControl(value='create').selected = True
    196     >>> browser.getControl('Proceed to step 3').click()
    197 
    198 Step 3: Fix headerlines
    199 
    200 We get informed that there are no problems with the current header:
    201 
    202     >>> print browser.contents
    203     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    204     ...
    205     Header fields OK
    206     ...
    207 
    208 The submit button is enabled:
    209 
    210     >>> browser.getControl('Perform import').disabled
    211     False
    212 
    213     >>> browser.getControl('Perform import').click()
    214 
    215 Step 4: See import results
    216 
    217 The import was successful:
    218 
    219     >>> print browser.contents
    220     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    221     ...Successfully processed 2 rows...
    222     ...Batch processing finished...
    223     ...File:...departments_zope.mgr.csv...
    224 
    225 Batch processing courses
    226 ========================
    227 
    228     >>> browser.open('http://localhost/app/datacenter')
    229 
    230 Prepare a CSV file for courses:
    231 
    232     >>> open('courses.csv', 'wb').write(
    233     ... """code,faculty_code,department_code,title,level,passmark,credits,semester
    234     ... CRS1,FAC1,DEP1,Course 1,100,40,2,1
    235     ... CRS2,FAC1,DEP1,Course 2,100,40,2,2
    236     ... """)
    237 
    238 Upload the file:
    239 
    240     >>> import cStringIO
    241     >>> browser.getLink('Upload data').click()
    242     >>> filecontents = cStringIO.StringIO(
    243     ...   open('courses.csv', 'rb').read())
    244     >>> filewidget = browser.getControl(name='uploadfile:file')
    245     >>> filewidget.add_file(filecontents, 'text/plain', 'courses.csv')
    246     >>> browser.getControl(name='SUBMIT').click()
    247 
    248 Step 1: start batch processing:
    249 
    250     >>> browser.getLink('Process data').click()
    251     >>> button = lookup_submit_value(
    252     ...   'select', 'courses_zope.mgr.csv', browser)
    253     >>> button.click()
    254 
    255 Step 2: select a processor and mode:
    256 
    257     >>> importerselect = browser.getControl(name='importer')
    258     >>> importerselect.getControl('Course Processor', index=1).selected = True
    259     >>> modeselect = browser.getControl(name='mode')
    260     >>> modeselect.getControl(value='create').selected = True
    261     >>> browser.getControl('Proceed to step 3').click()
    262 
    263 Step 3: Fix headerlines
    264 
    265 We get informed that there are no problems with the current header:
    266 
    267     >>> print browser.contents
    268     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    269     ...
    270     Header fields OK
    271     ...
    272 
    273 The submit button is enabled:
    274 
    275     >>> browser.getControl('Perform import').disabled
    276     False
    277 
    278     >>> browser.getControl('Perform import').click()
    279 
    280 Step 4: See import results
    281 
    282 The import was successful:
    283 
    284     >>> print browser.contents
    285     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    286     ...Successfully processed 2 rows...
    287     ...Batch processing finished...
    288     ...File:...courses_zope.mgr.csv...
    289 
    290 Batch processing certificates
    291 =============================
    292 
    293     >>> browser.open('http://localhost/app/datacenter')
    294 
    295 Prepare a CSV file for certificates:
    296 
    297     >>> open('certificates.csv', 'wb').write(
    298     ... """code,faculty_code,department_code,title,study_mode,start_level,end_level,application_category
    299     ... CERT1,FAC1,DEP1,Certificate 1,pg_ft,999,999,basic
    300     ... CERT2,FAC1,DEP1,Certificate 2,ug_ft,200,300,cest
    301     ... """)
    302 
    303 Upload the file:
    304 
    305     >>> import cStringIO
    306     >>> browser.getLink('Upload data').click()
    307     >>> filecontents = cStringIO.StringIO(
    308     ...   open('certificates.csv', 'rb').read())
    309     >>> filewidget = browser.getControl(name='uploadfile:file')
    310     >>> filewidget.add_file(filecontents, 'text/plain', 'certificates.csv')
    311     >>> browser.getControl(name='SUBMIT').click()
    312 
    313 Step 1: start batch processing:
    314 
    315     >>> browser.getLink('Process data').click()
    316     >>> button = lookup_submit_value(
    317     ...   'select', 'certificates_zope.mgr.csv', browser)
    318     >>> button.click()
    319 
    320 
    321 Step 2: select a processor and mode:
    322 
    323     >>> importerselect = browser.getControl(name='importer')
    324     >>> importerselect.getControl('Certificate Processor').selected = True
    325     >>> modeselect = browser.getControl(name='mode')
    326     >>> modeselect.getControl(value='create').selected = True
    327     >>> browser.getControl('Proceed to step 3').click()
    328 
    329 Step 3: Fix headerlines
    330 
    331 We get informed that there are no problems with the current header:
    332 
    333     >>> print browser.contents
    334     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    335     ...
    336     Header fields OK
    337     ...
    338 
    339 The submit button is enabled:
    340 
    341     >>> browser.getControl('Perform import').disabled
    342     False
    343 
    344     >>> browser.getControl('Perform import').click()
    345 
    346 Step 4: See import results
    347 
    348 The import was successful:
    349 
    350     >>> print browser.contents
    351     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    352     ...Successfully processed 2 rows...
    353     ...Batch processing finished...
    354     ...File:...certificates_zope.mgr.csv...
    355 
    356 Batch processing certificate courses
    357 ====================================
    358 
    359     >>> browser.open('http://localhost/app/datacenter')
    360 
    361 Prepare a CSV file for certificate courses:
    362 
    363     >>> open('mycertcourses.csv', 'wb').write(
    364     ... """course,faculty_code,department_code,certificate_code,level,mandatory
    365     ... CRS1,FAC1,DEP1,CERT1,100,True
    366     ... CRS2,FAC1,DEP1,CERT1,100,True
    367     ... """)
    368 
    369 Upload the file:
    370 
    371     >>> import cStringIO
    372     >>> browser.getLink('Upload data').click()
    373     >>> filecontents = cStringIO.StringIO(
    374     ...   open('mycertcourses.csv', 'rb').read())
    375     >>> filewidget = browser.getControl(name='uploadfile:file')
    376     >>> filewidget.add_file(filecontents, 'text/plain', 'mycertcourses.csv')
    377     >>> browser.getControl(name='SUBMIT').click()
    378 
    379 Step 1: start batch processing:
    380 
    381     >>> browser.getLink('Process data').click()
    382     >>> button = lookup_submit_value(
    383     ...   'select', 'mycertcourses_zope.mgr.csv', browser)
    384     >>> button.click()
    385 
    386 Step 2: select a processor and mode:
    387 
    388     >>> importerselect = browser.getControl(name='importer')
    389     >>> importerselect.getControl('CertificateCourse Processor').selected = True
    390     >>> modeselect = browser.getControl(name='mode')
    391     >>> modeselect.getControl(value='create').selected = True
    392     >>> browser.getControl('Proceed to step 3').click()
    393 
    394 Step 3: Fix headerlines
    395 
    396 We get informed that there are no problems with the current header:
    397 
    398     >>> print browser.contents
    399     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    400     ...
    401     Header fields OK
    402     ...
    403 
    404 The submit button is enabled:
    405 
    406     >>> browser.getControl('Perform import').disabled
    407     False
    408 
    409     >>> browser.getControl('Perform import').click()
    410 
    411 Step 4: See import results
    412 
    413 The import was successful:
    414 
    415     >>> print browser.contents
    416     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    417     ...Successfully processed 2 rows...
    418     ...Batch processing finished...
    419     ...File:...mycertcourses_zope.mgr.csv...
    420 
    42160Batch processing users
    42261======================
     
    488127   >>> henrik = getRootFolder()['app']['users']['henrik']
    489128   >>> henrik.roles
    490    ['waeup.PortalManager', 'waeup.AcademicsOfficer', 'waeup.ImportManager']
     129   ['waeup.ProductsOfficer', 'waeup.PortalManager', 'waeup.ImportManager']
    491130
    492131Pending files
     
    502141    >>> browser.open('http://localhost/app/datacenter')
    503142
    504 Prepare a CSV file for faculties:
    505 
    506     >>> open('newfaculties.csv', 'wb').write(
    507     ... """code,title,title_prefix
    508     ... FAC1,Faculty 1,faculty
    509     ... FAC4,Faculty 4,school
     143Prepare a CSV file for users:
     144
     145    >>> open('newusers.csv', 'wb').write(
     146    ... """name,title,public_name,email,phone,roles
     147    ... isouaba,Issoufou Abba Moussa,Chief Developer,isouaba@abc.de,+49-234-567,[]
     148    ... henrik,Henrik Bettermann,Admin,henrik@abc.de,+49-234-567,"['waeup.PortalManager', 'waeup.ImportManager']"
    510149    ... """)
    511150
     
    515154    >>> browser.getLink('Upload data').click()
    516155    >>> filecontents = cStringIO.StringIO(
    517     ...   open('newfaculties.csv', 'rb').read())
     156    ...   open('newusers.csv', 'rb').read())
    518157    >>> filewidget = browser.getControl(name='uploadfile:file')
    519     >>> filewidget.add_file(filecontents, 'text/plain', 'newfaculties.csv')
     158    >>> filewidget.add_file(filecontents, 'text/plain', 'newusers.csv')
    520159    >>> browser.getControl(name='SUBMIT').click()
    521160
     
    531170    >>> browser.getLink('Process data').click()
    532171    >>> button = lookup_submit_value(
    533     ...   'select', 'newfaculties_zope.mgr.csv', browser)
     172    ...   'select', 'newusers_zope.mgr.csv', browser)
    534173    >>> button.click()
    535174
     
    537176
    538177    >>> importerselect = browser.getControl(name='importer')
    539     >>> importerselect.getControl('Faculty Processor').selected = True
     178    >>> importerselect.getControl('User Processor').selected = True
    540179    >>> modeselect = browser.getControl(name='mode')
    541180    >>> modeselect.getControl(value='create').selected = True
     
    561200``finished`` dirs:
    562201
    563     >>> pending_file = dc_path + '/newfaculties_zope.mgr.create.pending.csv'
     202    >>> pending_file = dc_path + '/newusers_zope.mgr.create.pending.csv'
    564203    >>> print open(pending_file).read()
    565     title_prefix,code,title,--ERRORS--
    566     faculty,FAC1,Faculty 1,This object already exists. Skipping.
    567 
    568     >>> finished_file = dc_path + '/finished/newfaculties_zope.mgr.create.finished.csv'
     204    name,roles,title,public_name,phone,email,--ERRORS--
     205    henrik,"['waeup.PortalManager', 'waeup.ImportManager']",Henrik Bettermann,Admin,+49-234-567,henrik@abc.de,This object already exists. Skipping.
     206
     207    >>> finished_file = dc_path + '/finished/newusers_zope.mgr.create.finished.csv'
    569208    >>> print open(finished_file).read()
    570     title_prefix,code,title
    571     school,FAC4,Faculty 4
     209    name,roles,title,public_name,phone,email
     210    isouaba,[],Issoufou Abba Moussa,Chief Developer,+49-234-567,isouaba@abc.de
    572211
    573212The finished-file contains the dataset we could import, while the
     
    583222import this way:
    584223
    585     >>> open(dc_path + '/newfaculties_zope.mgr.create.pending.csv', 'wb').write(
    586     ... """title_prefix,--IGNORE--,code,title
    587     ... faculty,FAC5,Faculty 5
     224    >>> open(dc_path + '/newusers_zope.mgr.create.pending.csv', 'wb').write(
     225    ... """name,title,public_name,email,phone,roles
     226    ... gbenga,Jason Bamidele,Chief Developer,gbenga@abc.de,+49-234-567,[]
    588227    ... """)
    589228
     
    593232    >>> browser.getLink('Process data').click()
    594233    >>> button = lookup_submit_value(
    595     ...   'select', 'newfaculties_zope.mgr.create.pending.csv', browser)
     234    ...   'select', 'newusers_zope.mgr.create.pending.csv', browser)
    596235    >>> button.click()
    597236
     
    599238
    600239    >>> importerselect = browser.getControl(name='importer')
    601     >>> importerselect.getControl('Faculty Processor').selected = True
     240    >>> importerselect.getControl('User Processor').selected = True
    602241    >>> modeselect = browser.getControl(name='mode')
    603242    >>> modeselect.getControl(value='create').selected = True
     
    626265
    627266    >>> sorted(os.listdir(dc_path + '/finished'))
    628     ['certificates_zope.mgr.create.finished.csv', ...,
    629     'users_zope.mgr.create.finished.csv', 'users_zope.mgr.csv']
     267    ['newusers_zope.mgr.create.finished.csv', 'newusers_zope.mgr.csv', 'users_zope.mgr.create.finished.csv', 'users_zope.mgr.csv']
    630268
    631269Processed (finished) Files
     
    633271
    634272    >>> browser.open('http://localhost/app/datacenter/processed')
    635     >>> 'download?filename=finished/certificates_zope.mgr.create.finished.csv' in browser.contents
     273    >>> 'download?filename=finished/users_zope.mgr.create.finished.csv' in browser.contents
    636274    True
    637275
Note: See TracChangeset for help on using the changeset viewer.