Changeset 11947 for main/waeup.kofa/branches/henrik-regista/src/waeup/kofa/browser/batchprocessing.txt
- Timestamp:
- 13 Nov 2014, 13:21:59 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/branches/henrik-regista/src/waeup/kofa/browser/batchprocessing.txt
r11699 r11947 58 58 59 59 60 Batch processing faculties61 ==========================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_prefix71 ... FAC1,Faculty 1,faculty72 ... FAC2,Faculty 2,institute73 ... FAC3,Fäcülty 3,school74 ... """)75 76 Upload the file:77 78 >>> import cStringIO79 >>> 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.displayOptions97 ['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 = True111 112 >>> modeselect = browser.getControl(name='mode')113 >>> modeselect.options114 ['create', 'update', 'remove']115 116 >>> modeselect.getControl(value='create').selected = True117 >>> browser.getControl('Proceed to step 3').click()118 119 Step 3: Fix headerlines120 121 We get informed that there are no problems with the current header:122 123 >>> print browser.contents124 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"125 ...126 Header fields OK127 ...128 129 The submit button is enabled:130 131 >>> browser.getControl('Perform import').disabled132 False133 134 >>> browser.getControl('Perform import').click()135 136 Step 4: See import results137 138 The import was successful:139 140 >>> print browser.contents141 <!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.contents151 <!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.contents157 True158 159 160 Batch processing departments161 ============================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_prefix169 ... DEP1,FAC1,Department 1,department170 ... DEP2,FAC2,Department 2,centre171 ... """)172 173 Upload the file:174 175 >>> import cStringIO176 >>> 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 = True194 >>> modeselect = browser.getControl(name='mode')195 >>> modeselect.getControl(value='create').selected = True196 >>> browser.getControl('Proceed to step 3').click()197 198 Step 3: Fix headerlines199 200 We get informed that there are no problems with the current header:201 202 >>> print browser.contents203 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"204 ...205 Header fields OK206 ...207 208 The submit button is enabled:209 210 >>> browser.getControl('Perform import').disabled211 False212 213 >>> browser.getControl('Perform import').click()214 215 Step 4: See import results216 217 The import was successful:218 219 >>> print browser.contents220 <!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 courses226 ========================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,semester234 ... CRS1,FAC1,DEP1,Course 1,100,40,2,1235 ... CRS2,FAC1,DEP1,Course 2,100,40,2,2236 ... """)237 238 Upload the file:239 240 >>> import cStringIO241 >>> 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 = True259 >>> modeselect = browser.getControl(name='mode')260 >>> modeselect.getControl(value='create').selected = True261 >>> browser.getControl('Proceed to step 3').click()262 263 Step 3: Fix headerlines264 265 We get informed that there are no problems with the current header:266 267 >>> print browser.contents268 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"269 ...270 Header fields OK271 ...272 273 The submit button is enabled:274 275 >>> browser.getControl('Perform import').disabled276 False277 278 >>> browser.getControl('Perform import').click()279 280 Step 4: See import results281 282 The import was successful:283 284 >>> print browser.contents285 <!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 certificates291 =============================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_category299 ... CERT1,FAC1,DEP1,Certificate 1,pg_ft,999,999,basic300 ... CERT2,FAC1,DEP1,Certificate 2,ug_ft,200,300,cest301 ... """)302 303 Upload the file:304 305 >>> import cStringIO306 >>> 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 = True325 >>> modeselect = browser.getControl(name='mode')326 >>> modeselect.getControl(value='create').selected = True327 >>> browser.getControl('Proceed to step 3').click()328 329 Step 3: Fix headerlines330 331 We get informed that there are no problems with the current header:332 333 >>> print browser.contents334 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"335 ...336 Header fields OK337 ...338 339 The submit button is enabled:340 341 >>> browser.getControl('Perform import').disabled342 False343 344 >>> browser.getControl('Perform import').click()345 346 Step 4: See import results347 348 The import was successful:349 350 >>> print browser.contents351 <!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 courses357 ====================================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,mandatory365 ... CRS1,FAC1,DEP1,CERT1,100,True366 ... CRS2,FAC1,DEP1,CERT1,100,True367 ... """)368 369 Upload the file:370 371 >>> import cStringIO372 >>> 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 = True390 >>> modeselect = browser.getControl(name='mode')391 >>> modeselect.getControl(value='create').selected = True392 >>> browser.getControl('Proceed to step 3').click()393 394 Step 3: Fix headerlines395 396 We get informed that there are no problems with the current header:397 398 >>> print browser.contents399 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"400 ...401 Header fields OK402 ...403 404 The submit button is enabled:405 406 >>> browser.getControl('Perform import').disabled407 False408 409 >>> browser.getControl('Perform import').click()410 411 Step 4: See import results412 413 The import was successful:414 415 >>> print browser.contents416 <!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 421 60 Batch processing users 422 61 ====================== … … 488 127 >>> henrik = getRootFolder()['app']['users']['henrik'] 489 128 >>> henrik.roles 490 ['waeup.P ortalManager', 'waeup.AcademicsOfficer', 'waeup.ImportManager']129 ['waeup.ProductsOfficer', 'waeup.PortalManager', 'waeup.ImportManager'] 491 130 492 131 Pending files … … 502 141 >>> browser.open('http://localhost/app/datacenter') 503 142 504 Prepare a CSV file for faculties:505 506 >>> open('new faculties.csv', 'wb').write(507 ... """ code,title,title_prefix508 ... FAC1,Faculty 1,faculty509 ... FAC4,Faculty 4,school143 Prepare 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']" 510 149 ... """) 511 150 … … 515 154 >>> browser.getLink('Upload data').click() 516 155 >>> filecontents = cStringIO.StringIO( 517 ... open('new faculties.csv', 'rb').read())156 ... open('newusers.csv', 'rb').read()) 518 157 >>> filewidget = browser.getControl(name='uploadfile:file') 519 >>> filewidget.add_file(filecontents, 'text/plain', 'new faculties.csv')158 >>> filewidget.add_file(filecontents, 'text/plain', 'newusers.csv') 520 159 >>> browser.getControl(name='SUBMIT').click() 521 160 … … 531 170 >>> browser.getLink('Process data').click() 532 171 >>> button = lookup_submit_value( 533 ... 'select', 'new faculties_zope.mgr.csv', browser)172 ... 'select', 'newusers_zope.mgr.csv', browser) 534 173 >>> button.click() 535 174 … … 537 176 538 177 >>> importerselect = browser.getControl(name='importer') 539 >>> importerselect.getControl(' FacultyProcessor').selected = True178 >>> importerselect.getControl('User Processor').selected = True 540 179 >>> modeselect = browser.getControl(name='mode') 541 180 >>> modeselect.getControl(value='create').selected = True … … 561 200 ``finished`` dirs: 562 201 563 >>> pending_file = dc_path + '/new faculties_zope.mgr.create.pending.csv'202 >>> pending_file = dc_path + '/newusers_zope.mgr.create.pending.csv' 564 203 >>> 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/new faculties_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' 569 208 >>> print open(finished_file).read() 570 title_prefix,code,title571 school,FAC4,Faculty 4209 name,roles,title,public_name,phone,email 210 isouaba,[],Issoufou Abba Moussa,Chief Developer,+49-234-567,isouaba@abc.de 572 211 573 212 The finished-file contains the dataset we could import, while the … … 583 222 import this way: 584 223 585 >>> open(dc_path + '/new faculties_zope.mgr.create.pending.csv', 'wb').write(586 ... """ title_prefix,--IGNORE--,code,title587 ... faculty,FAC5,Faculty 5224 >>> 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,[] 588 227 ... """) 589 228 … … 593 232 >>> browser.getLink('Process data').click() 594 233 >>> button = lookup_submit_value( 595 ... 'select', 'new faculties_zope.mgr.create.pending.csv', browser)234 ... 'select', 'newusers_zope.mgr.create.pending.csv', browser) 596 235 >>> button.click() 597 236 … … 599 238 600 239 >>> importerselect = browser.getControl(name='importer') 601 >>> importerselect.getControl(' FacultyProcessor').selected = True240 >>> importerselect.getControl('User Processor').selected = True 602 241 >>> modeselect = browser.getControl(name='mode') 603 242 >>> modeselect.getControl(value='create').selected = True … … 626 265 627 266 >>> 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'] 630 268 631 269 Processed (finished) Files … … 633 271 634 272 >>> browser.open('http://localhost/app/datacenter/processed') 635 >>> 'download?filename=finished/ certificates_zope.mgr.create.finished.csv' in browser.contents273 >>> 'download?filename=finished/users_zope.mgr.create.finished.csv' in browser.contents 636 274 True 637 275
Note: See TracChangeset for help on using the changeset viewer.