Ignore:
Timestamp:
07/16/10 14:19:10 (22 months ago)
Author:
dart
Message:

LoReality?:
o Messsager is now full ajax. Can reply to a mail now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loreality/loreality/controllers/messager.py

    r2113 r2114  
    2121import uuid 
    2222from pylons.i18n.translation import _, ungettext 
     23from webhelpers.html.tags import literal 
    2324 
    2425class MessagerController(BaseController): 
     
    6162        return render('/derived/page/messager.html') 
    6263    #-------------------------------------------------------------- 
    63     def open(self, id): 
    64         return self.index(opened=uuid.UUID(id)) 
    65     #-------------------------------------------------------------- 
    6664    @jsonify 
    6765    def getallmsgs(self): 
     
    7775        for m in messages: 
    7876            p = pilot_q.filter_by(id=m.from_).first() 
    79             res['messages'].append({ 'date': m.date.strftime("%c"), 'from':p.name, 'subject':m.subject }) 
     77            res['messages'].append({ 
     78                'date': m.date.strftime("%c"), 
     79                'from':p.name, 
     80                'subject':m.subject, 
     81                'unread':m.unread, 
     82                'id':str(m.id), 
     83                }) 
    8084        return res 
    8185    #-------------------------------------------------------------- 
     86    @jsonify 
    8287    def getmsg(self, id): 
    8388        pilot_q = meta.Session.query(model.Pilot) 
    8489        pilot = pilot_q.filter_by(login=request.environ['REMOTE_USER']).first() 
    8590        if pilot is None: 
    86             abort(404) 
     91            return "Error" 
    8792 
    8893        message_q = meta.Session.query(model.Message) 
     
    98103            message.unread = False 
    99104            meta.Session.commit() 
    100         return "%s|%s|%s"% ( str(message.id), message.text, pilot.messages_unread ) 
     105 
     106        p = pilot_q.filter_by(id=message.from_).first() 
     107        res = {} 
     108        res['message'] = { 
     109            'unread':p.messages_unread, 
     110            'id':str(message.id), 
     111            'text':literal(message.text), 
     112            } 
     113        return res 
     114    #-------------------------------------------------------------- 
     115    def reply(self, id): 
     116        pilot_q = meta.Session.query(model.Pilot) 
     117        pilot = pilot_q.filter_by(login=request.environ['REMOTE_USER']).first() 
     118        if pilot is None: 
     119            return "Error" 
     120 
     121        message_q = meta.Session.query(model.Message) 
     122        message = message_q.filter_by(id=uuid.UUID(id)).first() 
     123        if message is None: 
     124            return "Error" 
     125         
     126        #- Be sure it is our message 
     127        if message not in pilot.messages: return "Error" 
     128 
     129        values = dict(request.params) 
     130 
     131        pilotid = message.from_ 
     132        dest_pilot = pilot_q.filter_by(id=pilotid).first() 
     133        msg = model.Message() 
     134        msg.from_ = pilot.id 
     135        msg.subject = _("Re:") + message.subject 
     136        msg.text = values["text"] 
     137        dest_pilot.send_message( msg ) 
     138        meta.Session.commit() 
     139        return "ok" 
    101140    #-------------------------------------------------------------- 
    102141    def delete(self, id): 
Note: See TracChangeset for help on using the changeset viewer.