Changeset 9023
- Timestamp:
- 19 Jul 2012, 10:32:40 (12 years ago)
- Location:
- main/waeup.kofa/trunk/src/waeup/kofa
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/browser/batchprocessing.txt
r8976 r9023 619 619 'users_zope.mgr.create.finished.csv', 'users_zope.mgr.csv'] 620 620 621 Processed (finished) Files 622 ========================== 623 624 >>> browser.open('http://localhost/app/datacenter/processed') 625 >>> '<a href="download?filename=finished/certificates_zope.mgr.csv">' in browser.contents 626 True 621 627 622 628 Log Files -
main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
r9011 r9023 810 810 return 811 811 812 class DatacenterFinishedPage(KofaEditFormPage): 813 grok.context(IDataCenter) 814 grok.name('processed') 815 grok.require('waeup.manageDataCenter') 816 label = _(u'Processed Files') 817 pnav = 0 818 819 def update(self): 820 datatable.need() 821 return super(DatacenterFinishedPage, self).update() 822 812 823 class DatacenterUploadPage(KofaPage): 813 824 grok.context(IDataCenter) … … 898 909 899 910 def getFiles(self): 900 files = self.context.get Files(sort='date')911 files = self.context.getPendingFiles(sort='date') 901 912 for file in files: 902 913 name = file.name -
main/waeup.kofa/trunk/src/waeup/kofa/browser/templates/datacenterpage.pt
r8366 r9023 21 21 </thead> 22 22 <tbody> 23 <tr tal:repeat="file context/get Files" class="gradeC">23 <tr tal:repeat="file context/getPendingFiles" class="gradeC"> 24 24 <td> 25 25 <input type="checkbox" name="val_id" -
main/waeup.kofa/trunk/src/waeup/kofa/browser/viewlets.py
r8920 r9023 386 386 grok.require('waeup.manageDataCenter') 387 387 text = _('Edit settings') 388 grok.order(1) 388 389 389 390 class ManageFacultiesContainerActionButton(ManageActionButton): … … 458 459 text = _('Edit certificate course') 459 460 460 #461 # Add actions...462 #463 464 461 class AddUserActionButton(AddActionButton): 465 462 grok.require('waeup.manageUsers') … … 468 465 text = _('Add user') 469 466 470 # 471 # Actions with a 'browse' icon... 472 # 473 class BrowseActionButton(ActionButton): 474 grok.baseclass() 475 grok.context(IKofaObject) 476 grok.template('actionbutton') 477 grok.viewletmanager(ActionBar) 467 class BrowseDatacenterLogs(ActionButton): 468 grok.context(IDataCenter) 478 469 grok.require('waeup.manageDataCenter') 479 icon = 'actionicon_manage.png' # File must exist in static/480 target = '@@show' # link to this viewname.481 text = _('Show logs') # Text to display on the button482 483 class BrowseDatacenterLogs(BrowseActionButton):484 grok.context(IDataCenter)485 470 grok.view(DatacenterPage) 486 grok.order( 4)471 grok.order(2) 487 472 icon = 'actionicon_info.png' 488 473 target = '@@logs' 489 474 text = _('Show logs') 490 475 491 # 492 # Misc. buttons... 493 # 476 class UploadCSVButton(ActionButton): 477 grok.context(IDataCenter) 478 grok.view(DatacenterPage) 479 grok.require('waeup.manageDataCenter') 480 grok.order(3) 481 icon = 'actionicon_up.png' 482 target = '@@upload' 483 text = _('Upload CSV file') 484 494 485 class BatchOpButton(ActionButton): 495 486 grok.context(IDataCenter) 496 487 grok.view(DatacenterPage) 497 488 grok.require('waeup.importData') 498 grok.order( 6)489 grok.order(4) 499 490 icon = 'actionicon_gear.png' 500 491 target = '@@import1' 501 492 text = _('Batch processing') 502 493 503 class UploadCSVButton(ActionButton):494 class ExportCSVButton(ActionButton): 504 495 grok.context(IDataCenter) 505 496 grok.view(DatacenterPage) 506 497 grok.require('waeup.manageDataCenter') 507 498 grok.order(5) 508 icon = 'actionicon_up.png'509 target = '@@upload'510 text = _('Upload CSV file')511 512 class ExportCSVButton(ActionButton):513 grok.context(IDataCenter)514 grok.view(DatacenterPage)515 grok.require('waeup.manageDataCenter')516 grok.order(7)517 499 icon = 'actionicon_down.png' 518 500 target = '@@export' 519 501 text = _('Export CSV file') 502 503 class BrowseFinishedFiles(ActionButton): 504 grok.context(IDataCenter) 505 grok.require('waeup.manageDataCenter') 506 grok.view(DatacenterPage) 507 grok.order(6) 508 icon = 'actionicon_finished.png' 509 target = '@@processed' 510 text = _('Processed Files') 520 511 521 512 # -
main/waeup.kofa/trunk/src/waeup/kofa/datacenter.py
r9008 r9023 66 66 return os.path.join(self.storage, 'deleted') 67 67 68 def get Files(self, sort='name'):68 def getPendingFiles(self, sort='name'): 69 69 """Get a list of files stored in `storage`. 70 70 … … 81 81 continue 82 82 result.append(DataCenterFile(fullpath)) 83 if sort == 'date': 84 # sort results in newest-first order... 85 result = sorted(result, key=lambda x: x.getTimeStamp(), 86 reverse=True) 87 return result 88 89 def getFinishedFiles(self, sort='name'): 90 """Get a list of files stored in `finished` subfolder of `storage`. 91 92 Files are sorted by basename. 93 """ 94 result = [] 95 finished_dir = os.path.join(self.storage, 'finished') 96 if not os.path.exists(finished_dir): 97 return result 98 for filename in sorted(os.listdir(finished_dir)): 99 fullpath = os.path.join(finished_dir, filename) 100 if not os.path.isfile(fullpath): 101 continue 102 if not filename.endswith('.csv'): 103 continue 104 result.append(DataCenterFile(fullpath, 'finished')) 83 105 if sort == 'date': 84 106 # sort results in newest-first order... … … 300 322 grok.implements(IDataCenterFile) 301 323 302 def __init__(self, context ):324 def __init__(self, context, folder_name=''): 303 325 self.context = context 304 326 self.name = os.path.basename(self.context) 327 self.rel_path = os.path.join(folder_name, self.name) 305 328 self.size = self.getSize() 306 329 self.uploaddate = self.getDate() -
main/waeup.kofa/trunk/src/waeup/kofa/datacenter.txt
r8398 r9023 83 83 We can get a list of files stored in that location: 84 84 85 >>> mydatacenter.get Files()85 >>> mydatacenter.getPendingFiles() 86 86 [] 87 87 … … 94 94 Now we can find a file: 95 95 96 >>> mydatacenter.get Files()96 >>> mydatacenter.getPendingFiles() 97 97 [<waeup.kofa.datacenter.DataCenterFile object at 0x...>] 98 98 … … 102 102 pages: 103 103 104 >>> datafile = mydatacenter.get Files()[0]104 >>> datafile = mydatacenter.getPendingFiles()[0] 105 105 >>> datafile.getSize() 106 106 '13 bytes' … … 272 272 finished-subdirectory remain. 273 273 274 275 We can get a list of imported files stored in the finished subfolder: 276 277 >>> mydatacenter.getFinishedFiles() 278 [<waeup.kofa.datacenter.DataCenterFile object at ...>, <waeup.kofa.datacenter.DataCenterFile object at ...>] 279 280 >>> datafile = mydatacenter.getFinishedFiles()[0] 281 >>> datafile.getSize() 282 '2 bytes' 283 284 >>> datafile.getDate() # Nearly current datetime... 285 '...' 286 287 274 288 Clean up: 275 289 -
main/waeup.kofa/trunk/src/waeup/kofa/interfaces.py
r8948 r9023 641 641 ) 642 642 643 def get Files(sort='name'):643 def getPendingFiles(sort='name'): 644 644 """Get a list of files stored in `storage` sorted by basename. 645 645 """ 646 647 def getFinishedFiles(sort='name'): 648 """Get a list of files stored in `finished` subfolder of `storage` 649 sorted by basename. 650 """ 651 646 652 def setStoragePath(path, move=False, overwrite=False): 647 653 """Set the path where to store files.
Note: See TracChangeset for help on using the changeset viewer.