INFO = 'info' SUCCESS = 'success' WARNING = 'warning' ERROR = 'error' class Messages(object): def __init__(self, session): self.session = session self.messages = session.get('messages_list', []) self.session['messages_list'] = [] def set_message(self, message, level='info', owner=None): msg = Message(message) msg.level = level msg.owner = owner self.messages.append(msg) return msg def set_flash(self, message, level='info', owner=None): msg = self.set_message(message, level, owner) self.session['messages_list'].append(msg) return msg def get_message(self, owner=None): for index, message in enumerate(self.messages): if message.owner == owner: del self.messages[index] return message return None def get_messages(self, owner=None): orphans = [] messages = [] for message in self.messages: if message.owner == owner: messages.append(message) else: orphans.append(message) self.messages = orphans return messages class Message(object): def __init__(self, message=None, level='info', owner=None): self.level = level self.message = message self.owner = owner def __unicode__(self): return self.message def get_messages(request, owner=None): return request.messages.get_messages(owner) def get_message(request, owner=None): return request.messages.get_message(owner) def add_message(request, level, message, owner=None): request.messages.set_flash(unicode(message), level=level, owner=owner) def info(request, message, owner=None): add_message(request, INFO, message, owner=owner) def success(request, message, owner=None): add_message(request, SUCCESS, message, owner=owner) def warning(request, message, owner=None): add_message(request, WARNING, message, owner=owner) def error(request, message, owner=None): add_message(request, ERROR, message, owner=owner)