Changeset 2646
- Timestamp:
- 25/06/07 17:07:54 (14 years ago)
- Location:
- TI05-delivery/ows_framework/trunk/ows_server/ows_server
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/ndgDiscovery.config
r2626 r2646 26 26 layout: /layout/ 27 27 # 28 28 mailserver: outbox.rl.ac.uk 29 metadataMaintainer: b.n.lawrence@rl.ac.uk 29 30 repository: glue.badc.rl.ac.uk 30 31 -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/routing.py
r2643 r2646 38 38 map.connect('logout', controller='logout') 39 39 map.connect('view/:uri', controller = 'retrieve', action='view') 40 map.connect('askCorrect/:uri', controller='retrieve', action='askCorrect') 41 map.connect('correct/:uri', controller='retrieve', action='correct') 40 42 map.connect('retrieve/:uri', controller = 'retrieve') 41 43 -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/retrieve.py
r2643 r2646 4 4 from paste.request import parse_querystring 5 5 from ows_server.models import stubB 6 from ows_server.lib import mailer 6 7 7 8 #from ows_server.models import ndgRetrieve … … 87 88 return render_response(r) 88 89 90 def askCorrect(self,uri): 91 ''' Provide a form (ajaxaciously) so that a user can correct a metadata record''' 92 status=self.__setup(uri) 93 c.uri=self.uri 94 if status: return Response(status) 95 return render_response('correct',fragment=True) 96 89 97 98 def correct(self,uri): 99 ''' Receive a correction form to update a record and post it to the holder ''' 100 status=self.__setup(uri) 101 if 'ndgSec' not in session: 102 return Response('Not Logged In') 103 body='Metadata Change Request for %s'%uri 104 payload='<Change><uri>%s</uri><from>%s</from><Contents>%s</Contents></Change>'%( 105 self.inputs['Identifier'],self.inputs['Submitter'],self.inputs['Comment']) 106 name='ChangeRequestFor_%s.xml'%uri 107 status,message=mailer.mailHandler([self.cf.get('DEFAULT','metadataMaintainer'),], 108 body,body,xmlAttachments=[(payload,name),], 109 server=self.cf.get('DEFAULT','mailserver')) 110 if status: 111 c.xml='<p>Success: Mail sent to metadata maintainer</p>' 112 else: 113 c.xml=message 114 return render_response('content') 115 116 90 117 def __mytb(self): 91 118 ''' Get the trackback info for this page -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/trackback.py
r2643 r2646 1 1 from ows_server.lib.base import * 2 from ows_server.lib.mailer import mailHandler 2 3 class TrackbackController(BaseController): 3 4 ''' Provides the pylons controller for recieving trackbacks to NDG documents ''' 4 def index(self): 5 def index(self,uri): 6 ''' This is the default trackback receipt method. Note we haven't implemented 7 whitelisting yet ''' 8 9 err=0 10 5 11 # need to receive a trackback, and mail someone ... 6 return Response('not yet implemented') 12 13 incoming=request.environ['querystring'] 14 keys=incoming.keys() 15 payload='<trackback><uri>%s</uri>' 16 17 #make sure we have both url and title 18 if 'url' not in keys and 'title' not in keys: 19 err='Incomplete trackback, need both url and title at the every least' 20 for key in keys: 21 payload.append('<%s>%s</%s>'%(key,incoming[key],key)) 22 23 #now get server and trackback recipient. 24 self.cf=request.environ['ndgConfig'] 25 26 server=self.cf.get('DEFAULT','mailserver',None) 27 if server is None: 28 err='Server not configured for trackback (no mail server)' 29 30 recipient=self.cf.get('DEFAULT','tbrecipient',None) 31 if recipient is None: 32 err='Server not configured for trackback (no recipient)' 33 34 body='Citation Trackback for %s'%uri 35 name='CitationTrackbackFor_%s.xml'uri 36 37 38 39 if err!=0: 40 c.message=err 41 c.err=1 42 else: 43 status,message=mailHandler([recipient,],body,body,xmlAttachments=[(payload,name),], 44 server=server) 45 if status: 46 c.err=0 47 else: 48 c.err=1 49 c.message=message 50 51 return render_response(trackback) -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/Utilities.py
r2618 r2646 15 15 import urllib 16 16 import logging 17 import smtplib 17 18 18 19 19 class myConfig: … … 162 162 163 163 164 def mailError(recipients,subject,body,sender='ndg@badc.nerc.ac.uk',testing=0,server='localhost'): 165 try: 166 server=smtplib.SMTP(server) 167 server.set_debuglevel(1) 168 toaddr=recipients 169 fromaddr="From: %s\n"% sender 170 message="To: %s\n" % toaddr 171 message+=fromaddr 172 message+="Subject: %s\n" % subject 173 message+=body 174 server.sendmail(fromaddr, toaddr, message) 175 server.quit() 176 except: 177 if testing: 178 raise 179 else: 180 #no failing in real life 181 pass 164 182 165 183 166 import unittest … … 210 193 def testidget(self): 211 194 self.assertEqual(idget(self.difxml),'NOCSDAT192') 212 213 def testMailError(self): 214 target='b.n.lawrence@rl.ac.uk' 215 subject='test from Utilities' 216 body='some information' 217 mailError(target,subject,body,server='outbox.rl.ac.uk',testing=1) 195 218 196 219 197 if __name__=="__main__": -
TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/stubB.kid
r2643 r2646 31 31 </div> 32 32 </div> <!-- Metadata Div Ends --> 33 34 <div id="Corrections"> 35 <p> Please use this 36 <span py:if="'ndgSec' in session"> 37 ${XML(h.link_to_remote("link",dict(update="Corrections", url=h.url_for(action='askCorrect'))))} 38 </span> to enter any errors in the metadata record above. 39 </p> 40 </div> 33 41 </div> 34 42 <div py:replace="footer()"/>
Note: See TracChangeset
for help on using the changeset viewer.