Changeset 1410
- Timestamp:
- 09/10/08 10:13:12 (3 months ago)
- Files:
-
- pleiades.workspace/trunk/pleiades/workspace/browser/configure.zcml (modified) (1 diff)
- pleiades.workspace/trunk/pleiades/workspace/browser/manage.py (modified) (2 diffs)
- pleiades.workspace/trunk/pleiades/workspace/browser/manage_collection_form.pt (modified) (1 diff)
- pleiades.workspace/trunk/pleiades/workspace/browser/xml.py (modified) (2 diffs)
- pleiades.workspace/trunk/pleiades/workspace/tests/kml-import.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pleiades.workspace/trunk/pleiades/workspace/browser/configure.zcml
r1377 r1410 79 79 /> 80 80 81 <browser:page 82 for="..interfaces.IWorkspaceCollection" 83 name="delete-collection" 84 class=".manage.DeleteCollection" 85 permission="cmf.ModifyPortalContent" 86 /> 87 81 88 </configure> pleiades.workspace/trunk/pleiades/workspace/browser/manage.py
r1377 r1410 34 34 35 35 36 class DeleteCollection(BrowserView): 37 38 def __call__(self): 39 context = self.context 40 request = self.request 41 response = request.response 42 deletion = self.request.form.get('deletion', None) 43 if deletion is not None: 44 ptool = getToolByName(self.context, 'portal_url') 45 portal = ptool.getPortalObject() 46 metadata = self.context.queryCatalog 47 import transaction 48 savepoint = transaction.savepoint() 49 try: 50 lids = [b.getId for b in metadata() if b.Type == 'Location'] 51 nids = [b.getId for b in metadata() if b.Type == 'Name'] 52 fids = [b.getId for b in metadata() if b.Type == 'Features'] 53 pids = [b.getId for b in metadata() if b.Type == 'Places'] 54 portal['locations'].manage_delObjects(lids) 55 portal['names'].manage_delObjects(nids) 56 portal['features'].manage_delObjects(fids) 57 portal['places'].manage_delObjects(pids) 58 except: 59 savepoint.rollback() 60 raise 61 transaction.commit() 62 63 # acquire the parent workspace 64 workspace = None 65 child = aq_inner(self.context) 66 while 1: 67 ob = aq_parent(child) 68 if IWorkspace.providedBy(ob): 69 workspace = ob 70 break 71 child = ob 72 response.redirect('%s' % workspace.absolute_url()) 73 74 36 75 class ManageCollectionForm(BrowserView): 37 76 … … 45 84 def transitions(self): 46 85 wftool = getToolByName(self.context, 'portal_workflow') 47 member = self.context.queryCatalog()[0].getObject() 86 metadata = self.context.queryCatalog() 87 if len(metadata) == 0: 88 return [] 89 member = metadata[0].getObject() 48 90 transitions = wftool.getTransitionsFor(member) 49 91 return transitions pleiades.workspace/trunk/pleiades/workspace/browser/manage_collection_form.pt
r1377 r1410 46 46 </tal:links> 47 47 48 <h3 class="documentFirstHeading">Member Deletion</h3> 49 50 <p>All members of this collection may be deleted using the form below.</p> 51 52 <form 53 action="@@delete-collection" 54 enctype="multipart/form-data" 55 method="post" 56 > 57 <p> 58 <input type="radio" name="deletion" value="true"/> Delete 59 </p> 60 <p><input name="submit-delete" type="submit" value="Apply"/></p> 61 </form> 62 48 63 </tal:main-macro> 49 64 </metal:main> pleiades.workspace/trunk/pleiades/workspace/browser/xml.py
r1406 r1410 1 1 import glob 2 2 from os.path import basename 3 import logging 3 4 from elementtree import ElementTree as etree 4 5 import transaction … … 26 27 failures = [] 27 28 count = 0 28 log = portal.getLogger("pleiades.entity")29 log = logging.getLogger("pleiades.entity") 29 30 for xml in glob.glob("%s/*.xml" % sourcedir): 30 31 try: pleiades.workspace/trunk/pleiades/workspace/tests/kml-import.txt
r1380 r1410 77 77 >>> loc = ws['locations'].queryCatalog()[0].getObject() 78 78 >>> loc.getGeometry() 79 'Point:[21.9725, 32.896299999999997, 0.0]' 79 'Point:[2..., 3...]' 80 81 Test Deletion 82 ------------- 83 84 >>> browser.open('%s/locations/@@manage-collection-form' % ws_url) 85 >>> deletion = browser.getControl(name='deletion') 86 >>> deletion.value = ['true'] 87 >>> browser.getControl(name='submit-delete').click() 88 >>> len(list(ws['locations'].queryCatalog())) 89 0 90 >>> len(list(self.portal['locations'].keys())) 91 0
