Changeset 103

Show
Ignore:
Timestamp:
10/31/07 19:21:29 (14 months ago)
Author:
steadicat
Message:

Fixed updating session.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • django/trunk/middleware/messagesmiddleware.py

    r102 r103  
    11 
    22class Messages(object): 
    3     def __init__(self, session): 
     3    def __init__(self): 
    44        self.messages = [] 
    5         self.session = session 
     5        self.modified = False 
    66 
    77    def add(self, message): 
     8        self.modified = True 
    89        self.messages.append(message) 
    9         self.session.modified = True 
    1010 
    1111    def get(self): 
    1212        if len(self.messages) > 0: 
    13             yield self.messages.pop(0) 
    14             self.session.modified = True 
     13            self.modified = True 
     14            m = self.messages[:] 
     15            self.messages = [] 
     16            return m 
    1517 
    1618class MessagesMiddleware(object): 
     
    1820    def process_request(self, request): 
    1921        if 'messages' not in request.session: 
    20             request.session['messages'] = Messages(request.session) 
     22            request.session['messages'] = Messages() 
     23 
     24    def process_response(self, request, response): 
     25        if request.session['messages'].modified: 
     26            request.session['messages'].modified = False 
    2127            request.session.modified = True 
     28        return response 
    2229 
    2330def context_processor(request):